Conditional Random Fields und die aktuelle Umsetzung in RapidMiner Felix Jungermann Überblick Entwicklung der CRFs Definition der CRFs Training von CRFs Effiziente Nutzung von CRFs samt Beispiel Umsetzung in RapidMiner altes/aktuelles Plugin Ausblick 09.10.2007 Felix Jungermann 2 Entwicklung – Allgemein Entwicklung HMM – MEMM – CRF Wiederholung: HMM: gerichtet, generativ MEMM: gerichtet, abhängig von Beobachtung Vermeidung früherer Nachteile HMM Strikte Unabhängigkeitsannahme Keine komplexen Merkmale MEMM Label Bias Problem (*Tafel*) •„Conservation of score mass“ 09.10.2007 Felix Jungermann 3 Entwicklung – Markov Random Fields (1/2) Markov Random Fields Ungerichtete graphische Modelle Azyklischer Graph G=(V,E) Knoten (Zustände) entsprechen Labels (1to1) Es gilt die Markov-Eigenschaft: p(yv|yw:v≠w) = p(yv|yw:v~w) Aufgrund der Ungerichtetheit gibt es keine „Vorgänger“, somit muss die Wahrscheinlichkeit durch lokale Funktionen bestimmt werden! 09.10.2007 Felix Jungermann 4 Entwicklung – Markov Random Fields (2/2) Potentialfunktion: Φ = Φci: Aci R+ ci ist Clique auf G Aci entspricht allen Belegungen der CliquenKnoten Keine Wahrscheinlichkeit! Φ p(y1,...,yn)=1/Z * ∏Φci (yi1,...,yi|ci|) Φ Z=∑(ΠΦci (yi1,...,yi|ci|)) (Normalisierung) Yn 09.10.2007 • (Erläuterung bei CRFs) Felix Jungermann 5 Definition – Conditional Random Fields (1/4) CRF ist MRF, welches von x abhängt! p(y1,...,yn|x) anstatt p(y1,...,yn) Annahme: Graph entspricht einer firstorder Kette Cliquen sind dann verbundene Labels 09.10.2007 Y1 Y2 Y3 X1 X2 X3 Felix Jungermann 6 Definition – Conditional Random Fields (2/4) Φci (yi1,...,yi|ci|) aus MRFs hat hier also die Form: Φk (yi-1,yi,x,i) bereits aus MEMMs bekannt Beispiel: Φk(yi-1,yi,x,i) = b(x,i) wenn yi-1 = [ORG] und yi = [LOC] b(x,i) = 1 wenn Beobachtung an Position i das Wort „Deutschland“ ist, sonst 0 09.10.2007 Felix Jungermann 7 Definition – Conditional Random Fields (3/4) p(y1,...,yn|x)=(1/Z(x))n* ∏∑Φk (yi-1,yi,x,i) k i=1 Nach Hammersley-Clifford (G ist Baum): p(y|x) = (1/Z(x)) * n exp (∑∑Φk (yi-1,yi,x,i)) k i=1 Trainingsgewichte einführen: p(y|x,λ) = (1/Z(x,λ)) n* exp (∑∑λkΦk(yi-1,yi,x,i)) k i=1 09.10.2007 Felix Jungermann 8 Definition – Conditional Random Fields (4/4) Z(x,λ) ist ein Normalisierungsfaktor n Z(x,λ) = ∑ exp(∑∑λkΦ k(yi-1,yi,x,i)) k i=1 Y Z ist sozusagen die Summe aller „Treffer“ ALLER MÖGLICHER Labelsequenzen. n p ist sozusagen: Anzahl der Regeln, die für eine Labelsequenz feuern, geteilt durch die Anzahl der Regeln, die für alle Labelsequenzen feuern! 09.10.2007 Felix Jungermann 9 Training Training: Logarithmus der bedingten Wahrscheinlichkeit wird maximiert! (Maximum log-likelihood) n Fk(y,x) = ∑Φk(yi-1,yi,x,i) i=1 L(λ)=∑[log(1/Z(x(j))) + ∑λkFk(y(j),x(j))] = ∑[∑λkFk(y(j),x(j)) - log(Z(x(j)))] Diese Funktion ist konvex und garantiert daher Finden des glob. Max.! alle j Beispiele alle k PFkt. alle j Beispiele alle k PFkt. 09.10.2007 Berechnung mit iterative Scaling od. gradientenb. Felix Jungermann Methoden 10 Effiziente Berechnung von p(y|x,λ) Berechnung mithilfe von Matrizen Bei n-langen Sequenzen: n+1 Matrizen {Mi(x)|i=1,...,n+1} der Größe |Y|x|Y|, wobei Y dem Alphabet für y entspricht. Mi(y‘,y|x,λ)=exp(∑kλk Φk(y‘,y,x,i)) n+1 p(y|x,λ) = (1/Z(x,λ)) ∏ Mi(yi-1,yi|x,λ) n+1 i=1 Z(x,λ) = [∏ Mi(x)] i=1 09.10.2007 Felix Jungermann 11 Effiziente Nutzung – Beispiel (1/4) x := Felix geht nach Hamburg. y := [PER][NIX][NIX] [LOC] Pseudo-Regeln: f1 = 1, wenn yi-1 = NIX, yi = LOC, xi = Hamburg f2 = 1, wenn yi-1 = NIX, yi = PER, xi = Felix f3 = 1, wenn yi-1 = PER, yi = LOC, xi = Hamburg LOC PER NIX Jedes Feld enthält abhängig von seiner Position den Eintrag exp(∑λf) – wobei ∑λf die Anzahl der Regeln ist, die für die aktuelle Belegung feuern! LOC PER NIX 09.10.2007 Felix Jungermann 12 Effiziente Nutzung – Beispiel (2/4) Felix geht nach Hamburg. 1. Stelle 1. Matrix: 09.10.2007 LOC PER NIX LOC 1 1 1 PER 1 1 1 NIX 1 e1 1 Felix Jungermann 13 Effiziente Nutzung – Beispiel (3/4) 1 1 1 1 1 1 1 1 2. Stelle 1 1 1 1 1 1 1 1 1 1 3. Stelle + 5. Stelle (auch 1-Matrix) 09.10.2007 Felix Jungermann 1 1 1 e1 1 1 e1 1 1 4. Stelle 14 Effiziente Nutzung – Beispiel (4/4) n+1 p*(y|x,λ) = ∏ Mi(yi-1,yi|x) = e2 i=1 M1(start,PER|Felix) = e1 M2(PER,NIX|geht) = 1 M3(NIX,NIX|nach) = 1 M4(NIX,LOC|Hamburg) = e1 M5(LOC,NIX|stop) = 1 Z(x,λ)= alle Belegungen multipliziert = e3 p(y|x, λ) = e2/e3 = e-1 ͌ 37% 09.10.2007 Felix Jungermann 15 Umsetzung in RapidMiner – CRF-plugin (1/2) RapidMiner ist Lernumgebung zur Analyse von Datensätzen Eigentlich nur bedingt für NER geeignet. Erweiterung der Datenstruktur um NERspezifische Details. Einzelne Daten (Wort) sind nicht unabhängig voneinander – somit nicht trennbar. Sequentialität von Text erhalten! Entwicklung des CRF-plugins (2006) 09.10.2007 Felix Jungermann 16 Umsetzung in RapidMiner – CRF-plugin (2/2) Probleme: Plugin zu sehr auf CRF abgestimmt Keine Möglichkeit, andere Lerner zu nutzen Vorverarbeitung zu primitiv und zu überladen Lösung: Entwicklung eines eigenständigen Textmining-/NER-plugins (2007) 09.10.2007 Felix Jungermann 17 Umsetzung in RapidMiner – NER-plugin (1/2) Neuerungen: Texte werden satzweise eingelesen Sampling über Sätze möglich Vorverarbeitung modular anwendbar Neue Lerner einsetzbar 09.10.2007 Felix Jungermann 18 Umsetzung in RapidMiner – NER-plugin (2/2) 09.10.2007 Felix Jungermann 19 Umsetzung in RapidMiner – Ausblick Neue Vorverarbeitungsoperatoren Externe Resourcen Google Wikipedia Neue Lerner SVMhmm SVMstruct Vergleich verschiedener Verfahren Laufzeit Güte 09.10.2007 Felix Jungermann 20