Collaborative filtering er den forudsigelsesproces, der ligger bag anbefalingsmotorer. Anbefalingsmotorer analyserer oplysninger om brugere med samme smag for at vurdere sandsynligheden for, at en målperson vil nyde noget, f.eks. en video, en bog eller et produkt. Collaborative filtering er også kendt som social filtrering.
Collaborative filtering anvender algoritmer til at filtrere data fra brugeranmeldelser for at lave personlige anbefalinger til brugere med lignende præferencer. Kollaborativ filtrering bruges også til at udvælge indhold og reklamer til enkeltpersoner på sociale medier.
Tre typer kollaborativ filtrering, der almindeligvis anvendes i anbefalingssystemer, er nabobaseret, element-til-element- og klassifikationsbaseret.
I nabobaseret filtrering udvælges brugere på baggrund af deres lighed med den aktive bruger. Denne lighed bestemmes ved at matche brugere, der har skrevet lignende anmeldelser. På baggrund af den tidligere lighed antages det, at fremtidige likes og dislikes også vil være ens. Ud fra gruppens gennemsnitlige bedømmelse udarbejdes der anbefalinger til den aktive bruger.
En filtreringsproces fra genstand til genstand anvender en matrix til at bestemme ligheden mellem par af genstande. Projekter til projekter sammenligner derefter den aktuelle brugers præferencer med emnerne i matricen for at finde ligheder, som kan danne grundlag for anbefalinger.
Et klassifikationsbaseret kollaborativt filtreringssystem anbefaler ting baseret på, hvor meget de samme brugere kunne lide den pågældende klassifikation eller genre. Det antages, at brugere, der kan lide eller ikke kan lide lignende oplevelser inden for en klassifikation, også vil kunne lide andre inden for den pågældende klassifikation.
Nogle kollaborative filtreringssystemer er hukommelsesbaserede, som f.eks. nabo- og item-to-item-modeller, der sammenligner ligheder mellem brugere eller items. Andre er modelbaserede og anvender maskinlæring til at sammenligne uensartede elementer. Modelbaserede systemer kan anvende algoritmer som Markov-beslutningsprocessen til at forudsige bedømmelser for emner, der endnu ikke er blevet anmeldt. Hybride systemer omfatter funktioner fra både hukommelsesbaseret og modelbaseret filtrering.
Anbefalingssystemer anvendes til at give forslag til alle slags websteder og tjenester. Alligevel kan de støde på en række vanskeligheder. Sparsomheden af vurderinger er en af de største hindringer for kollaborativ filtreringens anvendelighed i systemer med mange elementer. Det er også ofte vanskeligt at give anbefalinger for nye varer. I nye anbefalingssystemer er det svært at give gode anbefalinger, før tilstrækkeligt mange brugere har indsendt anmeldelser. Samtidig kan for mange brugerbedømmelser imidlertid være en udfordring for nogle systemer, fordi de giver store datasæt.