Agora v1.0 - LSI

10
Agor` a Search Engine - Un mini motore di ricerca basato sul Latent Semantic Indexing Vannutelli Sofien February 27, 2012 Contents 1 La Singular Value Decomposition 2 1.1 Le matrici U ,Σe V [1, 2] ........................... 2 1.2 La riduzione di rango approssimata [5] .................... 3 2 Il Latent Semantic Indexing [1, 2] 4 2.1 Proiezione della Query e Ranking dei Documenti [1, 2] ........... 4 2.2 Cenni sul Latent Semantic Analysis [4] .................... 5 3 Agor` a Search Engine 6 4 Conclusioni 9 References 10 Abstract In questa breve relazione viene presentato il progetto Agor` a, un mini motore di ricerca basato sul Latent Semantic Indexing, sfruttando il linguaggio di program- mazione Java. I passi eseguiti per la sua implementazione sono stati: 1. Caricamento dei file di testo dalla directory di nome prova, eseguendo l’operazione di stopword per ciascun file, e con la creazione creando del vocabolario 1 del mini motore. 2. Salvataggio dei termini del dizionario sul disco. 3. Costruzione della matrice L termini-documenti utilizzando la lista dei files, letti precedentemente, e confrontando i singoli termini 2 presenti in ciascun file con i termini presenti nel dizionario. 4. Calcolo della Singular Value Decomposition della matrice L termini-documenti X = U ΣV T . 1 Ogni volta che viene avviato il mini motore, nel dizionario vengono inseriti solo quei termini che non sono presenti in esso. 2 In inglese Tokens. 1

Transcript of Agora v1.0 - LSI

Page 1: Agora v1.0 - LSI

Agora Search Engine - Un mini motore di ricerca basato sul

Latent Semantic Indexing

Vannutelli Sofien

February 27, 2012

Contents

1 La Singular Value Decomposition 21.1 Le matrici U , Σ e V [1, 2] . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 La riduzione di rango approssimata [5] . . . . . . . . . . . . . . . . . . . . 3

2 Il Latent Semantic Indexing [1, 2] 42.1 Proiezione della Query e Ranking dei Documenti [1, 2] . . . . . . . . . . . 42.2 Cenni sul Latent Semantic Analysis [4] . . . . . . . . . . . . . . . . . . . . 5

3 Agora Search Engine 6

4 Conclusioni 9

References 10

Abstract

In questa breve relazione viene presentato il progetto Agora, un mini motore diricerca basato sul Latent Semantic Indexing, sfruttando il linguaggio di program-mazione Java.

I passi eseguiti per la sua implementazione sono stati:

1. Caricamento dei file di testo dalla directory di nome prova, eseguendo l’operazionedi stopword per ciascun file, e con la creazione creando del vocabolario1 delmini motore.

2. Salvataggio dei termini del dizionario sul disco.

3. Costruzione della matrice L termini-documenti utilizzando la lista dei files,letti precedentemente, e confrontando i singoli termini2 presenti in ciascun filecon i termini presenti nel dizionario.

4. Calcolo della Singular Value Decomposition della matrice L termini-documentiX = UΣV T .

1Ogni volta che viene avviato il mini motore, nel dizionario vengono inseriti solo quei termini che nonsono presenti in esso.

2In inglese Tokens.

1

Page 2: Agora v1.0 - LSI

5. Scelta di un numero k3 di autovalori e autovettori (concetti) e costruzione dellematrici ridotte Uk, Σk, Vk. [2, 1]

6. Trasformazione di ciascun documento (colonna di L, x) nello spazio dei concetticome x = xTUkΣ−1

k . [2, 1]

7. Costruzione della query q utilizzando la lista dei files e confrontando i presentiin ciascun file con i termini presenti nel dizionario.

8. Proiezione della query q nello spazio dei concetti, q, come q = qTUkΣ−1k . [2, 1]

9. Calcolo della somiglianza della query q a ciascun documento calcolando ilcoseno, θ ∈ [−1; 1], tra il vettore della query e quello del documento (ambeduenello spazio dei concetti):

θ = qT x‖q‖‖x‖ =

qTUkΣ−1k

Σ−1k

Ukx

‖qTUkΣ−1k ‖‖xTUkΣ−1

k ‖[2]

10. Ordinamento dei documenti in ordine decrescente per θ.[2, 1]

1 La Singular Value Decomposition

In algebra lineare, la Singular Value Decomposition4 e una particolare fattorizzazionebasata sull’uso di autovalori e autovettori, utilizzata per produrre un’approssimazionedella matrice originaria con minor rango possibile. [5]

Figure 1: Matrice L termine-documento e vettore q query.

1.1 Le matrici U , Σ e V [1, 2]

Nelle righe della matrice V (o colonne della matrice V T ) vengono memorizzate le coor-dinate vettoriali dei documenti. Cosı, si possono prendere due documenti alla volta perpoi confrontarli attraverso il calcolo della similitudune del coseno. Queste informazionipossono essere utilizzate per gruppi di documenti (cluster), per classificare i documentiin base al tema (analisi topic) o costruire collezioni di documenti simili (directory).

3La scelta di k viene fatta in via definitiva per un qualsiasi set di documenti4Abbreviato SVD.

2

Page 3: Agora v1.0 - LSI

Nella diagonale della matrice Σ vengono rappresentate le dimensioni dello spazio LSI.Queste dimensioni sono utilizzate per proiettare i vettori che rappresentano i documenti,la query e i termini.

Figure 2: Le matrici U , Σ e V .

Infine, nelle righe della matrice U vengono memorizzate le coordinate dei vettori perciascun termine. Cosı si possono prendere due termini alla volta, per poi calcolargli lesomiglianze del coseno. Con queste informazioni siamo in grado di fare un raggruppa-mento di termini e la costruzione automatica di un thesaurus5, trovando termini analoghiper essere utilizzati in una successiva ricerca (Query Expansion).

1.2 La riduzione di rango approssimata [5]

La SVD puo essere utilizzata per risolvere il problema della riduzione di rango perl’approssimazione della matrice L.

A tal fine, per effettuare tale riduzione dobbiamo seguire la seguente procedura:

1. Data la matrice L (termini-documenti), costruire la sua SVD nella forma L =UΣV T .

2. Dalla matrice Σ, si deriva la matrice ridotta Σk formata dalla sostituzione con glizeri dei r − k valori singolari piu piccoli posizionati sulla diagonale di Σ.

3. Calcola e restituisce la matrice Lk = UkΣkVTk con il rank k-esimo di approssi-

mazione alla matrice originaria L.

Il rango di Lk e al massimo k: cio deriva dal fatto che Σk ha al massimo k valori diversida zero. Cosı sembra plausibile che la sostituzione di questi autovalori piccoli con zeronon alterano sostanzialmente il risultato, lasciando ”chiusa” la matrice L.

5Un thesaurus e un glossario che fornisce informazioni di sinonimia e correlazione fra termini.

3

Page 4: Agora v1.0 - LSI

2 Il Latent Semantic Indexing [1, 2]

Il Latent Semantic Indexing6 e un metodo di indicizzazione e di recupero informazioni,che utilizza la tecnica matematica SVD, gia descritta nel paragrafo precedente, e serveper identificare i modelli nei rapporti tra i termini e i concetti contenuti in un set didocumenti non strutturati.

LSI si basa sul principio che le parole che vengono utilizzate negli stessi contestitendono ad avere significati simili. Una caratteristica fondamentale di LSI e la capacitadi estrarre il contenuto concettuale di un corpo del testo stabilendo associazioni tra queitermini che si verificano in contesti simili. [4]

LSI e anche un’applicazione di analisi corrispondenza, una tecnica statistica multi-variata sviluppata da Jean-Paul Benzecri nei primi anni 1970, ad una tabella di contin-genza costruita dal numero di parole nei documenti.

E chiamato LSI per la sua capacita di correlare i termini semanticamente correlatiche sono latenti in una collezione di testo ed e stato applicato per la prima volta altesto presso i Bell Laboratories alla fine degli anni 1980. Il metodo, come e stato giadetto, scopre la sottostante struttura semantica latente nell’uso delle parole in un corpodi testo e come puo essere usato per estrarre il significato del testo in risposta allerichieste degli utenti, comunemente denominato come ”ricerche concettuali”. Query, o”ricerche concettuali”, nei confronti di una serie di documenti proiettati nello spazioLSI,restituiranno risultati che sono concettualmente simili nel significato ai criteri di ricercaanche se i risultati non condividono una specifica parola o le parole con i criteri di ricerca.

2.1 Proiezione della Query e Ranking dei Documenti [1, 2]

Ora si vedra come proiettare la query nello spazio LSI, insieme al set di documenti. Siconsidera ora il caso della matrice L costituito da un numero di documenti > 1.

Sia L = UΣV T . La matrice V consiste di n righe, dove ciascuna di esse contiene lecoordinate di un vettore documento.

Per un dato vettore, si puo riscrivere l’equazione documento in quest’altro modod = dTUΣ−1.

Dato che in LSI una query e trattata come un altro documento, allora il vettorequery si puo riscrivere con l’equazione q = qTUΣ−1.

Nel spazio k-dimensionale LSI ridotto si possono riscrivere le precedenti equazionicosı:

• d = dTUΣ−1

• q = qTUΣ−1

Nelle equazioni vengono memorizzate le nuove coordinate dei vettori in questo spazioridotto.

6Abbreviato LSI.

4

Page 5: Agora v1.0 - LSI

Figure 3: Vettori query-documenti nello spazio LSI.

La misurazione della similarita del coseno tra la query e il documento e dato dallaseguente funzione (vedi Figura 3):

sim(q, d) = sim(qTUkΣ−1k , dTUkΣ−1

k )

2.2 Cenni sul Latent Semantic Analysis [4]

Il Latent Semantic Analysis7 e una teoria e metodo per l’estrazione e che rappresental’utilizzo contestuale del significato delle parole, attraverso calcoli statistici applicati aun corpus di testo vasto (Landauer e Dumais, 1997).

L’idea di fondo e che l’insieme di tutte le parole in un preciso contesto, nella quale unadeterminata parola fornisce o non sembra fornire su di un insieme vincoli di reciprocita,determinano in larga misura la somiglianza del significato delle parole e un insieme diparole reciprocamente. L’adeguatezza della riflessione del LSA nella conoscenza umanae stata stabilita in una varieta di modi. Ad esempio, i suoi punteggi si sovrappongono aquelli degli esseri umani sul vocabolario standard e sulle prove dell’oggetto stesso.

LSA imita l’ordinamento umano della parola e il giudizio della categoria; simulatermine-termine e il passaggio-parola per l’adescamento lessicale dei dati e stima conprecisione la coerenza del passaggio, l’apprendibilita dei passaggi da singoli studenti, ela qualita e la quantita di conoscenza contenuta in un saggio.

In pratica, LSA non e altro che una tecnica di elaborazione del linguaggio naturale, inparticolare della semantica vettoriale, di analisi dei rapporti tra una serie di documentied i termini in essi contenuti, producendo una serie di concetti relativi ai documenti eai termini. LSA presuppone che le parole che sono vicine nel significato logico sarannovicini nel testo (ad esempio Apple Computer hanno significato logico insieme.

7Abbreviato LSA.

5

Page 6: Agora v1.0 - LSI

3 Agora Search Engine

Come descritto nell’abstract, Agora Search Engine e stato implementato nel linguaggiodi programmazione Java e non e stata utilizzata nessuna libreria OpenSource per laparte riguardante il Latent Semantic Indexing.

Le uniche funzioni esterne utilizzate in Agora Serach Engine sono state:

• svd(): per il calcolo della Singular Value Decomposition della matrice L.

• inverse(): per il calcolo di Σ−1k , la quale al suo interno richiama le funzione LUDe-

composition()8 e solve(B)9, dove B e una matrice quadrata.

Entrambe le funzioni appartengono a Jama10. Jama fornisce le operazioni fondamen-tali dell’algebra lineare numerica, insieme a quelle sopra citate: il calcolo della tracciadi una matrice, la trasposta di una matrice, la somma tra due matrici, la differenza tradue matrici, la norma di Frobenius, il massimo valore singolare, il rapporto tra il piugrande e il piu piccolo valore singolare.

Agora Serach Engine consente di indicizzare soltanto documenti di testo semplici,tralasciando (per adesso) i restanti formati di documento (PDF, HTML, documentiOffice, etc.) e le informazioni extrapolate da un database.

L’applicazione puo sinteticamente essere suddivisa in sei parti:

1. Indicizzazione, analisi ed immagazzinamento delle parole chiave, prese da un setdi documenti.

2. Calcolo dei valori singolari della matrice L e la riduzione di rango per le matriciΣ−1k e Uk.

3. Proiezione della query e del set di documenti nello spazio LSI ridotto.

4. Calcolo la funzione di similitudine per ogni documento con la query.

5. Ordinamento dei documenti in base al valore di similitudine.

6. Mostra dei risultati ottenuti dalla ricerca.

L’applicazione stessa possiede una GUI, suddivisa:

• in una text field per l’inserimento della query da parte dell’utente,

• in una text area per la visualizzazione dei messaggi riguardanti le operazioni diinizializzazione dello stesso: i risultati della ricerca fatta dall’utente e gli eventualimessaggi di errori sollevati dall’applicazione.

• in una status bar per visualizzare i vari stati dell’applicazione.

6

Page 7: Agora v1.0 - LSI

Figure 4: Descrizione principale GUI.

Figure 5: Descrizione secondaria GUI.

7

Page 8: Agora v1.0 - LSI

Agora Search Engine e implementato in multithreading, ciascuna funzione ha associ-ato un thread per la propria esecuzione. La parte logica e la parte GUI hanno entrambedue thread associati per il funzionamento.Nella fase di avvio dell’applicazione un thread si occupa di inizializzare e visualizzare laGUI, mentre un’altro thread si occupa di eseguire il kernel dell’applicazione (la logica);in questo modo si evitano attese inutili (o il blocco della GUI) e le operazioni stessepossono essere eseguite in modo concorrente.

Le operazioni di ricerca, come descritto, avvengono dopo aver generato e proiettato idocumenti nello spazio LSI ; ogni qualvolta che un utente effettua una ricerca, il risultatoe immediato e viene mostrato direttamente dall’applicazione.

Figure 6: Ricerca andata a buon fine.

Nel caso in cui la ricerca e andata a buon fine si mostra il risultato, con il numerodi documenti recuperati in ordine decrescente (vedi figura 3), altrimenti viene mostratoun messaggio: ”Nessun Risultato” e la text field si evidenzia di rosso. Premendo il tastoESC si termina la ricerca.

8La funzione LUDecomposition() calcola la fattorizzazione della matrice A in una matrice triangolareinferiore L e una matrice triangolare superiore U.

9La funzione solve(B) risolve il sistema A ∗X = B.10Acronimo di Java Matrix Class.

8

Page 9: Agora v1.0 - LSI

Figure 7: Nessun risultato.

4 Conclusioni

Le conclusioni sulla LSI viste, in questa applicazione, sono:

• il costo computazionale della SVD e significativo in quanto la sua complessita dicalcolo e O(N3). E stato uno dei motivi per cui non c’e stata diffusione del metodoLSI,

• la scelta del valore di k per la riduzione della matrice,

• una buona scelta del valore di k puo effettivamente aumentare la precisione sualcuni parametri di riferimento di query. Questo ci fa capire che per un certovalore di k, LSI affronta alcune delle sfide di sinonimia.

• infine, LSI lavora meglio in applicazioni dove c’e poca sovrapposizione tra le querye documenti.

Per il futuro di Agora Search Engine potrebbe essere utile implementare la fun-zione di lettura di documenti, di vari formati (PDF, html, documenti Oracle, etc) edi informazioni direttamente extrapolate da un database (MySQL,PostgreSQL, Oracle,MSSQL), per avere una visione piu ampia sul suo funzionamento, oppure fare un piccoloesperimento trasformardolo in un’applicazione web, sfruttando i linguaggio di program-mazione JSP/Servlet, con la funzione di motore di ricerca per le pagine Web, per valutare

9

Page 10: Agora v1.0 - LSI

le prestazioni sia dal punto di vista computazionale e sia dal punto di vista di recuperodei documenti.

References

[1] Prof.ssa Paola Velardi. Latent Semantic Indexing. Corso di Metodi di estrazione diInformazioni dal Web a.a. 2010/11.

[2] Dr. E. Garcia. SVD and LSI Tutorial4: Latent Semantic Indexing (LSI) How-toCalculations. Mi Islita.com.

[3] Dr. E. Garcia. SVD and LSI Tutorial5: LSI Keyword Research and Co-OccurrenceTheory. Mi Islita.com.

[4] Thomas K Landauer (Department of Psychology - University of Colorado at Boul-der), Peter W. Foltz (Department of Psychology - New Mexico State University),Darrell Laham (Department of Psychology - University of Colorado at Boulder).An Introduction to Latent Semantic Analysis (1998). Discourse Processes.

[5] Christopher D. Manning, Prabhakar Raghavan, Hinrich Schutze. An Introductionto Information Retrieval April 1, 2009 - Cambridge University Press.

10