Sistemi di raccomandazione – Filtraggio collaborativo basato sull’utente e sull’articolo

Questa è la parte 2 della mia serie sui sistemi di raccomandazione. L’ultimo post era un’introduzione a RecSys. Oggi spiegherò più in dettaglio tre tipi di Collaborative Filtering: User-Based Collaborative Filtering (UB-CF) e Item-Based Collaborative Filtering (IB-CF).

Immaginiamo di voler consigliare un film al nostro amico Stanley. Potremmo supporre che persone simili abbiano gusti simili. Supponiamo che io e Stanley abbiamo visto gli stessi film, e li abbiamo valutati tutti in modo quasi identico. Ma Stanley non ha visto ‘Il Padrino: Parte II’ e io sì. Se io amo quel film, sembra logico pensare che lo farà anche lui. Con questo, abbiamo creato una valutazione artificiale basata sulla nostra somiglianza.

Bene, UB-CF usa questa logica e raccomanda articoli trovando utenti simili all’utente attivo (a cui stiamo cercando di raccomandare un film). Un’applicazione specifica di questo è l’algoritmo Nearest Neighbor basato sull’utente. Questo algoritmo richiede due compiti:

1.Trovare i K-vicini più vicini (KNN) all’utente a, usando una funzione di similarità w per misurare la distanza tra ogni coppia di utenti:

2.Prevedere la valutazione che l’utente a darà a tutti gli articoli che i k vicini hanno consumato ma che a non ha consumato. Cerchiamo l’articolo j con la migliore valutazione prevista.

In altre parole, stiamo creando una matrice Utente-Item, prevedendo le valutazioni sugli articoli che l’utente attivo non ha visto, sulla base degli altri utenti simili. Questa tecnica è basata sulla memoria.

Riempire gli spazi vuoti

PROS:

  • Facile da realizzare.
  • Indipendente dal contesto.
  • Rispetto ad altre tecniche, come quella basata sul contenuto, è più accurata.

CONS:

  • Sparsità: La percentuale di persone che valutano gli articoli è davvero bassa.
  • Scalabilità: Più vicini K consideriamo (sotto una certa soglia), migliore dovrebbe essere la mia classificazione. Tuttavia, più utenti ci sono nel sistema, maggiore sarà il costo di trovare i K vicini più vicini.
  • Cold-start: I nuovi utenti avranno poche o nessuna informazione su di loro per essere confrontati con altri utenti.
  • Nuovo elemento: Proprio come l’ultimo punto, i nuovi elementi mancheranno di valutazioni per creare una solida classifica (Più di questo su ‘Come ordinare e classificare gli elementi’).

Item-Based Collaborative Filtering (IB-CF)

Torna a Stanley. Invece di concentrarci sui suoi amici, potremmo concentrarci su quali articoli tra tutte le opzioni sono più simili a ciò che sappiamo che gli piace. Questa nuova focalizzazione è conosciuta come Filtro Collaborativo basato sugli elementi (IB-CF).

Potremmo dividere IB-CF in due sotto-compiti:

1.Calcolare la similarità tra gli elementi:

  • Similitudine basata sul coseno
  • Similitudine basata sulla correlazione
  • Similitudine aggiustata del coseno
  • Distanza 1-Jaccard

2.Calcolo della Predizione:

  • Somma pesata
  • Regressione

La differenza tra UB-CF e questo metodo è che, in questo caso, pre-calcoliamo direttamente la similarità tra gli elementi co-valutati, saltando la ricerca K-neighborhood.

Slope One

Slope One fa parte della famiglia Item-Based Collaborative Filtering, introdotta nel 2005 da Daniel Lemire e Anna Maclachlan chiamata Slope One Predictors for Online Rating-Based Collaborative Filtering.

L’idea principale dietro questo modello è la seguente:

Supponiamo di avere due diversi utenti: A e B. Inoltre, abbiamo l’articolo I e l’articolo J. L’utente A ha valutato l’articolo I con 1 stella e l’articolo J con 1,5. Se l’utente B valuta l’articolo I con un 2. Possiamo supporre che la differenza tra i due articoli sarà la stessa dell’utente A. Con questo in mente, l’utente B valuterebbe l’articolo J come: 2+ (1,5-1) = 2,5

L’idea principale dietro Slope One

Gli autori si concentrano su 5 obiettivi:
1. Facile da implementare e mantenere.
2. Aggiornabile online: le nuove valutazioni dovrebbero cambiare le previsioni rapidamente.
3. Efficiente al momento della consultazione: lo stoccaggio è il costo principale.
4. Funziona con poco feedback degli utenti.
5. Ragionevolmente accurato, entro certi intervalli in cui un piccolo guadagno in accuratezza non significa un grande sacrificio di semplicità e scalabilità.

Recap

Abbiamo visto il Filtro Collaborativo User-Based e Item-Based. Il primo si concentra sul riempimento di una matrice utente-item e sulla raccomandazione basata sugli utenti più simili all’utente attivo. D’altra parte, IB-CF riempie una matrice Articolo-Item, e raccomanda in base agli articoli simili.

È difficile spiegare brevemente tutti questi argomenti, ma comprenderli è il primo passo per approfondire RecSys.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.