Dette er anden del af min serie om anbefalingssystemer. Det sidste indlæg var en introduktion til RecSys. I dag vil jeg forklare mere detaljeret tre typer af Collaborative Filtering: User-Based Collaborative Filtering (UB-CF) og Item-Based Collaborative Filtering (IB-CF).
Lad os begynde.
Forestil dig, at vi ønsker at anbefale en film til vores ven Stanley. Vi kunne antage, at lignende personer vil have samme smag. Lad os antage, at jeg og Stanley har set de samme film, og at vi har vurderet dem alle næsten ens. Men Stanley har ikke set “The Godfather”: Part II”, og det har jeg gjort. Hvis jeg elsker den film, lyder det logisk at tro, at han også vil gøre det. Dermed har vi skabt en kunstig vurdering baseret på vores lighed.
Jamen, UB-CF bruger den logik og anbefaler varer ved at finde brugere, der ligner den aktive bruger (som vi forsøger at anbefale en film til). En specifik anvendelse af dette er den brugerbaserede Nearest Neighbor-algoritme. Denne algoritme har brug for to opgaver:
1.Find de K-nærmeste naboer (KNN) til brugeren a ved hjælp af en lighedsfunktion w til at måle afstanden mellem hvert brugerpar:
2.Forudsig den bedømmelse, som bruger a vil give alle de varer, som de k naboer har indtaget, men som a ikke har indtaget. Vi leder efter det emne j med den bedst forudsagte bedømmelse.
Med andre ord opretter vi en bruger-emne-matrix, der forudsiger bedømmelserne på emner, som den aktive bruger ikke har set, på baggrund af de andre lignende brugere. Denne teknik er hukommelsesbaseret.
PROS:
- Nemt at implementere.
- Kontekstuafhængig.
- Sammenlignet med andre teknikker, f.eks. indholdsbaserede, er den mere præcis.
KONSEKVENSER:
- Sparsomhed: Procentdelen af personer, der vurderer emner, er virkelig lav.
- Skalerbarhed: Jo flere K-naboer vi tager hensyn til (under en vis tærskel), jo bedre bør min klassificering være. Ikke desto mindre vil omkostningerne ved at finde de nærmeste K naboer være større, jo flere brugere der er i systemet.
- Kold start: Nye brugere har ingen eller kun få oplysninger om dem, der kan sammenlignes med andre brugere.
- Nyt emne: Ligesom det sidste punkt vil nye elementer mangle bedømmelser til at skabe en solid rangordning (mere om dette på ‘Hvordan man sorterer og rangordner elementer’).
Item-Based Collaborative Filtering (IB-CF)
Tilbage til Stanley. I stedet for at fokusere på hans venner kunne vi fokusere på, hvilke genstande blandt alle mulighederne der minder mest om det, som vi ved, at han nyder. Dette nye fokus er kendt som Item-Based Collaborative Filtering (IB-CF).
Vi kunne opdele IB-CF i to delopgaver:
1.Beregn ligheden mellem emnerne:
- Cosine-Based Similarity
- Correlation-Based Similarity
- Adjusted Cosine Similarity
- 1-Jaccard distance
2.Beregning af forudsigelse:
- Vægtet sum
- Regression
Forskellen mellem UB-CF og denne metode er, at vi i dette tilfælde direkte forudberegner ligheden mellem de samvurderede elementer og springer K-neighborhood-søgning over.
Slope One
Slope One er en del af Item-Based Collaborative Filtering-familien, som blev introduceret i en artikel fra 2005 af Daniel Lemire og Anna Maclachlan med titlen Slope One Predictors for Online Rating-Based Collaborative Filtering.
Hovedidéen bag denne model er følgende:
Sæt, at vi har to forskellige brugere: Vi har også en vare I og en vare J. Bruger A har bedømt vare I med 1 stjerne og vare J med 1,5. Hvis bruger B bedømte vare I med et 2. Vi kan gøre den antagelse, at forskellen mellem de to varer vil være den samme som bruger A. Med dette in mente vil bruger B bedømme vare J som: 2+ (1,5-1) = 2,5
Forfatterne fokuserer på 5 målsætninger:
1. Let at implementere og vedligeholde.
2. Kan opdateres online: nye vurderinger skal hurtigt ændre forudsigelser.
3. Effektivt på rådgivningstidspunktet: lagring er den største omkostning.
4. Det fungerer med lidt brugerfeedback.
5. Rimelig nøjagtig, inden for visse intervaller, hvor en lille gevinst i nøjagtighed ikke betyder et stort offer for enkelhed og skalerbarhed.
Recap
Vi så brugerbaseret og emnebaseret Collaborative Filtering. Den første har fokus på at udfylde en bruger-emne-matrix og anbefale på grundlag af de brugere, der ligner den aktive bruger mest. På den anden side udfylder IB-CF en Item-Item-matrix og anbefaler på baggrund af lignende elementer.
Det er svært at forklare alle disse emner kort, men at forstå dem er det første skridt til at komme dybere ind i RecSys.