Filtro collaborativo

Per affrontare alcune delle limitazioni del filtro basato sui contenuti, il filtro collaborativo utilizza le somiglianze tra utenti ed elementi contemporaneamente per fornire consigli. Questo consente di fornire suggerimenti serendipiti; in altre parole, i modelli di filtro collaborativo possono consigliare un elemento all'utente A in base agli interessi di un utente B simile. Inoltre, gli incorporamenti possono essere appresi automaticamente, senza dover fare affidamento sulla progettazione manuale delle funzionalità.

Esempio di consiglio per un film

Prendiamo in considerazione un sistema di consigli sui film in cui i dati di addestramento sono costituiti da una matrice di feedback in cui:

  • Ogni riga rappresenta un utente.
  • Ogni colonna rappresenta un elemento (un film).

Il feedback sui film rientra in una di queste due categorie:

  • Esplicito: gli utenti specificano quanto hanno apprezzato un determinato film assegnando una valutazione numerica.
  • Implicito: se un utente guarda un film, il sistema deduce che l'utente è interessato.

Per semplificare, si presuppone che la matrice di feedback sia binaria, ovvero il valore 1 indichi l'interesse per il film.

Quando un utente visita la home page, il sistema consiglia i film in base a:

  • somiglianza con i film scelti dall'utente in passato
  • film simili a utenti simili

A scopo illustrativo, esaminiamo come funzionano alcune funzionalità dei film descritte nella tabella seguente:

Film Valutazione Descrizione
Il cavaliere oscuro Vietato ai minori di 13 anni Batman cerca di salvare Gotham City dall'anniversario nucleare in questo sequel di Il cavaliere oscuro, ambientato nell'universo DC Comics.
Harry Potter e la pietra filosofale PM Un ragazzo orfano scopre di essere un mago e si iscrive alla Scuola di magia e stregoneria di Hogwarts, dove organizza la sua prima battaglia contro il malvagio Lord Voldemort.
Shrek PM Un adorabile orco e il suo asino accompagnano in una missione per salvare la principessa Fiona, che è stata imprigionata nel suo castello da un drago.
Le triple di Belleville Vietato ai minori di 13 anni Quando il Champion viene rapito durante il Tour de France, sua nonna e il suo cane sovrappeso viaggiano all'estero per salvarlo, con l'aiuto di un trio di cantanti jazz anziani.
Promemoria R Un amnesiaco vuole disperare di risolvere l'omicidio di sua moglie tatuando indizi sul suo corpo.

Incorporamento in 1D

Supponiamo che assegniamo a ogni film una scala in \([-1, 1]\) che descrive se il film è per bambini (valori negativi) o adulti (valori positivi). Supponiamo inoltre di assegnare un scalare a ogni utente \([-1, 1]\) che descriva l'interesse dell'utente nei film per bambini (più vicino a -1) o nei film per adulti (più vicino a +1). Il prodotto dell'incorporamento del film e quello dell'utente devono essere più alti (più vicini a 1) per i film che prevediamo che l'utente apprezzi.

Immagine che mostra diversi film e utenti disposti lungo uno spazio di incorporamento unidimensionale. La posizione di ogni film lungo questo asse descrive se si tratta di un film per bambini (a sinistra) o di un film per adulti (a destra). La posizione di un utente descrive l'interesse per i film per bambini o adulti.

Nel diagramma di seguito, ogni segno di spunta identifica un film guardato da un determinato utente. Il terzo e il quarto utente hanno preferenze ben spiegate da questa funzionalità: il terzo utente preferisce i film per i bambini e il quarto utente preferisce i film per gli adulti. Tuttavia, le preferenze del primo e del secondo utente non sono spiegate correttamente da questa singola funzionalità.

Immagine di una matrice di feedback in cui una riga corrisponde a un utente e una colonna a un film. Ogni utente e ogni film è mappato a un incorporamento unidimensionale (come descritto nella figura precedente), in modo che il prodotto dei due incorporamenti approssima il valore di riferimento empirico reale nella matrice dei feedback.

Incorporamento in 2D

Una funzionalità non era sufficiente a spiegare le preferenze di tutti gli utenti. Per superare questo problema, aggiungiamo una seconda funzionalità: la misura in cui ogni film è un grande successo o un film d'essai. Con una seconda funzionalità, ora possiamo rappresentare ogni film con il seguente incorporamento bidimensionale:

Immagine che mostra diversi film e utenti disposti su uno spazio di incorporamento bidimensionale. La posizione di ogni film sull'asse orizzontale descrive se si tratta di un film per bambini (a sinistra) o di un film per adulti (a destra); la sua posizione lungo l'asse verticale descrive se si tratta di un film di successo (in alto) o di un film d'essai (in basso). La posizione degli utenti riflette i loro interessi in ogni categoria.

Collociamo di nuovo gli utenti nello stesso spazio di incorporamento per spiegare al meglio la matrice dei feedback: per ogni coppia (utente, elemento) vorremmo che il prodotto punto dell'incorporamento utente e l'incorporamento elemento fossero vicini a 1 quando l'utente guardava il film e a 0 in caso contrario.

Immagine della stessa matrice di feedback. Questa volta, ogni utente e ogni film sono mappati a un incorporamento bidimensionale (come descritto nella figura precedente) in modo che il prodotto con punti dei due incorporamenti approssima il valore del riferimento empirico reale nella matrice dei feedback.

In questo esempio, abbiamo progettato manualmente gli incorporamenti. In pratica, gli incorporamenti possono essere appresi automaticamente, ossia la potenza dei modelli di filtro collaborativo. Nelle due sezioni successive parleremo dei diversi modelli per apprendere questi incorporamenti e come addestrarli.

La natura collaborativa di questo approccio è evidente quando il modello apprende le incorporazioni. Supponiamo che i vettori di incorporamento dei film siano fissi. Quindi, il modello può apprendere un vettore di incorporamento che permette agli utenti di spiegare al meglio le loro preferenze. Di conseguenza, gli incorporamenti di utenti con preferenze simili saranno simili. Analogamente, se gli incorporamenti per gli utenti sono corretti, possiamo apprendere gli incorporamenti dei film per spiegare al meglio la matrice dei feedback. Di conseguenza, gli elementi dei film a cui sono piaciuti altri utenti simili verranno chiusi nello spazio di incorporamento.

Verifica le tue conoscenze

Il modello consiglia un'app di acquisti a un utente perché di recente ha installato un'app simile. Di quale tipo di filtro si tratta in questo caso?
Filtro basato sui contenuti
Ottimo lavoro! Il filtro basato sui contenuti non controlla gli altri utenti.
Filtro collaborativo
Il filtro collaborativo prende in considerazione altri utenti. Nello scenario specificato ci interessa solo un utente.