Sisteme de recomandare – filtrare colaborativă bazată pe utilizator și bazată pe elemente

Aceasta este partea a doua a seriei mele despre sistemele de recomandare. Ultima postare a fost o introducere la RecSys. Astăzi voi explica mai în detaliu trei tipuri de Filtrare colaborativă: User-Based Collaborative Filtering (UB-CF) și Item-Based Collaborative Filtering (IB-CF).

Să începem.

Imaginați-vă că vrem să îi recomandăm un film prietenului nostru Stanley. Am putea presupune că persoanele similare vor avea gusturi similare. Să presupunem că eu și Stanley am văzut aceleași filme și că le-am evaluat pe toate aproape identic. Dar Stanley nu a văzut „The Godfather”: Partea a II-a”, iar eu l-am văzut. Dacă mie îmi place acel film, pare logic să cred că și lui îi va plăcea. Cu asta, am creat o clasificare artificială bazată pe similaritatea noastră.

Ei bine, UB-CF folosește această logică și recomandă articole prin găsirea unor utilizatori similari cu utilizatorul activ (căruia încercăm să îi recomandăm un film). O aplicație specifică a acestui lucru este algoritmul Nearest Neighbor bazat pe utilizator. Acest algoritm are nevoie de două sarcini:

1.Găsirea celor mai apropiați K vecini (KNN) ai utilizatorului a, folosind o funcție de similaritate w pentru a măsura distanța dintre fiecare pereche de utilizatori:

2.Prevedeți nota pe care utilizatorul a o va acorda tuturor elementelor pe care cei k vecini le-au consumat, dar pe care a nu le-a consumat. Căutăm articolul j cu cel mai bun rating prezis.

Cu alte cuvinte, creăm o matrice utilizator-element, prezicând ratingurile pentru articolele pe care utilizatorul activ nu le-a văzut, pe baza celorlalți utilizatori similari. Această tehnică este bazată pe memorie.

Completarea spațiilor libere

PROS:

  • Facil de implementat.
  • Independent de context.
  • În comparație cu alte tehnici, cum ar fi cea bazată pe conținut, este mai precisă.

CONS:

  • Sparsitate: Procentul de persoane care evaluează articolele este foarte mic.
  • Scalabilitate: Cu cât mai mulți vecini K pe care îi luăm în considerare (sub un anumit prag), cu atât mai bună ar trebui să fie clasificarea mea. Cu toate acestea, cu cât sunt mai mulți utilizatori în sistem, cu atât mai mare va fi costul de găsire a celor mai apropiați K vecini.
  • Cold-start: Utilizatorii noi nu vor avea deloc sau foarte puține informații despre ei pentru a putea fi comparați cu alți utilizatori.
  • Noi element: La fel ca la ultimul punct, elementele noi vor fi lipsite de evaluări pentru a crea un clasament solid (Mai multe despre acest lucru în „Cum să sortați și să clasificați elementele”).

Item-Based Collaborative Filtering (IB-CF)

Înapoi la Stanley. În loc să ne concentrăm pe prietenii săi, ne-am putea concentra pe ce elemente din toate opțiunile sunt mai asemănătoare cu ceea ce știm că îi place. Această nouă concentrare este cunoscută sub numele de Item-Based Collaborative Filtering (IB-CF).

Am putea împărți IB-CF în două sarcini secundare:

1.Calculați similitudinea dintre elemente:

  • Similitudine bazată pe cosinus
  • Similitudine bazată pe corelație
  • Similitudine cosinus ajustată
  • Distanța 1-Jacard

2.Calculul predicției:

  • Suma ponderată
  • Regresie

Diferența dintre UB-CF și această metodă constă în faptul că, în acest caz, se precalculează direct similaritatea dintre elementele cotate, sărind peste căutarea în vecinătatea K.

Slope One

Slope One face parte din familia Item-Based Collaborative Filtering, introdusă într-o lucrare din 2005 de Daniel Lemire și Anna Maclachlan intitulată Slope One Predictors for Online Rating-Based Collaborative Filtering.

Ideea principală din spatele acestui model este următoarea:

Să presupunem că avem doi utilizatori diferiți: A și B. De asemenea, avem articolul I și articolul J. Utilizatorul A a evaluat articolul I cu 1 stea și articolul J cu 1,5. Dacă utilizatorul B a evaluat articolul I cu 2. Putem presupune că diferența dintre cele două articole va fi aceeași cu cea a utilizatorului A. Ținând cont de acest lucru, utilizatorul B ar evalua articolul J ca fiind:: 2+ (1,5-1) = 2,5

Ideea principală din spatele Slope One

Autorii se concentrează pe 5 obiective:
1. Ușor de implementat și întreținut.
2. Actualizabil online: noile evaluări ar trebui să schimbe rapid predicțiile.
3. Eficient în momentul consultării: stocarea este principalul cost.
4. Funcționează cu puțin feedback din partea utilizatorilor.
5. Să fie rezonabil de precisă, în anumite intervale în care un mic câștig de precizie nu înseamnă un mare sacrificiu de simplitate și scalabilitate.

Recapitulare

Am văzut Filtrarea colaborativă bazată pe utilizator și filtrarea colaborativă bazată pe elemente. Primul se axează pe completarea unei matrice utilizator-element și pe recomandarea bazată pe utilizatorii mai asemănători cu utilizatorul activ. Pe de altă parte, IB-CF umple o matrice element-element și recomandă pe baza elementelor similare.

Este greu de explicat pe scurt toate aceste subiecte, dar înțelegerea lor este primul pas pentru a intra mai adânc în RecSys.

Lasă un răspuns

Adresa ta de email nu va fi publicată.