“We verlaten het tijdperk van informatie en betreden het tijdperk van aanbeveling.”
Zoals veel technieken voor machinaal leren, doet een aanbevelingssysteem voorspellingen op basis van het historische gedrag van gebruikers. Het gaat om het voorspellen van de voorkeur van de gebruiker voor een reeks artikelen op basis van ervaringen uit het verleden. Om een aanbevelingssysteem te bouwen, zijn de twee populairste benaderingen Content-based en Collaborative Filtering.
Content-based benadering vereist een goede hoeveelheid informatie over de eigen kenmerken van items, in plaats van gebruik te maken van interacties en feedback van gebruikers. Dit kunnen bijvoorbeeld filmkenmerken zijn zoals genre, jaar, regisseur, acteur enz., of tekstuele inhoud van artikelen die kan worden geëxtraheerd door toepassing van Natural Language Processing. Collaborative Filtering, daarentegen, heeft niets anders nodig dan de historische voorkeur van gebruikers voor een reeks items. Omdat het gebaseerd is op historische gegevens, is de kernveronderstelling hier dat de gebruikers die in het verleden hebben ingestemd, ook in de toekomst zullen instemmen. De gebruikersvoorkeur wordt meestal uitgedrukt in twee categorieën. Expliciete waardering, is een cijfer dat een gebruiker aan een item geeft op een glijdende schaal, zoals 5 sterren voor Titanic. Dit is de meest directe feedback van gebruikers om te laten zien hoeveel ze van een item houden. Impliciete Rating, suggereert de voorkeur van gebruikers indirect, zoals paginaweergaves, clicks, aankoop records, wel of niet luisteren naar een muzieknummer, enzovoort. In dit artikel zal ik collaborative filtering onder de loep nemen, dat een traditioneel en krachtig hulpmiddel is voor recommender systemen.
De standaard methode van Collaborative Filtering staat bekend als Nearest Neighborhood algoritme. Er zijn gebruiker-gebaseerde CF en item-gebaseerde CF. Laten we eerst eens kijken naar gebruikersgebaseerde CF. We hebben een n × m matrix van ratings, met gebruiker uᵢ, i = 1, …n en item pⱼ, j=1, …m. Nu willen we de rating rᵢⱼ voorspellen als doelgebruiker i een item j niet heeft bekeken/beoordeeld. Het proces is om de overeenkomsten te berekenen tussen doelgebruiker i en alle andere gebruikers, de top X gelijkende gebruikers te selecteren, en het gewogen gemiddelde te nemen van de ratings van deze X gebruikers met overeenkomsten als gewichten.
Hoewel verschillende mensen verschillende uitgangspunten kunnen hebben bij het geven van beoordelingen, hebben sommige mensen de neiging om in het algemeen hoge scores te geven, terwijl anderen vrij streng zijn, ook al zijn ze tevreden over items. Om deze vooringenomenheid te vermijden, kunnen we bij het berekenen van het gewogen gemiddelde de gemiddelde waardering van alle items van elke gebruiker aftrekken en die voor de doelgebruiker weer optellen, zoals hieronder wordt getoond.
Twee manieren om de gelijkenis te berekenen zijn Pearson Correlatie en Cosinus Gelijkenis.