Hoe Netflix weet welke film jij en je vriendengroep samen willen zien

Sam
Mylle

1. Inleiding

Zoals vele andere websites maakt Netflix gebruik van recommender systemen. De taak van zo'n systeem is niets minder dan het aanraden van producten en diensten aan zijn gebruikers. Tot op heden werden vooral individuele mensen beschouwd. Het wordt natuurlijk een heel pak complexer wanneer je met een groep te maken hebt. Het aanbevelingssysteem weet misschien wel wat de individuele voorkeuren zijn van deze mensen, maar niet in welke mate ze bereid zijn om toe te geven aan de voorkeuren van de andere groepsleden. Zo kan het bijvoorbeeld zijn dat je een sterke voorkeur hebt voor horrorfilms, terwijl je vrienden veel liever comedies kijken. Welke film gaan jullie dan zien en hoe moet het systeem dit te weten komen?

 

2. Recommender systemen

Hoe werkt een traditioneel recommender systeem nu juist? Er bestaan drie basismethodes:

  • Content-based filtering: Bij deze aanpak gaat de recommender producten aanraden die gelijkaardig zijn aan de producten die de gebruiker al geconsumeerd heeft. Als Netflix bijvoorbeeld merkt dat je naar veel horrorfilms kijkt, dan zal deze ook horrorfilms aanraden.
  • Collaborative filtering: De veronderstelling is hier dat mensen met dezelfde smaak, ook dezelfde producten goed vinden. Stel nu dat de recommender merkt dat persoon A en persoon B een gelijkaardige smaak hebben. Als persoon A dan een film heeft gezien die persoon B nog niet heeft gezien, dan is het misschien nuttig om deze film ook aan persoon B aan te raden.
  • Critiquing: Dit soort recommender zal consecutief producten blijven aanraden aan de gebruiker. De gebruiker moet deze producten dan een score geven of classificeren als goed of slecht. Gebaseerd op deze informatie zal het systeem dan leren wat jouw voorkeur juist is.

De gebruikte methode hangt af van de context en de beschikbare data over de gebruikers.

 

3. Uitbreiden naar een groep mensen

3.1 Huidige aanpak

Huidige recommender systemen maken gebruik van voting mechanismen. Elke gebruiker heeft zijn eigen recommender die weet wat de voorkeur is van zijn gebruiker. De recommenders gaan dan stemmen voor het beste product. Zo kunnen ze bijvoorbeeld merken dat vijf van de zes gebruikers graag een comedy film willen zien. In dat geval beslissen ze om de comedy aan te raden aan de groep.

3.2 Nieuwe aanpak

Wat nu als de vijf mensen in bovenstaand voorbeeld bereid zijn om toe te geven aan de voorkeur van de zesde persoon? Hoe kunnen de recommenders hierop voorzien zijn?

Eerst en vooral is het belangrijk om te beseffen dat de aan te raden producten zich bevinden in een hoogdimensionale ruimte. Dit klinkt ingewikkeld, maar dat is het zeker niet. Stel nu dat we een auto willen beschrijven. De eigenschappen of features zijn bijvoorbeeld de topsnelheid en de cilinderinhoud. Voor de Ford Focus RS is de topsnelheid 266 km/h en de cilinderinhoud 2522cc terwijl dit voor de Audi A4 respectievelijk 244 km/h en 1968cc is. Dit kunnnen we visualiseren in een 2-dimensionale ruimte zoals in onderstaade figuur.

Visualisatie van de eigenschappen van de Audi A4 (groen) en de Ford Focus RS (rood). De x-as geeft de cilinderinhoud weer en de y-as de topsnelheid.

Nu is het zo dat een auto nog veel meer eigenschappen heeft, denk maar aan het gewicht, het vermogen, enz... Elke feature die je toevoegt zal een extra dimensie introduceren.  Als we bijvoorbeeld het gewicht van de wagens mee willen tekenen in bovestaande figuur, dan zullen we een 3-D figuur moeten gebruiken. Vanaf de vierde dimensie wordt het moeilijk om het te visualiseren, maar het principe blijft hetzelfde: elk product is weer te geven door een punt in deze ruimte. Algemener spreekt men in de wereld van AI over objecten in plaats van producten. Om deze reden wordt deze hoogdimensionale ruimte ook de object space genoemd.

Wat kunnen we nu gaan doen met deze notie van een object space? Hier wordt eerst en vooral een belangrijke veronderstelling gemaakt: Objecten die dicht bij elkaar gelegen zijn in de object space, zijn gelijkaardig. Gegeven dat er genoeg informatieve features zijn, is dit een redelijke assumptie. Als je bijvoorbeeld bij een film enkel de speelduur zou gebruiken, dan houdt dit uiteraard geen steek. Uit deze veronderstelling weten we dus dat wanneer we voor elke gebruiker in de groep een voorbeeld hebben van een object dat hij of zij leuk vond (= positief object), dan zal hij of zij de omliggende objecten in de object space misschien ook leuk vinden. Stel nu dat we in de object space een hypersfeer (= hoogdimensionale cirkel) maken die net voor elke gebruiker minstens één positief object bevat. Dan is onder de gemaakte assumptie redelijk om te gokken dat het object dat iedereen leuk vindt ergens in deze hypersfeer ligt.

Voorbeeld van de Smallest Group Sphere algoritme. De rode en groene kleur duiden de twee verschillende gebruikers aan.

In bovenstaande figuur staat hiervan een concreet voorbeeld met twee gebruikers in een 2-D ruimte, elk met hun eigen kleur. De recommender heeft al voorbeelden van objecten die de twee gebruikers leuk vinden (de rode en groene stippen). De stippellijnen vormen het gebied van objecten die de twee gebruikers als positief evaren, maar deze zijn niet gekend door de computer. Het overlappende gebied tussen deze twee stippellijnen bevat dus objecten waarmee beide gebruikers tegelijkertijd tevreden zijn en de recommender moet dit gebied dus ook vinden. De grijze cirkel is niets minder dan de kleinst mogelijke cirkel die minstens één positief punt van elke gebruiker bevat (een rood en een groen punt dus). En inderdaad: de grijze cirkel bevat een groot deel van de regio waar de twee stippellijnen overlappen. Nu rest de computer enkel nog de taak om een willekeurig punt te kiezen in deze grijze cirkel om dan vervolgens te vragen aan de groepsleden of ze tevreden zijn met dat object. Merk op dat hierbij de cirkel de volgende keer waarschijnlijk zal krimpen indien een gebruiker aangeeft dat hij of zij tevreden is om uiteindelijk bij het optimale object uit te komen.

3.3 Is dit nu alles?

Absoluut niet, in deze scriptie zijn nog een aantal bijdragen, zoals bijvoorbeeld de detectie of mensen überhaupt tot een akkoord kunnen komen en het automatisch onderverdelen van mensen in kleinere groepen. De geïnteresseerde lezer wordt dan ook doorverwezen naar het volledige werk.

 

Download scriptie (2.65 MB)
Universiteit of Hogeschool
KU Leuven
Thesis jaar
2019
Promotor(en)
Luc De Raedt