Skråning en

Slope One  er en familie af algoritmer til kollaborativ filtrering (brugt i anbefalingssystemer ) til at analysere brugernes forskellige meninger og ønsker og udvikle personlige anbefalinger.

Der er mindst 2 klasser af kollaborativ filtrering:

Slope One blev vist i Slope One Predictors for Online Rating-Based Collaborative Filtering af Daniel Lemire og Anna Maclachlan .  Dette hævdes at være en af ​​de enkleste måder at sammen filtrere efter varelighed baseret på brugerbedømmelser. Denne enkelhed letter i høj grad implementeringen af ​​disse algoritmer, og deres nøjagtighed kan sammenlignes med nøjagtigheden af ​​mere komplekse og ressourcekrævende algoritmer [1] . Slope One supplerer også ofte andre algoritmer. [2] [3] .  

Element lighedsfiltrering og genoptræning

Hvis der er tilgængelige vurderinger for en vare – f.eks. får brugere mulighed for at stemme for en vare (f.eks. bedømme fra 1 til 5), så forsøger samarbejdsfiltrering at forudsige den vurdering, en bruger vil give en ny vare baseret på deres tidligere vurderinger og en database med vurderinger fra andre brugere.

Eksempel : Kan vi forudsige en bestemt brugers score på et nyt Celine Dion -album, hvis vi ved, at de bedømte The Beatles 5?

I dette tilfælde forudsiger kollaborativ filtrering efter varelighed [4] [5] vurderingen af ​​et element baseret på vurderinger af et andet element, oftest ved hjælp af regressionsanalyse ( ). Derfor, hvis der er 1.000 emner, så kan der være op til 1.000.000 lineære regressioner at studere og op til 2.000.000 regressorer. Denne tilgang kan være ineffektiv på grund af overtilpasning [1] , så det er nødvendigt at vælge par af emner, som flere brugeres score er kendt for.

Et bedre alternativ kunne være at bruge en forenklet prædiktor (f.eks. ): det er eksperimentelt blevet vist, at brug af en så simpel prædiktor (kaldet Slope One) nogle gange udkonkurrerer [1] regressionsanalyse, mens den har halvt så mange regressorer. Derudover har denne metode lave hukommelseskrav og høj hastighed.

Kollaborativ filtrering efter varelighed er kun én type kollaborativ filtrering. Ved brug af kollaborativ filtrering efter brugerlighed analyseres relationerne mellem brugerne, og ligheden mellem deres interesser afklares. Men filtrering efter varelighed er mindre ressourcekrævende og mere effektivt, når der er et stort antal brugere.

Samarbejdsvarefiltrering baseret på indkøbsstatistikker

Brugere har ikke altid mulighed for at bedømme varer. Det vil sige, at kun binære data kan være tilgængelige for kollaborativ filtrering (uanset om brugeren har købt varen eller ej). I sådanne tilfælde er Slope One og andre algoritmer, der afhænger af elementscore, ineffektive.

Et eksempel på en kollaborativ varefiltreringsalgoritme, der fungerer med binære data, er den patenterede [6] Item-to-Item- algoritme , der bruges i Amazons onlinebutik [7] . Denne algoritme beregner varelighed som cosinus mellem købsvektorerne i bruger- og varematricen [8] :

Denne algoritme er måske endnu enklere end Slope One. Lad os se, hvordan det fungerer med et eksempel:

Købsstatistik
Køber Punkt 1 Emne 2 Punkt 3
John Købt Købte ikke Købt
Mærke Købte ikke Købt Købt
Lucy Købte ikke Købt Købte ikke

I dette tilfælde beregnes cosinus mellem "Vare 1" og "Vare 2" som følger:

,

mellem "Vare 1" og "Vare 3":

,

og mellem "Vare 2" og "Vare 3":

.

Således vil en bruger, der er på beskrivelsessiden af ​​"Vare 1" modtage "Vare 3" som en anbefaling; på siden "Vare 2" - "Vare 3" og på siden "Vare 3" - "Vare 1" (og derefter "Vare 2"). Denne algoritme bruger en koefficient for hvert par af elementer (cosinus), på grundlag af hvilken anbefalinger oprettes. Det vil sige, at for n varer skal du beregne og gemme n (n-1) / 2 cosinus.

