1 stochastische kontextfreie Grammatik Eine kontextfreie Grammatik G ist ein 4-Tupel, (V; ; R; S ) mit Nicht-Terminalsymbolen V , Terminalsymbolen , Regeln R der Form X ! (mit X und dem Startsymbol S 2 V . 2 V; 2 (V [ )) Warum Wahrscheinlichkeiten dazu? Wertung von Hypothesen (z.B. bei Spracherkennung), Auswahl des wahrscheinlichsten Ergebnisses (Parsing), frühzeitiges Ausschalten unwahrscheinlicher Analyseversuche (Parsing, Effizienzsteigerung) 2 stochastische kontextfreie Grammatik Eine stochastische oder probabilistische kontextfreie Grammatik G ist ein 5-Tupel, (V; ; R; S; P ), mit V; ; R; S wie vorher und P eine Funktion von R nach [0,1] mit 8X 2 V : 2(VX[) P (X ! ) = 1 Die Summe der Wahrscheinlichkeiten für die Regeln mit einem bestimmten Nichtterminal auf der linken Seite muss 1 sein. Beispiel: S VP VP NP V Adv ! NP V P !V ! V Adv ! Hans ! schläft ! ständig (1:0) (0:5) (0:5) (1:0) (1:0) (1:0) Wahrscheinlichkeit einer Zeichenfolge: Summe der W'keiten der Parsebäume dazu. W'keit eines Parsebaums: W'keit der erzeugenden Linksableitung 3 Wahrscheinlichkeit einer Ableitung Wahrscheinlichkeit einer Linksableitung: Seien die Regeln durchnummeriert und die Ableitung repräsentiert durch die Folge der verwendeten Regeln. Sei Xm eine Zufallsvariable, die von der Regel bestimmt wird, die in Schritt m verwendet wurde. Dann ist eine Linksableitung ein stochastischer Prozess X1; ::; XM mit der Regelmenge der Grammatik als Zustandsmenge. Die W'keit einer Linksableitung ist: P (X1 = ri ; ::; XM = riM ) = P (XM = riM j X1 = ri ; ::; XM ,1 = riM , ) QP (X1 = ri ; ::; XM ,1 = riM , ) = Mm=1 P (Xm = rim j X1 = ri ; ::; Xm,1 = rim, ) 1 1 1 1 1 1 1 nötig: alle Faktoren, d.h. alle bedingten W'keiten für jede Regel. Annahme, Regeln unabhängig von vorangegangenen Ableitungsschritten: P (Xm = rim j X1 = ri ; ::; Xm,1 = rim, ) = P (rim ) 1 also P (X1 1 M Y = ri1 ; ::; XM = riM ) = m=1 P (rim ) 4 Parsingbeispiel Grammatik: 1 2 3 4 5 6 7 8 9 10 S VP VP NP NP PP V N N D ! ! ! ! ! ! ! ! ! ! NP V P V NP V P PP DN NP PP 'mit dem Fernglas' 'sieht' 'Dame' 'Frau' 'die' 0.2 0.8 NP 1 D 0.8 N S 0.2 0.7 1 VP 0.3 PP 0.3 0.7 V (1:0) (0:7) (0:3) (0:8) (0:2) (1:0) (1:0) (0:4) (0:6) (1:0) 5 Lesarten von 'Die Dame sieht die Frau mit dem Fernglas' I: S NP D VP N NP V PP NP D N Die Dame sieht die Frau mit dem Fernglas II: S NP D VP N VP PP V NP D N Die Dame sieht die Frau mit dem Fernglas 6 Die Ableitungen S ) w über (ohne lexikalische Ersetzungen): I: (S, NP VP, D N VP, D N V NP, D N V NP PP, D N V D N PP) = (1, 4, 2, 5, 4) II: (S, NP VP, D N VP, D N VP PP, D N V NP PP, D N V D N PP) = (1, 4, 3, 2, 4) Welche davon ist wahrscheinlicher? P (I ) = (1 0:8 0:7 0:2 0:8) = 0:09 P (I ) = (1 0:8 0:3 0:7 0:8) = 0:13 7 Notationen zu Parsebäumen 1 2: der am weitesten links stehende NichtterminalKnoten von 1 wird durch 2 ersetzt, linker Knoten und Wurzel müssen dabei das gleiche Nichtterminal als Label tragen. l(n) : Label des Knotens n. R( ) : Wurzel von . Y ( ) : “yield“ des Baumes , Ergebnis der Regelanwendung, generierter String. L( ) : Label des am weitesten links stehenden Knoten in . 8 Korrespondenz zu partiellen Parsebäumen Regel X !X1; ::XK entspricht Teilbaum mit Wurzel x und Knoten X 1; ::Xk . Sei m der Teilbaum zu rm, 1 :: M = tm die Folge der Teilbäume der Ableitung ri1 ; ::; riM . Dabei ist M der vollständige Parsebaum. Dann ist die Wahrscheinlichkeit eines Parsebaums: M Y P ( ) = P (tM ) = m=1 P (m j tm,1) P (m j 1 :: m,1) = P (rm j r1; ::; rm,1) Gesucht: Extraktor-Funktion g , die die relevanten Eigenschaften von tm zur W'keitbestimmung extrahiert, mit: P (k+1 j tk ) P (k+1 j g(tk )) und das ist der Label des am weitesten links stehenden Knotens im Ergebnis von k , g ( ) = L(Y ( )). 9 Ein Parser für SKFGs Adaption des Viterbi-Algorithmus, Variante des CYKParsers, Zeitkomplexität O(N 3T 3), Speicherkomplexität O(NT 2). VN = X1; ::XN ; S = X1; ! = w1; ::wT , G in CNF (Analyse-W'keiten bleiben erhalten). Akkumulator n(Xi), Knoten n, Nichtterminale Xi. Jeder Knoten n bestimmt einen Teilstring mit den Stringpositionen (s; t), sei ws;t = ws+1; ::; wt dieser Teilstring. Die dazu inverse Funktion (nur partiell definiert!) bestimmt aus einem Teilstring denjenigen Parsebaumknoten, der am nächsten zur Wurzel liegt. s;t(Xi) = max:Y ()=ws;t P ( j l(R( )) = Xi); 1 i N; 0 s < t T W'keit des wahrscheinlichsten Baums mit ! = w0T : 0;t(s) = max:Y ()=! P ( j l(R( )) = S ) Der Baum selbst ist: arg max:Y ()=! P ( j l(R( )) = S ) 10 weiter: Parser Sei pi!jk = P (Xi!Xj Xk j Xi); pi!w = P (Xi!w j Xi). Konstruktion des Parsebaums, bottom-up: 1. Initialisierung 8i; t : 1 i; N; 1 t T t,1;t(Xi) = pi!wt 2. Rekursion 8i; r; t : 1 i; N; 1 r + 1 < t T r;t(Xi) = max 1 j N pi!jk r;s(Xj )s;t(Xk ) 1kN r<s<t 2 66 66 66 4 3 77 77 77 5 r;t(Xi) r;t(Xi) = arg max 1 j N pi!jk r;s(Xj )s;t(Xk ) 1kN r;t(Xi) r<s<t 3. Rekonstruktion, n = (s; t) wenn t , s 2 = nil (s; s;t(l(n))) sonst nil wenn t , s 2 right(n) = (s;t(l(n)); t) sonst l(left(n)) = Xs;t(l(n)) l(right(n)) = Xs;t(l(n)) left(n) 8 > > < > > : 8 > > < > > : 11 weiter Parser Begründungen Initialisierung: Die Nichtterminale, die die Terminale erzeugen, erhalten die W'keiten der lexikalischen Regeln. Rekursion: ; sammeln die Indizes der rechten Seiten der verwendeten Regeln auf, speichert die String-Position zwischen X und X. r;t(Xi) wird aus den W'keiten für Xj und Xk berechnet: max:Y ()=wr;t P ( j l(R( )) = Xi) = maxj;k;s[P (Xi!Xj Xk j Xi) max 0:Y ( 0)=wr;sP ( 0 j l(R( 0)) = Xj ) max 00:Y ( 00)=ws;tP ( 00 j l(R( 0)) = Xk)] 12 Parameterschätzungen für prob. Grammatiken wenn ein annotierter Korpus vorliegt: relative Häufigkeiten verwenden, Achtung bei spärlichen Daten wenn nicht: – Zuerst alle gültigen Parsebäume erzeugen, dann eine Gleichverteilung für alle Bäume pro Satz annehmen. Häufigkeitszählung der verwendeten Regeln (nach linkem Symbol), gewichtet mit der W'keit des Baumes: ergibt neue Verteilung für die Regeln, daraus neue Verteilung für die Bäume; das kann beliebig wiederholt werden. Problem: Komplexität, Anzahl der Parsebäume exponentiell zur Stringlänge. – Inside-Outside-Algorithmus 13 Parameterschätzungen für prob. Grammatiken Inside-Outside-Algorithmus Idee: Verwende die aktuellen W'keiten der Regeln, um davon abhängige andere Masse einzuschätzen. Ziel: Finde die Menge von Regel-W'keiten, mit denen es am ehesten möglich ist, den Trainings-Korpus zu generieren. Die Variablen: Die Inside-W'keit Ii! (s; t) schätzt die W'keit P (Xi ) ws;t j Xi); dass ws;t abgeleitet wird, wenn Xi vorliegt. Die Outside-W'keit Oi! (s; t) schätzt die W'keit P (S ) w0;sXiwt;T j S ); dass die o.a. Zeichenkette von S abgeleitet wenn S vorliegt. wird, 14 Inside-Variablen-Initialisierung: 8i; t : 1 i N; 1 t T Ii! (t , 1; t) = pi!wt Inside-Variablen-Rekursion 8i; r; t : 1 i N; 1 r < t T N X X ! Ii (r; t) = j;k=1 r<s<t Pi!jk Ij! (r; s) Ik! (s; t) Outside-Variablen-Rekursion 8i; t : 1 i N; 1 t T O! 15 Herleitung Inside: P (Xi ) wr;t j Xi) = PN P (Xi ) Xj Xk ) wr;t j Xi) = j;k=1 PN P j;k=1 r<s<t P (Xi ) Xj Xk j Xi) P (Xj ) wr;s j Xj ) P (Xk ) ws;t j Xk ) Outside: P (S ) w0;sXiwt;T j S ) = PN Pr,1 j;k=1P s=0 P (S ) w0;sXj wt;T ) w0;sXk Xiwt;T ) w0;sws;r Xiwt;T )+ T P (S ) w0;rXj ws;T ) w0;rXiXk ws;T ) w0;rXiwt;sws;T ) = s=t+1 PN Pr,1 w0;sXj wt;T )P (Xj ) Xk Xi j Xj )P (Xk ) ws;r j Xk )+ P ( S ) j;k=1P s=0 T s=t+1 P (S ) w0;r Xj ws;T P (Xj ) XiXk j Xj )P (Xk ) wt;s j Xk ) = Komplexität für beide Variablen O(N 3T 3). 16 Wiedereinschätzungsgleichung Idee: pi!w = P (Xi!w j Xi) = P (PX(iX!)w) i Xj Xk ) pi!jk = P (Xi!Xj Xk j Xi) = P (XPi! (X ) i mit: ! P i P (Xi) = j W j !2W P ! 1 1 P (Xi!w) = j W j P (Xi!Xj Xk ) = 1 X j W j !2W X X !2W ! (t , 1; t) p O i!w i 1 t T; w = w P! t ! (r; t) p ! (r; s) I ! (s; t) O I i ! jk j k 0r<s<tT i P!