Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Textklassifikation und Informationsextraktion

Ähnliche Präsentationen


Präsentation zum Thema: "Textklassifikation und Informationsextraktion"—  Präsentation transkript:

1 Textklassifikation und Informationsextraktion
Tobias Scheffer Peter Haider Paul Prasse Uwe Dick

2 Textklassifikation, Informationsextraktion
2

3 Textklassifikation, Informationsextraktion
Textklassifikator: Ordnet einen Text einer Menge von inhaltlichen Kategorien zu. Wird aus annotierten Daten gelernt. Anwendungsbeispiel: Posteingangsverarbeitung. Informationsextraktion: Identifikation definierter Felder in Dokument. Auch aus Daten gelernt. Anwendungsbeispiel: Automatisierung von Dokumentenverarbeitungsprozessen. 3

4 Textklassifikation: Repräsentation
Nach Tokenisierung wird Text durch Vektor repräsentiert. Vektorraummodell: Vektor der Worthäufigkeiten für probabilistische Modelle. TFIDF-Repräsentation für lineare Verfahren. Wortreihenfolge bleibt unberücksichtigt. Vektorraummodell mit N-Grammen: Wird für Spamerkennung verwendet. Jedes N-Gramm durch Dimension repräsentiert, oder Sparse Binary Polynomial Hashing oder Orthogonal Sparse N-Grams. 4

5 Repräsentation Jedes N-Gramm durch Dimension repräsentiert,
Nur N-Gramme, die auch tatsächlich auftreten. Sparse Binary Polynomial Hashing Fenster der Breite N wird über Text geschoben, Jede Teilmenge von bis zu N Tokens, die in dieser Reihenfolge auftauchen und das am weitesten rechts stehende Token beinhalten, ist eine Dimension, Orthogonal Sparse Bigrams. Jedes Paar aus einem beliebigen Token im Fenster und dem am rechten Fensterrand stehenden Token ist ein Merkmal. SBPH und OSB: N-Gramme mit Platzhaltern. 5

6 Klassifikator / Entscheidungsfunktion
Für eine binäre Klassifikation (y= +1 oder -1) wird eine Entscheidungsfunktion f(x) gelernt. Je größer f(x), desto wahrscheinlicher ist, dass x zur Klasse gehört. Wenn f(x) , dann entscheide h(x) = +1, sonst h(x) = -1. Klassifikator h(x), Entscheidungsfunktion f(x). Der Wert für  verschiebt „false positives“ zu „false negatives“. Optimaler Wert hängt von Kosten einer positiven oder negativen Fehlklassifikation ab. 6

7 Evaluation von Textklassifikatoren
Fehlklassifikationswahrscheinlichkeit Häufig nicht aussagekräftig, weil P(+1) sehr klein. Wie gut sind 5% Fehler, wenn P(+1)=3%? Idee: Nicht Klassifikator bewerten, sondern Entscheidungsfunktion. Precision / Recall Precision-Recall-Kurve bewertet Entscheidungsfunktion, Jeder Wert für  entspricht Punkt auf P-R-Kurve. F-Measure: „Durchschnitt“ aus Precision und Recall. Receiver Operating Characteristic (ROC-Kurve) Bewertet Entscheidungsfunktion, Fläche unter ROC-Kurve = P(positives Beispiel hat höheren f-Wert als negatives Beispiel) 7

8 ROC-Analyse Entscheidungsfunktion + Schwellwert = Klassifikator.
Großer Schwellwert: Mehr positive Bsp falsch. Kleiner Schwellwert: Mehr negative Bsp falsch. Bewertung der Entscheidungsfunktion unabhängig vom konkreten Schwellwert. Receiver-Operating-Characteristic-Analyse Kommt aus der Radartechnik, im 2. Weltkrieg entwickelt. Bewertung der Qualität von Entscheidungsfunktionen. 8

9 ROC-Kurven Charakterisieren das Verhalten des Klassifikators für alle möglichen Schwellwerte. X-Achse: „False Positives“: Anzahl negativer Beispiele, die als positiv klassifiziert werden. Y-Achse: „True Positives“: Anzahl positiver Beispiele, die als positiv klassifiziert werden. 9

