Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 2: Budowa spersonalizowanej platformy rekomendacji programów przy użyciu Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 2: Budowa spersonalizowanej platformy rekomendacji programów za pomocą Amazon SageMaker

Wzmacniacz to nowa aplikacja radiowa na żywo od Amazon. Dzięki Amp możesz prowadzić własne audycje radiowe i odtwarzać utwory z katalogu Amazon Music lub dostroić się i posłuchać audycji prowadzonych przez innych użytkowników Amp. W środowisku, w którym treści jest dużo i różnorodne, ważne jest, aby dostosować wrażenia użytkownika do indywidualnych upodobań każdego użytkownika, aby mogli łatwo znaleźć programy, które im się podobają, i odkryć nowe treści, które by im się spodobały.

Amp korzysta z uczenia maszynowego (ML), aby dostarczać spersonalizowane rekomendacje dotyczące transmisji na żywo i nadchodzących programów Amp na stronie głównej aplikacji. Rekomendacje są obliczane przy użyciu modelu Random Forest przy użyciu funkcji reprezentujących popularność programu (takich jak słuchanie i liczba polubień), popularność twórcy (np. całkowita liczba odtworzeń ostatnich programów) oraz osobiste upodobania użytkownika do tematu i twórcy programu. Powiązania są obliczane albo domyślnie na podstawie danych behawioralnych użytkownika, albo bezpośrednio na podstawie interesujących tematów (takich jak muzyka pop, baseball lub polityka), zgodnie z ich profilami użytkowników.

To jest część 2 serii poświęconej korzystaniu z analizy danych i ML dla Amp oraz tworzeniu spersonalizowanej platformy listy rekomendacji programów. Platforma wykazała 3% wzrost śledzonych wskaźników zaangażowania klientów (polubienie programu, śledzenie twórcy, włączenie powiadomień o nadchodzących programach) od czasu jej uruchomienia w maju 2022 r.

Odnosić się do Część 1 aby dowiedzieć się, w jaki sposób dane behawioralne były gromadzone i przetwarzane za pomocą systemów danych i analiz.

Omówienie rozwiązania

Program zalecający program oparty na ML dla Amp składa się z pięciu głównych komponentów, jak pokazano na poniższym schemacie architektury:

  1. Aplikacja mobilna Amp.
  2. Usługi zaplecza, które gromadzą dane behawioralne, takie jak polubienia i obserwacje, a także emitują informacje związane z programami, takie jak aktualizacje statusu, gdy programy są transmitowane na żywo.
  3. Pozyskiwanie danych behawioralnych i pokazowych w czasie rzeczywistym oraz przetwarzanie i przechowywanie funkcji w czasie rzeczywistym (online).
  4. Przetwarzanie i przechowywanie funkcji wsadowych (offline).
  5. System rekomendacji, który obsługuje przychodzące żądania z zaplecza aplikacji w celu uzyskania listy programów. Obejmuje to wnioskowanie w czasie rzeczywistym do rankingu programów na podstawie spersonalizowanych i niespersonalizowanych funkcji.

Ten post koncentruje się na częściach 3, 4 i 5, starając się szczegółowo opisać następujące kwestie:

Poniższy diagram przedstawia architekturę wysokiego poziomu i jej składniki.

W kolejnych sekcjach podajemy więcej szczegółów dotyczących przetwarzania funkcji w czasie rzeczywistym, przetwarzania wsadowego, wnioskowania w czasie rzeczywistym, stanu operacyjnego i obserwowanych wyników.

Obliczanie funkcji w czasie rzeczywistym

Niektóre funkcje, takie jak liczba polubień i liczba odsłuchów w programie, muszą być przesyłane strumieniowo w sposób ciągły i używane bez zmian, podczas gdy inne, takie jak liczba sesji odsłuchowych dłuższych niż 5 minut, muszą być również przekształcane w czasie rzeczywistym jako surowe dane dla sesji jest przesyłany strumieniowo. Te typy cech, w których wartości muszą być obliczane w czasie wnioskowania, są określane jako punkt w czasie (PIT). Dane dotyczące funkcji PIT muszą być szybko aktualizowane, a najnowsza wersja powinna być zapisywana i odczytywana z małym opóźnieniem (poniżej 20 milisekund na użytkownika dla 1,000 pokazów). Dane muszą również znajdować się w trwałym magazynie, ponieważ brakujące lub częściowe dane mogą powodować pogorszenie rekomendacji i niską jakość obsługi klienta. Oprócz opóźnienia odczytu/zapisu funkcje PIT wymagają również krótkiego czasu odbicia. Czas odbicia to czas, w którym funkcja jest dostępna do odczytania po wyemitowaniu przyczyniających się zdarzeń, na przykład czas między słuchaczem, który polubił program, a aktualizacją funkcji PIT LikeCount.

