Document Recommender Systems -- Ciprian Dorin Craciun -- info.uvt.ro

From Wikiversity

Introducere[edit]

Începand din anii 1990, odată cu dezvoltarea tot mai intensă a calculatoarelor personale şi a reţelei mondiale -- Internet-ul -- asistăm la o explozie informaţională. Astfel alternativele pe care o persoană le are la dispoziţie sunt imense iar alegerile informate pe care trebuie să le ia sunt din ce in ce mai grele. Iar această diversitate se reflectă în mai toate domeniile, de la industria de divertisment -- cărţi, filme, alubme muzicale -- până la industria de larg consum.

O persoană are la alegere sute de canale de televiziune, de reviste, milioane de cărți și CD-uri, sute de milioane de pagini web și documente, iar pentru a putea lua o alegere informată el trebuie să poată evalua o parte semnificativă dintre toate acestea.

Însă o dată cu explozia numărului de alernative, timpul necesar analizei și sortării acestora a rămas același, ducând astfel la imposibilitatea unei analize serioase a alternativelor existente.

Pentru a rezolva această problemă, oamenii au recurs la ajutorul altor persoane cărora le cer opinia asupra diverselor alternative pe care le au. Aceste persoane sunt fie prieteni cărora le apreciază opiniile pentru domeniul vizat, fie persoane autoritare ori experți în domeniul respectiv -- rezultând ca urmare a acestui fenomen rețele sociale. Se poate recurge de asemenea și la recenzii apărute în diverse reviste specializate.

Totuși datorită acelorași motive care au dus la explozia informațională -- răspândirea calculatoarelor personale și a internet-ului -- din ce in ce mai multe perosane apelează la soluții informatice, în genere on-line, numite și sisteme de recomandare.


Sisteme de recomandare generale[edit]

Recomandare
este necesară atunci când o persoană este pusă în faţa unei alegeri dintr-un univers imens de alternative; astfel că acea persoană nici măcar nu cunoaşte existenţa tuturor alternativelor, cu atât mai mult nu are posibilitatea de a alege una dintre ele. Acest univers de alternative constituie domeniul sau contextul unui sistem de recomandare.
Clientul
este acea persoana care trebuie să aleagă una dintre numeroasele alternative şi care recurge o altă persoană pentru a obţine o recomandare.
Recomandantul
este cel căruia clientul i se adresează şi care pe baza unor proceduri emite o recomandare.
Articolul
acesta denumeşte, identifică, în mod generic o alternativă din domeniul vizat. Astfel prin articol putem înţelege atât o carte, un film, un document, un produs, un autor, etc.

O recomandare este caracteristică celui care o emite şi este rezultatul subiectiv al experienţei pe care acesta l-a avut cu domeniul respectiv. De asemenea o recomandare se poate referi la un articol particular sau la o listă restrânsă de articole, astfel reprezintă un filtru al universului dat -- inaccesibil unei singure persoane.

Totuşi o recomandare nu trebuie să fie caracterizată doar de preferinţele particulare ale celui care o recomandă, ci şi de preferinţele celui căruia îi este recomandată, în acest mod cel care recomandă putând fi flexibil şi de ajutor mai multor indivizi, nu neaparat similari in preferinţe.

Mergând pe aceeaşi idee, o recomandare poate fi emisă nu pe baza preferinţelor celui care o recomandă, ci pe baza preferinţelor altor persoane pe care recomandantul le cunoaşte, servind astfel rolul de diseminare a informaţiei. Iar mergând chiar mai departe, recomandantul poate ca în locul recomandării sa ofere o direcţie către alţi indivizi sau grupuri care s-au confruntat cu aceeaşi problemă, servind astfel rolul de intermedia.

Între cei doi actori -- clientul care necesită o recomandare şi recomandantul care o emite -- pot exista mai multe tipuri de interacţiuni:

  • clientul cere o recomandare, iar recomandantul o emite;
  • recomandantul emite o recomandare fără cererea explicită a clientului;
  • recomandantul chestionează preferinţele clienţilor săi -- tuturor sau prin sondare;
  • un client poate să trimită recomandantului preferinţele sale.


Sisteme informatice de recomandare[edit]

Aceste sisteme servesc acelaşi scop şi au principiile asemănătoare ca ale sistemelor descrise anterior, diferenţa fiind în utilizarea calculatoarelor şi a internet-ului pentru a înlocui -- parţial sau total -- rolul omului de recomandant.

Principalele elemente care caracterizează aceste sisteme sunt:

  • modul de utilizare şi obţinere a preferinţelor clienţilor;
  • modul de comunicare cu clienţii, precum şi cine joacă rolul recomandantului;
  • algoritmii utilizaţi în procesul de recomandare;
  • interacţiunea dintre om şi maşină.


Utilizarea şi colectarea preferinţelor[edit]

Principala sursă de informaţii utilizată de către un sistem de recomandare sunt preferiţele utilizatorului, anume afinităţile lui pentru diverse articole.

Astfel problemele legate de preferinţe sunt:

  • Modul în care sunt colectate preferinţele. Acestea pot fi cerute explicit în momentul înregistrării utilizatorului, sau în momentul în care acesta caută o recomandare. De asemenea ele pot fi colectate implicit prin rating-ul de către utilizator a mai multor articole.
  • Modul în care sunt modelate şi stocate. O preferinţă poate fi sub forma unei valori intregi ???
  • Ale cui preferinţe vor fi utilizate pentru recomandare.
    • ale utilizatorului curent;
    • ale altor utilizatori ai sistemului, posibil cu preferinţe asemănătoare ale utilizatorului curent;
    • ale unor persoane autoritare în domeniul respectiv (experţii spre exemplu).


Comunicarea cu clienţii[edit]

  • Care sunt rolurile utilizatorului sistemului? Sunt acestea statice ori dinamice? În sensul că un utilizator poate fi considerat autoritar în domeniul respectiv, astfel părerea lui avănd o pondere mai însemnată, sau sistemul este unu democratic, în care părerea fiecărui utilizator este egala.
  • Care este rolul sistemului informatic în procesul de recomandare? Cele două extreme sunt: sistemul emite recomandările complet automatizat, pe baza unor algoritmi bine stabiliţi; sau sistemul nu are decăt rolul de bază de date, recomandările fiind emise de către un om, prin intermediul sistemului informatic.
  • Preferinţele sunt colectate de către sistemul informatic, sau de către o persoană şi apoi salvate în sistem.
  • Pot fi preferinţele unui utilizator făcute publice? Pot să se formeze grupuri de utilizatori cu gusturi similare? ???


Algoritmii de recomandare[edit]

În cazul unui sistem de recomandare informatic complet automatizat, se pune problema alegerii unui algoritm pentru determinarea preferinţelor.

Vecin
???


Interacţiunea om -- maşină[edit]

O altă problemă foarte importantă -- care are un mare impact asupra succesului oricărui sistem informatic -- este cea a interacţiunii dintre om şi maşina:

  • Cum sunt cerute preferinţele?
  • Cum sunt afişate recomandările? (Listă ordonată, sau vizualizări mai cumpilcate, 2D, 3D, etc.)


Tipuri de sisteme de recomandare[edit]

Începând din anul 1990 o multitudine de sisteme informatice de recomandare au fost dezvoltate, fiecare echipă venind cu propria ei viziune asupra domeniului prezentat. Astfel de-alungul timpului s-au evidenţiat următoarele clase de sisteme de recomandare:

Sisteme de recomandare bazate pe conţinut -- content based
care se bazează în exclusivitate pe preferinţele utilizatorului, algoritmii implementaţi încercând să apropie cât mai exact recomandarile de preferinţele utilizatorului.
Sisteme de recomandare colaborative -- collaborative filtering
acestea se bazează pe asocierea -- matching-ul -- utilizatorilor pe baza preferinţelor lor. În genere în aceste sisteme preferinţele constă în simpla notare a unui set de articole, asocierea făcându-se pe baza acestor notări.
Sisteme de recomandare bazate pe extragerea de date sociale ??? -- social data mining
în cazul acestora nu avem de a face cu utilizatori şi preferinţe, în schimb legăturile între articole sunt deduse prin intermediul datelor publice existente pe Internet.


Sisteme de recomandare bazate pe conţinut -- content based[edit]

Sisteme de recomandare colaborative -- collaborative filtering[edit]

etc.[edit]

Entitati importante:

  • Utilizatorul
  • Item-ul

Scopul:

  • sa ofere o sugestia unui item utilizatorului in vederea descoperirii => o lista
  • sa determine relevanta unui item anume pentru utilizator => un numar
  • ca finalitate el trebuie sa ajute utilizatorul in luarea unor decizii informate.

Tipuri de sisteme de recomandare

  • Colaborative.
  • Bazate pe continut.
  • Hibride.

Avantajele celor colaborative:

  • sunt utile in domenii unde continutul asociat unui item este redus, sau continutul asociat este greu de analizat de catre calculator.
  • pot sa recomande utilizatorului un item pe care acesta il va accepta, fara ca el sa apara in patern-urile profilului.

Dezavantajele celor colaborative:

  • lipsa de feedback: foarte putini utilizatori noteaza item-urile => imposibilitatea de a gasi grupuri de utilizatori cu gusturi similare. Depinde de raportul item / utilizator
  • este foarte vulnerabil datorita motivului anterior mai ales in starea incipienta de utilizare.
  • un item nu poate fi recomandat daca el nu a fost notat cel putin o data, astfel intrarea de noi item-uri este mult ingreunata.


Elemente cheie pentru cele colaborative:

  • matricea de preferinte
  • vecinatatea unui utilizator


Informatii legate de utilizatori: => profilul utilizatorului

  • Date demografice
    • Varsta si sexul
    • Educatia
    • Domeniile de activitate sau de interes
  • Date geografice


Informatii legate de item:

  • Informatii obtinute exclusiv pe baza item-ului.
    • Cuvinte cheie
    • Categorisire
  • Informatii obtinute de la utilizatori
    • Rating -- pe o scara liniara sau
    • Votul -- o particularizare a rating-ului cu doar doua nivele.
    • Taging sau labeling


Componente:

  • sistem de clasificare
  • sistem de recomandare


Iesirile sistemului de recomandare pot fi:

  • prezicerea opiniei utilizatorului asupra unui anumit item.
  • recomandarea unei liste de n item-uri care se asteapta sa fie agreate de utilizator


Bibiliografie[edit]


Promissing bibliography[edit]

Links[edit]