Caratteristiche, funzionamento e utilizzi del Collaborative Filtering in informatica

Caratteristiche, funzionamento e utilizzi del Collaborative Filtering in informatica

I Recommender System basati sull’approccio collaborativo (Collaborative Filtering) sono la tipologia più diffusa e la prima ad essere stata sviluppata. Per questa ragione, sono stati nel corso del tempo studiati e perfezionati estensivamente. Esistono molteplici algoritmi basati su questo approccio.

Il principio alla base è quello di utilizzare le informazioni raccolte in precedenza su opinioni o comportamenti dell’intera comunità di utenti, al fine di determinare quali oggetti suggerire all’utente corrente.

In generale, un algoritmo di collaborative filtering prende in ingresso una matrice contenente le valutazioni che ogni utente ha assegnato ad ogni oggetto e restituisce, per ciascun oggetto, un valore numerico che rappresenta una previsione del gradimento che l’utente può avere per esso. Solitamente si seleziona un certo numero di oggetti col valore di gradimento predetto più elevato, in modo da formare una lista di oggetti suggeriti.

L’approccio collaborativo può essere suddiviso in due classi: neighborhoodbased e model-based. La prima categoria prevede l’uso diretto delle valutazioni archiviate dal recommender system, al fine di generare i suggerimenti. In particolare, si usano per trovare utenti o oggetti simili a quello in questione e questi prendono il nome di neighbor.

Il collaborative filtering model-based, invece, prevede prima la generazione di un modello a partire dalle valutazioni nel sistema, utilizzando tecniche di data mining / machine learning. I suggerimenti saranno forniti applicando il modello.

Caratteristiche, funzionamento e utilizzi del Collaborative Filtering in informatica

User-based Nearest Neighbor

Il primo approccio alle raccomandazioni collaborative è quello conosciuto come user-based nearest neighbor.

Partendo dall’assunzione che utenti che hanno avuto gusti simili in passato continuino ad averli in futuro e che i gusti degli utenti siano stabili nel tempo, il primo passaggio consiste nell’identificare, dato un utente, gli altri utenti che hanno espresso gusti simili in passato, quindi gli utenti adiacenti più vicini (nearest-neighbors). In particolare, dato un utente u, i nearest-neighbors di u sono gli utenti v, diversi da u, che hanno la maggiore somiglianza con u.

Per stabilire il numero di vicini più adiacenti da prendere in considerazione si può procedere in due modi: stabilire una soglia di somiglianza o stabilire un numero k di vicini più adiacenti, i k-nearest-neighbors (k-NN). Se la soglia è troppo bassa si selezionano troppi vicini, se è troppo alta se ne selezionano troppo pochi e di conseguenza si riduce il numero di oggetti su cui si può fare una previsione. In modo simile, la scelta di k influenza la qualità dei risultati. Ciò va tenuto in considerazione quando si effettua la scelta di questi valori. Successivamente, per ciascun oggetto non ancora valutato dall’utente corrente, viene calcolata una stima sulla base delle valutazioni degli utenti vicini. Una possibile misura di somiglianza tra gli utenti è il coefficiente di correlazione di Pearson. È stato dimostrato empiricamente che questa misura sia tra le più performanti se usata per determinare la somiglianza tra utenti.

Item-based nearest neighbor

Quando il numero di utenti e oggetti è molto elevato, quindi la matrice diventa estremamente grande, le tecniche user-based iniziano a diventare inadeguate a generare suggerimenti in tempo reale. Per questa ragione, sono state sviluppate le tecniche item-based che consentono di pre-effettuare una parte del processo computazionale, semplificando la generazione di suggerimenti in tempo reale.

Invece di calcolare la somiglianza tra gli utenti, si calcola la somiglianza tra gli oggetti, sempre sulla base delle valutazioni che hanno ricevuto dagli utenti.

Una misura valida per determinare la somiglianza tra oggetti è la somiglianza del coseno (cosine similarity). Si tratta di una misura per determinare la somiglianza tra vettori, in questo caso i vettori dei voti assegnati ad ogni oggetto.

Slope One

Slope One è una famiglia di algoritmi di item-based Collaborative Filtering, pubblicata nel 2005 in un articolo di Daniel Lemire e Anna Maclachlan intitolato “Slope One Predictors for Online Rating-Based Collaborative Filtering”.

La motivazione dietro lo sviluppo di questi algoritmi è l’esigenza di avere una metodologia per implementare il Collaborative Filtering con le seguenti caratteristiche:

  • facilità di implementazione e testing;
  • possibilità di aggiornare al volo le predizioni aggiungendo nuovi voti;
  • velocità di interrogazione;
  • possibilità di fornire suggerimenti anche ad utenti con poche valutazioni espresse;
  • ragionevole accuratezza di risultati, ma senza compromettere la scalabilità.

Il principio su cui si basano è definito dagli autori come differenziale di popolarità tra gli oggetti per gli utenti: si determina la differenza di gradimento che c’è tra due coppie di oggetti per un utente e la si usa per fare una predizione per un altro utente.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *