Linguistica Computazionale Entropia e linguaggio 18 novembre 2014 Entropia A parità di numero di esiti possibili, meno uniforme è la distribuzione di probabilità e minore è l’entropia 2 Entropia e organizzazione l L’entropia aumenta con l’aumentare degli stati possibili di un sistema A parità di stati possibili l’entropia diminuisce se aumenta la “struttura” e l’”organizzazione” del sistema l aumenta la predicibilità delle dinamiche del sistema entropia l • maggiore “ridondanza dell’informazione” • regolarità nelle dinamiche del sistema • esistenza di schemi e pattern ricorrenti nella sequenza degli stati, ecc. 3 Un’applicazione dell’entropia L’entropia viene utilizzata per individuare le parole più informative sul contenuto di un testo l Più una parola è uniformemente distribuita in testi diversi, minore è la sua informatività l l l l “l'elettrone, insieme a protone e neutrone, è parte della struttura degli atomi” “i comuni sono parte della struttura della Pubblica Amministrazione” “parte dei squadre di calcio sono ormai in crisi economica” 4 Un’applicazione dell’entropia l Entropia di una parola in un corpus di testi C H (w) = − ∑ p(< w, ti >)log 2 p(< w, ti >) ti ∈C l p(<w,ti>) = probabilità che w ricorra nel testo ti l viene stimata come il rapporto tra la frequenza di w in ti e la frequenza complessiva di w in C 5 Un’applicazione dell’entropia C = {t1,t2,t3} (numero di testi nel corpus) l Distribuzione delle parole w1 e w2 nel corpus l l l f(w1,t1) = 4 f(w2,t1) = 2 l l l l f(w1,t2) = 2 f(w2,t2) = 2 f(w2,t3) = 2 H(w1) = -(4/6*log2(4/6) + 2/6*log2(2/6)) = 0.91 H(w2) = -(2/6*log2(2/6) + 2/6*log2(2/6) + 2/6*log2(2/6)) = 1.58 la parola w1 ha entropia minore ed è più utile per caratterizzare il contenuto dei testi, perché distribuita in maniera meno uniforme L’entropia viene usata per “pesare” le parole con cui indicizzare i testi 6 Entropia per parola l l W1n = variabile casuale che varia su tutte le sequenze w1, ... , wn di n parole di una lingua Entropia di sequenze di parole H (W1n ) = −∑ p (W1n ) log 2 p (W1n ) W1n l l questo valore cresce con la lunghezza di n Entropia per parola (entropy rate) 1 1 n H rate (W ) = H (W1 ) = − ∑ p (W1n ) log 2 p (W1n ) n n W1n n 1 7 Entropia di un linguaggio l l Possiamo immaginare un linguaggio L come una sequenza di parole potenzialmente infinita generata da un processo stocastico Entropia del linguaggio l limite a cui tende l’entropia per parola di un campione di un linguaggio che diventa progressivamente più grande n 1 H rate ( L) = lim H rate (W ) n →∞ l Teorema di Shannon-McMillan-Breiman l se il linguaggio L è generato da un processo stocastico ergodico e stazionario, allora vale che 1 H rate ( L) = lim − log p ( w1 ,..., wn ) n →∞ n 8 Entropia di un linguaggio l l Possiamo immaginare un linguaggio L come una sequenza di parole potenzialmente infinita generata da un processo stocastico Entropia del linguaggio l limite a cui tende l’entropia per parola di un campione di un linguaggio che diventa progressivamente più grande n 1 H rate ( L) = lim H rate (W ) n →∞ l Teorema di Shannon-McMillan-Breiman l se il linguaggio L è generato da un processo stocastico ergodico e stazionario, allora vale che 1 H rate ( L) = lim − log p ( w1 ,..., wn ) n →∞ n 9 Entropia di un linguaggio l l l Un processo stocastico è stazionario se le probabilità che assegna a sequenze di parole sono invarianti rispetto all’asse temporale l p(w1, …, wn) al tempo t è uguale a p(w1, …wn) al tempo t+n l i modelli markoviani sono stazionari Un processo è ergodico se aumentando la lunghezza di una sequenza di parole da esso generate, possiamo ottenere un campione perfettamente rappresentativo del processo l se un processo è ergodico, possiamo inferire le caratteristiche del processo a partire da un unico campione sufficientemente lungo del processo l se il linguaggio fosse generato da un sistema ergodico, qualsiasi campione del linguaggio (oltre una certa dimensione n) sarebbe un modello perfetto del linguaggio ATTENZIONE!! Il linguaggio in realtà non è né stazionario né ergodico 10 Cross entropy l Cross entropy H (W1n , m) = −∑ p (W1n ) log 2 m(W1n ) W1n l l l W1n è una variabile casuale con distribuzione “reale” p m è un modello stocastico di W1n che cerca di approssimare la sua distribuzione reale La cross entropy consente di valutare quanto bene un mio modello probabilistico approssima un certo processo stocastico H (W ) ≤ H (W , m) 11 Cross entropy l La cross entropy è il “costo” (in bits) di usare m come modello per descrivere un processo con distribuzione p l l lunghezza media in bits della codifica di messaggi che vengono prodotti con probabilità p, se invece di p si fosse usato per la codifica la distribuzione di probabilità m Siano m1, ..., mn modelli stocastici di un linguaggio L, la cui distribuzione reale di probabilità è p l quale mi è il modello corretto per L? l l l si calcola H(L) approssimandola con l’entropia misurata su un corpus sufficientemente ampio e rappresentativo di L per ogni mi, si calcola H(L, mi) Il modello corretto mi è il modello per il quale è minore lo scarto H(L, mi) – H(L) 12 Cross entropy l Generalmente non conosciamo la vera distribuzione p di un processo (linguaggio) e dunque non possiamo calcolare H(L) direttamente l per il teorema di Shannon-McMillan-Breiman possiamo approssimarla prendendo un campione sufficientemente grande di testi del linguaggio 1 H ( L) ≤ H ( L, m) = lim − log m( w1 ,..., wn ) n →∞ n l l Per ogni modello mi, calcoliamo l’entropia di un corpus sufficientemente lungo e rappresentativo usando mi come distribuzione di probabilità 13 Il modello “corretto” è quello con la cross entropy minore Cross entropy l l l Qual è il modello migliore di un processo che produce sequenze di 20 parole (ogni messaggio è indipendente dall’altro)? Supponiamo che sia nota la distribuzione reale p del processo M1 0.05 M5 0.10 M2 0.05 M6 0.20 M3 0.05 M7 0.20 M4 0.10 M8 0.25 Possiamo applicare la formula della cross entropy al modello mi h( M 1, m) = −0.05 * log 2 m( M 1) cross entropy puntuale per il messaggio M1 14 Cross entropy l l Supponiamo di non conoscere p, ma di avere un corpus di 100 sequenze generate da p, in cui i vari messaggi ricorrono con queste frequenze: M1 5 M5 10 M2 5 M6 20 M3 5 M7 20 M4 10 M8 25 Per il teorema di Shannon-McMillan-Breiman, 1 h( M 1, m) = − * 5 * log 2 m( M 1) 100 l I due modi di computare la cross entropy coincidono perché il corpus che abbiamo usato è un campione perfettamente rappresentativo del processo probabilistico 15