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.
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à.
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:
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.
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.