SoftwareprojektpraktikumMaschinelle Übersetzung
Jan-Thorsten Peter, Andreas Guta, Jan [email protected]
Vorbesprechung 5. Aufgabe 22. Juni 2017
Human Language Technology and Pattern RecognitionLehrstuhl für Informatik 6
Computer Science DepartmentRWTH Aachen University, Germany
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 1 Vorbesprechung 22. Juni 2017
Contents
1 Log-lineare Modellkombination 3
2 Downhill-Simplex-Verfahren 7
3 Och’s Minimum Error Rate Training (MERT) 18
4 Übung 5 29
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 2 Vorbesprechung 22. Juni 2017
1 Log-lineare Modellkombination
Source Language Text
Preprocessing
Postprocessing
Target Language Text
Global Search
Language Models
Phrase Models
Word Models
Reordering Models
...
e = argmaxeI1
{p(eI1|fJ
1
)}
= argmaxeI1
{∑m λmhm
(eI1, f
J1
)}
fJ1
eI1
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 3 Vorbesprechung 22. Juni 2017
Log-lineare Modellkombination
Mathematisch:
eI1 = argmaxeI1
{p(eI1|f
J1 )}
= argmaxeI1
exp(∑M
m=1 λmhm(eI1, f
J1 ))
∑eI1exp
(∑Mm=1 λmhm(e
I1, f
J1 ))
= argmaxeI1
{M∑
m=1
λmhm(eI1, f
J1 )
}
für Skalierungsfaktoren λm und Funktionen hm(eI1, fJ1 ), m = 1, . . . ,M .
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 4 Vorbesprechung 22. Juni 2017
Optimierung der Skalierungsfaktoren
eI1 = argmaxeI1
{M∑
m=1
λmhm(eI1, f
J1 )
}
für Skalierungsfaktoren λm und Funktionen hm(eI1, fJ1 ), m = 1, . . . ,M .
Algorithmen zur Optimierung der Skalierungsfaktoren λmI ideale Gewichtung der Einzelmodelle hm(eI1, f
J1 )
I direkte Optimierung bzgl. des verwendeten Fehlermaßes
I Optimierung auf Development-Daten (nicht in Trainingsdaten enthalten)
I evaluiere auf ungesehenen Test-Daten
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 5 Vorbesprechung 22. Juni 2017
Optimieren auf N-Best Listen
I eine manuelle Optimierung benötigt viele Iterationen
. sehr zeitaufwendig verschiedene Parameter-Konfigurationen wiederholtzu übersetzen
I optimieren auf N-Best Listen
. wiederhole solange neue N-Best Listen Einträge generiert werden:◦ erstelle eine N-Best Liste für jeden Quell-Satz für die aktuelle Parameter-
Konfiguration◦ füge die neu generierten mit den alten N-Best Listen zusammen◦ optimiere die Parameter auf den zusammengefügten N-Best Listen◦ starte eine neue Iteration mit den neuen Parametern
I Vorteil
. viel schneller
I Nachteil
. Das globale Optimum wird nicht immer erreicht (nur lokales)
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 6 Vorbesprechung 22. Juni 2017
2 Downhill-Simplex-Verfahren
Wie optimiert man nun die verschiedenen Skalierungsfaktoren?
I Downhill Simplex
. Hillclimbing-Verfahren
. langsame Konvergierung, aber relativ robust
. aufspannen eines M -Dimensionalen Simplex (M+1 Ecken)
. Schrittweise Verbesserung des schlechtesten Punktes (hier: Parameter-Konfiguration)
. Ziel: verringern der Kosten
I hier: verbessern des BLEU -Wertes
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 7 Vorbesprechung 22. Juni 2017
Beispiel
Beispielverlauf einer Simplex-Optimierung
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 8 Vorbesprechung 22. Juni 2017
Beispiel
Beispielverlauf einer Simplex-Optimierung
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 9 Vorbesprechung 22. Juni 2017
Beispiel
Beispielverlauf einer Simplex-Optimierung
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 10 Vorbesprechung 22. Juni 2017
Beispiel
Beispielverlauf einer Simplex-Optimierung
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 11 Vorbesprechung 22. Juni 2017
Beispiel
Beispielverlauf einer Simplex-Optimierung
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 12 Vorbesprechung 22. Juni 2017
Beispiel
Beispielverlauf einer Simplex-Optimierung
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 13 Vorbesprechung 22. Juni 2017
Algorithmus
Initialisierung:
I Simplex aufspannen: M + 1 Kosten berechnen
In jeder Iteration (bis Abbruch-Kriterium erfüllt):
I Kosten sortieren, Simplex-Schwerpunkt berechnen
I versuchen den schlechtesten Punkt zu verbessern
I keine Verbesserung→ den Simplex zusammenziehen
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 14 Vorbesprechung 22. Juni 2017
Schlechtesten Punkt verbessern
I Berechnung des Simplex-Schwerpunktes x0 =∑Mm=1 xmM
I Verlagerung des schlechtesten Punktes
I durch Reflektion:xr = x0 + α(x0 − xworst)
I durch Erweiterung:xe = x0 + γ(x0 − xworst)
I durch Kontraktion:xc = xworst + ρ(x0 − xworst)
xworst
x0
x0
x0
xworst
xworst
I typische Werte: α = 1.0, γ = 2.0, ρ = 0.5
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 15 Vorbesprechung 22. Juni 2017
Schlechtesten Punkt verbessern
I nicht möglich den schlechtesten Punkt zuverbessern?
⇒ ziehe den kompletten Simplex zusammen
. xi = x1 + σ(xi − x1) ∀i ∈ {2, . . . ,M + 1}
I typischer Wert: σ = 0.5x1
I die Optimierung endet, wenn
. abs (BLEU(xi)−BLEU(xj)) ≤ ε
. oder wenn z.B. eine bestimmte Anzahl an Iterationen erreicht wurde
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 16 Vorbesprechung 22. Juni 2017
Downhill Simplex
Algorithm 1: Downhill Simplexwhile Optimierungskriterium nicht erreicht do
SORTIERE Simplexpunkte: BLEU(x1) ≥ BLEU(x2) ≥ · · · ≥ BLEU(xM+1) ;BERECHNE Schwerpunkt x0 aller Punkte ausser xM+1 ;if BLEU(x1) ≥ BLEU(xr) ≥ BLEU(xM) then
REFLEKTIERE, d.h. ersetze xM+1 durch xr;else if BLEU(xr) > BLEU(x1) then
if BLEU(xe) ≥ BLEU(xr) ≥ BLEU(x1) thenEXPANDIERE, d.h. ersetze xM+1 durch xe;
elseREFLEKTIERE, d.h. ersetze xM+1 durch xr;
else // BLEU(xr) < BLEU(xM)
if BLEU(xc) ≥ BLEU(xM+1) thenKONTRAHIERE , d.h. ersetze xM+1 durch xc;
elseKOMPRIMIERE Simplex, xi = x1 + σ(xi − x1) ∀i ∈ {2, . . . ,M + 1};
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 17 Vorbesprechung 22. Juni 2017
3 Och’s Minimum Error Rate Training (MERT)
I Basiert auf der Powell’s Methode
I Üblicherweise schneller und stabiler als Downhill Simplex
I Ansatz: es wird jeweils nur ein Parameter λk verändert
∑
m
λmhm(eI1, f
J1 ) =
∑
m 6=k
λmhm(eI1, f
J1 ) + λkhk(e
I1, f
J1 )
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 18 Vorbesprechung 22. Juni 2017
Beispiel
λk
M∑
m=1λmhm(EI
1 , FJ1 )
Gesamtkosten von einer einzigen Übersetzung
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 19 Vorbesprechung 22. Juni 2017
Beispiel
λk
M∑
m=1λmhm(EI
1 , FJ1 )
Schnittpunkte der N-Best Hypothesen für Satz Eins
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 20 Vorbesprechung 22. Juni 2017
Beispiel
λk
M∑
m=1λmhm(EI
1 , FJ1 )
Schnittpunkte der N-Best Hypothesen für Satz Zwei
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 21 Vorbesprechung 22. Juni 2017
Update eines Parameters
I berechne BLEU an jedem Schnittpunkt (bzw. in der Mitte zwischen zweiSchnittpunkten)
I update den aktuellen Parameter auf den Wert des Schnittpunktes mit demhöchsten BLEU
I optimiere den nächsten Parameter
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 22 Vorbesprechung 22. Juni 2017
Berechnung der Konvexen Hülle
Algorithm 2: Line Sweep Algorithmusinput : Array a der Größe K mit Linien sortiert nach Steigung, j = 0for (i = 0 . . .K − 1; ) do
l = a[i]; // Aktuelle Gerade (line)l.x = −∞; // letzter Schnittpunktif (j > 0) then
// l.m Steigungif (a[j − 1].m == l.m) then
// l.y Schnittpunkt mit der y-Achse (offset)if l.y <= a[j − 1].y) then
continue; //Überspringe diese Geradej = j − 1; //Löschung des letzten Schnittpunkts
while (j > 0) dol.x = (l.y−a[j−1].y)
(a[j−1].m−l.m); //Schnittpunkt von l und a[j − 1]
if (a[j − 1].x < l.x) thenbreak;
j = j − 1; //Löschung des letzten Schnittpunktsif (j == 0) then
l.x = −∞;
a[j] = l;j = j + 1;
return a[0 . . . j − 1];
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 23 Vorbesprechung 22. Juni 2017
Algorithm 3: Eliminiere niedriger gelegene Linien// l.m Steigungif (a[j − 1].m == l.m) then
// l.y Schnittpunkt mit der y-Achseif l.y <= a[j − 1].y) thencontinue; //Überspringe diese Gerade
j = j − 1; //Löschung des letzten Schnittpunkts
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 24 Vorbesprechung 22. Juni 2017
upper envelope
a[j-1]
Algorithm 4: Vergleiche Schnittpunktewhile (j > 0) dol.x = (l.y−a[j−1].y)
(a[j−1].m−l.m); //Schnittpunkt von l und a[j − 1]
if (a[j − 1].x < l.x) thenbreak;
j = j − 1; //Löschung des letzten Schnittpunkts
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 25 Vorbesprechung 22. Juni 2017
currentIntersection
upper envelope
a[j-1]
Schnittpunkt mit a[j-1]
bisherigerSchnittpunkt
von a[j-1]
Algorithm 5: Vergleiche Schnittpunktewhile (j > 0) dol.x = (l.y−a[j−1].y)
(a[j−1].m−l.m); //Schnittpunkt von l und a[j − 1]
if (a[j − 1].x < l.x) thenbreak;
j = j − 1; //Löschung des letzten Schnittpunkts
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 26 Vorbesprechung 22. Juni 2017
currentIntersection
upper envelope
a[j-1]
Algorithm 6: Vergleiche Schnittpunktewhile (j > 0) dol.x = (l.y−a[j−1].y)
(a[j−1].m−l.m); //Schnittpunkt von l und a[j − 1]
if (a[j − 1].x < l.x) thenbreak;
j = j − 1; //Löschung des letzten Schnittpunkts
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 27 Vorbesprechung 22. Juni 2017
Algorithmus
Algorithm 7: MERTINITIALISIERE;while Neue Hypothese produziert wird do
while Parameter ändern sich doBerechne neue (zufällige) Parameter-Reihenfolge;for Jeden Parameter do
Berechne alle Schnittpunkte aller N-Best Listen;Berechne BLEU neu für alle Schnittpunkte (effizient!);Wähle besten Parameter;
Erzeuge neue N-Best Liste mit neuen Parametern;Füge die neuen N-Best Einträge zu der alten Liste hinzu
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 28 Vorbesprechung 22. Juni 2017
4 Übung 5
I Optimierung der Skalierungsfaktoren in der log-linearen Modellkombination
. Downhill Simplex
. MERT◦ Effiziente Schnittpunktberechnung (Aufgabe: wie?)◦ Effiziente BLEU Berechnung (Aufgabe: wie?)◦ ist es notwendig an jedem SchnittpunktBLEU komplett neu zu berechnen?◦ Begrenzung der Veränderung eines Parameters?
. Normierung der Parameter?
. N-Best Listen Größe?
. weitere Ideen?
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 29 Vorbesprechung 22. Juni 2017
Fragen?
J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 30 Vorbesprechung 22. Juni 2017
Top Related