Intelligent Information Retrieval Chiedo l’intervento Della protezione civile ..c’è ben più delle “parole-chiave” Intelligent Information Retrieval • Catturare i “contenuti” espressi mediante media diversi: – Testi – Speech – Immagini – Audio – Video • Problematiche e applicazioni molto più complesse che in un motore di ricerca standard • Rappresentazione e recupero dei contenuti spesso basati su metodologie di artificial intelligence Prossime lezioni • Trattamento del linguaggio naturale – Opinion Mining – Speech processing – Information Extraction – Question Answering • Multimedia IR – Image, Audio, Video retrieval Trattamento del linguaggio naturale (NLP) un’introduzione Perché NLP è utile? • • • • • • Information Extraction Question answering Opinion Mining Conversational agents Summarization Machine translation Intelligent Information Retrieval Applicazioni • Queste applicazioni richiedono una grande quantità di conoscenza • Vi ricordate HAL in 2001:Odissea nello Spazio? (Kubrik, 68) • http://www.youtube.com/watch?v=npN9l 2Bd06s&feature=related Open the bay pod doors, Hal http://www.youtube.com/watch?v=nHJkAYdT7qo Cosa serve per interpretare il dialogo? • Speech recognition • Conoscenza sul significato delle parole • Come le parole concorrono a determinare il significato della frase o domanda • Risoluzione delle referenze anaforiche (where you get that idea, Hal?) • ..and much more.. Un esempio più realistico What is the Fed’s current position on interest rates? • Cosa o chi è “Fed”? • Cosa significa “have a position” (in italiano c’è la stessa espressione, “avere una posizione”? • In che modo “current” modifica il senso della domanda? Rappresentazione dei testi in IR “classico” Romney Battles McCain for Michigan Lead By MICHAEL LUO DETROIT — With economic issues at the top of the agenda, the leading Republican presidential candidates set off Monday on a final flurry of campaigning in Michigan ahead of the state’s primary that could again shake up a remarkably fluid Republican field. Recent polls have indicated the contest is neck-and-neck between former Gov. Mitt Romney of Massachusetts and Senator John McCain of Arizona, with former Gov. Mike Huckabee of Arkansas further back. Mr. Romney’s advisers have acknowledged that the state’s primary is essentially do-or-die for him after successive losses in Iowa and New Hampshire. He has been campaigning heavily throughout the state, emphasizing his childhood in Michigan and delivered a policy speech on Monday focused on aiding the automotive industry. In his speech at the Detroit Economic Club, Mr. Romney took Washington lawmakers to task for being a “disinterested” in Michigan’s plight and imposing upon the state’s automakers a litany of “unfunded mandates,” including a recent measure signed by President Bush that requires the raising of fuel efficiency standards. He criticized Mr. McCain and Senator Joseph I. Lieberman, independent of Connecticut, for a bill that they have pushed to cap and trade greenhouse gas emissions. Mr. Romney asserted that the bill would cause energy costs to rise and would ultimately be a “job killer.” Mr. Romney further pledged to bring together in his first 100 days representatives from the automotive industry, unions, Congress and the state of Michigan to come up with a plan to “rebuild America’s automotive leadership” and to increase to $20 billion, from $4 billion, the federal support for research and development in energy, fuel technology, materials science and automotive technology. Modello vettoriale “bag of words” 17 the 13 and 10 of 10 a 8 to 7s 6 in 6 Romney 6 Mr 5 that 5 state 5 for 4 industry 4 automotive 4 Michigan 3 on 3 his 3 have 3 are 2 would 2 with 2 up 2 think 2 technology 2 speech 2 primary 2 neck 2 is 2 further 2 fuel 2 from 2 former 2 energy 2 campaigning 2 billion 2 bill 2 at 2 They 2 Senator 2 Republican 2 Monday 2 McCain 2 He 2 Gov 1 wrong 1 who 1 upon 1 unions 1 raising 1 pushed 1 presidential 1 polls 1 policy 1 plight 1 pledged 1 plan 1 people 1 or 1 off 1 measure 1 materials 1 mandates 1 losses 1 litany 1 leading 1 leadership 1 lawmakers 1 killer 1 jobs 1 job 1 its 1 issues 1 indicated 1 independent 1 increase 1 including 1 imposing 1 him 1 heavily 1 has 1 greenhouse 1 gone 1 gas 1 future 1 forever 1 focused 1 flurry 1 fluid 1 first 1 final 1 field 1 federal 1 essentially 1 emphasizing 1 emissions 1 efficiency 1 economic 1 don 1 domestic 1 do 1 disinterested 1 die 1 development 1 delivered 1 days 1 criticized 1 could 1 costs 1 contest 1 come 1 childhood 1 cause 1 cap 1 candidates 1 by 1 bring 1 between 1 being 1 been 1 be 1 back 1 automobile 1 automakers 1 asserted 1 aiding 1 ahead 1 agenda 1 again 1 after 1 advisers 1 acknowledged 1 With 1 Washington 1 There 1 Recent 1 President 1 New 1 Mitt 1 Mike 1 Massachusetts 1 Lieberman 1 Joseph 1 John 1 Iowa 1 In 1I 1 Huckabee 1 Hampshire 1 Economic 1 Detroit 1 Connecticut 1 Congress 1 Club 1 Bush 1 Arkansas 1 Arizona 1 America Modello “bag of words” • Sapete “di cosa” si parla • Ma non cosa viene detto.. • Trattamento del linguaggio naturale: “avvicinarsi” a HAL! • 3 problemi: – Riconoscimento del parlato – Analisi dei testi – Generazione di testi + sintesi vocale Avvicinarsi a Hal (without cheating!!) • http://www.manifestation.com/neurotoys /eliza.php3 ELIZA Trattamento del linguaggio naturale • Riconoscimento del parlato: convertire il segnale vocale di un parlante in una stringa di termini machine-readable John goes to Trattamento del linguaggio naturale • Elaborazione del linguaggio naturale: convertire una stringa di termini machine-readable in una rappresentazione machine-processable che ne evidenzi la struttura (morfologica, sintattica, semantica, pragmatica..) 1. Struttura morfologica Analisi morfologica John goes to Boston by bus John/name goes/Verb to/prep Boston/name by/prep bus/noun 2.Struttura sintattica Analisi sintattica Sentence NounPhrase VerbPhrase Verb Name PrepPhrase prep Noun Phrase Name PrepPhrase Prep Noun John goes to Boston by bus 3. Struttura semantica Analisi semantica John goes to Boston by bus Livelli di descrizione: approfondimenti • • • • • Fonetica (speech) Morfologia Sintassi (sentence) Semantica Pragmatica, logica.. (discourse) Morfologia • Input : una sequenza di parole di un vocabolario • Output: una sequenza di coppie (lemma,tag morfologica, eventualmente associata a maggiori informazioni, es: flessione, derivazione, composizione, ambiguità) Es: andiamoci andare/verbo ci/pron bellissimo bello/nome_superl hanno mangiato mangiare/verbo piano piano/(nome,avv,agg) Morfologia: metodi • Metodi basati sulla conoscenza (es. grammatiche) En-large-ment-s • Metodi di apprendimento automatico (stocastici, algebrici) Analisi Sintattica • Input: sequenza di coppie (lemma, tag morfologica o POS/part of speech) • Output: albero sintattico le cui foglie sono lemmi Es: Giovanni/nome accompagna/verbo Maria/nome con/prep il/art piano/(nome,agg,avv) ./punt Sintassi: Metodi • Metodi basati sulla conoscenza, es. grammatiche • Metodi di apprendimento automatico (stocastici, algebrici) Sintassi: problemi 1. Ambiguità dei POS in input Es: Giovanni/nome accompagna/verbo Maria/nome con/prep il/art piano/(nome,agg,avv) ./punt E’ possibile risolvere l’ambiguità morfologica usando conoscenza grammaticale, infatti la sequenza “art nome punt” è consentita, mentre “art avv punt” o “art agg punt” no 2.Ambiguità sintattica L’ambiguità sintattica è data dal fatto che un gruppo preposizionale “prep art nome” (con il piano) può essere collegato sia al verbo (accompagna) che al nome (Maria) Infatti le sequenze “verbo gruppo preposizionale” e “nome “gruppo preposizionale” sono entrambe sintatticamente corrette Albero 1 S NP VP Verb name NP name PP prep NP art noun Giovanni accompagna maria con il piano Albero 2 S NP VP Verb name NP PP name prep NP art noun Giovanni accompagna maria con il piano Ambiguità sintattica E’ solo la semantica che ci aiuta ad immaginare che in “accompagna Maria col piano” il piano fa da accompagnamento, mentre ad esempio in una frase con identica struttura come “accompagna Maria con gli occhiali” è Maria che porta gli occhiali!!! Analisi Semantica • Input: albero sintattico le cui foglie sono lemmi • Output: espressione logica o grafo, i cui argomenti o nodi sono concetti, i cui predicati o archi sono relazioni semantiche Dall’albero sintattico al grafo semantico sogg ogg giovanni accompagna sogg ogg giovanni accompagna modif(con) modif(con) maria piano maria piano Grafi sintattici (ottenuti direttamente dagli alberi) Dall’albero sintattico al grafo semantico sogg ogg giovanni accompagna modif(con) maria piano Person: Maria patient agent Person: Giovanni eseguire-acco mpagnamento instrum pianoforte Grafi concettuali: trasformare parole in concetti non ambigui, le relazioni sintattiche in relazioni concettuali Ambiguità: problema pervasivo nel NLP • Cosa serve? • Conoscenza linguistica in formato computer-processable (eventualmente acquisibile (semi) automaticamente): – Conoscenza dei fonemi – Conoscenza dei prefissi, suffissi, lemmi, desinenze – Conoscenza delle categorie grammaticali – Conoscenza dei significati – …. • Algoritmi per il trattamento e l’elaborazione della conoscenza Metodi per l’elaborazione del LN: approfondimenti Base di conoscenza (lemmi, categorie grammaticali, regole, Significati) Modellare la conoscenza linguistica Algoritmi di elaborazione del LN Definire algoritmi per generare strutture formali e non ambigue da dati non strutturati e ambigui Metodi per l’elaborazione del LN: approfondimenti • Algoritmi per l’elaborazione (morfo/sint/sem) – Metodi basati su conoscenza – Metodi stocastici /statistici – Metodi algebrici • Metodi per la modellazione della conoscenza – Apprendimento automatico (a sua volta, basato sul algoritmi probabilistici, knowledge-based, algebrici) Hidden Markov Models Modelli probabilistici per il trattamento del linguaggio naturale Sommario • Gli Hidden Markov Models sono un modello probabilistico molto studiato in computer science, specialmente in ambito di telecomunicazioni e ricerca operativa • Nel trattamento del linguaggio naturale, vengono utilizzati per: – Speech recognition – Part of Speech tagging – Analisi sintattica Catene di Markov (richiamo) • Sia X1,X2..Xn una sequenza di variabili aleatorie che assumono valori in un alfabeto finito • Per la formula di Bayes: n P(X1,X 2 ,..X n ) P(Xi / X1,..X i1 ) i1 • Le variabili sono dette formare una cartena di Markov se: n P(X1,X 2 ,..X n ) P(Xi/ X i1 ) i1 • Il valore della variabile aleatoria al tempo i dipende solo dal valore al tempo precedente Catene di Markov • La limitazione di avere un solo elemento di memoria (lo stato precedente) è solo apparente, infatti: P(Z1,Z 2,...Zk) P(Zi | Zi k,Zi k 1...Zi 1) i • Ponendo: Zi k,Zi k 1...Zi 1 Xi • La sequenza Z specifica la sequenza X e viceversa • La maggiore complessità risulta nella crescita di dimensionalità dell’insieme , dato che ogni valore di corriponde ad una possibile sequenza di k valori di Z • Quindi è possibile modellare catene di Markov a memoria 2,3 ecc. Catene di Markov • Possiamo modellare i valori delle variabili aleatorie come STATI e etichettare le transizioni fra stati mediante probabilità condizionate: P(X i s / X i1 s' ) p(s' / s) s,s' • Es: p(pioggia/nuvole) Stato1: pioggia Stato2: nuvole Stato3: sole Catene di Markov nascoste (HMM) • Un HMM è una quintupla HMM : s0 ,S,Y,P,Q • Dove: S è un insieme di stati, s0 lo stato iniziale, Y un insieme di simboli di uscita y1..yn, P è una distribuzione di probabilità delle transizioni s’s: p(s’|s), Q è una distribuzione di probabilità dei valori di output q(y|s,s’) • La probabilità di osservare una certa sequenza di simboli è: P(y1,y 2 ,...y k ) p(si | si1 )q(y i | si1,si ) s1..sk i1..k • In un HMM le transizioni fra stati sono “nascoste”, ciò che è visibile è solo la sequenza dei simboli emessi • Si ha inoltre: p(y i ,s | s' ) q(y i | s,s' ) p(s | s' ) s yi s’ Esempio 1 • Un eremita si trova in una caverna e non può osservare il cielo. Però nella caverna ci sono delle alghe: il maggiore o minore livello di umidità delle alghe è probabilisticamente collegato allo stato del tempo Un esempio più correlato: parole e S: le parti del discorso part of speech (POS) Il piano suona forte Y: le parole del vocabolario di una lingua Le parole che possono essere emesse nelle transizioni sverbo sono un sottoinsieme di Y verbo art p(agg/art) nome agg avv Notate che da ogni stato può essere emesso un sottoinsieme dei simboli in Y (es ”suona” non può essere emesso nelle transizioni da art agg: q(suona|art,agg)=0. In altri termini, “agg” non è un POS di “suona”) Catene di Markov nascoste • • • Data una sequenza di simboli osservata, quale è la sequenza di stati più probabile che possa averla causata? P(s1,s2..sk,y1,y2..yk | s0) P(s1,s2..sk | y1,y2...yk,s0) P(y1,y2..yk | s0) Es: se osservo asciutto-umido-fradicio, questa sequenza può essere causata da molte sequenze di stati, quale è la più probabile? Se osservo il piano suona forte, le sequenze di POS possibili sono (dato il modello di Markov della figura precedente): art agg verbo avv, art avv verbo agg, art nome verbo avv, art nome verbo agg…., quale è la più probabile? Problema: TROVARE argmax P(s1,s2..sk,y1,y2..yk | s0) s1,s2..sk Quale è la sequenza di stati più probabile? • Quale di queste sequenze di stati può avere generato “il piano suona forte”? – – – – – – Art Agg Verb Avv Art Agg Verb Agg Art Nome Verb Avv Art Nome Verb Agg Art Avv Verb Avv Art Avv Verb Agg Trellies (tralicci) Evidenziano l’evoluzione di un processo che genera una sequenza Evoluzione temporale art art art art art art art art agg agg agg agg agg agg agg agg avv avv avv avv avv avv avv avv ver ver ver ver ver ver ver ver nom nom nom nom nom nom nom nom accellera il Il piano suona 6 sequenze forte S Antonio 2 sequenze cammino Esempio 2 In questo trellis tutte le p(x|x’) sono non nulle Asciutto --umido---fradicio Per sequenze lunghe k, avrò |S|k possibili percorsi ..Torniamo alla stima della max_prob sequence • Poiché si tratta di un processo di Markov, per ogni i: P(s1,..si,si 1,..sk,y1,..yi,yi 1..yk | s0) P(s1,..si,y1,..yi | s0)P(si 1,..sk,yi 1..yk | si) (si) max P(s1,..si,y1,..yi | s0) s1..si1 max P(s1,..si,si 1,..sk,y1,..yi,yi 1..yk | s0) s1..sk max max P(si 1,..sk,yi 1..yk | s) i (si ) s si1..sk si Cioè posso considerare uno stato interno della catena e calcolare la sottosequenza che massimizza la probabilità di raggiungerlo i(s) • i(si) è una funzione che determina quale sequenza di i-1 stati ha la massima probabilità di condurre ad uno stato si al passo i-esimo, condizionata al fatto di partire da uno stato noto s0, e ad aver osservato una certa sottosequenza di simboli y1..yi Esempio di calcolo della prob. di raggiungere un certo stato Consideriamo una possibile sequenza di stati per una stringa di simboli: P(art,agg,ve r,agg,il, piano,suona, forte | s0) P(art,agg,ve r,il, piano,suona| s0)P(agg, forte | ve r) art art art art agg agg agg agg avv avv avv avv ver ver ver ver nom nom nom nom s0 Il piano suona e iterando: P(art,agg,ver,il,piano,suona|s0)= P(art,agg,il piano|s0)P(verbo,suona|agg) e infine : forte P(art,il|s0)P(agg,piano|art)P(verbo,suona|agg)P(agg,forte|ver) Max_prob sequence (1) max max P(si 1,..sk, yi 1..yk | s) i (s) s si1..sk Perciò: 1)Per ogni livello i del trellis,e per ogni stato s del livello i, trovare la sequenza che massimizza la probabilità di arrivare a s : i (s) 2)Quindi, trovare la sequenza più probabile che da s del livello i del trellis conduce a sk: max P(si 1,..sk,yi 1..yk | s) si1..sk 3)Infine, variando s del livello i, trovare la sequenza completa più probabile (la formula (1)) Max_prob sequence (si) max P(s1,..si,yi,..yi | s0) s1..si1 Poiché negli HMM ho che: p(y i ,s | s' ) q(y i | s,s' ) p(s | s' ) Posso scrivere: i (si ) max P(s1,s2..si,y1,y2..yi | s0) s1...si1 max p(yi,si / si 1) max P(s1,..si 1,y1...yi | s0) max p(yi,si / si 1) i1(si1 ) si1 s1...si2 si1 max k (s) s Algoritmo di Viterbi 1. 2. 3. Set 0 (s0 ) 1 Applica la formula precedente (2) per calcolare la funzione gamma per per la prima colonna del trellis, cioè: 1(s) max p(y1,s | s' ) 0 (s' ) p(y1,s | s0) Notate che la 0 è zero per s diverso da s0!! Calcolate la 2 per tutti gli s del secondo livello del trellis 2 (s) max p(y 2 ,s | s' ) 1(s' ) s' ed eliminate le transizioni s’s per le quali p(y2,s|s’)1(s’)< 2(s) 4. Ripetete lo stesso passo per tutti gli stati della colonna i-esima, fino alla colonna k, e tornando indietro, generate le possibili sequenze a partire dallo stato s che massimizza k (s) Esempio La/pron,art vecchia/agg,nome la/pron,art porta/nome,verbo la/pron,art sbarra/nome,verbo a p s0 ag n v la =0,6 1(art)=p(la,art|s0) 1(pron)=p(la,pron|s0) =0,4 1(s, s≠art,pron)=0 Come vedremo, il problema è di stimare le p(wk,posi|posj) Supponiamo di avere a disposizione queste stime i=2 s0 a p a p ag ag n n v la p(vecchia,nom e| art) 1(art) 0,5 0,6 0,30 p(vecchia,agg| art) 1(art) 0,5 0,6 0,30 p(vecchia,nom e| pron) 1( pron) 0,1 0,4 0,04 p(vecchia,agg| pron) 1( pron) 0,01 0,4 0,004 v vecchia 2(ag)=0,3, 2(n)=0,3 Poiché max=0,3 vengono cancellati due percorsi (sia allo stato ag che allo stato n si arriva con > probabilità dallo stato a, Quindi si eliminano i percorsi s0-p-ag e s0-p-n) i=3 s0 a p a p a p ag ag ag n n n v la v vecchia v la p(la,art | ag) 2(ag) 0,1 0,3 0,03 p(la, p | ag) 2(ag) 0,2 0,3 0,06 p(la,art | n) 2(n) 0,3 0,3 0,09 p(la, p | n) 2(n) 0,7 0,3 0,21 3(a) 0,09 3( p) 0,21 ..proseguendo s0 a p a p a p a p a p a p ag ag ag ag ag ag n n n n n n v la v vecchia v la v v v porta la sbarra I percorsi possibili sono: 1: art n art n pron ver, e 2: art n pron ver art n. Se 6(n)> 6(v), l’algoritmo restituisce solo il percorso 2, altrimenti il percorso 1 L’algoritmo di Viterbi ha moltissime applicazioni • l'algoritmo di Viterbi serve per determinare quale sequenza di dati trasmessi sia la più probabile causa del flusso osservabile in uscita. • l'algoritmo calcola la probabilità dei diversi flussi in ingresso in modo ricorsivo, eliminando in blocco, ad ogni passo, quelli di probabilità minore. Tale eliminazione permette una cospicua riduzione della complessità delle relative operazioni di calcolo. • Applicazioni pressochè in ogni campo dell’informatica: telefonia cellulare, speech recognition, genetica.. HMM+Viterbi per riconoscimento del parlato Forme d’onda (segnale vocale) Vettori delle caratteristiche spettrali Stima dei parametri (fonemi) HMM+Viterbi Sequenza di parole HMM+Viterbi per l’analisi sintattica Albero sintattico (parse tree) Definiamo stringa trasversale un pattern di tags sintattiche che collega un termine alla radice dell’albero, es: I: Pp-NP-S (il primo elemento è il POS) am: vpb-VP-VP-S in: In-PP-VP-S HMM per l’analisi sintattica combina le stringhe HMM1: data una stringa di parole, predice la stringa di POS HMM2: predice la sequenza di stringhe trasversali Il solito problema:data una osservazione, predire la sequenza di stati che la genera T è l’insieme delle tag sintattiche, S l’insieme delle stringhe trasversali , wi sono le parole osservate Euristica per combinare le stringhe Si combinano nodi con la stessa etichetta Stima dei parametri del modello • L’algoritmo di Viterbi si basa sulla stima delle probabilità p(yk,s|s’) dove yk è l’output osservato e s,s’ sono gli stati del modello (parole, POS, stringhe trasversali..) – I parametri (cioè le p) possono essere stimati su un “training set” ovvero sequenze annotate da esperti (ad esempio il Wall Steet Journal corpus, per i testi scritti, e vari “speech” corpora PRONELEX, CMUdict..) – Algoritmo di Baum-Welch per la stima dei parametri http://labrosa.ee.columbia.edu/doc/HTKBook21/node7.html Esempio (WSJ) <s id="s1"> <graph root="s1_500"> <terminals> <t id="s1_1" word="Pierre" pos="NNP"/> <t id="s1_2" word="Vinken" pos="NNP"/> <t id="s1_3" word="," pos=","/> <t id="s1_4" word="61" pos="CD"/> <t id="s1_5" word="years" pos="NNS"/> <t id="s1_6" word="old" pos="JJ"/> <t id="s1_7" word="," pos=","/> <t id="s1_8" word="will" pos="MD"/> <t id="s1_9" word="join" pos="VB"/> <t id="s1_10" word="the" pos="DT"/> <t id="s1_11" word="board" pos="NN"/> <t id="s1_12" word="as" pos="IN"/> Centinaia di migliaia di frasi <t id="s1_13" word="a" pos="DT"/> annotate con POS e tag sintattiche. <t id="s1_14" word="nonexecutive" pos="JJ"/> <t id="s1_15" word="director" pos="NN"/> E’ possibile ottenere stime <t id="s1_16" word="Nov." pos="NNP"/> significative di p(wi,POSi|POSi-1) <t id="s1_17" word="29" pos="CD"/> E p(POSi,Si|POSi-1,Si-1) <t id="s1_18" word="." pos="."/> </terminals> Per approfondimenti • Statistical Methods for Speech Recognition • Frederick Jelinek • MIT press