Transcript n-gram

Modelos Estadísticos del lenguaje
•
•
•
•
Modelos del lenguaje (Language Models, LM)
Noisy Channel model
Modelos simples de Markov
Smoothing
PLN Modelos del lenguaje
1
Language Models 1
• Modelos estadísticos
• Modelos del lenguaje (LM)
• Vocabulario (V), palabra
• wV
• Lenguaje (L), oración
• sL
• L  V* normalmente infinito
• s = w1,…wN
• Probabilidad de s
• P(s)
PLN Modelos del lenguaje
2
Noisy Channel Model 1
• Mecanismo de modelado estadístico de un canal de
comunicación de mensajes en presencia de ruido
• Se pretende optimizar la calidad de la comunicación
de mensajes a través del canal en presencia de ruido
• Compresión (eliminación de la redundancia) y calidad
de la transmisión (conseguida introduciendo
redundancia de forma controlada de forma que se
pueda recuperar el mensaje original en presencia de
ruido)
PLN Modelos del lenguaje
3
Noisy Channel Model 2
W
message
X
encoder
input to
channel
PLN Modelos del lenguaje
Channel
p(y|x)
Y
decoder
Output from
channel
W*
Attempt to
reconstruct
message
based
on output
4
Noisy Channel Model 3
• Capacidad del canal (C): Nivel al que se puede
transmitir información con una probabilidad
pequeña de ser incapaz de recuperar la entrada a
partir de la salida
•
C  max I(X;Y)
p(X)
• Alcanzamos la capacidad del canal si logramos
diseñar un input code X con distribución estadística
p(X) que maximice la I (información mutua) entre
entrada y salida.
PLN Modelos del lenguaje
5
Noisy Channel Model 4
• En PLN no podemos actuar sobre la fase de codificación
(encoding). El problema es decodificar la salida para lograr
la entrada más verosimil
I
Noisy Channel
p(o|I)
O
decoder
Iˆ
p(i)p(o|i)
ˆ
I  argmaxp(i| o)  argmax
 argmaxp(i)p(o|i)
p(o)
i
i
i
PLN Modelos del lenguaje
6
Noisy Channel Model 5
p(i)p(o|i)
ˆ
I  argmaxp(i| o)  argmax
 argmaxp(i)p(o|i)
p(o)
i
i
i
Modelo del lenguaje
PLN Modelos del lenguaje
Probabilidad del canal
7
Noisy Channel Model 6
lenguaje real X
noisy channel X  Y
lenguaje observado Y
Deseamos recuperar X a partir de Y
PLN Modelos del lenguaje
8
Noisy Channel Model 7
lenguaje real X
texto correcto
noisy channel X  Y
errores
lenguaje observado Y
PLN Modelos del lenguaje
texto con
errores
9
Noisy Channel Model 8
lenguaje real X
texto correcto
noisy channel X  Y
eliminación
de espacios
lenguaje observado Y
PLN Modelos del lenguaje
texto sin
espacios
10
Noisy Channel Model 9
lenguaje real X
texto
language model
noisy channel X  Y
pronunciación
acoustic model
lenguaje observado Y
PLN Modelos del lenguaje
habla
11
Noisy Channel Model 10
lenguaje real X
árbol
probabilistic CFG
noisy channel X  Y
lenguaje observado Y
PLN Modelos del lenguaje
inserción de
terminales
texto
12
Noisy Channel Model 11
lenguaje real X
lengua f
noisy channel X  Y
traducción
lenguaje observado Y
PLN Modelos del lenguaje
lengua o
13
Noisy Channel model 12
ejemplo: ASR Automatic Speech Recognizer
Cadena acústica
Cadena de palabras
Modelo del lenguaje
PLN Modelos del lenguaje
Modelo acústico
14
Noisy Channel model 13
ejemplo: Traducción Automática
Modelo del lenguaje objetivo
PLN Modelos del lenguaje
Modelo de la traducción
15
Implementación de LM
• Implementación intuitiva
• Enumerar s  L
• Calcular las p(s)
• Parámetros del modelo |L|
• Simplificaciones
• historia
• hi = { wi, … wi-1}
• Modelos de Markov
PLN Modelos del lenguaje
16
Modelos de Markov simples 1
• Modelos de Markov de orden n+ 1
• P(wi|hi) = P(wi|wi-n+1, … wi-1)
• 0-grama
• 1-grama
• P(wi|hi) = P(wi)
• 2-grama
• P(wi|hi) = P(wi|wi-1)
• 3-grama
• P(wi|hi) = P(wi|wi-2,wi-1)
PLN Modelos del lenguaje
17
Modelos de Markov simples 2
• n grande:
• más información del contexto (más poder discriminativo)
• n pequeño:
• más casos en el corpus de entrenamiento (más confianza)
• Selección de n:
• ej. para |V| = 20.000
PLN Modelos del lenguaje
n
num. parámetros
2 (bigrams)
400,000,000
3 (trigrams)
8,000,000,000,000
4 (4-grams)
1.6 x 1017
18
Modelos de Markov simples 3
• Parámetros de un modelo de n-grama
• |V|n
• Estimación MLE
• a partir de un corpus
• Problema sparseness
PLN Modelos del lenguaje
19
Modelos de Markov simples 4
• Modelo 1-gram
C ( w)
PMLE ( w) 
V
• Modelo 2-gram
C ( wi 1wi )
PMLE ( wi | wi 1 ) 
C ( wi 1 )
• Modelo 3-gram
C ( wi 2 wi 1wi )
PMLE ( wi | wi 1 , wi 2 ) 
C ( wi 2 wi 1 )
PLN Modelos del lenguaje
20
Modelos de Markov simples 5
PLN Modelos del lenguaje
21
Modelos de Markov simples 6
PLN Modelos del lenguaje
22
Modelos de Markov simples 7
Distribución real de probabilidad
PLN Modelos del lenguaje
23
Modelos de Markov simples 8
Los casos vistos están sobre estimados, los no vistos
tienen probabilidad nula
PLN Modelos del lenguaje
24
Smoothing 1
• Métodos que actúan sobre el contaje de los ngramas
• Laplace, Lidstone, Jeffreys-Perks
• Métodos que actúan sobre las probabilidades:
• Held-Out
• Good-Turing
• Descuento
• Métodos de combinación
• Interpolación lineal
• Back Off
PLN Modelos del lenguaje
25
Smoothing 2
Laplace (add 1)
C(w1  wn )  1
Plaplace(w1  wn ) 
NB
P = probabilidad de un n-grama
C = contaje del n-grama en el corpus de entrenamiento
N = total n-gramas en el corpus de entrenamiento
B = parámetros del modelo (n-gramas posibles)
PLN Modelos del lenguaje
26
Smoothing 3
Lidstone (generalización de Laplace)
C(w1  wn )  λ
PLid (w1  wn ) 
N  Bλ
 = número positivo pequeño
M.L.E:  = 0
Laplace:  = 1
Jeffreys-Perks:  = ½
PLN Modelos del lenguaje
27
Smoothing 4
Held-Out
• Calcular qué porcentaje de la masa de probabilidad
debe conservarse para los n-gramas no presentes en
el corpus de entrenamiento
• Se reverva parte del corpus de entrenamiento como
corpus de validación (otra parte es para test)
• Se calculan cuántos n-gramas ausentes del corpus de
entrenamiento aparecen en el de validación
• Posibilidad de usar Cross-Validation
PLN Modelos del lenguaje
28
Smoothing 5
Held-Out
Sea un n-grama w1… wn
r = C(w1… wn)
C1(w1… wn) frecuencia del n-grama en el training set
C2(w1… wn) frecuencia del n-grama en el held out set
Nr número de n-gramas con frecuencia r en el training set
Tr 
 C (w  w )
2
1
{ w1wn :C1 ( w1wn )  r }
n
Tr
Pho ( w1  wn ) 
Nr N
PLN Modelos del lenguaje
29
Smoothing 6
Good-Turing
E ( N r 1 )
r  (r  1)
E( Nr )
*
PGT  r N
*
r* = “frecuencia ajustada”
Nr = número de n-gram-types que aparecen r veces
E(Nr) = “valor esperado”
E(Nr+1) < E(Nr)
PLN Modelos del lenguaje
30
Smoothing 7
Métodos de descuento
Primero se calcula la probabilidad de held-out.
• Absolute discounting: Decrementar en una
pequeña constante la probabilidad de cada ngrama observado en el corpus de aprendizaje
• Linear discounting: Decrementar la probabilidad
de cada n-grama observado en el corpus de
aprendizaje multiplicándola por una cantidad.
PLN Modelos del lenguaje
31
Smoothing 8
Combinación de métodos
Pli (wn | wn2 , wn1 ) 
1P1 (wn )  2 P2 (wn | wn1 )  1P3 (wn | wn2 , wn1 )
• Combinación lineal de 1-grama, 2-grama, 3-grama, ...
• Estimación de las  mediante un corpus de validación
PLN Modelos del lenguaje
32
Smoothing 9
Katz’s Backing-Off
• Usar n-grama cuando hay suficientes casos en el
corpus de entrenamiento, si no hacer back-off a
n-1-grama
• Repetir en caso de necesidad
PLN Modelos del lenguaje
33
Enriquecimiento de los LM
• Actuación sobre la historia
• Modelos basados en clases
• agrupación de palabras en clases
• Rosenfeld, 2000:
•
•
•
•
P(wi|wi-2,wi-1) = P(wi|Ci) P(Ci|wi-2,wi-1)
P(wi|wi-2,wi-1) = P(wi|Ci) P(Ci|wi-2,Ci-1)
P(wi|wi-2,wi-1) = P(wi|Ci) P(Ci|Ci-2,Ci-1)
P(wi|wi-2,wi-1) = P(wi|Ci-2,Ci-1)
PLN Modelos del lenguaje
34
Structured Language Models
• Jelinek, Chelba, 1999
• Inclusión de la estructura sintáctica en la historia
• Ti son las estructuras sintácticas
• árboles binarios lexicalizados
PLN Modelos del lenguaje
35