10 Bestimmen der ROC-Kurve von f
Für alle positiven Beispiele xp in Testmenge Füge f(xp) in sortierte Liste Lp ein. Für alle negativen Beispiele xn in Testmenge Füge f(xn) in sortierte Liste Ln ein. tp = fp = 0 Wiederhole solange Lp und Ln nicht leer sind. Wenn Lp  Element  Ln  Element dann increment(tp) und Lp = LP  Next. Wenn Ln  Element  Lp  Element dann increment(fp) und Ln = Ln  Next. Zeichne neuen Punkt (fp, tp) 10

11 Flächeninhalt der ROC-Kurve
Flächeninhalt AUC kann durch Integrieren (Summieren der Trapez-Flächeninhalte) bestimmt werden. p = zufällig gezogenes Positivbeispiel n = zufällig gezogenes Negativbeispiel Theorem: AUC = P(f(p) > f(n)). Beweisidee: ROC-Kurve mit nur einem Positiv- und einem Negativbeispiel (Flächeninhalt 0 oder 1); Durchschnitt vieler solcher Kurven = AUC. 11

12 Precision / Recall Alternative zur ROC-Analyse.
Stammt aus dem Information Retrieval. Precision: P(richtig | als positiv erkannt) Recall: P(als positiv erkannt | ist positiv) 12

13 Precision / Recall Zusammenfassungen der Kurve in einer Zahl:
Maximum F-Measure: Maximum über alls (p,r)-Paare auf der Kurve: Precision-Recall-Breakeven-Point: Derjenige Wert für den gilt: Precision() = Recall() = PRBEP. 13

14 Precision / Recall Trade-Off
Precision-/Recall-Kurven Welcher Klassifikator ist der Beste / Schlechteste 14

15 Bestimmen der Performance-Maße
Performance auf Trainingsmenge extrem optimistischer Schätzer für Performance für unbekannte Texte. Zum Schätzen der Performance werden Texte verwendet, die nicht zum Trainieren verwendet wurden. Training-und-Test: Verwende 80% der Daten zum Trainieren, 20% der Daten zum Messen der ROC-Kurve, P-R-Kurve, oder Fehlklassifikationswahrsch. N-Fold-Cross-Validation: Teile Daten in n Teile, wiederholtes Trainieren mit n-1 Teilen. 15

16 Fehlerschätzung Algorithmus Training-and-Test
Aufteilen der Datenbank in Trainingsmenge und Testmenge. h1 = Lernalgorithmus (Trainingsmenge) Bestimme Ê anhand der Testmenge. h = Lernalgorithmus (alle Beispiele) Liefere Hypothese h zusammen mit Fehlerschätzer Training-and-Test ist für große Datenbanken gut anwendbar. Problematisch für kleine Datenbanken 16

17 N-Fold Cross-Validation
Algorithmus N-CV (Beispiele S) Bilde n etwa gleich große Blöcke S1, ..., Sn von Beispielen, die zusammen S ergeben. Ê=0. For i = N h = Lernalgorithmus (S \ Si) Ê = Ê + empirischer Fehler von h auf Si Ê = Ê/N h = Lernalgorithmus (S) Liefere Hypothese h mit Fehlerschätzer Wenn |S| = n, heisst das Verfahren Leave-one-Out. Nur leicht pessimistischer Schätzer. 17

18 Lineare Klassifikatoren
18

19 Lineare Klassifikatoren
Umformulierung mit zusätzlichem, konstanten Eingabeattribut x0=1: 19

20 Rocchio : Mittelpunkt der neg. Beispiele
+ + x+1 + + w + - - x-1 - - : Mittelpunkt der neg. Beispiele : Mittelpunkt der pos. Beispiele Trennebene: Normalenvektor = (x+1-x-1) Bestimmung von w0: Mittelpunkt (x+1+x-1)/2 muss auf der Ebene liegen. 20

