AnalitykaArchitektura IT

Infrastruktura do nauki, czyli o metodach Contextual Bandits i Reinforcement Learning

Metody Contextual i Multi-Armed Bandits to szybsze i bardziej adaptacyjne metody w porównaniu do tradycyjnych testów A/B. Skuteczniej też ułatwiają podejmowanie decyzji przy wprowadzaniu nowych produktów na rynek. Podejścia te mogą być postrzegane jako krok do pełnego procesu uczenia się ze wzmocnieniem – Reinforcement Learning (RL) z domkniętym obiegiem informacji, oceną polityki online oraz celami uczenia powiązanymi z funkcją nagrody. W Netflix prowadzimy kilka takich eksperymentów. Jeden z nich skupia się na personalizacji naszych zasobów graficznych tak, aby szybko wybrać i wykorzystać “zwycięskie” obrazy do promocji tytułu, który polecamy użytkownikom naszego serwisu.

Infrastruktura do nauki, czyli o metodach Contextual Bandits i Reinforcement Learning

Podobnie jak w przypadku innych, bardziej tradycyjnych ścieżek wykorzystania Machine Learning (ML) i Deep Learning (DL), wiele z tego, czego mogą dokonać algorytmy AI, zależy od wsparcia, jakie otrzymują od otaczającej je infrastruktury oraz oprzyrządowania, jakie zapewnia platforma Machine Learning.

Biorąc pod uwagę, że infrastruktura tworzona na potrzeby Reinforcement Learning jest wciąż stosunkowo nowa, chcieliśmy zrozumieć, co inne firmy – zajmujące się tym tematem – robią w przestrzeni ML/DL/RL. Cel ten stanowił motywację dla spotkania, na które złożyły się trzy, istotne rozmowy z przedstawicielami firm LinkedIn i Facebook, a także prezentację architektury platformy ML stworzonej przez specjalistów Dropbox oraz naszych rozwiązań.

Case study 1: LinkedIn

Po krótkim wprowadzeniu do tematu, rozmowę rozpoczął Kinjala Basu, Staff Applied Researcher w LinkedIn. Opowiedział on o funkcji Online Parameter Selection for Web-Based Ranking wykorzystującej Bayesian Optimization. W wystąpieniu opisał on sposób wykorzystania tej metody w kanale LinkedIn Feed. Zademonstrował, w jaki sposób firma ta wykorzystuje algorytmy typu Bandits do efektywnego rozwiązywania problemu optymalnego doboru parametrów.

Specjaliści LinkedIn zbudowali – działającą offline – bibliotekę BayesOpt, swego rodzaj „sklep” z parametrami, pozwalający na pobranie odpowiedniego ich zestawu oraz działającą online warstwę służącą do punktowej oceny celu w zadanym czasie, biorąc pod uwagę rozkład parametrów dla konkretnego użytkownika LinkedIn. Firma wykorzystuje również kilka praktycznych aspektów, takich jak miarę „lepkości” parametrów przypisanych do użytkowników, która pozwala zredukować wariancję rezultatów w ramach pojedynczej sesji danego członka społeczności LinkedIn. Rozkład parametrów offline jest przeliczany co godzinę.

Kinjala Basu zaczął od nakreślenia niektórych wyzwań związanych z nieefektywnością czasu poświęcanego przez inżynierów na ręczną optymalizację wag i parametrów w funkcji celów biznesowych. Kluczowym spostrzeżeniem było to, że – przyjmując Proces Gaussowski jako rozkład aprioryczny zmiennych ukrytych dla kluczowych metryk działań biznesowych, takich jak np. marketing wirusowy – byli w stanie, poprzez prostą optymalizację, rozwiązać problem złożonych algorytmów AI, czyli tzw. czarnej skrzynki. Do jego rozwiązania problemu specjaliści LinkedIn wykorzystali technikę BayesOpt.

