200 likes | 461 Views
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. Entwicklung – Allgemein.
E N D
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 Felix Jungermann
Entwicklung – Allgemein • Entwicklung HMM – MEMM – CRF • Wiederholung: • HMM: gerichtet, generativ • MEMM: gerichtet, abhängig von Beobachtung • Vermeidung früherer Nachteile • HMM • MEMM • Strikte Unabhängigkeitsannahme • Keine komplexen Merkmale • Label Bias Problem (*Tafel*) • „Conservation of score mass“ Felix Jungermann
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! Felix Jungermann
Entwicklung – Markov Random Fields (2/2) • Potentialfunktion: Φ= Φci: Aci R+ • ci ist Clique auf G • Aci entspricht allen Belegungen der Cliquen-Knoten • Keine Wahrscheinlichkeit! • p(y1,...,yn)=1/Z * ∏Φci (yi1,...,yi|ci|) • Z=∑(ΠΦci (yi1,...,yi|ci|)) (Normalisierung) • (Erläuterung bei CRFs) Φ Φ Yn Felix Jungermann
Y1 Y2 Y3 Y3 X1 X2 X3 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 first-order Kette • Cliquen sind dann verbundene Labels Felix Jungermann
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 Felix Jungermann
Definition – Conditional Random Fields (3/4) • p(y1,...,yn|x)=(1/Z(x)) * ∏∑Φk (yi-1,yi,x,i) • Nach Hammersley-Clifford (G ist Baum): p(y|x) = (1/Z(x)) * exp (∑∑Φk (yi-1,yi,x,i)) • Trainingsgewichte einführen: p(y|x,λ) = (1/Z(x,λ)) * exp (∑∑λkΦk(yi-1,yi,x,i)) n k i=1 n k i=1 n k i=1 Felix Jungermann
Definition – Conditional Random Fields (4/4) • Z(x,λ) ist ein Normalisierungsfaktor • Z(x,λ) = ∑exp(∑∑λkΦk(yi-1,yi,x,i)) • Z ist sozusagen die Summe aller „Treffer“ ALLER MÖGLICHER Labelsequenzen. • p ist sozusagen: Anzahl der Regeln, die für eine Labelsequenz feuern, geteilt durch die Anzahl der Regeln, die für alle Labelsequenzen feuern! n i=1 k Yn Felix Jungermann
Training • Training: Logarithmus der bedingten Wahrscheinlichkeit wird maximiert! (Maximum log-likelihood) • Fk(y,x) = ∑Φk(yi-1,yi,x,i) • 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.! • Berechnung mit iterative Scaling od. gradientenb. Methoden n i=1 alle j Beispiele alle k PFkt. alle j Beispiele alle k PFkt. Felix Jungermann
n+1 n+1 i=1 i=1 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)) • p(y|x,λ) = (1/Z(x,λ)) ∏ Mi(yi-1,yi|x,λ) • Z(x,λ) = [∏ Mi(x)] Felix Jungermann
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 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! Felix Jungermann
Effiziente Nutzung – Beispiel (2/4) • Felix geht nach Hamburg. • 1. Stelle1. Matrix: Felix Jungermann
Effiziente Nutzung – Beispiel (3/4) 2. Stelle 3. Stelle + 5. Stelle (auch 1-Matrix) 4. Stelle Felix Jungermann
n+1 i=1 Effiziente Nutzung – Beispiel (4/4) • p*(y|x,λ) = ∏ Mi(yi-1,yi|x) = e2 • 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% Felix Jungermann
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 NER-spezifische Details. • Einzelne Daten (Wort) sind nicht unabhängig voneinander – somit nicht trennbar. • Sequentialität von Text erhalten! • Entwicklung des CRF-plugins (2006) Felix Jungermann
Umsetzung in RapidMiner – CRF-plugin (2/2) • Probleme: • Plugin zu sehr auf CRFabgestimmt • Keine Möglichkeit, andereLerner zu nutzen • Vorverarbeitung zu primitivund zu überladen • Lösung: • Entwicklung eines eigenständigenTextmining-/NER-plugins (2007) Felix Jungermann
Umsetzung in RapidMiner – NER-plugin (1/2) • Neuerungen: • Texte werden satz-weise eingelesen • Sampling überSätze möglich • Vorverarbeitungmodular anwendbar • Neue Lerner ein-setzbar Felix Jungermann
Umsetzung in RapidMiner – NER-plugin (2/2) Felix Jungermann
Umsetzung in RapidMiner – Ausblick • Neue Vorverarbeitungsoperatoren • Externe Resourcen • Google • Wikipedia • Neue Lerner • SVMhmm • SVMstruct • Vergleich verschiedener Verfahren • Laufzeit • Güte Felix Jungermann