Tech  / Artykuł

Na potrzeby własnego systemu rekomendacji Netflix buduje... sieć neuronową

Oto sytuacja która zdarza się każdemu z nas: mamy jakiś ulubiony sklep online, czy to Amazon, czy któryś z polskich odpowiedników. Kupujemy tam filmy, książki, komiksy, wszystko co lubimy. Pewnego razu musimy kupić coś córce naszej kuzynki: okazuje się, że uwielbia bajki o kucykach. Następnego razu, gdy odwiedzamy nasz sklep, wita on nas pięknymi rekomendacjami kolejnych bajek o kucykach. Dlaczego? Zadziałał tu, a raczej nie zadziałał, system rekomendacji, wbudowany w nasz sklep.

W przypadku firmy takiej jak Netflix, która początkowo robiła biznes na wypożyczaniu DVD, a następnie rozszerzyła swoją działalność na streaming, rekomendacje to rzeczy wyjątkowo ważna. Jeśli dobrze podpowiemy kolejny film użytkownikowi na podstawie tego, co już obejrzał, mamy większe szanse, że powróci do naszego serwisu oglądać kolejne. Dlatego Netflix co jakiś czas pyta nas o obejrzane w ostatnich tygodniach filmy i prosi o ocenę (gwiazdkową - w skali od jednej do pięciu). Dodatkowo system zadaje pytanie ogólniejsze przy każdym z tytułów: po obejrzeniu "Love Actually", oprócz możliwości oceny filmu, zada nam pytanie "Czy często oglądasz komedie romantyczne?".

Cafe_Devices-0012_V_Final_0001_L_stories_hoc

Wszystko to aby poprawić dopasowanie rekomendacji nie tylko do tego co akurat włączyłeś (może są u ciebie goście i włączyliśmy coś na ich życzenie), ale i do twoich prawdziwych gustów.

Same algorytmy rekomendacji to dla Netfliksa bardzo ważny element systemu. Jak określić który film spodoba się osobie która oglądała N konkretnych filmów? Już w 2006 roku Netflix ogłosił Netflix Prize: nagrodę 1 mln dolarów dla tego, kto wymyśli algorytm poprawiający ich system rekomendacji. W trakcie konkursu powstało mnóstwo ciekawych implementacji (m.in. mapa filmów na podstawie zbliżonej tematyki), a główną nagrodę przyznano dopiero w 2009 roku zespołowi który stworzył algorytm o nazwie "BellKor's Pragmatic Chaos". Pobił on dokładnością rekomendacji o 10% własny algorytm Netfliksa o nazwie CineMatch. Opis algorytmu, dokument naszpikowany matematyką, ukazał się jako praca naukowa jednego z autorów.

Mapa filmów wg podobieństwa - jeden z owoców konkursu Netflix Prize
Mapa filmów wg podobieństwa - jeden z owoców konkursu Netflix Prize

We wpisie na blogu Netfliksa w 2012 roku, inżynierowie z działu Personalization Science and Engineering pisali, że algorytmy otrzymane w trakcie trwania konkursu gorzej sprawują się przy analizowaniu rosnącej liczby ocen jakie mają w systemie. W tamtym momencie, jak podano we wpisie, mieli 5 miliardów ocen filmów i seriali. Trzeba pamiętać, że Netflix, zaczynający wyłącznie jako wypożyczalnia DVD, prosił o ocenę filmu na specjalnym formularzu zamieszczonym na opłaconej kopercie zwrotnej. W 2006 roku, gdy rozpoczęli program Netflix Prize, nawet jeszcze nie oferowali usługi streamingu filmów - mimo że w tej chwili Netflix i streaming wymieniamy jednym tchem, usługę tą udostępniono dopiero rok później.

Podobne filmy w praktyce
Podobne filmy w praktyce

Po zalogowaniu się do Netfliksa, widzimy wyeksponowane "Top picks for you". W 2012 roku problemem Netfliksa było to że tak naprawdę oznaczało to "rekomendowane dla Twojej rodziny" - jeśli z jednego konta Netflix korzystali mąż, żona, i dzieci, wszystko było tam przemieszane. Wkrótce potem, bo w 2013 roku Netflix wprowadził profile - można teraz się zalogować do Netfliksa i być spytanym kto będzie oglądał. Dodatkowo, aplikacje Netflix na Xbox i innych urządzeniach, na pierwszym ekranie pytają czy przełączyć się w tryb Netflix Kids - pokazujący wyłącznie materiały odpowiednie dla małoletnich.

Rekomendacje dla różnych osób wykorzystujących to samo konto
Rekomendacje dla różnych osób wykorzystujących to samo konto

Niedawno na wspomnianym już technicznym blogu Netflix ogłosił że chce pójść jeszcze krok dalej. Używając algorytmów opartych na koncepcji deep learning - która zakłada wysoki poziom abstrakcji, użycie sieci neuronowych, i modelowanie na wzór ludzkiego mózgu - chce stworzyć jeszcze lepszy system rekomendacji. Koncepcje deep learning używane są do rozpoznawania obrazów, mowy, znajdowania generalnych trendów i zależności.

Architektura systemu rekomendacji opartego o maszyny w chmurze Amazona
Architektura systemu rekomendacji opartego o maszyny w chmurze Amazona

Co ciekawe, w odróżnieniu od innych firm, które próbują swoich sił w tego typu analizie (np. Google, czy Facebook), Netflix nie buduje własnego centrum obliczeniowego.

Zamierza oprzeć infrastrukturę systemu o maszyny w chmurze Amazon (AWS) - w każdym razie w części. Stworzone na potrzeby obliczeń programy, będą używały zarówno moc obliczeniową procesorów (CPU) jak i kart graficznych (GPU), będą więc rozwiązaniem hybrydowym. Jak opisuje Alex Chen w swoim wpisie na blogu Netfliksa, będzie to przykład rozproszonego systemu uczącego się (machine learning), który będzie tworzył różne instancje treningowe, dla poszczególnych regionów w których dostępny jest Netflix. Mocy obliczeniowej GPU do trenowania sieci neuronowych używał już wcześniej Google, jednak w odróżnieniu od Google, Netflix chce część procesu przenieść na wirtualne maszyny udostępniane dynamicznie przez chmurę Amazona.

Netflix dla postronnego użytkownika sieci może wyglądać jako kolejna usługa streamingu, jednak ich próby zrozumienia ludzkich wyborów, gustów, i zautomatyzowania rekomendacji są doskonałym przykładem jak biznes może wykorzystywać osiągnięcia nauki i współpracować z naukowcami w celu stworzenia praktycznego zastosowania na bazie naukowych teorii.

Źródła: TechBlog Netflix 1,2; Wired 1,2

Fotografie i rysunki pochodzą z materiałów Netflix.

przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst