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