door Xavier Amatriain en Justin Basilico (Personalization Science and Engineering)
In deze tweedelige blogpost openen we de deuren van een van de meest gewaardeerde Netflix assets: ons aanbevelingssysteem. In deel 1 relateren we de Netflix-prijs aan de bredere aanbevelingsuitdaging, schetsen we de externe componenten van onze gepersonaliseerde service en belichten we hoe onze taak is meegeëvolueerd met het bedrijf. In deel 2 beschrijven we enkele van de gegevens en modellen die we gebruiken en bespreken we onze aanpak van algoritmische innovatie die offline machine learning-experimenten combineert met online AB-tests. Geniet… en vergeet niet dat we altijd op zoek zijn naar meer stertalent om toe te voegen aan ons geweldige team, dus neem een kijkje op onze banenpagina.
In 2006 kondigden we de Netflix-prijs aan, een wedstrijd voor machinaal leren en datamining voor het voorspellen van filmclassificaties. We boden $ 1 miljoen aan degene die de nauwkeurigheid van ons bestaande systeem genaamd Cinematch met 10% verbeterde. We hielden deze wedstrijd om nieuwe manieren te vinden om de aanbevelingen aan onze leden te verbeteren, wat een belangrijk onderdeel van ons bedrijf is. We moesten echter met een vraag komen die gemakkelijker te evalueren en te kwantificeren was: de RMSE (root mean squared error) van de voorspelde rating. De race was begonnen om onze RMSE van 0,9525 te verslaan met als eindstreep het terugbrengen tot 0,8572 of minder.
Een jaar na de wedstrijd won het Korbell-team de eerste Progress Prize met een verbetering van 8,43%. Zij rapporteerden meer dan 2000 uur werk om tot de uiteindelijke combinatie van 107 algoritmen te komen die hen deze prijs opleverde. En ze gaven ons de broncode. We hebben gekeken naar de twee onderliggende algoritmen met de beste prestaties in het ensemble: Matrix Factorisatie (in de gemeenschap meestal SVD genoemd, Singular Value Decomposition) en Restricted Boltzmann Machines (RBM). SVD alleen leverde een RMSE van 0,8914 op, terwijl RBM alleen een concurrerende maar iets slechtere RMSE van 0,8990 opleverde. Een lineaire combinatie van deze twee verminderde de fout tot 0,88. Om deze algoritmes te gebruiken, moesten we enkele beperkingen overwinnen, bijvoorbeeld dat ze gebouwd waren om 100 miljoen ratings te verwerken, in plaats van de meer dan 5 miljard die we hebben, en dat ze niet gebouwd waren om zich aan te passen als leden meer ratings toevoegden. Maar toen we die uitdagingen eenmaal overwonnen hadden, hebben we de twee algoritmen in productie genomen, waar ze nog steeds worden gebruikt als onderdeel van onze aanbevelingsengine.
Als u de prijsvraag hebt gevolgd, vraagt u zich misschien af wat er is gebeurd met het uiteindelijke hoofdprijsensemble dat twee jaar later de 1 miljoen dollar won. Dit is een werkelijk indrukwekkende compilatie en het hoogtepunt van jaren werk, waarbij honderden voorspellende modellen zijn samengevoegd om uiteindelijk de eindstreep te halen. We hebben sommige van de nieuwe methoden offline geëvalueerd, maar de extra nauwkeurigheidswinst die we hebben gemeten, leek niet de technische inspanning te rechtvaardigen die nodig was om ze in een productieomgeving te brengen. Bovendien was onze focus op het verbeteren van de personalisatie van Netflix tegen die tijd verschoven naar het volgende niveau. In de rest van dit bericht zullen we uitleggen hoe en waarom het is verschoven.
Van Amerikaanse dvd’s naar wereldwijde streaming
Een van de redenen waarom onze focus in de aanbevelingsalgoritmen is veranderd, is omdat Netflix als geheel de afgelopen paar jaar drastisch is veranderd. Netflix lanceerde een instant streamingdienst in 2007, een jaar nadat de Netflix-prijs begon. Streaming heeft niet alleen de manier veranderd waarop onze leden met de service omgaan, maar ook het type gegevens dat beschikbaar is om in onze algoritmen te gebruiken. Voor dvd’s is ons doel mensen te helpen hun wachtrij te vullen met titels die ze de komende dagen en weken per post ontvangen; de selectie staat ver af van het bekijken, mensen selecteren zorgvuldig omdat het inruilen van een dvd voor een andere meer dan een dag kost, en we krijgen geen feedback tijdens het bekijken. Bij streaming zijn leden op zoek naar iets leuks om nu te bekijken; ze kunnen een paar video’s bekijken voordat ze er een kiezen, ze kunnen er meerdere in één sessie bekijken, en we kunnen kijkstatistieken bekijken, zoals of een video volledig of slechts gedeeltelijk is bekeken.
Een andere grote verandering was de overgang van een enkele website naar honderden apparaten. De integratie met de Roku-speler en de Xbox werd aangekondigd in 2008, twee jaar na de Netflix-competitie. Slechts een jaar later, Netflix streaming maakte het in de iPhone. Nu is het beschikbaar op een veelheid van apparaten die gaan van een groot aantal Android-apparaten tot de nieuwste AppleTV.
Twee jaar geleden gingen we internationaal met de lancering in Canada. In 2011 hebben we 43 Latijns-Amerikaanse landen en gebieden aan de lijst toegevoegd. En onlangs zijn we van start gegaan in het Verenigd Koninkrijk en Ierland. Vandaag heeft Netflix meer dan 23 miljoen abonnees in 47 landen. Die abonnees hebben in het laatste kwartaal van 2011 2 miljard uur gestreamd vanaf honderden verschillende apparaten. Elke dag voegen ze 2 miljoen films en tv-shows toe aan de wachtrij en genereren ze 4 miljoen beoordelingen.
We hebben onze personalisatiealgoritmen zodanig aangepast aan dit nieuwe scenario dat nu 75% van wat mensen kijken afkomstig is van een of andere aanbeveling. We hebben dit punt bereikt door de ledenervaring voortdurend te optimaliseren en we hebben een aanzienlijke toename in ledentevredenheid gemeten telkens wanneer we de personalisatie voor onze leden verbeterden. Laten we u nu door enkele van de technieken en benaderingen leiden die we gebruiken om deze aanbevelingen te produceren.
Everything is a Recommendation
We hebben door de jaren heen ontdekt dat er een enorme waarde is voor onze abonnees in het opnemen van aanbevelingen om zo veel mogelijk van Netflix te personaliseren. Personalisering begint op onze homepage, die bestaat uit groepen video’s gerangschikt in horizontale rijen. Elke rij heeft een titel die de beoogde zinvolle verbinding tussen de video’s in die groep overbrengt. Het grootste deel van onze personalisatie is gebaseerd op de manier waarop we rijen selecteren, hoe we bepalen welke items we erin opnemen, en in welke volgorde we die items plaatsen.
Neem als eerste voorbeeld de Top 10-rij: dit is onze beste gok naar de tien titels die u waarschijnlijk het leukst zult vinden. Als we “u” zeggen, bedoelen we natuurlijk iedereen in uw huishouden. Het is belangrijk om in gedachten te houden dat de personalisatie van Netflix is bedoeld om een huishouden aan te kunnen dat waarschijnlijk verschillende mensen met verschillende smaken heeft. Dat is waarom wanneer u uw Top10 ziet, u waarschijnlijk items zult ontdekken voor papa, mama, de kinderen of het hele gezin. Zelfs voor een eenpersoonshuishouden willen we een beroep doen op uw verschillende interesses en stemmingen. Om dit te bereiken, optimaliseren we in veel delen van ons systeem niet alleen voor nauwkeurigheid, maar ook voor diversiteit.