“Vi forlader informationsalderen og går ind i anbefalingernes tidsalder.”
Som mange andre maskinlæringsteknikker forudsiger et anbefalingssystem brugernes historiske adfærd. Specifikt er det at forudsige brugernes præferencer for et sæt af varer baseret på tidligere erfaringer. For at opbygge et anbefalingssystem er de to mest populære tilgange indholdsbaserede og kollaborativ filtrering.
Indholdsbaseret tilgang kræver en god mængde oplysninger om varernes egne egenskaber i stedet for at bruge brugernes interaktioner og tilbagemeldinger. Det kan f.eks. være filmattributter som genre, årstal, instruktør, skuespiller osv. eller tekstindholdet i artikler, der kan udtrækkes ved at anvende Natural Language Processing. Collaborative Filtering har på den anden side ikke brug for andet end brugernes historiske præferencer for et sæt af artikler. Fordi det er baseret på historiske data, er den centrale antagelse her, at de brugere, der har været enige tidligere, har en tendens til også at være enige i fremtiden. Med hensyn til brugerpræferencer udtrykkes det normalt ved hjælp af to kategorier. Eksplicit rating, er en vurdering, som en bruger giver et emne på en glidende skala, som f.eks. 5 stjerner for Titanic. Dette er den mest direkte feedback fra brugerne for at vise, hvor meget de kan lide en vare. Implicit Rating antyder indirekte brugernes præferencer, f.eks. sidevisninger, klik, købsposter, om man lytter til et musiknummer eller ej osv. I denne artikel vil jeg se nærmere på collaborative filtering, som er et traditionelt og kraftfuldt værktøj til anbefalingssystemer.
Standardmetoden for Collaborative Filtering er kendt som Nearest Neighborhood-algoritmen. Der er brugerbaseret CF og elementbaseret CF. Lad os først se på brugerbaseret CF. Vi har en n × m matrix af vurderinger med brugeren uᵢ, i = 1, …n og elementet pⱼ, j=1, …m. Nu ønsker vi at forudsige bedømmelsen rᵢⱼ, hvis målbrugeren i ikke har set/bedømt et element j. Processen består i at beregne lighederne mellem målbrugeren i og alle andre brugere, udvælge de X bedste lignende brugere og tage det vægtede gennemsnit af bedømmelserne fra disse X brugere med ligheder som vægte.
Mens forskellige mennesker kan have forskellige udgangspunkter, når de giver vurderinger, nogle mennesker har en tendens til at give høje karakterer generelt, andre er ret strenge, selv om de er tilfredse med emnerne. For at undgå denne skævhed kan vi trække hver brugers gennemsnitlige bedømmelse af alle elementer fra, når vi beregner det vægtede gennemsnit, og tilføje det igen for målbrugeren, vist som nedenfor.
To måder at beregne lighed på er Pearsonkorrelation og cosinuslignende lighed.