Felix Jungermann: Conditional Random Fields
Short Description
Download Felix Jungermann: Conditional Random Fields...
Description
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
View more...
Comments