Algorytm zastosowany do rozwiązania przedstawionego problemu optymalizacji to popularna technika E/E znana jako Próbkowanie Thompsona (Thompson Sampling). Kinjala Basu opisał także infrastrukturę użytą do jej wdrożenia. Specjaliści LinkedIn zbudowali – działającą offline – bibliotekę BayesOpt, swego rodzaj „sklep” z parametrami, pozwalający na pobranie odpowiedniego ich zestawu oraz działającą online warstwę służącą do punktowej oceny celu w zadanym czasie, biorąc pod uwagę rozkład parametrów dla konkretnego użytkownika LinkedIn.

Opisał on również kilka praktycznych aspektów, takich jak miarę „lepkości” parametrów przypisanych do użytkowników, która pozwala zredukować wariancję rezultatów w ramach pojedynczej sesji danego członka społeczności LinkedIn. Rozkład parametrów offline jest przeliczany co godzinę. Doświadczenie danego użytkownika pozostaje więc spójne w ciągu tejże godziny. Jednocześnie Kinjala Basu podzielił się niektórymi wynikami symulacji i skutecznością testów online A/B, które wykazały – dzięki zastosowanemu rozwiązaniu – znaczne podwyższenie podstawowych wskaźników biznesowych, przy jednoczesnym zachowaniu drugorzędnych wskaźników powyżej założonych, bezpiecznych limitów.

Kinjala Basu podkreślił znacznie wyższą efektywność, jaką zespoły LinkedIn osiągnęły dzięki badaniu parametrów online zamiast znacznie wolniejszych testów manualnych wymagających ciągłego zaangażowania pracowników. W przyszłości specjaliści LinkedIn planują zbadać efekty dodania nowych algorytmów, takich jak UCB, rozważając sformułowanie zadania jako problemu optymalizacji tzw. szarej skrzynki (grey-box) i przełączanie się pomiędzy różnymi metrykami biznesowymi w celu określenia, która z nich jest najlepsza w celu osiągnięcia największej optymalizacji.

Na zakończenie, Kinjala Basu podkreślił znacznie wyższą efektywność, jaką zespoły LinkedIn osiągnęły dzięki badaniu parametrów online zamiast znacznie wolniejszych testów manualnych wymagających ciągłego zaangażowania pracowników. W przyszłości specjaliści LinkedIn planują zbadać efekty dodania nowych algorytmów, takich jak UCB, rozważając sformułowanie zadania jako problemu optymalizacji tzw. szarej skrzynki (grey-box) i przełączanie się pomiędzy różnymi metrykami biznesowymi w celu określenia, która z nich jest najlepsza w celu osiągnięcia największej optymalizacji.

Całe wystąpienia przedstawiciela LinkedIn na Netflix ML Platform Meetup z września 2019 r. dostępne jest na:

Case study 2: Netflix

Druga prezentacja została przeprowadzona na temat naszej infrastruktury stworzonej na potrzeby algorytmów typu Bandits. Zbudowana została do personalizacji przypadków użycia (Use Case). Referat wygłosili wspólnie Fernando Amat, Senior Research Engineer oraz Elliot Chow, Software Engineer w Netflix. Fernando Amat rozpoczął pierwszą część wykładu i opisał podstawowy problem rekomendacji dotyczący identyfikacji kilku najlepszych tytułów w dużym katalogu filmu, który pozwoli zmaksymalizować prawdopodobieństwo ich odtworzenia (aż 66% polecanych filmów użytkownikom jest przez nich oglądanych – przyp. red.). Przedstawiono to na przykładzie personalizacji obrazów, opisów, zwiastunów, streszczeń filmu i innych atrybutów, które są przypisane danemu tytułowi. Problem zasadniczo sprowadza się do tzw. rekomendacji planszowych (wybór wielu elementów na raz, całościowo maksymalizujących zaangażowanie użytkownika), do których rozwiązania świetnie nadają się algorytmy typu wielorękich bandytów.