Źródłem danych są usługi backendu bezpośrednio obsługujące aplikację. Niektóre dane są przekształcane w metryki, które są następnie transmitowane za pośrednictwem Usługa prostego powiadomienia Amazon (Amazon SNS) do odbiorników podrzędnych, takich jak potok transformacji funkcji ML. Baza danych w pamięci, taka jak MemoryDB, to idealna usługa do trwałego przechowywania i ultraszybkiej wydajności przy dużych ilościach. Komponentem obliczeniowym, który przekształca i zapisuje funkcje w MemoryDB, jest Lambda. Ruch w aplikacjach podąża za dziennymi i tygodniowymi wzorcami szczytów i spadków w zależności od pory i dnia. Lambda pozwala na automatyczne skalowanie do ilości przychodzących zdarzeń. Niezależność każdej transformacji metryki sprawia, że ​​Lambda, która sama w sobie jest usługą bezstanową, dobrze pasuje do tego problemu. Oddanie Usługa Amazon Simple Queue (Amazon SQS) między Amazon SNS i Lambda nie tylko zapobiega utracie wiadomości, ale także działa jako bufor dla nieoczekiwanych impulsów ruchu, których wstępnie skonfigurowane limity współbieżności Lambda mogą być niewystarczające do obsługi.

Przetwarzanie funkcji wsadowych

Funkcje, które wykorzystują historyczne dane behawioralne do reprezentowania stale zmieniających się gustów użytkowników, są bardziej złożone w obliczeniach i nie można ich obliczać w czasie rzeczywistym. Funkcje te są obliczane przez proces wsadowy, który jest uruchamiany co jakiś czas, na przykład raz dziennie. Dane dla funkcji wsadowych powinny obsługiwać szybkie zapytania w celu filtrowania i agregacji danych i mogą obejmować długie okresy czasu, przez co ich objętość będzie większa. Ponieważ funkcje wsadowe są również pobierane i wysyłane jako dane wejściowe do wnioskowania w czasie rzeczywistym, nadal powinny być odczytywane z małym opóźnieniem.

Zbieranie surowych danych do przetwarzania wsadowego funkcji nie ma wymaganego czasu odbicia poniżej minuty, który mają funkcje PIT, co umożliwia dłuższe buforowanie zdarzeń i przekształcanie metryk w partii. W tym rozwiązaniu wykorzystano Kinesis Data Firehose, usługę zarządzaną do szybkiego pozyskiwania danych strumieniowych do kilku miejsc docelowych, w tym Usługa Amazon Simple Storage (Amazon S3) do utrwalania metryk w Data Lake S3 do wykorzystania w obliczeniach offline. Kinesis Data Firehose zapewnia bufor zdarzeń i integrację Lambda, aby łatwo gromadzić, przekształcać wsadowo i utrwalać te metryki w Amazon S3, aby można je było później wykorzystać do przetwarzania funkcji wsadowych. Obliczenia funkcji wsadowych nie mają takich samych wymagań dotyczących odczytu/zapisu o niskim opóźnieniu jak funkcje PIT, co sprawia, że ​​Amazon S3 jest lepszym wyborem, ponieważ zapewnia tanią, trwałą pamięć masową do przechowywania tych dużych ilości metryk biznesowych.

Nasz początkowy model ML wykorzystuje 21 funkcji wsadowych obliczanych codziennie na podstawie danych zebranych w ciągu ostatnich 2 miesięcy. Dane te obejmują zarówno historię odtwarzania, jak i zaangażowania w aplikację na użytkownika i rosną wraz z liczbą użytkowników i częstotliwością korzystania z aplikacji. Inżynieria funkcji na taką skalę wymaga zautomatyzowanego procesu pobierania wymaganych danych wejściowych, przetwarzania ich równolegle i eksportowania wyników do trwałej pamięci masowej. Infrastruktura przetwarzająca jest potrzebna tylko na czas obliczeń. Przetwarzanie SageMaker udostępnia wstępnie utworzone obrazy platformy Docker, które zawierają Apache Spark i inne zależności potrzebne do uruchamiania rozproszonych zadań przetwarzania danych na dużą skalę. Podstawowa infrastruktura dla zadania przetwarzania jest w pełni zarządzana przez SageMaker. Zasoby klastra są udostępniane na czas trwania zadania i czyszczone po zakończeniu zadania.

Każdy etap procesu wsadowego — zbieranie danych, inżynieria funkcji, trwałość funkcji — jest częścią przepływu pracy, który wymaga obsługi błędów, ponawiania prób i przejścia między stanami. Z Funkcje kroków AWS, można utworzyć maszynę stanów i podzielić przepływ pracy na kilka etapów przetwarzania wstępnego i końcowego, a także etap utrwalania funkcji w SageMaker Feature Store lub innych danych w Amazon S3. Automat stanów w funkcjach krokowych może być wyzwolony przez Most zdarzeń Amazona aby zautomatyzować przetwarzanie wsadowe, aby działały zgodnie z ustalonym harmonogramem, na przykład raz dziennie o 10:00 UTC.

Po obliczeniu funkcji należy je wersjonować i przechowywać, aby można je było odczytać podczas wnioskowania, a także ponownego uczenia modelu. Zamiast tworzyć własną usługę przechowywania i zarządzania funkcjami, możesz skorzystać z usługi SageMaker Feature Store. Magazyn funkcji to w pełni zarządzane, specjalnie zaprojektowane repozytorium do przechowywania, udostępniania i zarządzania funkcjami modeli ML. Przechowuje historię funkcji ML w sklepie offline (Amazon S3), a także zapewnia interfejsy API do sklepu internetowego, aby umożliwić odczyty najnowszych funkcji z małymi opóźnieniami. Sklep offline może udostępniać dane historyczne do dalszego trenowania i eksperymentowania z modelem, a sklep internetowy może być wywoływany przez interfejsy API skierowane do klienta w celu uzyskania funkcji do wnioskowania w czasie rzeczywistym. W miarę rozwoju naszych usług w celu dostarczania bardziej spersonalizowanych treści przewidujemy szkolenie dodatkowych modeli ML, a za pomocą sklepu z funkcjami będziemy wyszukiwać, odkrywać i ponownie wykorzystywać funkcje tych modeli.

Wnioskowanie w czasie rzeczywistym

Wnioskowanie w czasie rzeczywistym zwykle wymaga hostowania modeli ML za punktami końcowymi. Możesz to zrobić za pomocą serwerów internetowych lub kontenerów, ale wymaga to wysiłku inżynieryjnego ML i infrastruktury do zarządzania i konserwacji. SageMaker ułatwia wdrażanie modeli ML do punktów końcowych w czasie rzeczywistym. SageMaker umożliwia trenowanie i przesyłanie modeli ML oraz hostowanie ich poprzez tworzenie i konfigurowanie punktów końcowych SageMaker. Wnioskowanie w czasie rzeczywistym spełnia wymagania dotyczące małych opóźnień dla programów rankingowych, gdy są one przeglądane na stronie głównej Amp.

Oprócz hostingu zarządzanego SageMaker zapewnia skalowanie zarządzanych punktów końcowych. Wnioskowanie SageMaker umożliwia zdefiniowanie zasad automatycznego skalowania z minimalną i maksymalną liczbą wystąpień oraz docelowym wykorzystaniem do wyzwalania skalowania. W ten sposób możesz łatwo skalować w górę lub w dół w miarę zmian popytu.

Zdrowie operacyjne

Liczba zdarzeń obsługiwanych przez ten system w celu przetwarzania funkcji w czasie rzeczywistym zmienia się zgodnie z naturalnym wzorcem użytkowania aplikacji (większy lub mniejszy ruch w zależności od pory dnia lub dnia tygodnia). Podobnie liczba otrzymywanych żądań dla wnioskowania w czasie rzeczywistym skaluje się z liczbą jednoczesnych użytkowników aplikacji. Usługi te uzyskują również nieoczekiwany wzrost ruchu z powodu autopromocji w mediach społecznościowych przez popularnych twórców. Chociaż ważne jest, aby zapewnić, że system może skalować się w górę i w dół, aby skutecznie i oszczędnie obsługiwać ruch przychodzący, ważne jest również monitorowanie metryk operacyjnych i ostrzeganie o wszelkich nieoczekiwanych problemach operacyjnych, aby zapobiec utracie danych i usług dla klientów. Monitorowanie stanu tych usług jest proste przy użyciu Amazon Cloud Watch. Kluczowe metryki kondycji usług, takie jak błędy i opóźnienia operacji, a także metryki wykorzystania, takie jak wykorzystanie pamięci, dysku i procesora, są dostępne od razu za pomocą CloudWatch. Nasz zespół programistów korzysta z pulpitów nawigacyjnych metryk i automatycznego monitorowania, aby zapewnić naszym klientom wysoką dostępność (99.8%) i niskie opóźnienia (mniej niż 200 milisekund od końca do końca, aby uzyskać zalecane programy na użytkownika).

Mierzenie wyniku

Przed opisanym w tym poście programem polecającym programy opartym na uczeniu się, prostszy algorytm heurystyczny klasyfikował programy Amp na podstawie osobistych tematów zainteresowań użytkownika, które zostały samodzielnie zgłoszone w jego profilu. Skonfigurowaliśmy test A/B, aby zmierzyć wpływ przejścia na rekomendacje oparte na ML na podstawie danych użytkownika z jego wcześniejszych interakcji w aplikacji. Zidentyfikowaliśmy ulepszenia wskaźników, takich jak czas słuchania i liczba działań angażujących (polubienie programu, śledzenie twórcy programu, włączenie powiadomień) jako wskaźniki sukcesu. Testy A/B, w których 50% użytkowników otrzymało rekomendacje programów uszeregowane dla nich za pomocą rekomendacji opartej na ML, wykazały 3% wzrost wskaźników zaangażowania klientów i 0.5% poprawę czasu odtwarzania.

Wnioski

Dzięki specjalnie zaprojektowanym usługom, zespół Amp był w stanie udostępnić spersonalizowany interfejs API rekomendacji pokazów, jak opisano w tym poście, do produkcji w czasie krótszym niż 3 miesiące. System dobrze skaluje się również pod kątem nieprzewidywalnych obciążeń tworzonych przez znanych gospodarzy programów lub kampanie marketingowe, które mogą generować napływ użytkowników. Rozwiązanie wykorzystuje usługi zarządzane do przetwarzania, szkolenia i hostingu, co pozwala skrócić czas poświęcany na bieżące utrzymanie systemu. Możemy również monitorować wszystkie te zarządzane usługi za pośrednictwem CloudWatch, aby zapewnić ciągłą kondycję systemów w środowisku produkcyjnym.

Testy A/B pierwszej wersji programu rekomendującego Amp opartego na uczeniu maszynowym w porównaniu z podejściem opartym na regułach (które sortuje tylko według tematów będących przedmiotem zainteresowania klienta) wykazały, że program polecający oparty na uczeniu maszynowym udostępnia klientom treści wyższej jakości z bardziej zróżnicowanych tematów , co skutkuje większą liczbą obserwowanych i włączonych powiadomień. Zespół Amp nieustannie pracuje nad ulepszaniem modeli, aby dostarczać bardzo trafne rekomendacje.

Aby uzyskać więcej informacji o sklepie z funkcjami, odwiedź Sklep funkcji Amazon SageMaker i sprawdź inne przypadki użycia klientów w Blog dotyczący uczenia maszynowego AWS.


O autorach

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 2: Budowa spersonalizowanej platformy rekomendacji programów przy użyciu Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Tulipan Gupta jest architektem rozwiązań w Amazon Web Services. Współpracuje z Amazon, projektując, budując i wdrażając rozwiązania technologiczne w AWS. Pomaga klientom we wdrażaniu najlepszych praktyk podczas wdrażania rozwiązania w AWS i jest entuzjastką Analytics i ML. W wolnym czasie lubi pływać, wędrować i grać w gry planszowe.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 2: Budowa spersonalizowanej platformy rekomendacji programów przy użyciu Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dawid Kuo jest architektem rozwiązań w Amazon Web Services. Współpracuje z klientami AWS, projektując, budując i wdrażając rozwiązania technologiczne na AWS. Współpracuje z klientami Media and Entertainment i interesuje się technologiami uczenia maszynowego. W wolnym czasie zastanawia się, co powinien zrobić ze swoim wolnym czasem.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 2: Budowa spersonalizowanej platformy rekomendacji programów przy użyciu Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Manolyę McCormick jest starszym inżynierem ds. rozwoju oprogramowania dla Amp na Amazon. Projektuje i buduje systemy rozproszone z wykorzystaniem AWS do obsługi aplikacji skierowanych do klienta. W wolnym czasie lubi czytać i gotować nowe przepisy.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 2: Budowa spersonalizowanej platformy rekomendacji programów przy użyciu Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jeffa Christophersena jest starszym inżynierem danych w firmie Amp na Amazon. Zajmuje się projektowaniem, tworzeniem i wdrażaniem rozwiązań Big Data w AWS, które dostarczają przydatnych analiz. Pomaga zespołom wewnętrznym we wdrażaniu skalowalnych i zautomatyzowanych rozwiązań, jest entuzjastą analityki i Big Data. W wolnym czasie, kiedy nie jeździ na nartach, można go spotkać na rowerze górskim.

Znak czasu:

Więcej z Uczenie maszynowe AWS