Slope One kollaborativ filtrering for graderede elementer

For at reducere effekten af ​​overfitting markant, øge ydeevnen og lette implementeringen blev Slope One- familien af ​​algoritmer foreslået . Den største forskel fra regressionsanalysen af ​​forholdet mellem vurderingerne af to elementer ( ) er brugen af ​​en forenklet form for regression med kun én prædiktor ( ). Så prædiktoren er simpelthen den gennemsnitlige forskel mellem pointene for begge elementer. Forfatterne viste, at denne tilgang i nogle tilfælde er mere nøjagtig end lineær regression [1] og kræver 2 gange mindre hukommelse.

Eksempel :

  1. Joe gav Celine Dion en 1 og Lindsay Lohan en 1,5 .
  2. Jill bedømte Celine Dion med 2 point.
  3. Hvordan ville Jill vurdere Lindsm Lohan?
  4. Svaret fra Slope One-algoritmen er 2,5 (1,5-1+2=2,5).

Lad os se på et mere komplekst eksempel:

Karakter tabel
Besøgende Punkt 1 Emne 2 Punkt 3
John 5 3 2
Mærke 3 fire -
Lucy - 2 5

Ifølge denne tabel er den gennemsnitlige karakterforskel for fag 1 og 2 (2+(-1))/2=0,5. Således vurderes emne 1 i gennemsnit 0,5 point højere end emne 2. Tilsvarende for emne 3 og 1: den gennemsnitlige karakterforskel er 3.

Hvis vi nu forsøger at forudsige Lucys karakter for punkt 1 ved hjælp af hendes karakter for punkt 2, får vi 2+0,5 = 2,5. På samme måde forudsiger vi hendes score for emne 1 ved hjælp af scoren givet til emne 3: 5+3=8. Da vi har flere estimerede scores (Lucy stemte 2 gange), vil vi få den endelige score som et vægtet gennemsnit. Til vægtkoefficienter vil vi bruge antallet af brugere, der har bedømt emnet:

For at anvende Slope One-algoritmen på givne n emner, skal man beregne og gemme den gennemsnitlige forskel og antallet af stemmer for hvert af de n² par af emner.

Estimering af kompleksiteten af ​​en algoritme

Anbefal systemer, der bruger Slope One

Open source-software ved hjælp af Slope One

Python :

Java :

PHP :

Erlang :

Haskell :

Visual Basic :

C# :

T-SQL :

Noter

  1. 1 2 3 4 Daniel Lemire, Anna Maclachlan, Slope One Predictors for Online Rating-Based Collaborative Filtering Arkiveret 30. marts 2010 på Wayback Machine , I SIAM Data Mining ( SDM'05 ), Newport Beach, Californien, 21. -23. april , 2005.  (engelsk)
  2. Pu Wang, HongWu Ye, A Personalized Recommendation Algorithm Combining Slope One Scheme og User Based Collaborative Filtering , IIS '09, 2009  .
  3. DeJia Zhang, en element-baseret Collaborative Filtering Recommendation Algorithm Using Slope One Scheme Smoothing , ISECS '09, 2009  .
  4. Slobodan Vucetic, Zoran Obradovic: Collaborative Filtering Using a Regression-Based Approach. Knowl. inf. Syst. 7(1): 1-22 (2005  )
  5. Badrul M. Sarwar, George Karypis, Joseph A. Konstan, John Riedl: Item-based collaborative filter recommendation algorithms. WWW 2001 : 285-295 
  6. US Patent 6.266.649  (downlink pr. 16-01-2015 [2845 dage])
  7. Greg Linden, Brent Smith, Jeremy York, "Amazon.com Recommendations: Item-to-Item Collaborative Filtering," IEEE Internet Computing, vol. 07, nej. 1, s. 76-80, jan/feb,  2003
  8. BM Sarwarm et al., "Analysis of Recommendation Algorithms for E-Commerce," ACM Conf. Elektronisk handel, ACM Press, 2000, s. 158-167. (Engelsk)
  9. Daniel Lemire, Sean McGrath, Implementing a Rating-Based Item-to-Item Recommender System i PHP/SQL Arkiveret fra originalen den 11. februar 2010. , Teknisk rapport D-01, januar 2005.