Statistische Maschinelle ¨ Ubersetzung Zu ¨ Ubung 4: Wortalinierung (IBM1)
Christian Wurm
Heinrich-Heine-Universit¨at D¨usseldorf WS 2017/18
30. November 2017
Wortalinierung - Lexikalische ¨Ubersetzungsmodelle In unserem einfachsten ¨Ubersetzungsmodell entspricht jedes
englische Wort ei genau einem deutschen Wort da(i) (oder NULL).
a ist die Alinierungsfunktion.
Wir haben dann
P(~e|a, ~d) =
|~e|
Y
i=1
P(ei|da(i))
Außerdem
P(~e, a|d) =~ P(~e|a, ~d) · P(a|d)~
wobei P(a|d) gleichverteilt ist und nur von der L¨~ ange von d~ (und ~e) abh¨angt, nicht aber von ~e und d~ selbst.
Sch¨atzung von ¨Ubersetzungswahrscheinlichkeiten (1) Woher bekommen wir P(e|d)?
Wenn wir parallele Korpora h¨atten, die auf Wortebene aliniert sind, k¨onnten wir die ¨Ubersetzungswahrscheinlichkeiten mit der Maximum-Likelihood-Methode sch¨atzen:
P(e|d) = C(e|d) C(d)
Sch¨atzung von ¨Ubersetzungswahrscheinlichkeiten (2)
Wenn wir f¨ur jeden Satz nicht die eine richtige Alinierung gegeben h¨atten, sondern mehrere m¨ogliche, und jede h¨atte eine
Wahrscheinlichkeit (P(a|~e, ~d)), k¨onnten wir auch z¨ahlen, wie oft e|d vorkommt, und jedes Vorkommen mit P(a|~e, ~d) gewichten.
⇒ anteilige H¨aufigkeiten (fractional counts)
Alinierungswahrscheinlichkeiten
Wenn wir ¨Ubersetzungwahrscheinlichkeiten P(e|d) h¨atten, k¨onnten wir Alinierungswahrscheinlichkeiten ausrechnen:
P(a|~e, ~d) = P(~e, a|d)~
P(~e|d)~ = P(~e, a|d)~ P
a0∈A(|~e|,|d|)~
P(~e, a0|d)~
. . . wir drehen uns im Kreis . . . L¨osung: EM-Algorithmus
EM-Algorithmus f¨ur lexikalische ¨Ubersetzungswahrsch.
Parameter, die wir suchen: P(e|d)
Versteckte Variable: Wortalinierung ⇒ P(a|~e, ~d)
1. Initialisiere die Parameterwerte (uniform).
2. Wende das Modell auf die Daten an → Berechne P(a|~e, ~d).
F¨ur jedes Satzpaar:
a. Berechne P(~e, a|d) f¨~ ur jede m¨ogliche Alinierung a.
b. Normalisiere jedes P(~e, a|d) um~ P(a|~e, ~d) zu erhalten.
3. Lerne ein neues Modell (von den aktuellen P(a|~e, ~d)).
F¨ur jedes Wortpaar (e, d):
a. Z¨ahle anteilige H¨aufigkeiten C(e|d)
b. Normalisiere die anteiligen H¨aufigkeiten, um neue Parameterwerte zu erhalten: P(e|d) = P C(e|d)
e0 ∈lex(E) C(e0|d)
Wiederhole Schritte 2. und 3.
EM-Algorithmus: Beispiel Siehe Tafel.
EM f¨ur IBM-Modell 1
Problem bei der Anwendung von EM (wie gerade pr¨asentiert):
Man muss in jeder Runde f¨ur jedes Satzpaar alle m¨oglichen Alinierungen
”ausbuchstabieren“.
F¨ur IBM-Modell 1 gibt es einen Ausweg: Die anteiligen H¨aufigkeiten (Schritt 3a.) k¨onnen direkt aus den
Ubersetzungswahrscheinlichkeiten der vorherigen Runde bestimmt¨ werden. Der Umweg ¨uber die Alinierungswahrscheinlichkeiten
(Schritt 2) ist nicht mehr n¨otig. (Herleitung siehe Skript.)
C(e|d, ~e, ~d) = P(e|d) P|d|~
j=0 P(e|dj)
|~e|
X
i=1
δ(e, ei)
|d|~
X
j=0
δ(d, dj)
P(e|d) =
P
(~e, ~d)∈KC(e|d, ~e, ~d) P
e0∈lex(E)
P
(~e, ~d)∈KC(e0|d, ~e, ~d)
repeat
k = k + 1
Initialize all counts C to 0 for all (~e, ~d) ∈ K do
for all i ∈ 1. . .|~e| do Z = 0
for all j ∈ 0. . . |d|~ do Z+ = Pk−1(ei|dj) for all j ∈ 0. . . |d|~ do
c = Pk−1(ei|dj)/Z C(ei|dj)+ = c C(dj)+ = c
for all (e, d) ∈ {lex(E) × lex(D)} do
EM f¨ur IBM-Modell 1: Beispiel (1)
Korpus:
1. (Hund bellte, dog barked) 2. (Hund, dog)
1. Initialisiere uniform
P0(e|d) dog barked Hund 12 12
bellte 12 12 NULL 12 12
2a. Anteilige H¨aufigkeiten auf Satzebene
In Bezug auf Folie 8: Die schwarzen Br¨uche sind P0 (e|d). Die Summe P|d|~
j=0 P(e|dj) wird in der letzten Zeile gebildet. In rot sehen Sie dann die eigentlichen anteiligen H¨aufigkeiten bzw. wie sie berechnet wurden.
C1(e|d, ~e1, ~d1) dog barked Hund 12·2
3 = 13 12·2
3 = 13 bellte 12·2
3 = 13 12·2
3 = 13 NULL 12·23 = 13 12·23 = 13
P (→ Z) 32 32
C1(e|d, ~e2, ~d2) dog Hund 12·1 = 1
2
NULL 12·1 = 1
2
P (→ Z) 1
2b. Anteilige H¨aufigkeiten auf Korpusebene
C(e|d) dog barked P
(→ C(d)) Hund 13 + 12 = 56 13 76
bellte 13 13 23
NULL 13 + 12 = 56 13 76
3. Neue Parameter
P1(e|d) dog barked Hund 56 · 6
7 = 57 13 · 6
7 = 27 bellte 12 12
NULL 57 27
Iteriere 2a + 2b + 3
Die wahrscheinlichste Alinierung
Nachdem wir IBM-Modell 1 trainiert haben, wie alinieren wir die Satzpaare?
⇒ Finde die wahrscheinlichste Alinierung (Viterbi-Alinierung):
ˆa = argmax
a∈A(|~e|,|d|)~
P(a|~e, ~d) = argmax
a∈A(|~e|,|d|)~
P(~e, a|d)~
F¨ur IBM-Model 1: P(~e, a|d) =~ 1
(|d|~ + 1)|~e|
|~e|
Q
i=1
P(ei|da(i))
aˆi = argmax
j∈0...|d|~
P(ei|dj)
Beispiel
ein Satzpaar de: x y z en: a b c
beste Alinierung, die das EM-IBM1-Training ergibt:
NULL x y z
a b c
Repr¨asentation
Alinierungsfunktion a(1) = 1, a(2) = 0, a(3) = 2
(Integer-) Array [1,0,2]
Repr¨asentation von Alinierung (2) j-i-Format
0-0 1-2
NULL x y z
a b c
• j: Index deutscher Satz, i: Index englischer Satz
• Indizierung f¨angt bei 0 an
• Null-Alignierungen werden nicht explizit dargestellt
• Vorteil: Darstellung von many-to-many-alignments m¨oglich