Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de Vorbesprechung 5. Aufgabe 22. Juni 2017 Human Language Technology and Pattern Recognition Lehrstuhl für Informatik 6 Computer Science Department RWTH 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 f J 1 Preprocessing Language Models Global Search )} ê = arg max e I 1 { p ( e I 1 f J 1 = arg max e I 1 { m λ m h m ( e I 1, f J 1 Postprocessing )} Phrase Models Word Models Reordering Models... ê I 1 Target Language Text J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 3 Vorbesprechung 22. Juni 2017
Log-lineare Modellkombination Mathematisch: êî 1 = arg max e I 1 = arg max e I 1 = arg max e I 1 { p(e I 1 f J 1 )} ( M ) exp m=1 λ mh m (e I 1, f 1 J) ( M ) exp ẽ I m=1 λ mh m (ẽ I 1, f 1 J) 1 { M } λ m h m (e I 1, f J 1 ) m=1 für Skalierungsfaktoren λ m und Funktionen h m (e I 1, f J 1 ), m = 1,..., M. J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 4 Vorbesprechung 22. Juni 2017
Optimierung der Skalierungsfaktoren êî 1 = arg max e I 1 { M m=1 λ m h m (e I 1, f J 1 ) } für Skalierungsfaktoren λ m und Funktionen h m (e I 1, f J 1 ), m = 1,..., M. Algorithmen zur Optimierung der Skalierungsfaktoren λ m ideale Gewichtung der Einzelmodelle h m (e I 1, f 1 J) direkte Optimierung bzgl. des verwendeten Fehlermaßes Optimierung auf Development-Daten (nicht in Trainingsdaten enthalten) evaluiere auf ungesehenen Test-Daten J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 5 Vorbesprechung 22. Juni 2017
Optimieren auf N-Best Listen eine manuelle Optimierung benötigt viele Iterationen sehr zeitaufwendig verschiedene Parameter-Konfigurationen wiederholt zu übersetzen 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 Vorteil viel schneller 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? 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 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: Simplex aufspannen: M + 1 Kosten berechnen In jeder Iteration (bis Abbruch-Kriterium erfüllt): Kosten sortieren, Simplex-Schwerpunkt berechnen versuchen den schlechtesten Punkt zu verbessern keine Verbesserung den Simplex zusammenziehen J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 14 Vorbesprechung 22. Juni 2017
Schlechtesten Punkt verbessern Berechnung des Simplex-Schwerpunktes x 0 = Verlagerung des schlechtesten Punktes Mm=1 x m M durch Reflektion: x r = x 0 + α(x 0 x worst ) durch Erweiterung: x e = x 0 + γ(x 0 x worst ) durch Kontraktion: x c = x worst + ρ(x 0 x worst ) x 0 x worst x 0 x worst x 0 x worst 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 nicht möglich den schlechtesten Punkt zu verbessern? ziehe den kompletten Simplex zusammen x i = x 1 + σ(x i x 1 ) i {2,..., M + 1} typischer Wert: σ = 0.5 x 1 die Optimierung endet, wenn abs (BLEU(x i ) BLEU(x j )) ɛ 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 Simplex while Optimierungskriterium nicht erreicht do SORTIERE Simplexpunkte: BLEU(x 1 ) BLEU(x 2 ) BLEU(x M+1 ) ; BERECHNE Schwerpunkt x 0 aller Punkte ausser x M+1 ; if BLEU(x 1 ) BLEU(x r ) BLEU(x M ) then REFLEKTIERE, d.h. ersetze x M+1 durch x r ; else if BLEU(x r ) > BLEU(x 1 ) then if BLEU(x e ) BLEU(x r ) BLEU(x 1 ) then EXPANDIERE, d.h. ersetze x M+1 durch x e ; else REFLEKTIERE, d.h. ersetze x M+1 durch x r ; else if BLEU(x c ) BLEU(x M+1 ) then KONTRAHIERE, d.h. ersetze x M+1 durch x c ; else KOMPRIMIERE Simplex, x i = x 1 + σ(x i x 1 ) i {2,..., M + 1}; // BLEU(x r ) < BLEU(x M ) J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 17 Vorbesprechung 22. Juni 2017
3 Och s Minimum Error Rate Training (MERT) Basiert auf der Powell s Methode Üblicherweise schneller und stabiler als Downhill Simplex Ansatz: es wird jeweils nur ein Parameter λ k verändert λ m h m (e I 1, f J 1 ) = λ m h m (e I 1, f J 1 ) + λ kh k (e I 1, f J 1 ) m k m J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 18 Vorbesprechung 22. Juni 2017
Beispiel M m=1 λ mh m (E I 1, F J 1 ) λ k Gesamtkosten von einer einzigen Übersetzung J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 19 Vorbesprechung 22. Juni 2017
Beispiel M m=1 λ mh m (E I 1, F J 1 ) λ k Schnittpunkte der N-Best Hypothesen für Satz Eins J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 20 Vorbesprechung 22. Juni 2017
Beispiel M m=1 λ mh m (E I 1, F J 1 ) λ k 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 berechne BLEU an jedem Schnittpunkt (bzw. in der Mitte zwischen zwei Schnittpunkten) update den aktuellen Parameter auf den Wert des Schnittpunktes mit dem höchsten BLEU 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 Algorithmus input : Array a der Größe K mit Linien sortiert nach Steigung, j = 0 for (i = 0... K 1; ) do l = a[i]; // Aktuelle Gerade (line) l.x = ; // letzter Schnittpunkt if (j > 0) then // l.m Steigung if (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 Gerade j = j 1; //Löschung des letzten Schnittpunkts while (j > 0) do l.x = (l.y a[j 1].y) ; //Schnittpunkt von l und a[j 1] (a[j 1].m l.m) if (a[j 1].x < l.x) then break; j = j 1; //Löschung des letzten Schnittpunkts if (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 Steigung if (a[j 1].m == l.m) then // l.y Schnittpunkt mit der y-achse if l.y <= a[j 1].y) then continue; //Ü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 Schnittpunkte while (j > 0) do l.x = (l.y a[j 1].y) ; //Schnittpunkt von l und a[j 1] (a[j 1].m l.m) if (a[j 1].x < l.x) then break; j = j 1; //Löschung des letzten Schnittpunkts J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 25 Vorbesprechung 22. Juni 2017
upper envelope a[j-1] Schnittpunkt mit a[j-1] currentintersection bisheriger Schnittpunkt von a[j-1] Algorithm 5: Vergleiche Schnittpunkte while (j > 0) do l.x = (l.y a[j 1].y) ; //Schnittpunkt von l und a[j 1] (a[j 1].m l.m) if (a[j 1].x < l.x) then break; j = j 1; //Löschung des letzten Schnittpunkts J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 26 Vorbesprechung 22. Juni 2017
upper envelope a[j-1] currentintersection Algorithm 6: Vergleiche Schnittpunkte while (j > 0) do l.x = (l.y a[j 1].y) ; //Schnittpunkt von l und a[j 1] (a[j 1].m l.m) if (a[j 1].x < l.x) then break; 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: MERT INITIALISIERE; while Neue Hypothese produziert wird do while Parameter ändern sich do Berechne 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 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 Schnittpunkt BLEU 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