Jeśli jednak taki framework ma być ogólny, to musi obsługiwać różne konteksty, atrybuty i funkcje nagradzania. Fernando Amat opisał prosty interfejs polityki uczenia ze wzmocnieniem, który służy do modelowania zadań związanych z rekomendacjami planszowymi. Dedykowane API wspiera wybór konkretnej pozycji z podanej listy atrybutów do wyboru przy użyciu odpowiedniego algorytmu i sposobu ilościowego określania skłonności do ich wyboru przez danego użytkownika serwisu Netflix. Dzięki temu dane są jak najbardziej obiektywne. Fernando Amar zakończył swoją część prezentacji wymieniając niektóre z metryk algorytmów wielorękich bandytów, które zaimplementowano offline w systemie rekomendacyjnym Netflix, takie, jak Inverse Propensity Scoring (IPS), Doubly Robust (DR) i Direct Method (DM).

Fernando Amat z Netflixa opisał podstawowy problem rekomendacji dotyczący identyfikacji kilku najlepszych tytułów w dużym katalogu filmów, który pozwoli zmaksymalizować prawdopodobieństwo ich odtworzenia (aż 66% polecanych filmów użytkownikom jest przez nich oglądanych – przyp. red.). Przedstawiono to na przykładzie personalizacji obrazów, opisów, zwiastunów, streszczeń filmu i innych atrybutów, które są przypisane danemu tytułowi. Problem zasadniczo sprowadza się do tzw. rekomendacji planszowych (wybór wielu elementów na raz, całościowo maksymalizujących zaangażowanie użytkownika), do których rozwiązania świetnie nadają się algorytmy typu wielorękich bandytów.

W przypadku algorytmów wielorękich bandytów, gdzie konkretny atrybut jest krytyczną częścią równania, konieczne jest posiadanie elastycznej i solidnej infrastruktury danych. Elliot Chow rozpoczął drugą część prezentacji od opisania ram czasowych, które określono tak, aby móc połączyć wszystkie informacje zwrotne (signals) w jednym miejscu, czyniąc je dostępnymi poprzez „odpytywalny” interfejs. Informacje te obejmują dane dotyczące aktywności użytkowników (logowanie, wyszukiwanie i odtwarzanie konkretnych tytułów); dane o tytułach, które system rekomendacyjny chce zaproponować użytkownikowi serwisu Netflix; a także wrażenia, jakie na nim zrobiły wcześniej wyświetlone obrazy i zwiastuny, które faktycznie dotarły do wykorzystywanego przez niego urządzenia.

Elliot Chow zwracał uwagę na aspekty związane z tzw. domknięciem obiegu informacji. Po pierwsze, w momencie generowania rekomendacji dla użytkownika informacje o kandydatach do wyświetlenia muszą być połączone z informacjami o historycznych wyświetleniach, używanymi politykami wyświetleń, wykorzystywanymi atrybutami użytkownika i informacjami o jego preferencjach. Jednocześnie funkcja nagrody musi być stale aktualizowana, w czasie zbliżonym do rzeczywistego, dla każdej, zarejestrowanej reakcji użytkownika (np. odtworzenia danego tytułu), zarówno w stosunku do krótko, jak i długoterminowych nagród. Wreszcie, każda nowa obserwacja musi zostać zaktualizowana, następnie zaś dana polityka musi zostać ponownie przeliczona w trybie offline, a w kolejnym kroku ponownie „wgrana” na produkcję tak, aby mogła wygenerować nowe propozycje rekomendacyjne.

Aby móc tego dokonać, zespół Netflix musiał przeprowadzić standaryzację kilku komponentów infrastruktury IT. Elliot Chow opowiedział o trzech, najbardziej kluczowych z nich. Dotyczyło to: ustandaryzowania procesu zbierania logów z usług rekomendacyjnych; przetwarzania strumieniowego w czasie rzeczywistym – przy wykorzystaniu Apache Flink – dla nowych aktywności użytkowników; a także wykorzystanie Apache Spark dla obliczeń wybieranych atrybutów i nagród. Zespół Netflixa opracował również kilka, wspólnych zestawów atrybutów, które mogą być wykorzystywane przez inne zespoły.

