Conditional Random Fields
und die aktuelle
Umsetzung in RapidMiner
Felix Jungermann
09.10.2007 Felix Jungermann 2
Überblick
Entwicklung der CRFsDefinition der CRFsTraining von CRFsEffiziente Nutzung von CRFs
samt Beispiel
Umsetzung in RapidMiner altes/aktuelles Plugin Ausblick
09.10.2007 Felix Jungermann 3
Entwicklung – Allgemein
Entwicklung HMM – MEMM – CRF Wiederholung:
HMM: gerichtet, generativ MEMM: gerichtet, abhängig von Beobachtung
Vermeidung früherer Nachteile HMM
MEMM
Strikte UnabhängigkeitsannahmeKeine komplexen Merkmale
Label Bias Problem (*Tafel*)•„Conservation of score mass“
09.10.2007 Felix Jungermann 4
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 5
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
Φ
09.10.2007 Felix Jungermann 6
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
Y3
X1 X2 X3
Y1 Y2 Y3
09.10.2007 Felix Jungermann 7
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 8
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))
k
n
i=1
n
i=1k
k
n
i=1
09.10.2007 Felix Jungermann 9
Definition – Conditional Random Fields (4/4)
Z(x,λ) ist ein NormalisierungsfaktorZ(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!
k
n
i=1Yn
09.10.2007 Felix Jungermann 10
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
alle j Beispiele alle k PFkt.
n
i=1
alle j Beispielealle k PFkt.
09.10.2007 Felix Jungermann 11
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)]i=1
n+1
i=1
n+1
09.10.2007 Felix Jungermann 12
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
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!
09.10.2007 Felix Jungermann 13
Felix geht nach Hamburg.
1. Stelle1. Matrix:
Effiziente Nutzung – Beispiel (2/4)
LOC PER NIX
LOC 1 1 1
PER 1 1 1
NIX 1 e1 1
09.10.2007 Felix Jungermann 14
Effiziente Nutzung – Beispiel (3/4)
1 1 1
1 1 1
1 1 11 1 1
1 1 1
1 1 1 1 1 1
e1 1 1
e1 1 1
2. Stelle
3. Stelle
4. Stelle
+ 5. Stelle (auch 1-Matrix)
09.10.2007 Felix Jungermann 15
Effiziente Nutzung – Beispiel (4/4)
p*(y|x,λ) = ∏ Mi(yi-1,yi|x) = e2
M1(start,PER|Felix) = e1
M2(PER,NIX|geht) = 1M3(NIX,NIX|nach) = 1M4(NIX,LOC|Hamburg) = e1
M5(LOC,NIX|stop) = 1Z(x,λ)= alle Belegungen multipliziert = e3
p(y|x, λ) = e2/e3 = e-1 ͌ 37%
i=1
n+1
09.10.2007 Felix Jungermann 16
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)
09.10.2007 Felix Jungermann 17
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 18
Umsetzung in RapidMiner – NER-plugin (1/2)
Neuerungen: Texte werden satz-
weise eingelesen Sampling über
Sätze möglich Vorverarbeitung
modular anwendbar Neue Lerner ein-
setzbar
09.10.2007 Felix Jungermann 19
Umsetzung in RapidMiner – NER-plugin (2/2)
09.10.2007 Felix Jungermann 20
Umsetzung in RapidMiner – Ausblick
Neue Vorverarbeitungsoperatoren Externe Resourcen
Google Wikipedia
Neue Lerner SVMhmm SVMstruct
Vergleich verschiedener Verfahren Laufzeit Güte