21 Rocchio Trennebenen hat maximalen Abstand von den Mittelpunkten der Klassen. Trainingsbeispiele können falsch klassifiziert werden. Differenz der Mittelwerte kann schlechter Normalenvektor für Diskrimination sein. 21

22 Perzeptron Lineares Modell: Ziel: Für alle Beispiele (xi, +1):
- - - - 22

23 Perzeptron Lineares Modell: Ziel: Ziel: Für alle Beispiele:
Für alle Beispiele (xi, +1): Für alle Beispiele (xi, -1): Ziel: Für alle Beispiele: = Beispiel liegt auf der richtigen Seite der Ebene. + + + + + - - - - 23

24 Perzeptron Lineares Modell: Ziel: Für alle Beispiele:
Perzeptron-Optimierungskriterium: + + + + + - - - - 24

25 Perzeptron Lineares Modell: Ziel: Für alle Beispiele:
Perzeptron-Optimierungskriterium: Subgradient für Beispiel (xi, yi): + + + + + - - - - 25

26 Perzeptron Lineares Modell: Perzeptron-Optimierungskriterium:
Subgradient für Beispiel (xi, yi): Gradientenaufstieg: Wiederhole, für alle Beispiele mit + + + + + - - - - 26

27 Perzeptron-Algorithmus
Lineares Modell: Perzeptron-Trainingsalgorithmus: Solange noch Beispiele (xi, yi) mit der Hypothese inkonsistent sind, iteriere über alle Beispiele Wenn dann 27

28 Perzeptron-Algorithmus
Perzeptron findet immer eine Trennebene, wenn eine existiert (Optimierungskriterium ist konkav). Existiert immer eine Trennebene? 28

29 Margin-Perzeptron Perzeptron-Klassifikation:
Perzeptron: für alle Beispiele muss gelten = Beispiel liegt auf der richtigen Seite der Ebene. Margin-Perzeptron: = Beispiel mindestens  von Trennebene entfernt. + + + + + - - - - + + + + + - - - - 29

30 Margin-Perzeptron-Algorithmus
Lineares Modell: Perzeptron-Trainingsalgorithmus: Solange noch Beispiele (xi, yi) mit der Hypothese inkonsistent sind, iteriere über alle Beispiele Wenn dann 30

31 Margin-Maximierung Perzeptron: für alle Beispiele muss gelten
Margin-Perzeptron: Finde Ebene, die alle Beispiele mindestens  von Ebene entfernt. Fester, voreingestellter Wert . Margin-Maximierung: Für den größtmöglichen Wert . + + + + + - - - - + + + + + - - - - 31

32 Margin-Maximierung Margin-Maximierung:
Finde Ebene, die alle Beispiele mindestens  von Ebene entfernt. Für den größtmöglichen Wert . Maximiere  unter der Nebenbedingungen: für alle Beispiele (xi, yi) gelte = Minimiere |w| unter der Nebenbedingung: für alle Beispiele (xi, yi): + + + + + - - - - + + + + + - - - - 32

33 Soft-Margin-Maximierung
Hard-Margin-Maximierung: Minimiere |w| unter der Nebenbedingungen: für alle Beispiele (xi, yi): Soft-Margin-Maximierung: Minimiere unter den Nebenbedingungen: Alle i  0. Soft-Margin-Ebene existiert immer, Hard-Margin-Ebene nicht! + + + + + - - - - + + + + + - - - - Slack i Margin 1/|w| 33

34 Soft-Margin-Maximierung
Minimiere unter den Nebenbedingungen: für alle Beispiele (xi, yi): Alle i  0. Einsetzen von i in Optimierungskriterium ergibt Minimiere: + + + + + - - - - + + + + + - - - - Slack i Margin 1/|w| 34

35 Soft-Margin-Maximierung
Minimiere: Minimierung mit Gradientenverfahren. Annäherung durch differenzierbare Variante (Huber- statt Hinge-Loss), dann Newton-Verfahren. Kriterium ist konvex, es gibt genau ein Minimum. Primale Support Vector Machine. + + + + + - - - - + + + + + - - - - Slack i Margin 1/|w| 35