W przypadku algorytmów wielorękich bandytów, gdzie konkretny atrybut jest krytyczną częścią równania, konieczne jest posiadanie elastycznej i solidnej infrastruktury danych. Elliot Chow opisał ramy czasowe, które określono tak, aby móc połączyć wszystkie informacje zwrotne (signals) w jednym miejscu, czyniąc je dostępnymi poprzez „odpytywalny” interfejs. Informacje te obejmują dane dotyczące aktywności użytkowników (logowanie, wyszukiwanie i odtwarzanie konkretnych tytułów); dane o tytułach, które system rekomendacyjny chce zaproponować użytkownikowi serwisu Netflix; a także wrażenia, jakie na nim zrobiły wcześniej wyświetlone obrazy i zwiastuny.

Na koniec Elliot Chow opowiedział o niektórych wyzwaniach związanych z budową frameworku opartego na algorytmach wielorękich bandytów. W szczególności mówił o potencjale błędnej atrybucji w złożonej architekturze mikrousług, gdzie wyniki pośrednie są często buforowane. Mówił również o typowych pułapkach danych przetwarzanych strumieniowo, takich jak przetwarzanie ich w sposób nieuporządkowany temporalnie. Stworzony framework funkcjonuje w Netflix od ponad roku i został wykorzystany do wsparcia kilku testów A/B w różnych przypadkach użycia systemów rekomendacyjnych.

Całe wystąpienia przedstawicieli Netflix na Netflix ML Platform Meetup z września 2019 r. dostępne jest na:

Case study 3: Facebook

Druga sesja rozpoczęła się wykładem przedstawicieli Facebooka, skoncentrowanym na praktycznych rozwiązaniach problemów eksploracji. Sam Daulton, Research Scientist w Facebooku opisał to, w jaki sposób powstały przypadki użycia infrastruktury i produktów systemu rekomendacyjnego tego serwisu. Opisał, w jaki sposób adaptacyjne metody eksperymentalne umożliwiły szybkie przeprowadzanie testów z zamiarem wdrożenia różnych narzędzi automatyzujących pracę ekspertów korzystających z platformy rekomendacyjnej Facebooka zarówno ad hoc, jak i dla zadań typu “no-human-in-the-loop”.

W pierwszej kolejności Sam Daulton opisał problem, który starano się aktualnie rozwiązać w Facebooku. Dotyczył on określenia tego, ile postów należy „załadować” użytkownikowi na jego urządzenie w zależności od jakości posiadanego przez niego połączenia. Modelowano go jako problem algorytmów typu wielorękich bandytów z nieskończoną ilością ramion i zastosowano regresję opartą o Procesy Gaussa (GP). Wykorzystano też metodę Bayesian Optimization do przeprowadzenia optymalizacji wielometrycznej, wspólnie optymalizując spadek wykorzystania CPU wraz ze wzrostem zaangażowania użytkownika. Jednym z wyzwań, które opisał Sam Daulton, było skuteczne wybranie punktu decyzyjnego, dla którego wspólne poszukiwanie optymalizacyjne napotykało optimum w sensie Pareto w możliwej przestrzeni rozwiązań. Facebook wykorzystał ograniczenia nałożone na poszczególne metryki w obliczu „zaszumionych” danych, aby umożliwić decydentom biznesowym dotarcie do optymalnego punktu decyzyjnego.

Nie wszystkie przestrzenie problemów mogą być efektywnie eksplorowane online, więc kilka zespołów badawczych Facebooka korzysta z symulacji w trybie offline. Zespół zajmujący się tworzeniem rankingów przejmował ruch użytkowników w czasie rzeczywistym i poddawał go testom na różnych konfiguracjach, a następnie symulował wyniki zdarzeń za pomocą modeli predykcyjnych działających na systemach rankingowych służących do wczesnego wykrywania błędów. Okazywało się jednak, że symulacje były często obciążone błędem i wymagały. Członkowie tego zespołu Facebooka zaobserwowali, że łącząc wyniki online z wynikami symulacji offline, byli w stanie znacznie poprawić dopasowanie modelu.

