Upload
cataldo-musto
View
1.190
Download
0
Embed Size (px)
DESCRIPTION
Slides della Presentazione tenuta in Università in data 5 maggio 2010.Cataldo Musto
Citation preview
Modelli vettoriali per il filtraggio dell’informazione
Cataldo Musto5 maggio 10
1
Sommario• Modelli Vettoriali
• Applicazioni nell’Information Filtering
• Modello basato su Random Projection
• Modello basato sull’operatore di negazione dei Semantic Vectors
• Analisi del dataset Movielens
• Considerazioni critiche
• Applicazioni del modello
• YourFeeds - Filtraggio feed RSS
• SISCAPP - Progetto POR Grifo Multimedia
2
Vector Space Model (VSM)
• Nasce con Salton (1975) e trova la sua prima applicazione nell’Information Retrieval
• Definizione di uno spazio vettoriale di dimensione pari ad N (N = numero delle features che descrivono gli oggetti)
• Ogni elemento viene rappresentato come un punto all’interno dello spazio vettoriale
3
Modelli Vettoriali
4
Applicazioni
• Information Retrieval
• Ogni documento è un elemento dello spazio vettoriale
• Rappresentazione della query utilizzando un formalismo uniforme
• Calcolo della similarità del coseno per individuare gli oggetti più simili alla query
5
Idea
• Investigare sull’applicazione dei modelli vettoriali nell’ambito dell’Information Filtering Information Filtering & Information Retrieval: two sides of the same coin?, Belkin, 1992
• Oggetti da filtrare = Documenti
• Query = Profilo
• Utilizzo degli stessi metodi di pesatura (TF/IDF) e delle stesse metriche di similarità (Cosine simlarity)
6
Analisi dei modelli vettoriali
• Vantaggi
• Formalismi matematici ben definiti e consolidati (vettori, spazi vettoriali, similarità del coseno, ecc.)
• Svantaggi
• Elevata dimensionalità
• Ponderare le applicazioni di processing linguistico (stemming, posTagging, rimozione stopwords, ecc.)
• Metodo non scalabile
• La matrice termini/documento deve essere rigenerata ad ogni interazione dell’utente con il sistema e ad ogni modifica del dataset
• Incapacità di gestire la semantica
• Un documento e la sua permutazione vengono rappresentati nello stesso modo !
7
Approccio
• Esigenza di garantire al tempo stesso
• Efficienza e Scalabliità
• Modello espressivo
• Riduzione dello spazio vettoriale
• Modelli analizzati
• Random Projection (Sahlgren, 2001)
• Semantic Vectors (Widdows, 2007)
8
Random Projection• Basato sulla cosiddetta “ipotesi distribuzionale”
• Quanto più due termini co-occorrono negli stessi contesti tanto più è probabile che essi abbiano una correlazione semantica
• “Meaning is its use” (Wittgenstein)
• Base del modello: la parola (termine)
• Come rappresentare la parola?
• Una parola è la somma dei suoi contesti
• Cosa è il suo contesto?
• Le altre parole con cui co-occorre
9
Random Projection
• Ad ogni termine presente nel corpus di documenti viene assegnato un vettore random di dimensione predefinita
• Random = può assumere valori pari a -1 , 0 o 1, distribuiti in modo casuale
• La rappresentazione vettoriale di un termine viene combinata, iterando, con la rappresentazione dei termini con cui co-occorre
10
Random Projection
• La rappresentazione vettoriale di un termine si ottiene combinando il proprio vettore random con i vettori random di tutti gli altri termini con cui co-occorre
• Generalizzando
• La rappresentazione vettoriale di un documento si ottiene combinando le rappresentazioni vettoriali di tutti i termini che compaiono al suo interno
11
Random Projection
• Il modello basato su Random Projection si è dimostrato essere
• Efficiente
• In grado di catturare la semantica dei termini
• Approccio simile ad LSA (Latent Semantic Analysis) ma molto più scalabile
12
Note matematiche• Random Projection
• Metodo di riduzione della dimensionalità efficiente. Perchè?
• Perchè la distanza tra i punti nello spazio vettoriale viene preservata. Perchè?
• Perchè presi due vettori, essi sono quasi sempre ortogonali (prodotto scalare = 0). Perchè?
• Perchè i due vettori contengono un numero di zeri molto più alto al numero degli 1 e -1, quindi il prodotto scalare sarà un numero molto piccolo (e dunque generalmente i vettori sono “nearly orthogonal”)
13
Modello n°1
• Attraverso la Random Projection abbiamo a disposizione un modello in grado di rappresentare le entità da filtrare
• Come rappresentare il profilo dell’utente?
• Intuizione: il profilo dell’utente è rappresentato dai termini presenti negli oggetti che ha gradito in passato
• Rappresentazione: combinando la rappresentazione vettoriale dei termini otteniamo la rappresentazione vettoriale del profilo
• Possiamo applicare la cosine similarity per individuare gli oggetti più “vicini” all’utente
14
Modello n°2• Il modello n°1 non gestisce i ratings rilasciati dall’utente
• Ipotesi
• Assegnare a ogni termine un peso proporzionale al rating dato dall’utente nel valutare l’oggetto
• Nel profilo dell’utente ogni termine viene inserito un numero di volte pari allo scostamento del rating dal valore medio (arrotondato per eccesso)
• Rating = 3 , il termine “horror” viene inserito una volta.
• Rating = 5 , il termine viene inserito tre volte, ecc.
• Intuizione semplice: sperimentare dei meccanismi di pesatura più complessi
15
Random Projection vs. TF/IDF
• Differenze
• La costruzione della matrice utilizzando la proiezione random riduce la complessità del modello
• L’utilizzo della proiezione random permette di gestire la semantica latente dei documenti
• Analogie
• Rappresentazione di documenti e profilo utilizzando uno spazio vettoriale
• Calcolo della similarità utilizzando la cosine similarity
• Nessuno dei due modelli gestisce il non gradimento
16
Semantic Vectors• Package Open-Source scritto in Java
• Implementa un algoritmo basato su Random Projection per l’indicizzazione di documenti
• Fornisce API per il calcolo della similarità termine/termine - termine/documento - documento/termine e documento/documento
• Integra un operatore di negazione basato sulla meccanica quantistica
17
Operatore di Negazione
• I sistemi di Information Retrieval attuali non sono in grado di gestire query del tipo “A not B”
• Nei Semantic Vectors si riapplicano alcuni principi della meccanica quantistica per definire un operatore di negazione
18
Operatore di Negazione• Nello specifico
• A, B - vettori
• not B - sottospazio vettoriale ortogonale a quello generato dal vettore B
• ortogonale = prodotto scalare uguale a zero = senza features in comune
• A not B - proiezione del vettore A sul sottospazio vettoriale ortogonale generato dal vettore B
• insieme dei vettori che condividono quante più features possibili con A e quante meno feature possibili con B
• Si tratta ancora di un vettore, quindi è ancora un elemento uniforme e dunque possiamo utilizzarlo per cercare gli oggetti dello spazio più vicini ad esso!
19
Modello n°3• Si crea un vettore like utilizzando il meccanismo
del modello n°1
• Si crea un vettore dislike individuando i termini presenti nei documenti che non sono stati graditi nella fase di training
• Si utilizza l’operatore di negazione per istanziare il vettore like NOT dislike
• Si individuano gli elementi più vicini ad esso nello spazio vettoriale
20
Modello n°4• Estende il modello n°2 e n°3
• Utilizza un meccanismo di pesatura dei termini
• Nel profilo positivo ogni termine è presente un numero di volte direttamente proporzionale al rating
• Nel profilo negativo ogni termine è presente un numero di volte inversamente proporzionale al rating
• Utilizza l’operatore di negazione per istanziare un profilo pesato “like NOT dislike”
21
Ricapitolando..• Modello n°1
• Basato sulla Random Projection
• Modello n°2
• Basato sulla Random Projection, pesando i termini in funzione del rating
• Modello n°3
• Basato su Random Projection e Semantic Vectors per la negazione
• Modello n°4
• Basato su Random Projection e Semantic Vectors per la negazione, pesando i termini in funzione del rating
22
Sperimentazione• Dataset Movielens + Wikipedia
• 613 utenti
• 520 oggetti
• 24.975 features
• 40k ratings
• Sbilanciato: 85% di ratings positivi (>=3)
• 5-fold cross validation
• Processing linguistico: rimozione stopwords
23
Metriche• NDPM
• Poco significativa: confronta tutte le possibili coppie di oggetti verificando se l’ordinamento è corretto. Ma in un sistema di filtraggio sono importanti solo i primi N oggetti, non tutti.
• Precision ed Average Precision (@1, @3, @5, @7, @10)
• La Average Precision modifica la precision dando più peso agli elementi più in alto nel ranking (es. è più importante che sia corretto l’item rankato come primo rispetto a quello rankato come quinto)
• NDCG - Normalized Discounted Cumulative Gain
• Confronta l’ordinamento proposto con l’ordinamento ottimale
• Impossibilità di calcolare la recall
• Non esiste un threshold oggettivo, quindi non è possibile utilizzare metriche di classificazione
24
Baseline
• Random
• Bayes (FIRSt)
• Work in Progress
• TF/IDF
• Completate 2 tornate su 5 , quindici giorni (a pieno regime) per ogni tornata
25
Risultati
26
Risultati
27
Tabella RiassuntivaSemVec 1 SemVec 2 SemVec 3 SemVec 4 Bayes Random
Precision@1
Precision@3
Precision@5
Precision@7
Precision@10
85,93 86,33 85,97 86,78 86,39 84,01
85,78 85,97 86,19 86,33 85,97 84,40
85,75 86,10 85,99 86,16 85,83 84,66
85,61 85,92 85,88 85,95 85,77 84,91
85,45 85,76 85,76 85,83 85,75 84,97
• In generale i Semantic Vectors si comportano meglio del Bayesiano
• I modelli con pesatura si comportano meglio dei modelli senza pesatura
• L’operatore di negazione migliora la capacità predittiva
• L’incremento per i modelli senza pesatura è sempre superiore all’incremento dei modelli con pesatura
• Scarto molto piccolo (anche rispetto al Random) indotto dal Dataset (85% di voti positivi) 28
Conclusioni• Il modello di filtraggio basato sui Semantic Vectors ha dato
risultati promettenti
• Capacità predittiva superiore al modello bayesiano attualmente in uso
• Alta scalabilità
• Tempi 3 volte inferiori rispetto al bayesiano ed oltre 15 volte inferiori rispetto alla TF/IDF per il completamento di una sperimentazione
• Margini di miglioramento
• Sperimentazione con altri meccanismi di pesatura
• Sperimentazione con altre funzioni di similarità (BM25?)
• Sperimentazione con altri dataset
29
Analisi del Dataset
• Il dataset acquisito da MovieLens è poco significativo per un modello di raccomandazione content-based
• Questo motiva lo scarto molto piccolo tra i vari modelli e la differenza non rilevante con il random
• Dataset sbilanciato
• 85% di voti positivi
• Spazio delle features molto sparso
• 24.975 features
30
Statistiche
• 13334 features presenti solo una volta
• 53% del totale
• solo 2080 features presenti in più di 10 items
• 8% del totale!
!"#$%&#$
!"#
$%"#
31
Statistiche• Nessuna delle 15 features più
frequenti (tranne forse death) ci fornisce indicazioni reali sul “contenuto” del film o sulle preferenze dell’utente
• Bisogna ragionare sull’utilità di adottare le descrizioni delle trame
• La struttura attuale del dataset è probabilmente inadatta per una sperimentazione content-based
32
Analisi del Dataset• A conferma dell’ipotesi, il recommender (semantic vectors e bayesiano) è stato
confrontato con il comportamento di un sistema che suggerisce a ciascun utente gli item più popolari
• Ricavata con una semplice query sulle medie dei rating sui singoli oggetti
• Modello collaborativo,
• No calcolo dei neighbour
• No personalizzazione
• Risultati sorprendenti
• Precision circa 90% , oltre 3% rispetto ai nostri modelli content-based!
• Uno spazio delle features così sparso genera rumore nelle predizioni
• L’utilizzo di un dataset processato con META non ha migliorato (anzi, ha peggiorato :-) i risultati emersi
33
Analisi del Dataset• L’estrazione del dataset da MovieLens ci ha permesso di testare i
nostri sistemi su dati più corposi
• Item: 520 vs 45 (dataset Pinacoteca)
• Lo spazio delle features è però inadatto ai modelli content-based
• Soluzioni
• Sostituzione delle descrizioni testuali con un insieme di keywords (o tag) per ridurre la sparsità
• Individuazione di domini più adatti al modello content-based
• Raccomandazione di news o di articoli scientifici
• Creazione di un dataset ad-hoc da donare alla comunità :-)
34
Work in progress...• YourFeeds (http://yourfeeds.altervista.org)
• Tesi di Laurea Triennale
• Estrazione dati da Facebook Connect
• Modellazione profilo keyword-based in APML
• Personalizzazione Feed RSS
• Sviluppi futuri: integrazione dei Semantic Vectors per la gestione della matrice termini/documento
35
YourFeeds - APML
<APML xmlns="http://www.apml.org/apml-0.6" version="0.6"> <Head> <Title>ProfiloEttaMarasciulo</Title> </Head> <Body> <Profile name="Home"> <ImplicitData> <Concepts>
<Concept key="facebook" value="0.125" from=“YourFeeds.org" updated="2010-03-28T14:24:35Z" />
<Concept key="monopoli" value="0.1875" from=“YourFeeds.org" updated="2010-03-28T14:24:35Z" />
</Concepts> </ImplicitData>
36
YourFeeds - Profilo
<APML xmlns="http://www.apml.org/apml-0.6" version="0.6"> <Head> <Title>ProfiloEttaMarasciulo</Title> </Head> <Body> <Profile name="Home"> <ImplicitData> <Concepts>
<Concept key="facebook" value="0.125" from=“YourFeeds.org" updated="2010-03-28T14:24:35Z" />
<Concept key="monopoli" value="0.1875" from=“YourFeeds.org" updated="2010-03-28T14:24:35Z" />
</Concepts> </ImplicitData>
37
YourFeeds
<APML xmlns="http://www.apml.org/apml-0.6" version="0.6"> <Head> <Title>ProfiloEttaMarasciulo</Title> </Head> <Body> <Profile name="Home"> <ImplicitData> <Concepts>
<Concept key="facebook" value="0.125" from=“YourFeeds.org" updated="2010-03-28T14:24:35Z" />
<Concept key="monopoli" value="0.1875" from=“YourFeeds.org" updated="2010-03-28T14:24:35Z" />
</Concepts> </ImplicitData>
38
Work in progress...• Studenti Sancilio/Spagnoletta
• Estrazione dati da LinkedIn
• Modellazione APML
• Scenario applicativo (da individuare)
• Sviluppi futuri
• Estrazione API Twitter
• Convergenza dati Facebook - Twitter - LinkedIn
• Creazione di un’unica piattaforma di profilazione che analizza dati sociali
• Profilo content-based portabile
39
Work in progress...• Tag Recommender
• Estensione del modello content-based anche ai BibTex (tesi triennale)
• Sviluppo della demo (tesi triennale già assegnata, tesista disperso)
• POR Grifo Multimedia - SISCAPP
• Attualmente: D.4.1 - Architettura Siscapp
• Sviluppo di una componente di Query Expansion
• Arricchimento della query aggiungendo vincoli legati al profilo dell’utente (conoscenze, competenze, ecc.)
• Sviluppo di una componente di Raccomandazione
• La scelta del modello dipenderà dai dati a disposizione
40