Zalecana amplituda: za algorytmem

Opublikowany: 2021-05-10

„Każda wystarczająco zaawansowana technologia jest nie do odróżnienia od magii”.
– Arthur C. Clarke, Profile przyszłości

Wyzwania personalizacji

Marketerzy na całym świecie rozumieją wartość personalizacji. Zdolność do rozpoznania, czego chcą Twoi użytkownicy, zanim nawet o to poproszą, może naprawdę poczuć się jak moc nie do odróżnienia od magii. W Amplitude, nasz nowy produkt Recommend oferuje klientom wygodną, ​​gotową usługę dostarczania spersonalizowanych rekomendacji opartych na wspólnych celach biznesowych.

Stworzenie jakościowego systemu rekomendacji może być poza zasięgiem wielu firm. Amplitude Recommend dostarcza gotowy system, który dostarcza klientom rekomendacje dla poszczególnych użytkowników z predefiniowanego katalogu pozycji, w oparciu o wcześniejsze interakcje i wiedzę o tych użytkownikach. Zespół Recommend włożył wiele wysiłku w budowanie i ciągłe ulepszanie naszego systemu w celu uzyskania ogólnej jakości, bez konieczności nadmiernego wkładu lub zaawansowanej wiedzy domenowej od klientów. Co kryje się pod maską Recommend? Tutaj omówimy technologię, która napędza podejście Amplitude do personalizacji.

Modelowanie użytkowników w Polecane

Na potrzeby naszego systemu rekomendacji szczegółowo określamy problem w kategoriach zdarzenia konwersji : biorąc pod uwagę użytkownika, któremu przedstawia zalecany element treści, który element, naszym zdaniem, najprawdopodobniej zainspiruje użytkownika do konwersji? Aby modelować preferencje użytkowników, musimy najpierw wybrać odpowiednią reprezentację użytkownika, jako zestaw cech reprezentujących pewien zestaw znaczących informacji o tym użytkowniku. Nasi klienci dostarczają nam dwa cenne źródła danych: strumień zdarzeń z aktywności użytkowników, który możemy wykorzystać do zbierania tych funkcji, oraz zestaw właściwości powiązanych z użytkownikami, takich jak ich platforma technologiczna i lokalizacja.

Dla każdego klienta zbieramy najczęstsze zdarzenia w danym okresie czasu i zbieramy statystyki dotyczące tych zdarzeń dla każdego użytkownika, takie jak ile razy użytkownik wykonał te zdarzenia oraz kiedy te zdarzenia miały miejsce po raz pierwszy i ostatni. Pomiędzy tym a zestawem właściwości zbieramy duży zestaw funkcji do reprezentacji użytkownika.

Nasza inżynieria funkcji wykorzystuje system Nova AutoML firmy Amplitude do przetwarzania danych zdarzeń, utrzymywanych przez nasz magazyn danych Nova Query, w odpowiednie funkcje do modelowania. W ramach Recommend dodaliśmy funkcję do AutoML, aby dostarczać dane na poziomie użytkownika do analizy ścieżki, co pozwala nam lepiej identyfikować powiązanie między określonym elementem treści a wynikowym zdarzeniem konwersji. Pomaga nam to zapewnić, na przykład, że gdy klient kupuje produkty X, Y i Z, ale potem kupuje tylko Y, przypisujemy konwersję do interakcji w szczególności z Y.

Matryca funkcji

Uczenie maszynowe w amplitudzie Zalecane

Recommend wykorzystuje techniki uczenia się bez nadzoru , które uczą Najpopularniejszą techniką uczenia nienadzorowanego jest grupowanie , w którym przykłady są dzielone na odrębne grupy na podstawie podobieństwa cech. W naszym kontekście możemy użyć technik klastrowania do grupowania użytkowników w celu rozpoznania znaczących segmentów bazy użytkowników klienta.

Klastrowanie użytkowników

Polecenie Amplituda korzysta z uczenia nienadzorowanego, wykorzystując technikę znaną jako grupowanie k-średnich . Nasi klienci dostarczają nam strumień danych o zdarzeniach od swoich użytkowników, wraz z właściwościami specyficznymi dla tego użytkownika, takimi jak lokalizacja i platforma technologiczna. Przetwarzamy te zebrane dane w zestaw funkcji użytkownika. Grupowanie K-średnich łączy te cechy użytkowników i grupuje użytkowników o podobnych wartościach dla tych cech, np. o podobnej częstotliwości pewnych zdarzeń i podobnych właściwościach.

Wybieramy liczbę klastrów do wykorzystania — „k” w k-średnich odnosi się do tej liczby klastrów — poprzez tworzenie klastrów w zakresie różnych liczb dla k, a następnie wybieramy klastrowanie, które zapewnia nam „najściślejsze” klastry . Ścisłość jest tutaj definiowana przez stosunek podobieństwa użytkowników w ramach klastrów do podobieństwa użytkowników między klastrami — w idealnym przypadku podobieństwo w obrębie klastrów jest duże, a podobieństwo między klastrami niskie. Najlepsze grupowanie według tego pomiaru jest wybierane jako ostatnie grupowanie.

