Jak zwiększyć sprzedaż produktów B2B wykorzystując system rekomendacji
Między innymi za sprawą sukcesu wielu biznesów e-commerce lub aplikacji typu Spotify, zagadnienia związane z systemami rekomendacji są bardzo często poruszane w artykułach i dyskusjach na portalach zajmujących się uczeniem maszynowym.
Najprościej ujmując, rekomendacja to próba zajrzenia w przyszłość. Odgadnięcia na przykład, jaki produkt zostanie kupiony lub obejrzany w założonym horyzoncie czasu. Zaś “tradycyjne” systemy rekomendacji to systemy przeznaczone dla użytkowników końcowych (klientów) i dotyczą zazwyczaj produktów takich jak filmy, muzyka, czy też inne produkty oferowane w sklepach internetowych.
W artykule przedstawię system rekomendacji przeznaczony dla działu sprzedaży B2B, a więc takiego, którego klientem są firmy. System ten ma wspierać proces sprzedaży poprzez mechanizm podpowiadania produktów, które warto zaoferować określonej firmie.
Algorytmy rekomendacji zazwyczaj dzieli się na trzy główne grupy:
- rekomendacje bazujące na cechach klientów i produktów (content-based filtering)
- rekomendacje bazujące na tzw. wspólnej filtracji (collaborative filtering)
- Systemy rekomendacji łączące na różne sposoby wybrane elementy powyższych (hybrid)
Większość popularnych metod rekomendacji charakteryzuje się liniową zależnością prognozy od cech i zachowań użytkowników. Jest to podyktowane z jednej strony chęcią zachowania prostoty implementacji, a z drugiej strony wymaganiami wydajnościowymi. W naszym przypadku nie wymagamy od systemu natychmiastowej reakcji, dlatego mogliśmy zastosować algorytmy, które w tradycyjnie rozumianej rekomendacji byłyby zbyt czasochłonne.
Podstawowe założenia
Można dość bezpiecznie założyć, że firmy kupując produkty kierują się bardziej obiektywnymi “przesłankami” niż użytkownik wypożyczalni filmów, który wybiera kolejny film na sobotni wieczór. Tymi “przesłankami” mogą być między innymi pewne stałe cechy, jak np.:
- branża klienta,
- profil działalności,
- wielkość zatrudnienia,
- etap rozwoju firmy.
Ale to nie wszystko. Można także wziąć pod uwagę zdarzenia związane ze specyfiką danej firmy lub takie, które mają wpływ na jej działalność, np.: pozyskanie nowego kontraktu, zatrudnienie pracowników, reorganizacja, zmiana używanej technologii, zakup/wdrożenie nowego systemu IT itp. W praktyce jednak, zazwyczaj nie mamy dostępu do większości z tych informacji. Dlatego możliwość przewidzenia potrzeb klienta zależy od stopnia korelacji pomiędzy posiadanymi danymi a decyzjami zakupowymi klientów.
Regresja / klasyfikacja
Mając klientów z pewną historią zakupów, posiadamy ważną informację o kwotach wydanych przez nich na zakup określonych produktów w danym okresie czasu. Zakładamy, że kwoty te są skorelowane z ich potrzebami biznesowymi i cenami produktów.
Jeśli dwa podobne produkty jednakowo zaspokajają potrzebę klienta, to korzystniej jest rekomendować przez stronę sprzedającą produkt bardziej rentowny. W konsekwencji rekomendujemy produkty, które nie tylko są klientowi potrzebne, ale jednocześnie przyniosą nam najwyższy przychód/zysk.
Istotą metody jest wytrenowanie modelu regresji, przewidującego, ile klient o określonych cechach przeciętnie wydaje na zakup danych produktów. Następnie obliczamy to dla wszystkich produktów w katalogu i rekomendujemy do sprzedaży produkty charakteryzujące się największą prognozą wydatków.
Warunkiem powodzenia tej metody jest istnienie dużej korelacji pomiędzy znanymi cechami klienta a wielkością zakupów określonych produktów. Jeśli takiej wyraźnej korelacji nie ma, to model regresji będzie miał bardzo duży błąd predykcji.
W takim wypadku warto spróbować klasyfikacji. Zamiast prognozować dokładną kwotę przychodu ze sprzedaży produktu możemy prognozować określony przedział wartości. Na ogół prowadzi to do lepszego dopasowania do danych, ale jednocześnie zmniejsza przydatność takiej prognozy.
Wspólna filtracja (collaborative filtering)
W praktyce, przedstawione wcześniej podejście w wielu przypadkach się nie sprawdzi. Klienci kierują się w swoich decyzjach zakupowych przesłankami, które są ukryte – nie mamy dostępu do tych danych. Dodatkowo rozrzut wartości jest zbyt duży, aby można było zastosować regresję czy klasyfikację.
Jeśli nie wiemy, czym się kieruje klient podczas zakupów, to warto sprawdzić co kupują klienci o podobnej historii zakupowej. Mają oni podobną historię zakupową, więc spodziewamy się, że w przyszłości też będą zachowywać się podobnie.
Żeby obliczyć wzajemne podobieństwo klientów, tworzymy dla nich tzw. wektory zakupów, w których poszczególne współrzędne odpowiadają kolejnym produktom i przyjmują wartości jeden lub zero, zależnie od tego czy klient kupił dany produkt czy nie. Zamiast binarnego zapisu można też użyć łącznej liczby kupionych produktów albo sumarycznej/ średniej kwoty wydanej na zakupy. Wybór rodzaju danych użytych w wektorach zakupowych będzie mieć wpływ na skuteczność systemu rekomendacji i powinien być dokonany po porównaniu różnych wariantów.
Mając wektory zakupowe możemy obliczyć podobieństwo klientów. Najczęściej stosowana jest tu metryka cosinusowa, gdzie podobieństwo między klientami dane jest unormowanym iloczynem skalarnym ich wektorów zakupowych i przyjmuje wartości od 1 dla identycznych wektorów do 0 dla wektorów, które nie mają ani jednej takiej samej współrzędnej.
Dobre rezultaty daje też współczynnik korelacji Pearsona – im większa korelacja między wektorami zakupowymi tym podobniejsi są klienci.
Miarą stopnia w jakim powinniśmy rekomendować wybranemu klientowi określony produkt jest średnia ważona z macierzy zakupów tego produktu, gdzie wagą jest podobieństwo między klientami. Jeśli wielu podobnych klientów kupiło ten produkt otrzymamy liczbę bliską jedynce, w przeciwnym wypadku wynik będzie mniejszy.
System wspólnej filtracji można udoskonalać w dwóch aspektach: jak obliczane jest podobieństwo klientów oraz jak obliczana jest potem rekomendacja.
Podobieństwo klientów
Na ogół dobre efekty daje wzmocnienie podobieństwa klientów, którzy kupili dużo takich samych produktów.
Powiedzmy, że klient “AB” kupił dwa produkty: A oraz B.
Klient “A” kupił tylko produkt A.
Klient “ABCD” kupił cztery produkty: A, B, C oraz D.
Podobieństwo cosinusowe między klientami „AB” i “A” wynosi: 1 ÷ √2 = 0,707106781
Podobieństwo cosinusowe między klientami „AB” i “ABCD” jest takie samo: 2 ÷ √2 ÷ √4 = 0,707106781
Jednak wydaje się, że klienci „AB” i “ABCD” są nieco bardziej do siebie podobni niż klienci „AB” i “A”. Takie sytuacje powinniśmy uwzględnić.
Produkty kupowane często przez duże grupy klientów w mniejszym stopniu świadczą o podobieństwie między klientami niż produkty kupowane rzadko. Warto więc wprowadzić wagi odwrotnie proporcjonalne do ilości klientów, którzy kupili dany produkt.
Sposób obliczania rekomendacji
W pewnych sytuacjach zasadne jest wprowadzenie zróżnicowanych wag dla produktów po to, aby określone produkty miały preferencje wynikające z polityki sprzedażowej.
Dobrym rozwiązaniem może być wykorzystanie wiedzy branżowej i wprowadzenie wartości domyślnych dla pustych komórek w macierzy zakupów. Można do tego użyć analizy statystycznej i na przykład ustalić rozkład liczby zakupów produktów w zależności od branży klienta. Mając taki rozkład można uzupełnić puste miejsca w macierzy zakupów, co powinno pozytywnie wpłynąć na skuteczność rekomendacji.
Puste komórki można też uzupełniać bez znajomości specyfiki branżowej wykorzystując na przykład odpowiednie wartości uśrednione (predictive mean matching) albo stosując wytrenowany na danych z macierzy zakupów klasyfikator (imputation-boosted collaborative filtering).
Innym pomysłem jest wprowadzenie większych wag dla danych rzeczywistych niż dla uzupełnionych pustych komórek.
Standardowo obliczane wagi mają quasi-liniowy charakter. W wielu sytuacjach dobre rezultaty może dać wzmocnienie kontrastowości wag poprzez dodatkowe obniżenie małych i powiększenie dużych wag.
Jak weryfikować systemy rekomendacji?
Tradycyjne metody pomiaru dokładności rekomendacji bazują na różnicy pomiędzy predykcją oceny produktu a oceną rzeczywistą przyznaną przez klienta. Są to na przykład: pierwiastek z błędu średniokwadratowego (Root Mean Squared Error –RMSE) albo średni błąd bezwzględny (Mean Absolute Error – MAE).
W naszym przypadku nie dysponujemy jednak oceną produktu a jedynie informacją zero-jedynkową czy produkt został kupiony. Nie jest istotne, czy dobrze przewidzieliśmy ocenę produktu, ale czy klient skorzystał z rekomendacji i zakupił produkt. Do tego celu lepiej nadają się wskaźniki stosowane zazwyczaj w klasyfikacji: precyzja (precision) i kompletność (recall). Precyzja określa jaki procent zarekomendowanych produktów został faktycznie kupiony a kompletność mówi jaki procent zakupionych produktów był przez nas rekomendowany.
Obliczenie precyzji i kompletności jest łatwe, jeśli system rekomendacji jest już od jakiegoś czasu w użyciu. Niestety w przypadku, gdy go dopiero projektujemy wskaźniki te obliczone na historycznych danych sprzedażowych są obarczone dużym i niedającym się oszacować błędem. Mamy bowiem do dyspozycji tylko dane będące efektem działania procesów sprzedażowych niewykorzystujących naszego systemu rekomendacji. Fakt, że rekomendowany produkt nie został kupiony nie stanowi jeszcze dowodu, że taka rekomendacja byłaby nieskuteczna, gdyby faktycznie miała miejsce. Nie wiemy, jak wyglądałyby zakupy klientów, gdyby sprzedaż aktywnie korzystała z tego lub innego systemu rekomendacji.
Z powyższych powodów nie ma możliwości dokładnej oceny jakości systemu rekomendacji zanim nie zostanie on wdrożony w praktyce.
Badając potencjalną skuteczność systemu rekomendacji trzeba też przyjąć jakiś horyzont czasowy. Potrzebny jest tu rozsądny kompromis, bo im dłuższy horyzont tym lepsze wyniki – w nieskończenie długim czasie jest spora szansa, że klient kupi praktycznie wszystko, co mamy do zaoferowania.
Podsumowanie
System rekomendacji, który zbudowaliśmy na potrzeby firmy szkoleniowej ma budowę hybrydową. Jego szkieletem jest algorytm wspólnej filtracji uzupełniony o szereg usprawnień wykorzystujących wybrane informacje o klientach i produktach.
Powyższy artykuł jest wstępem dla kolejnych publikacji opisujących ten przypadek. Już teraz zapraszam do śledzenia naszego bloga.
Osoby zainteresowane praktycznym wykorzystaniem uczenia maszynowego w biznesie, zachęcam również do przeczytania artykułu, w którym przybliżamy jak wykorzystać sztuczną sieć neuronową do klasyfikacji towaru.
Autor: Mariusz Surma, Starszy Analityk, Software House ASC