36 Soft-Margin-Maximierung
Minimiere: Minimierung mit Gradientenverfahren. Wiederhole: + + + + + - - - - Enthält Summe über alle Beispiele 36

37 Logistische Regression
SVM: großer Entscheidungsfunktionswert ~ hohe Sicherheit der Vorhersage. Aber: beim lernen nicht auf korrekte Kalibrierung der Klassenwahrscheinlichkeiten optimiert. f(x)=18.3  Risiko eines Fehlers? Logistische Regression: Vorhersage der Klassenwahrscheinlichkeit. 37

38 Logistische Regression
Bayes‘ Regel: Log-odd ratio: 38

39 Logistische Regression
Likelihood jeder Klasse normalverteilt, gemeinsame Kovarianzmatrix für beide Klassen. Logg-odds ratio: 39

40 Logistische Regression
Likelihood jeder Klasse normalverteilt, gemeinsame Kovarianzmatrix für beide Klassen. Logg-odds ratio: 40

41 Logistische Regression
Wenn zwei klassen jeweils normalverteilte Likelihood mit derselben Kovarianzmatrix haben, dann nimmt P(y|x) diese Form an: P(y|x) ywx+w0 41

42 Logistische Regression
Bisher: Motivation der Form des logistischen Klassifikationsmodells. Falls Klassenverteilungen bekannt wären, könnten wir w und w0 aus +1, -1 und  herleiten. Sind aber nicht bekannt. Verteilungsannahme muss auch nicht stimmen. Jetzt: Wie finden wir tatsächlich Parameter w und w0? 42

43 Logistische Regression
Prior über Parameter: Normalverteilung, w ~ N[0,‘]. Posterior: Verlustfunktion: 43

44 Logistische Regression
Verlustfunktion ist konvex und differenzierbar. Gradientenabstieg führt zum Minimum. Verlustfunktionen Logistic Regression und SVM 44

45 Multiklassen-Klassifikation
Binäre Klassifikation: Lineare Klassifikation: Multiklassen-Klassifikation: Endliche Menge von Klassen-Labels, Ansatz: Statt jetzt 45

46 Lernen mit strukturierten Ausgaben
Klassifikation bei mehr als zwei Klassen: f bekommt jetzt zwei Parameter. Gemeinsame Merkmale von Ein- und Ausgabe: Gleicher Ansatz für Multiklassen, Sequenz- und Struktur-Lernen, Ranking. 46

47 Lernen mit strukturierten Ausgaben
Constraints bei normaler SVM: Für alle (xi, yi): Constraints mit strukturierten Ausgaben: Für alle (xi, yi): und alle y ≠ yi: 47

48 Lernen mit strukturierten Ausgaben
Gegeben: Wiederhole bis alle Sequenzen korrekt vorhergesagt werden. Iteriere über alle Beispiele (xi, yi). Bestimme Wenn (Margin-Verletzung) dann füge Constraint dem Working Set hinzu. Löse Optimierungsproblem für Eingabe xi, Ausgabe yi, und negative Pseudo-Beispiele y (working set). Liefere w zurück. 48

49 Multiklassen-SVM Klassifikation bei mehr als zwei Klassen:
Multiklassen-Merkmale: 49

50 Multiklassen-SVM Jede Klasse hat privaten Abschnitt des Gewichtsvektors: 50

51 Multiklassen-SVM Jede Klasse hat privaten Abschnitt des Gewichtsvektors: Beispiel: 51

52 Klassifikation mit Taxonomien
Klassen in Baumstruktur: 52

53 Klassifikation mit Taxonomien
Jeder Knoten hat einen privaten Abschnitt des Gewichtsvektors. Pfade teilen sich Abschnitte, wenn sie gemeinsame Knoten beinhalten. 53

54 Sequentielle Ein-/Ausgaben
Z.B. Wortarterkennung: Eigennamenerkennung, Informationsextraktion: Gemeinsame Repräsentation von Ein- und Ausgabe. x= “Curiosity kills the cat.” y= <Noun, Verb, Determiner, Noun> x= “Barbie meets Ken.” y= <Person, -, Person> 54