Korzystając z tych klastrów, możemy następnie rozpoznać elementy treści, które są szczególnie popularne wśród użytkowników w tym klastrze, a tym samym zapewnić unikalny ranking elementów treści dla użytkowników w tym klastrze. Co ważne, możemy przeprowadzić podobną analizę na nowych użytkownikach lub użytkownikach, którzy nie wchodzili w interakcję z wieloma elementami treści, rozpoznając, co mogą się podobać tym użytkownikom na podstawie tego, do czego „podobni” użytkownicy wykazali wcześniej podobieństwo.

Jednym z powszechnych problemów, z jakimi borykają się techniki klastrowania, są hałaśliwe funkcje. Zestaw funkcji może być przypadkowym miszmaszem statystyk — niektóre zawierają ważne sygnały dotyczące użytkownika i jego preferencji, a niektóre nie są związane z problemem i rozpraszają uwagę. Dodanie hałaśliwych, nieistotnych funkcji do naszego modelu nie tylko marnuje zasoby obliczeniowe, ale może również powodować grupowanie użytkowników na podobieństwach, które są bezsensowne i po prostu przypadkowe.

Aby uniknąć problemów z zaszumionymi funkcjami w klastrowaniu, identyfikujemy podzbiór potencjalnie znaczących cech, rozpoznając te, które mają minimalny próg korelacji ze zdarzeniem docelowym i odfiltrowując pozostałe cechy. Ten próg jest ustawiony nisko, aby zebrać mniej istotne skojarzenia lub z mniejszymi kohortami, ale wystarczająco duży, aby usunąć prawdopodobnie nieistotne cechy.

Nasze filtrowanie funkcji i klastrowanie odbywa się przy użyciu niestandardowego kodu Apache Spark do inżynierii funkcji, uruchamianego na Amazon EMR w celu zwiększenia wydajności. Ponadto ten kod Spark wykonuje dodatkowe przetwarzanie końcowe, aby ułatwić zarządzanie danymi funkcji, w tym skalowanie funkcji i usuwanie wartości odstających w celu zmniejszenia wpływu nietypowych danych funkcji na jakość klastrowania.

Klastry do rankingów

Po wybraniu optymalnego grupowania użytkowników, dla każdego klastra zapewniamy ranking elementów w oparciu o ich względną popularność w tym klastrze, w oparciu o istniejące interakcje z tymi elementami. Używamy zmodyfikowanego współczynnika konwersji warunkowej dla każdego klastra (prawdopodobieństwo konwersji w przypadku interakcji z elementem) jako głównego czynnika do rankingu elementów. Nieznacznie modyfikujemy współczynnik konwersji, aby wskazać stopień zaufania do wyniku — niektóre elementy mogły mieć bardzo mało interakcji w klastrze (np. dlatego, że zostały dodane stosunkowo niedawno), dlatego wskazujemy mniejszą pewność tych elementów. Odbywa się to za pomocą dodania wcześniejszego modelu, który zakłada pewne prawdopodobieństwo „przeciętnego” zachowania elementów treści, dla których mamy mniej danych.

Nasze ostateczne przypisanie rankingu odbywa się za pomocą kodu Pythona i technologii TensorFlow firmy Google. Uruchamiamy ten kod na Amazon Sagemaker, platformie w chmurze dedykowanej specjalnie do zarządzania zadaniami uczenia maszynowego.

Personalizacja, orurowanie

Uruchamiamy nasz potok, aby co dwie godziny generować nowe rankingi dla wybranej przez klienta kohorty użytkowników. Aby umożliwić bezproblemową interakcję wszystkich różnych komponentów naszego potoku, używamy Apache Airflow do zarządzania potokiem, co pozwala nam łączyć zadania obliczeniowe na różnych platformach w zoptymalizowany sposób. Za każdym razem, gdy uruchamiamy, regenerujemy funkcje i model, zbieramy statystyki dotyczące rankingów i dystrybucji produktów oraz odświeżamy rankingi w sklepie z kluczami wartości, aby były efektywnie obsługiwane za pośrednictwem interfejsu API łatwo dostępnego dla naszych klientów. Nasz interfejs API obsługuje dane JSON, dostarczając najlepsze rankingi N pozycji na użytkownika, dla wybranej wartości N.

Od momentu publikacji tego posta codziennie udostępniamy naszą bazę danych zawierającą ponad ćwierć miliarda spersonalizowanych rekomendacji dziesiątkom klientów za pośrednictwem Recommend. Niektóre z naszych obecnych ulepszeń w programie Recommend obejmują:

  • Wykorzystanie technik nadzorowanego uczenia się, takich jak sieci neuronowe, w celu dalszej poprawy personalizacji;
  • Funkcje elementów oparte na treści, które zapewnią nam lepszą zdolność rozpoznawania relacji między elementami treści, a także znajdowania odpowiednich odbiorców dla zupełnie nowych elementów treści, z niewielką ilością powiązanych danych o zdarzeniach lub bez nich; oraz
  • Inteligentne pobieranie elementów, aby umożliwić rekomendację skalowania do bardzo dużych zestawów treści (>1000 elementów), przy jednoczesnym maksymalizacji konwersji.

Nieustannie każdego dnia pracujemy nad sposobami poprawy jakości rekomendacji i zapewnienia lepszej personalizacji naszym klientom. Dowiedz się więcej o zalecanych amplitudach już dziś.