Nie wszystkie przestrzenie problemów mogą być efektywnie eksplorowane online, więc kilka zespołów badawczych Facebooka korzysta z symulacji w trybie offline. Przykładowo, zespół zajmujący się tworzeniem rankingów przejmował ruch użytkowników w czasie rzeczywistym i poddawał go testom na różnych konfiguracjach, a następnie symulował wyniki zdarzeń za pomocą modeli predykcyjnych działających na systemach rankingowych służących do wczesnego wykrywania błędów. Okazywało się jednak, że symulacje były często obciążone błędem i wymagały korekt (dokonywanych przy użyciu wielozadaniowej regresji opartej o Procesy Gaussa) tak, aby mogły być wykorzystywane równolegle z wynikami online. Członkowie tego zespołu zaobserwowali, że łącząc wyniki online z wynikami symulacji offline, byli w stanie znacznie poprawić dopasowanie modelu.

Aby wesprzeć te wysiłki, opracowali oni i udostępnili kilka, dedykowanych narzędzi. Dwa z nich – które opisał Sam Daulton – to Ax i BoTorch. Ax to biblioteka do zarządzania eksperymentami adaptacyjnymi. Z kolei BoTorch to biblioteka wykorzystywana do badań przeprowadzanych metodą Bayesian Optimization. Od ich powstania, oba narzędzia znalazły wiele, nowych zastosowań – od podstawowych badań hiperparametrowych po przypadki użycia AutoML.

Ostatnia część wykładu Sama Daulton skoncentrowała się na bayesowskich algorytmach jednorękich bandytów kontekstowych z warunkami brzegowymi. Opisał on problem wgrywania wideo na Facebooka. Celem wykorzystania tej metody była maksymalizacja jakości obrazu wideo bez zmniejszenia niezawodności samego procesu wgrywania. Przedstawiciele Facebooka modelowali go jako problem optymalizacji Próbkowania Thompsona (Thompson Sampling) przy użyciu liniowego modelu bayesowskiego. Aby wymusić spełnienie warunków brzegowych, pracownicy Facebooka użyli zmodyfikowanego algorytmu – Próbkowania Thompsona z warunkami brzegowymi (Constrained Thompson Sampling), który miał zapewnić poprawę stabilności działania. Funkcja nagrody również wymagała pewnego dopasowania do warunków brzegowych. Sam Daulton podzielił się wynikami, z których wynikało, że algorytm Constrained Thompson Sampling ujawnił wiele możliwych akcji, które spełniały warunki brzegowe, a których standardowy algorytm Thompson Sampling nie był w stanie wykryć.

Całe wystąpienia przedstawiciela Facebooka na Netflix ML Platform Meetup z września 2019 r. dostępne jest na:

Case study 4: Dropbox

W czasie ostatniego wykładu, Tsahi Glika, Staff Software Engineer w Dropbox (dziś Staff Software Engineer w Facebooku – przyp. red.) zaprezentował architekturę infrastruktury Machine Learning tej firmy. Tsahi Glika rozpoczął od podania kilku przykładów użycia ML w Dropbox, takich jak funkcja Smart Sync. Przewiduje ona, który plik będzie używany na konkretnym urządzeniu, sprawia więc, że jest on na nie wstępnie ładowany. Niektóre z wyzwań dotyczących infrastruktury ML, to m.in. różnorodność i rozmiar źródeł danych, którymi Dropbox musi zarządzać. Jednocześnie coraz ważniejsza staje się prywatność danych, co stawia przed zespołem Dropbox kolejne wyzwania. Działu rozwoju infrastruktury Machine Learning musi również radzić sobie z wieloma procesami rozwojowymi i framework’ami ML, pracą na rozwiązaniami kolejnych przypadków użycia oraz wyzwaniami związanymi z powtarzalnością i stabilnością trenowania algorytmu.

