Sistemele de recomandare au constituit obiect de studiu pentru variate discipline – stiintele
cognitive, teoria aproximarii, regasirea de informatie, teorii de previziune, modelarea
consumatorului in marketing etc, dar au devenit un domeniu de cercetare independent la mijlocul
anilor 90. Problematica sistemelor de recomandare se reduce la problema estimarii evaluarii unor
articole necunoscute de utilizator. Intuitiv, aceasta estimare trebuie sa se bazeze pe evaluari facute
de respectivul utilizator asupra unor articole similare sau pe evaluari facute de un utilizator similar
asupra respectivelor articole. Odata realizata estimarea, sistemul va recomanda utilizatorului
articolele cu evaluarea cea mai buna.
Formal, problematica recomandarii poate fi formulata astfel: fie C multimea tuturor utilizatorilor si
S multimea tuturor articolelor care pot fi recomandate. Fie u o functie de utilitate care masoara
interesul articolului s pentru utilizatorul c, u : C x S → R, unde R este o multime total ordonata.
Astfel, pentru fiecare utilizator c∈C trebuie sa alegem un articol s'∈S care sa maximizeze functia
de utilitate:
c C, s' arg max u(c, s)
s S
c
∈
∀ ∈ =
In sistemele de recomandare, utilitatea unui articol este de obicei reprezentata printr-o evaluare care
indica gradul de satisfactie al unui anumit utilizator relativ la articolul respectiv.
Fiecare element din spatiul C al utilizatorilor poate fi definit cu un profil care include diverse
caracteristici ale unui utilizator, ca varsta, sex, venit etc. In mod similar, fiecare element din spatiul
S al articolelor este definit printr-un set de caracteristici.
Problema principala a sistemelor de recomandare este ca de obicei functia de utilitate u nu este
definita pe intreg spatiul C x S, ci doar pe o submultime a acestuia. Aceasta inseamna ca u trebuie
sa fie extrapolata la intreg spatiul C x S, adica sistemul de recomandare trebuie sa estimeze utilitatea
articolelor ne-evaluate de utilizator. Aceasta extrapolare se poate face in doua moduri:
• prin specificarea unei functii euristice pentru utilitate si validarea empirica a performantelor
acesteia
• prin estimarea functiei de utilitate care sa optimizeze un anumit criteriu de performanta (de
exemplu eroarea medie patratica)
Odata evaluarile estimate, sistemul recomanda utilizatorului fie articolul cu evaluarea cea mai buna
fie N cele mai bune articole.
Evaluarile articolelor neclasate inca se pot estima in multiple moduri, folosind metode de invatare
automata, teoria aproximarii, euristici diverse etc. Tehnica de estimare folosita este unul din
criteriile de clasificare a sistemelor de recomandare, alaturi de informatiile pe care se bazeaza
recomandarea. Din acest punct de vedere putem avea:
• recomandari bazate pe continut – utilizatorului ii vor fi recomandate articole similare cu cele
pe care le-a preferat in trecut
• recomandari colaborative – utilizatorului ii vor fi recomandate articole preferate in trecut de
utilizatori cu gusturi similare
• abordari hibride – combina metodele bazate pe continut cu cele colaborative
Un alt criteriu de clasificare al sistemelor de recomandare il constituie tipul de filtrare a rezultatelor:
• sisteme de recomandari care estimeaza valori absolute pentru evaluarea articolelor
• sisteme de recomandari care estimeaza preferintele relative ale utilizatorilor (ordinea relativa
a articolelor si nu evaluari individuale) Exista doua variante de filtrare colaborativa:
• centrata pe utilizator (user-based, user-centric)
• centrata pe produs (item) (item-based, item-centric)
Filtrarea colaborativa centrata pe utilizator presupune doua etape:
1. Identificarea utilizatorilor cu preferinte similare cu utilizatorul curent (pentru care se face
recomandarea)
2. Utilizarea evaluarilor facute de acesti utilizatori similari pentru a face o predictie cu privire
la evaluarea utilizatorului curent
Filtrarea colaborativa centrata pe item presupune doua etape:
1. Construirea unei matrici item-item continand relatiile dintre perechi de itemi (gradul de
similaritate)
2. Inferarea preferintelor utilizatorului curent, pe baza acestei matrici si a informatiilor despre
utilizator
In cadrul acestei teme se va folosi filtrarea colaborativa centrata pe item. Exista doua metode de
determinare a preferintelor utilizatorilor:
1. metoda explicita – utilizatorul trebuie sa indice o valoare pe o scala de evaluare pentru
fiecare item
2. metoda implicita – utilizatorul nu trebuie sa evalueze itemul in mod direct, ci actiunile sale
indica preferintele (de exemplu actiunea de a cumpara sau nu produsul respectiv)
Un exemplu de filtrare colaborativa din ultima categorie ("binary item-based collaborative
filtering") o constituie algoritmul implementat de Amazon.com ("item-to-item collaborative
filtering"). Acesta calculeaza similaritatea dintre doi itemi pe baza cosinusului unghiului dintre
vectorii ce reprezinta tranzactiile in matricea client – item.
Exemplu:
Matricea client – item
Client Item 1 Item 2 Item 3
A 1 0 1
B 0 1 1
C 0 1 0
1 – clientul a cumparat produsul respectiv
0 - clientul nu a cumparat produsul respectiv
In acest caz, cosinusul dintre itemii 1 si 2 este:
cosinusul dintre itemii 1 si 3 este: cosinusul dintre itemii 2 si 3 este:
Matricea item – item
Item 1 Item 2 Item 3
Item 1 1 0
2
1
Item 2 0 1
2
1
Item 3
2
1
2
1
1
Astfel unui utilizator care vizualizeaza itemul 1 i se va recomanda itemul 3, unui utilizator care
vizualizeaza itemul 2 i se va recomanda itemul 3, iar unui utilizator care vizualizeaza itemul 3 i se
vor recomanda itemii 1 si 2 (in aceasta ordine).
Resurse:
1. http://en.wikipedia.org/wiki/Collaborative_filtering
2. http://en.wikipedia.org/wiki/Slope_One
3. Greg Linden, Brent Smith, Jeremy York – "Amazon.com Recommendations: Item-to-Item
Collaborative Filtering" -
http://www2.computer.org/portal/web/csdl/doi/10.1109/MIC.2003.1167344
4. Badrul Sarwar, George Karypis, Joseph Konstan, John Riedl – "Item-based Collaborative
Filtering Recommendation Algorithms" - http://www10.org/cdrom/papers/519/sdm2.html,
http://www.cs.tau.ac.il/......nAlgorithm
s.ppt
5. Bamshad Mobasher, Xin Jin, Yanzan Zhou - Semantically Enhanced Collaborative Filtering on
the Web - http://maya.cs.depaul.edu/~mobasher/papers/ewmf04-web/ewmf04.html
patrizia696 întreabă: