Un sistem de recomandare (uneori inlocuind termenul „sistem” cu un sinonim, cum ar fi platforma sau motor), este o subclasa a sistemului de filtrare a informatiilor care urmareste sa prezica „evaluarea” sau „preferinta” pe care un utilizator ar acorda-o unui articol .
Sistemele de recomandare sunt utilizate intr-o varietate de domenii, cu exemple recunoscute in mod obisnuit care iau forma unor generatoare de playlisturi pentru servicii video si muzicale, recomandatori de produse pentru magazinele online sau recomandatori de continut pentru platformele de socializare si de continut web deschis.
Aceste sisteme pot functiona utilizand o singura intrare sau mai multe intrari in si pe platforme precum stiri, carti si interogari de cautare. Exista, de asemenea, sisteme populare de recomandare pentru subiecte specifice, cum ar fi restaurante si intalniri online. De asemenea, au fost dezvoltate sisteme de recomandare pentru a explora articole de cercetare si servicii financiare.
Prezentare generala
Sistemele de recomandare utilizeaza, de obicei filtrare colaborativa si filtrare bazata pe continut (cunoscuta si ca abordare bazata pe personalitate), precum si alte sisteme, cum ar fi sistemele bazate pe cunostinte. Abordarile de filtrare colaborativa construiesc un model din comportamentul trecut al unui utilizator (articole achizitionate sau selectate anterior si / sau evaluari numerice acordate acestor articole), precum si decizii similare luate de alti utilizatori.
Acest model este apoi utilizat pentru a prezice articole (sau evaluari pentru articole) in care utilizatorul ar putea avea interes. Abordarile de filtrare bazate pe continut utilizeaza o serie de caracteristici discrete, preetichetate ale unui articol, pentru a recomanda articole suplimentare cu proprietati similare. Sistemele actuale de recomandare combina de obicei una sau mai multe abordari intr-un sistem hibrid.
Diferentele dintre filtrarea colaborativa si cea bazata pe continut pot fi demonstrate prin compararea a doua sisteme de recomandare a muzicii timpurii – Last.fm si Pandora Radio.
Last.fm creeaza o „statie” de melodii recomandate observand ce trupe si piese individuale a ascultat utilizatorul in mod regulat si comparandu-le cu comportamentul de ascultare al altor utilizatori. Last.fm va reda piese care nu apar in biblioteca utilizatorului, dar sunt adesea redate de alti utilizatori cu interese similare. Deoarece aceasta abordare valorifica comportamentul utilizatorilor, este un exemplu de tehnica de filtrare colaborativa.
Pandora foloseste proprietatile unei melodii sau ale unui artist (un subset al celor 400 de atribute oferite de Music Genome Project) pentru a crea o „statie” care reda muzica cu proprietati similare. Feedback-ul utilizatorului este utilizat pentru a rafina rezultatele postului, subliniind anumite atribute atunci cand unui utilizator „nu-i place” o anumita melodie si subliniaza alte atribute atunci cand unui utilizator ii place „o melodie”. Acesta este un exemplu de abordare bazata pe continut.
Fiecare tip de sistem are punctele sale forte si punctele sale slabe. In exemplul de mai sus, Last.fm necesita o cantitate mare de informatii despre un utilizator pentru a face recomandari exacte. Acesta este un exemplu al problemei pornirii la rece si este comun in sistemele de filtrare colaborativa. In timp ce Pandora are nevoie de foarte putine informatii pentru a incepe, este mult mai limitata ca domeniu (de exemplu, poate face doar recomandari similare cautarilor originale).
Sistemele de recomandare sunt o alternativa utila la algoritmii de cautare, deoarece ajuta utilizatorii sa descopere elemente pe care s-ar putea sa nu le fi gasit altfel. De remarcat este faptul ca sistemele de recomandare sunt adesea implementate folosind motoarele de cautare care indexeaza date netraditionale.
Sistemele de recomandare au fost mentionate pentru prima data intr-un raport tehnic drept „raft digital” in 1990 de catre Jussi Karlgren de la Columbia University, implementate la scara larga si prelucrate in rapoarte tehnice si publicatii din 1994 incoace de Jussi Karlgren, apoi la SICS, si in grupuri de cercetare conduse de Pattie Maes la MIT, Will Hill la Bellcore si Paul Resnick – tot la MIT, a caror colaborare cu GroupLens a primit premiul ACM Software 2010.
Montaner a oferit prima prezentare generala a sistemelor de recomandare dintr-o perspectiva de agent inteligent. Adomavicius a oferit o noua imagine de ansamblu alternativa a sistemelor de recomandare. Herlocker ofera o imagine de ansamblu suplimentara asupra tehnicilor de evaluare pentru sistemele de recomandare iar Beel si colab. au discutat problemele evaluarilor offline. Beel si colab. au furnizat, de asemenea, studii de literatura privind sistemele disponibile de recomandare a lucrarilor de cercetare si provocarile existente.
Sistemele de recomandare au fost in centrul mai multor brevete acordate.
Abordari – filtrare colaborativa
O abordare a proiectarii sistemelor de recomandare care are o utilizare larga este filtrarea colaborativa. Filtrarea colaborativa se bazeaza pe presupunerea ca persoanele care au fost de acord in trecut vor fi de acord si in viitor si ca le vor placea tipuri de articole similare cu cele pe care le-au placut in trecut. Sistemul genereaza recomandari folosind doar informatii despre profilurile de evaluare pentru diferiti utilizatori sau articole.
Prin localizarea utilizatorilor / articolelor peer cu un istoric de evaluare similar cu utilizatorul sau articolul curent, acestea genereaza recomandari folosind acest pattern. Metodele de filtrare colaborativa sunt clasificate ca bazate pe memorie si bazate pe model. Un exemplu binecunoscut de abordari bazate pe memorie este algoritmul bazat pe utilizator, in timp ce cel al abordarilor bazate pe model este Kernel-Mapping Recommender.
Un avantaj cheie al abordarii de filtrare colaborativa este ca nu se bazeaza pe continut analizat automat si, prin urmare, este capabil sa recomande cu precizie articole complexe, cum ar fi filmele, fara a necesita o „intelegere” a articolului in sine. Multi algoritmi au fost folositi pentru masurarea similitudinii utilizatorilor sau a similaritatii articolelor in sistemele de recomandare. Atunci cand se construieste un model din comportamentul unui utilizator, se face adesea o distinctie intre formele explicite si implicite de colectare a datelor.
Exemple de colectare de date explicite includ urmatoarele:
- Solicitarea unui utilizator sa evalueze un articol pe o scala glisanta.
- Solicitarea unui utilizator sa caute.
- Solicitarea unui utilizator sa clasifice o colectie de articole de la favorit la cel mai putin favorit.
- Prezentarea a doua articole unui utilizator si solicitarea acestuia sa aleaga unul mai bun dintre ele.
- Solicitarea unui utilizator sa creeze o lista de articole care ii plac (vezi clasificarea Rocchio sau alte tehnici similare).
Exemple de colectare de date implicite includ urmatoarele:
- Observarea articolelor vizualizate de un utilizator intr-un magazin online.
- Analiza timpilor de vizualizare a articolelor / utilizatorului.
- Pastrarea unei evidente a articolelor pe care un utilizator le achizitioneaza online.
- Obtinerea unei liste de articole pe care un utilizator le-a ascultat sau le-a urmarit pe computerul sau.
- Analiza retelei sociale a utilizatorului si descoperirea de aprecieri si antipatii similare.
Abordarile de filtrare colaborativa sufera adesea de trei probleme: pornire la rece, scalabilitate si raritate.
- Pornire la rece: pentru un utilizator sau articol nou, nu exista suficiente date pentru a face recomandari exacte. Nota: o solutie implementata in mod obisnuit la aceasta problema este algoritmul bandit multi-armat.
- Scalabilitate: in multe dintre mediile in care aceste sisteme fac recomandari, exista milioane de utilizatori si produse. Astfel, o cantitate mare de putere de calcul este adesea necesara pentru a calcula recomandarile.
- Sparsity: Numarul articolelor vandute pe principalele site-uri de comert electronic este extrem de mare. Cei mai activi utilizatori vor fi evaluat doar un mic subset al bazei de date generale. Astfel, chiar si cele mai populare articole au foarte putine evaluari.
Unul dintre cele mai faimoase exemple de filtrare colaborativa este filtrarea colaborativa articol la articol (persoanele care cumpara x cumpara si y), un algoritm popularizat de sistemul de recomandare al Amazon.com.
Multe retele sociale foloseau initial filtrarea colaborativa pentru a recomanda noi prieteni, grupuri si alte conexiuni sociale examinand reteaua de conexiuni dintre un utilizator si prietenii lui. Filtrarea colaborativa este inca utilizata ca parte a sistemelor hibride.
Filtrare bazata pe continut
O alta abordare comuna la proiectarea sistemelor de recomandare este filtrarea bazata pe continut. Metodele de filtrare bazate pe continut se bazeaza pe o descriere a elementului si pe un profil al preferintelor utilizatorului. Aceste metode sunt cele mai potrivite pentru situatiile in care exista date cunoscute despre un articol (nume, locatie, descriere etc.), dar nu si despre utilizator. Recomandatorii pe baza de continut trateaza recomandarea ca pe o problema de clasificare specifica utilizatorului si invata un clasificator pentru aprecierile si antipatiile utilizatorului pe baza caracteristicilor unui articol.
In acest sistem, cuvintele cheie sunt utilizate pentru a descrie articolele si este creat un profil de utilizator pentru a indica tipul de articol care ii place acestui utilizator. Cu alte cuvinte, acesti algoritmi incearca sa recomande elemente similare cu cele pe care un utilizator le-a placut in trecut sau le examineaza in prezent.
Nu se bazeaza pe un mecanism de conectare a utilizatorului pentru a genera acest profil adesea temporar. In special, diferitele articole candidate sunt comparate cu articolele evaluate anterior de utilizator si sunt recomandate cele mai potrivite articole. Aceasta abordare isi are radacinile in recuperarea informatiilor si cercetarea filtrarii informatiilor.
Pentru a crea un profil de utilizator, sistemul se concentreaza in principal pe doua tipuri de informatii:
- Un model al preferintei utilizatorului.
- Un istoric al interactiunii utilizatorului cu sistemul de recomandare.
Practic, aceste metode utilizeaza un profil de articol (adica un set de atribute si caracteristici discrete) care caracterizeaza elementul din sistem. Pentru a abstractiza caracteristicile elementelor din sistem, se aplica un algoritm de prezentare a articolelor. Un algoritm utilizat pe scara larga este reprezentarea tf – idf (numita si reprezentarea spatiului vectorial).
Sistemul creeaza un profil bazat pe continut al utilizatorilor pe baza unui vector ponderat al caracteristicilor articolului. Ponderile indica importanta fiecarei caracteristici pentru utilizator si pot fi calculate din vectori de continut clasificati individual folosind o varietate de tehnici.
Abordarile simple utilizeaza valorile medii ale vectorului de element evaluat, in timp ce alte metode sofisticate utilizeaza tehnici de invatare automata, cum ar fi clasificatorii bayesieni, analiza clusterelor, arborii de decizie si retelele neuronale artificiale, pentru a estima probabilitatea ca utilizatorului sa ii placa articolul.
O problema cheie a filtrarii bazate pe continut este daca sistemul este capabil sa invete preferintele utilizatorilor din actiunile acestora cu privire la o sursa de continut si sa le foloseasca in alte tipuri de continut. Atunci cand sistemul se limiteaza la recomandarea de continut de acelasi tip pe care il foloseste deja utilizatorul, valoarea din sistemul de recomandare este semnificativ mai mica decat atunci cand pot fi recomandate alte tipuri de continut din alte servicii.
De exemplu, recomandarea articolelor de stiri bazate pe navigarea stirilor este utila, dar ar fi mult mai utila atunci cand muzica, videoclipurile, produsele, discutiile etc. din diferite servicii, pot fi recomandate pe baza navigarii stirilor. Pentru a depasi acest lucru, majoritatea sistemelor de recomandare bazate pe continut utilizeaza acum o forma de sistem hibrid.
Sistemele de recomandare bazate pe continut pot include, de asemenea, sisteme de recomandare bazate pe opinie. In unele cazuri, utilizatorilor li se permite sa lase recenzii text sau feedback cu privire la articole.
Aceste texte generate de utilizatori sunt date implicite pentru sistemul de recomandare, deoarece sunt o resursa potential bogata atat a caracteristicilor/aspectelor articolului, cat si a evaluarii sentimentului utilizatorilor asupra articolului. Functiile extrase din recenziile generate de utilizatori sunt meta-date imbunatatite ale articolelor, deoarece, de asemenea, reflecta aspecte ale articolului. Abordarile populare ale sistemului de recomandare bazat pe opinie utilizeaza diverse tehnici, inclusiv extragerea textului, regasirea informatiilor, analiza opiniilor si invatarea profunda.