Tsahi Glika pokazał różne, wspólne etapy rozwoju i wdrażania modelu skategoryzowanego według komponentów online i offline platformy ML firmy Dropbox. Następnie zaprezentował szczegółowo niektóre z nich. Pierwszym był serwis Antenna analizujący aktywność użytkowników. Zbiera on informacje wejściowe do tworzonych na infrastrukturze ML modeli. Usługa ta pozwala na wyszukiwanie zdarzeń o aktywności konkretnego użytkownika, a następnie podsumowuje je za pomocą różnych agregacji. Kolejnym komponentem był potok treści dla systemu optycznego rozpoznawania znaków OCR. Dzięki temu np. obraz paragonu jest przekształcany na tekst, który można przeszukiwać. Potok przenosi obraz przez wiele modeli dla różnych podzadań. Pierwsza z nich klasyfikuje, czy obraz posiada wykrywalny tekst. Inna zaś wykrywa pola wyrazów. W kolejnym kroku głęboka sieć neuronowa LSTM wykonuje analizę OCR. Ostatnim etapem jest leksykograficzna obróbka końcowa.

Stosowany przez Dropbox mechanizm ETL (Extract, Transform and Load) przygotowujący dane w trybie offline działa na platformie Apache Spark i wykorzystuje – jako warstwę orkiestracji – Apache Airflow. Infrastruktura wykorzystywana do trenowania algorytmów opiera się na rozwiązaniach chmury hybrydowej. Przedstawiciele Dropbox zbudowali narzędzie dxblearn, które uogólnia ścieżki zasobów trenowania, pozwalając badaczom trenować algorytmy zarówno lokalnie, jak i z wykorzystaniem infrastruktury Amazon Web Services. Narzędzie dxblearn pozwala również uruchamiać zadania optymalizacji hiperparametrów.

Tsahi Glika mówił też o problemach dotyczących analizy przyjmowanych od użytkowników treści. Infrastruktura ML musi bowiem zapobiegać umieszczania na serwisie złośliwych treści. Aby to umożliwić, przedstawiciele Dropbox przyjęli architekturę opartą o plug-iny, w której każdy z nich odpowiada każdemu zadaniu zewnętrznemu uruchamiany jest w bezpiecznym środowisku sandbox.

Stosowany przez Dropbox mechanizm ETL (Extract, Transform and Load) przygotowujący dane w trybie offline działa na platformie Apache Spark i wykorzystuje – jako warstwę orkiestracji ­- Apache Airflow. Infrastruktura wykorzystywana do trenowania algorytmów opiera się na rozwiązaniach chmury hybrydowej. Przedstawiciele Dropbox zbudowali narzędzie dxblearn, które uogólnia ścieżki zasobów trenowania, pozwalając badaczom trenować algorytmy zarówno lokalnie, jak i z wykorzystaniem infrastruktury Amazon Web Services. Narzędzie dxblearn pozwala również uruchamiać zadania optymalizacji hiperparametrów.

Stworzone na platformie ML modele są następne wysyłane do swego rodzaju „magazynu” z modelami znajdującego się na AWS Simple Cloud Storage (S3). Następnie są one wykorzystywane przez centralną usługę modeli predykcyjnych, która przeprowadza wnioskowanie online dla wszystkich przypadków użycia. Korzystanie z centralnej usługi pozwala odpowiednio przydzielać zasoby obliczeniowe. Natomiast posiadanie standardowego API ułatwia udostępnianie i uruchamianie wnioskowania w chmurze.

Zespół Dropbox zbudował również wspólny back-end, który jest aplikacją predykcyjną. Może być ona używana przez różne usługi brzegowe i produkcyjne. Zarządzają one pobieraniem danych, przewidywaniem zachowań użytkowników, jak również eksperymentami z konfiguracją niezbędną dla konkretnego przypadku użycia produktu. Pozwala to na łatwiejsze przeprowadzanie eksperymentów na żywo.

W ostatniej części wykładu Tsahi Glik opisał przypadek praktycznego wykorzystania platformy ML firmy Dropbox. Był to przykład rankingu kampanii promocyjnych – takich, jak np. Try Dropbox Business – pod względem up-sellingu. Jest on modelowany jako problem wielorękich bandytów.

Całe wystąpienia przedstawiciela Dropbox na Netflix ML Platform Meetup z września 2019 r. dostępne jest na:

Faisal Siddiqi, Director of Engineering, Personalization Infrastructure w Netflix. Tekst pochodzi z bloga technologicznego firmy Netflix i został przetłumaczony za zgodą jego autora.

Tagi

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *