Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle...

30
Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl [email protected] 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

Transcript of Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle...

Page 1: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 2: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 3: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 4: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 5: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 6: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 7: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 8: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

Beispiel

Beispielverlauf einer Simplex-Optimierung

J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 8 Vorbesprechung 22. Juni 2017

Page 9: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

Beispiel

Beispielverlauf einer Simplex-Optimierung

J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 9 Vorbesprechung 22. Juni 2017

Page 10: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

Beispiel

Beispielverlauf einer Simplex-Optimierung

J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 10 Vorbesprechung 22. Juni 2017

Page 11: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

Beispiel

Beispielverlauf einer Simplex-Optimierung

J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 11 Vorbesprechung 22. Juni 2017

Page 12: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

Beispiel

Beispielverlauf einer Simplex-Optimierung

J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 12 Vorbesprechung 22. Juni 2017

Page 13: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

Beispiel

Beispielverlauf einer Simplex-Optimierung

J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 13 Vorbesprechung 22. Juni 2017

Page 14: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 15: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 16: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 17: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 18: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 19: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 20: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 21: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 22: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 23: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 24: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 25: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 26: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 27: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 28: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 29: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

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

Page 30: Softwareprojektpraktikum Maschinelle Übersetzung · Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de

Fragen?

J.-T. Peter, A. Guta, J. Rosendahl Maschinelle Übersetzung 30 Vorbesprechung 22. Juni 2017