Entropia e linguaggio

annuncio pubblicitario
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
Scarica