55 Sequentielle Ein-/Ausgaben
Label-label: Label-Beobachtung: Gemeinsamer Merkmalsvektor (x,y)=∑t(…,φ123(yt,yt+1),…,φ234(xt,yt),...)T Gewichtsvektor w=(…,w123,…,w234,…)T Attribut für jedes Paar benachbarter Labels yt und yt+1. Attribut für jedes Paar aus Eingabe und Ausgabe. y1 y3 y4 y2 x1 x3 x2 x4 φ123(yt,yt+1) = [[yt=“Noun” yt+1=“Verb”]] Curiosity kills the cat φ234(xt,yt) = [[yt=“Noun” xt = “cat”]] ∑tφi(yt,yt+1). ∑tφi(xt,yt). 55

56 Sequentielle Ein-/Ausgaben: Dekodierung
Um eine Sequenz zu klassifizieren, muss berechnet werden. Das argmax geht über alle möglichen Sequenzen (exponentiell viele in der Länge). summiert über Merkmale benachbarter Label-Paare und Merkmale von xi-yi-Paaren. Mit dynamischer Programmierung kann argmax in linearer Zeit berechnet werden (Viterbi). 56

57 Sequentielle Ein-/Ausgaben: Dekodierung
Gemeinsamer Merkmalsvektor (x,y)=∑t(…,φ123(yt,yt+1),…,φ234(xt,yt),...)T Finde argmaxy wT(x,y) effizient mit Transitionsmatrix A={a,} und Beobachtungsmatrix Bx={bt,(x)}, , {•,N,V,D}: HM SVM benutzt 2-best Viterbi Dekodierung. y1 y3 y4 y2 x1 x3 x2 x4 φ123(yt,yt+1) = [[yt=“Noun” yt+1=“Verb”]] φ234(xt,yt) = [[yt=“Noun” xt = “John”]] V aN,V V V V a•,N aV,D N N N N aD,N b2,N(x) b1,N(x) b4,N(x) D D D D b3,N(x) Curiosity kills the cat 57

58 Viterbi-Algorithmus Definition:
=Score, der in wT(x,y) erzeugt wird, wenn yt= und yt+1=. =Score, der in wT(x,y) erzeugt wird, wenn yt= und Wort xt erscheint. Gesucht: 58

59 Viterbi-Algorithmus, Theorem
Beweis: Lineare Bestimmung des höchst-scorenden Pfades mit dynamischer Programmierung. 59

60 Lernen mit strukturierten Ausgaben
Beispiel: POS-Tagging (Wortarterkennung) Satz x=“Curiosity kills the cat” Gewünscht: Explizit: argmaxy wT( x , y ) = <N,V,Det,N> wT(x,<N,V,Det,N>) ≥ wT(x,<N,N,N,N>) wT(x,<N,V,Det,N>) ≥ wT(x,<N,N,N,V>) wT(x,<N,V,Det,N>) ≥ wT(x,<N,N,V,N>) wT(x,<N,V,Det,N>) ≥ wT(x,<N,V,N,N>) ZU VIELE!!! 60

61 Lernen mit strukturierten Ausgaben
Hidden Markov Support Vector Machine. Large-Margin-Ansatz:  = 1/|w|. Iteratives Training. Negative Constraints werden hinzugefügt, wenn beim Training Fehler auftritt. min ½ |w|2 + C∑iξi s.d. "i "yyi wT((xi,yi) - (xi,y)) ≥ 1 - ξi "i ξi ≥ 0. 61

62 Lernen mit strukturierten Ausgaben
Gegeben: Wiederhole bis alle Sequenzen korrekt vorhergesagt werden. Iteriere über alle Beispiele (xi, yi). Bestimme Wenn (Margin-Verletzung) dann füge Constraint dem Working Set hinzu. Löse Optimierungsproblem für Eingabe xi, Ausgabe yi, und negative Pseudo-Beispiele y (working set). Liefere w zurück. 62

63 Fragen? 63


Herunterladen ppt "Textklassifikation und Informationsextraktion"

Ähnliche Präsentationen


Google-Anzeigen