Università degli Studi Torino Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Anno Accademico 2007 - 2008 Relazione di Tirocinio Sistemi di recommendation per personal video recording Supervisore Candidato Prof. Giancarlo Ruffo Matteo Bovetti
46
Embed
Recommendation Systems for Personal Video Recording
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Università degli Studi TorinoFacoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in InformaticaAnno Accademico 2007 - 2008
Indice1. SISTEMI DI RECOMMENDATION................................................................................4
1.1 Che cosa sono e a cosa servono?.................................................................................41.2 L'approccio Collaborative Filtering.............................................................................6
1.2.1 Introduzione.........................................................................................................61.2.2 Utilizzi del Collaborative Filtering......................................................................81.2.3 Confronto tra Collaborative Filtering e Content-Based Filtering......................121.2.4 L'approccio neighborhood-based......................................................................141.2.5 Valutazioni.........................................................................................................16
2. L'APPLICAZIONE RD-PVR..........................................................................................192.1 Il servizio V-Cast.......................................................................................................192.2 RD-PVR e Facebook.................................................................................................212.3 Algoritmo di Recommendation per RD-PVR............................................................242.4 Collaborative Filtering in RD-PVR...........................................................................26
2.4.1 Calcolo degli insiemi usr-affini e el-affini.........................................................262.5 Il calcolo del weight..................................................................................................272.6 Implementazione in PHP5.........................................................................................28
3. TEST E VALUTAZIONI..................................................................................................343.1 Test condotti sui dump di V-Cast...............................................................................343.2 Risultati e conclusioni...............................................................................................37
La matrice è solo uno dei modi che si hanno per rappresentare e per dare una
predizione. Esistono diversi modi per fornire un feedback utile per la predizione di un
oggetto:
• Il metodo utilizzato da MovieLens, che utilizza le stelle da uno a cinque per
indicare un gradimento che va da Awful a Must See.
• Un rating binario, che indica se l'oggetto è piaciuto oppure no o se è buono o non
buono.
• Un rating unario, che indica se un utente ha osservato un oggetto, se l'ha acquistato
o se semplicemente ha valutato esso positivamente.
Come spiegato nel paragrafo precedente esistono due modi per esprimere un feedback,
esplicito o implicito. Il primo modo, indica una volontaria intenzione dell'utente di dare un
giudizio su un oggetto del sistema. Questo tipo di dato deriva da un comportamento
intenzionale che l'utente ha verso il sistema. Il secondo modo, viene inferito
automaticamente da un comportamento o da una azione sul sistema tenuta dall'utente. Ad
esempio se un utente visita una pagina contenente un prodotto, oppure acquista il prodotto
stesso, è possibile banalmente dedurre che l'oggetto interessi all'utente. Questa inferenza
permette di presentare oggetti (prodotti) affini e quindi mantenere l'utente sul sistema.
1.2.2 Utilizzi del Collaborative Filtering
Gli utilizzi che vengono fatti dei sistemi collaborative filtering sono molti. Di seguito
vengono presentati i più comuni legati a cosa un utente può ottenere dal un sistema di
recommendation.
1. Innanzi tutto il collaborative filtering viene utilizzato per ricercare nuovi oggetti
che potrebbero piacere all'utente. In contesti molto grandi, non è possibile che
l'utente ricerchi manualmente tutti gli oggetti che gli possano interessare. Lo scopo
principale di questi sistemi è proprio di ricercare oggetti e presentarli all'utente in
modo che possa ricercare cosa gli interessa in un insieme ristretto.
2. Quando un utente conosce un particolare oggetto spesso vorrebbe sapere se la rete
sociale o community ha espresso un giudizio, buono o non buono, su quell'oggetto;
o a sua volta esprimerlo lui stesso.
3. Un altro importante utilizzo che si può fare del collaborative filtering è quello di
aiutare l'utente a ricercare altri utenti affini a lui. Questo meccanismo permette di
costruire gruppi di utenti con affinità di gusti, oppure connettere utenti per
permettere un tipo di raccomandazione sociale.
4. Come indicato dal punto 1, il sistema può eseguire lo stesso compito con un gruppo
di utenti. Definito un gruppo di utenti affini, ad esempio un gruppo di ricerca, è
possibile sfruttare le funzionalità del sistema per ricercare una pubblicazione utile a
tutti i membri del gruppo.
5. Il sistema mette a disposizione anche ricerche parametrizzate come ad esempio la
possibilità, da parte di un utente, di cercare tutte le pubblicazioni che lo citano.
Questi cinque punti descrivono quello che un utente, che utilizza il sistema, può
ottenere. Ora viene spostata l'attenzione sul sistema vero e proprio. In particolare sulle
funzionalità che i sistemi collaborative filtering offrono.
1. Recommendation di oggetti. Questa è la funzionalità cardine del sistema. Essa
permette di offrire all'utente una lista di elementi che, secondo le valutazioni
dell'algoritmo, possono essere utili e apprezzate dall'utente. Il calcolo viene fatto
creando un rating associato a ogni oggetto da raccomandare. Il sistema ordina
secondo il valore del rating gli oggetti, e li presenta in questo ordine all'utente. Ad
esempio l'algoritmo di recommendation di Amazon.com, aggrega oggetti simili a
quelli acquistati dall'utente; invece di visualizzare una predizione personalizzata, le
interfacce utenti visualizzano la media dei rating del cliente. Come risultato, la lista
di recommendation potrebbe apparire in disordine rispetto alla media dei valori
visualizzati. In molte applicazioni prendere i pochi oggetti al top (oggetti che sono
fortemente raccomandati dall'algoritmo) è cruciale.
2. Calcolo della predizione di un dato oggetto. Questo tipo di calcolo viene fatto dal
sistema per indicare un sottoinsieme di possibili elementi candidati alla
recommendation. Esso è fondamentale per fornire un valore di affinità tra l'oggetto,
a cui è associato il rating, e l'utente per cui si sta svolgendo la predizione. Molti di
questi algoritmi hanno la caratteristica di essere altamente scalabili e di avere un
basso uso di memoria e di tempo di computazione.
3. Constrained recommendation. Questo tipo di calcolo viene eseguito su un set di
oggetti. Esso utilizza sorgenti multiple per la recommendation. L'utente definisce
alcune preferenze, che vengono utilizzate dall'algoritmo per restringere il set degli
oggetti candidati. La recommendation basa il suo rating eseguendo un match tra le
preferenze dell'utente e quelle candidate alla recommendation. Viene riportato un
esempio, SQL-Like, su una recommendation di film: “RECOMMEND Movie TO
User BASED ON Rating FROM MovieRecommender WHERE Movie.Length <
120 AND Movie.Rating < 3 AND User.City = Movie.Location”
Proprietà dei domini per il Collaborative Filtering (CF). Il CF è noto per essere
effettivo in domini che presentano determinate proprietà. Bisogna valutare quali sono le
proprietà che le applicazioni utente considerano maggiormente. Raggruppiamo queste
proprietà in:
• Data distribution
• Underlying mining
• Data persistence
Data distribution. Le proprietà elencate di seguito riguardano il numero e la forma dei
dati.
1. Avere all'interno del sistema una grande quantità di oggetti. Se la quantità di oggetti
considerabili è bassa, l'utente può esplorarli e conoscerli tutti senza avere bisogno
del supporto del sistema.
2. Avere un gran numero di ratings per oggetto. Se la quantità di ratings per oggetto è
bassa non ci sono abbastanza informazioni per fare delle predizioni o
recommendation utili.
3. Avere un grande numero di ratings utente, ma pochi oggetti utili alla
recommendation. Spesso si ha necessità di avere più utenti rispetto al numero degli
oggetti che il sistema sarà in grado di raccomandare. Più precisamente se ci sono
pochi rating per ogni utente il sistema avrà bisogno di molti utenti. Molti sistemi
hanno proprio questa proprietà. Esempio: Google, popolare motore di ricerca,
indicizza al momento attuale otto miliardi di pagine. Questo numero è molto
maggiore di tutta la popolazione globale, e molto maggiore delle persone che hanno
un pc. Un altro esempio, avendo un milione di utenti, un sistema CF sarà i grado di
fare raccomandazioni per cento mila oggetti. Ma sarà in grado di fare predizioni
precise per circa dieci mila utenti, a seconda della distribuzione dei ratings tra
oggetti. Pochi oggetti ottengono molti ratings, mentre una grande quantità di
oggetti ottiene pochi ratings. Calcolare una predizione su una grande quantità di
oggetti non è sempre un compito semplice.
4. Gli utenti forniscono una valutazione a molti oggetti. Se un utente da un ratings a
un singolo oggetto, questo provvede a fornire informazioni statistiche, ma non dà
informazioni per relazionare gli oggetti tra loro.
Underlying mining.
1. Per ogni utente del sistema ci sono altri utenti con necessità o gusti in comune. CF
lavora perché le persone hanno necessità e gusti in comune. Se una persona ha gusti
così unici da non averne in comune con nessun altro, allora il CF non può fare
nessuna valutazione (fallisce). In generale CF lavora bene quando ogni utente può
trovare molti altri utenti che condividono i suoi gusti in molte categorie.
2. La valutazione degli oggetti richiede gusti personali. Nei casi in cui ci sono criteri
oggettivi di bontà che possono essere computati automaticamente, questi criteri
possono essere meglio applicati a altri contesti piuttosto che al CF (ad esempio gli
algoritmi di ricerca). Il CF permette agli utenti con gusti simili di informare se
stessi sull'esistenza di oggetti che potrebbero interessare. Il CF aggiunge valori
sostanziali quando le valutazioni di oggetti sono in buona parte soggettivi (musica)
o quando questi oggetti hanno molti criteri oggettivi differenti che necessitano di
essere pesati soggettivamente gli uni con gli altri (ad esempio le auto). Alcune volte
esistono criteri oggettivi che possono aiutare il lavoro dell'algoritmo (es.
raccomandare solo libri scritti in inglese). Se la recommendation può essere fatta
utilizzando criteri oggettivi, il CF non è utile.
3. Gli oggetti sono omogenei. L'omogeneità è data dai criteri oggettivi che sono simili
tra tutti gli oggetti presenti nel sistema. La differenziazione è fatta solo sui criteri
soggettivi. Gli album musicali appartengono a questa categoria, molti sono simili
da comprare e simili in lunghezza. Un altro tipo di oggetto che presenta questa
proprietà sono i libri o le pubblicazioni di ricerca.
Data persistence. Le proprietà elencate di seguito trattano la rilevanza dei dati nel CF.
1. Persistenza degli oggetti. Un sistema CF non solo necessita che un singolo oggetto
sia classificato da molte persone, ma richiede inoltre che le persone condividano
molti oggetti precedentemente classificati. Consideriamo il dominio di notizie
(news). Molte notizie appaiono per giorni, altre probabilmente sono solo interessati
per poco tempo. Per un sistema collaborative filtering generare una predizione
riguardante una notizia apparsa recentemente, richiede che siano vere due
precondizioni:
A) Uno o più utenti hanno classificato la notizia.
B) Questi utenti hanno inoltre classificato alcune altre notizie che io ho anche
classificato.
In un dominio come quello delle notizie, per essere classificate da un largo numero
di persone, esse sono molto più interessanti quando sono appena uscite e di cronaca
nera. Se queste notizie sono solo importanti per un breve periodo questa richiesta è
difficile da incontrare.
2. Persistenza dei gusti. Il CF ha il maggior successo in domini dove i gusti degli
utenti non cambiano rapidamente: film, libri ed elettronica. Se i gusti cambiano
frequentemente o rapidamente, allora le vecchie classificazioni, generate dal
sistema, sono poco utili. Un esempio di persistenza dei gusti potrebbe essere il
vestiario, dove il gusti delle persone per cinque anni e più non cambia.
Le proprietà elencate nei punti precedenti rappresentano semplificazioni del mondo
dove il CF è più facilmente applicabile. Infatti, applicando il CF in domini dove queste
proprietà non sono presenti permettono di aprire interessanti applicazioni e aree di ricerca.
Per esempio si potrebbe applicare il collaborative filtering a oggetti non omogenei,
attraverso l'uso di raccomandazioni forzate o applicando vincoli esterni (chiamate regole di
bussines).
1.2.3 Confronto tra Collaborative Filtering e Content-Based Filtering
Il collaborative filtering (CF) utilizza delle assunzioni su utenti (affini) per creare una
lista di oggetti pronti per la recommendation. Su questi oggetti l'algoritmo crea un rating
che indica l'affinità dell'oggetto con l'utente. L'approccio content-based filtering (CBF)
utilizza delle assunzioni su oggetti che reputa affini all'utente o di suo gradimento. Un
esempio chiarificatore è il seguente: se viene creato un collegamento a una pagina
contenente “tomato sauce”, l'approccio content-base filtering consiglierà un'altra pagina
con “tomato sauce”. Questa è la prima importante distinzione tra questi due tipi di
approcci. L'approccio content-based filtering può fare predizioni senza costruire un rating
associato agli oggetti che raccomanda. Questo non avviene nel collaborative filtering dove
è necessario costruire un rating.
Un'altra importante differenza è data dal fatto che è possibile, utilizzando il
collaborative filtering, ottenere oggetti per la recommendation senza che l'utente abbia mai
utilizzato alcun oggetto all'interno del sistema. Questo approccio permette di raccomandare
liste di elementi anche se non si è mai utilizzato il sistema. Se invece viene utilizzato
l'approccio content-based non è possibile calcolare alcune lista di oggetti, se l'utente non ne
ha già utilizzati sino a quel momento.
Un ulteriore caratteristica del collaborative filtering, è data dal fatto che gli oggetti
esaminati dall'algoritmo sono spesso manipolati dall'utente, il quale fornisce una
valutazione all'oggetto stesso. Valutare l'oggetto, permette all'algoritmo di avere a
disposizione ulteriori informazioni per analizzare in modo preciso gli elementi da
raccomandare. Fornendo un maggior numero di informazioni è possibile aumentare la
precisione sulle valutazioni fatte dall'algoritmo.
Il lavoro svolto da un algoritmo content-based filtering si avvale della caratteristiche di
un oggetto e le confronta con interessi, gusti e profili utente. Per molto tempo collaborative
filtering e content-based filtering sono stati visti come complementari.
Infatti molto spesso collaborative filtering e il content-based filtering vengono
combinati formando quello che è chiamato approccio ibrido. Alcuni sistema utilizzano un
approccio basato sull'analisi dei contenuti per identificare caratteristiche relative alle
immediate necessità degli utenti. Gli stessi sistemi utilizzano il collaborative filtering per
provare a catturare caratteristiche come la qualità degli oggetti; caratteristiche difficili da
analizzare automaticamente.
Per approfondire ulteriormente il rapporto che c'è tra oggetti utilizzati in un approccio
content-based e collaborative filtering, viene ora presentata una tabella [9] riassuntiva che
permette di vedere quali oggetti utilizzano i vari approcci. Questa tabella è importante
anche per vedere l'evoluzione dei sistemi di raccomandazione partendo proprio
dall'information retrieval.
Concept Modeling Matrix Information Retrieval terms x documents Information Filtering features x documents Content-based Filtering features x artifacts Collaborative Filtering people x documents Recommender System people x artifacts
1.2.4 L'approccio neighborhood-based
L'approccio neighborhood-based è la trasposizione di user-based algorithms. Mentre
user-based algorithms genera una predizione basata sulla similarità tra due utenti,
l'approccio neighborhood-based genera una predizione basata sulla similarità tra due
oggetti. La predizione per un oggetto viene basata sul ratings utente similmente agli oggetti
che gli possono interessare. Considerando la seguente tabella: