Story
ML & AI
Recommendation Systems

Collaborative filter: gebruikersdata als gids voor aanbevelingen

Door Tim von Hebel | 8 augustus 2021
Content overzicht:

Welkom terug bij deze driedelige blog over Machine Learning toepassingen. In deze tweede editie behandelen we recommendation systems (aanbevelingssystemen) en nemen we een kijkje onder de motorkap van een recommendation system. Ook wel één van de meest krachtige en populaire toepassing van Machine Learning genoemd.

Wat zijn recommendation systems

Recommendation systems, iedereen heeft er wel eens van gehoord. Zo niet, dan heb je er vast wel eens gebruik van gemaakt. Neem bijvoorbeeld de aanbevelingen in jouw Netflix overzicht.

Een recommendation system is een systeem dat voor de gebruiker zo interessant en relevant mogelijke aanbevelingen creëert. In deze blog lichten we één soort systeem toe, namelijk een collaborative filter. Dit is een systeem wat bedrijven zoals Netflix, Amazon en YouTube gebruiken. Klinkt ingewikkeld, maar het onderliggende idee is behoorlijk simpel. Een collaborative filter berust op de aanname dat als twee personen veel van dezelfde producten leuk vinden, dan iets wat de één leuk vindt ook door de ander leuk gevonden zal worden.

Technische uitleg collaborative filtering

Bij een collaborative filter worden aanbevelingen gegenereerd door de beoordelingen van alle gebruikers in een matrix te presenteren. Hierbij heeft iedere gebruiker één rij aan getallen genaamd een vector. Deze vector bevat alle beoordelingen en wordt in een collaborative filter gezien als een kwantificatie van de voorkeuren van een gebruiker.

Het doel is om deze voorkeuren van gebruikers met elkaar te vergelijken. Met een cosine similarity kan de mate van gelijkenis tussen de richting van twee vectoren bepaald worden. Dit komt erg goed van pas bij het vergelijken van gebruikers. Met deze informatie kunnen ook beoordelingen gemaakt worden voor nog niet beoordeelde producten van gebruikers. Zo’n beoordeling wordt gegenereerd door een gewogen gemiddelde te nemen van een bepaalde hoeveelheid gebruikers die dit product wel hebben beoordeeld en die een hoge overeenkomst hebben met de gebruiker waarvoor de voorspelling wordt gedaan.

Bij een recommendation system wordt het item die op deze manier de hoogste voorspelde beoordeling krijgt, aangeraden aan de gebruiker. Dit geeft een idee van hoe een collaborative filter achter de schermen werkt.

Content-based filtering

Een andere vorm van dezelfde techniek heet content-based filtering. Deze techniek berust op hetzelfde principe. Maar in plaats van dat gebruikers een smaakprofiel hebben in de vorm van een vector met alle beoordelingen, hebben producten een profiel aan de hand van de beoordelingen die het product heeft gekregen van bestaande gebruikers. Als veel mensen dezelfde producten hebben gekocht of leuk vinden is er een grote kans dat de twee producten op elkaar lijken of goed samen gaan. Content bases filtering versus collaborative filtering

Een collaborative filter in de praktijk

Een mooi voorbeeld van een succesvolle implementatie van deze techniek komt van het alom bekende Netflix, zij hebben een erg geavanceerd recommendation system waarbij een collaborative filter een centrale rol speelt. Om deze aanbevelingen nog doelgerichter te maken, wordt er gebruik gemaakt van data zoals:

  • Kijktijd
  • Zoekgeschiedenis
  • Demografie

Al in al is het recommendation systeem van Netflix zo effectief dat Netflix zelf schat dat het verantwoordelijk is voor 80% van alle kijktijd en jaarlijks 1 miljard dollar opbrengt voor het bedrijf in 2016.

E-commerce en recommendation systems

Naast streaming platformen kunnen ook e-commerce en online businesses enorm profiteren van een recommendation system. Het personaliseren van het aanbod naar de voorkeur van een gebruiker is een erg directe en effectieve manier om aandacht langer vast te houden of meer producten te verkopen.

Belangrijkste data voor een collaborative filter

De belangrijkste data voor een collaborative filter is aankoopdata van klanten. Het beste is natuurlijk een groot aantal klanten met ieder een grote verzameling aan aankopen. De keuze voor een user-based of een item-based filter is geheel afhankelijk van de omvang en dimensionaliteit van de beschikbare data. De effectiviteit van een collaborative filter berust op het feit dat voor iedere gebruiker in ieder geval een aantal datapunten bestaan om een aanbeveling op te baseren.

Als alle klanten op een platform met slechts een fractie van de content in aanraking is geweest, dan zijn er een enorm aantal gebruikers nodig om een effectief collaborative filter te garanderen. Daarnaast hebben gloednieuwe gebruikers vrijwel geen data om een aanbeveling op te baseren. Dit wordt ook wel het cold start probleem genoemd. Hier zijn meerdere elegante oplossingen voor te bedenken en uiteraard kunnen andere technieken gecombineerd worden met een collaborative filter om op een dynamische manier dit soort problemen te omzeilen. Het geval blijft wel, net zoals bij veel andere machine learning technieken: hoe meer en hoe rijker de data, hoe effectiever het model zal zijn en in dit geval hoe beter de suggesties.

Waarde voor jouw business

Een recommendation system met collaborative filter geeft de mogelijkheid om aanbevelingen te geven die toegespitst zijn naar de individuele klant.

  1. Enerzijds waardevol om te weten welke producten je klant wilt
  2. Daarnaast is het ook belangrijk om te weten hoe waardevol een klant is voor jouw business.

Hierover meer in de volgende blog: de toekomstige waarden schatten van klanten.

Deel dit artikel via

Tim von Hebel

Tim is Head of Sales en helpt jouw organisatie graag met alles op het gebied van Cloud Native applicatieontwikkeling.

Wil je meer weten?

Neem contact op met Tim.

volgende story

Whitepaper: Low-Code apps. Korte time-to-market en betere klantreis

Door Sven Buitendijk | 3 augustus 2021