RIPPER (Repeated Incremental Pruning to Produce Error Reduction) |
Vorteilhafte Eigenschaften:
Viele andere Methoden der Textkategorisierung sind auf linear Classifier basiert, z.B. „naive“ Bayes und Rocchio Algorithmen. In linear Classifier spielt nur die Anwesenheit eines Wortes (w) im Dokument (d), ungeachtet bleibt es, ob andere Wörter im Dokument vorkommen. Also es wird vorausgesetzt, daß der Kontext wo w im d vorkommt, keinerlei Einfluß auf die Bedeutung von w hat. Diese Annahme ist nicht realistisch und kann zu fehlerhaften Ergebnissen führen. Ein Kontext von einem Wort wi
für den Ripper besteht aus einer (normaler Weise kleiner) Anzahl anderer
Wörter (w2......wk), die im gleichen
Dokument d auch an beliebiger Stelle vorkommen:
|
Wie lernt RIPPER die Regeln?
Der vom Ripper erzielte Classifier ist ein Regelset wie z.B.: |
Dieses Regelset wurde für die Kategorie
ireland gelernt und kann als Disjunktion von Konjunktionen interpretiert
werden:
ein Dokument d gehört zur Kategorie ireland dann und nur dann, wenn (das Wort irelandin
d
vorkommt) oder
Diese Regelsets sind kompakt und einfach für die menschliche Wahrnehmung. Solche unkomplizierte greedy (starre) Algorithmen produzieren oft Regelsets mit zu hoher Fehlerrate oder sogar fehlerfreie Algorithmen werden ineffizient bei großen noisy Daten. Das alles bedingt die Komplexität des Rs Algorithmus. |
RIPPER Algorithmus |
![]() |
Der Algorithmus besteht aus 2 Stufen:
- Optimierungsprozeß: das Regelset wird verbessert, der Algorithmus wird kompakter gemacht. Seine Sorgfältigkeit und Richtigkeit steigern. |
Stufe I (Generierung des anfänglichen Regelsets)
Um eine neue Regel zu produzieren, werden noch nicht gecheckte Dokumente im Korpus willkürlich in 2 Subsets geteilt: "Growing Set" (2/3) und "Prunning
Set" (1/3). Der IREP- Algorithmus läßt die Regel zuerst
wachsen (grows a rule) und danach kürzt er (pruns a rule)
die Konditionen, die die Leistung der Regeln nicht mehr steigern:
|
GROW¾¾¾¾¾¾®
RULE = Cond1 + Cond2 + Cond3 +..............+ Condk ¬¾¾¾¾¾¾ PRUN |
Regelwachstum: immer neue Konditionen werden mehrmalig zur Regel r0 nach Greedy Method addiert, wobei r0ursprünglich leer war. Greedy Method: mit jedem Schritt i wird eine Kondition zur Regel ri addiert so, daß eine neue längere und präzisere Regel ri+1entsteht. Eine addierte Kondition ist diejenige, die den größten Informationsgewinn "Information Gain" für ri+1im Vergleich zu ri liefert. "Information Gain" wird folgendermaßen
definiert:
Information Gain unterstützt die Regel ri+1. Als Folge wird die Dichte der positiven Regel erhöht. Dieses greedy Wachstum (Einfügen der neuen Konditionen zur Regel) geht bis zum Punkt, wenn die Regel keine negativen Beispiele (Dokumente) im Growing Set mehr entdeckt oder keine Kondition mehr positives Information Gain hat. Nach dem Growing wird eine Regel vereinfacht (pruned). Das ist auch ein greedy Prozeß: mit jedem Schritt i wird ein Pruning Operator verwendet: entweder wird eine Konditionsfolge am Ende der Regel ri gelöscht, oder eine ganze Regel wird eliminiert. Motivation: Senkung der Anzahl von Fehlern (der falschen positiven Beispiele). Das Ziel ist die Maximierung von folgender Funktion:
U+i+1(bzw.
U–i+1)
ist die Anzahl der positiven (negativen) Beispiele im Pruning Set, die
von einer neuen Regel erfaßt wird. Pruning hört dann
auf, wenn weitere Eliminierungen zur Erhöhung der Fehlerrate im Pruning
Set führen würden. Nach dem Pruning wird die gekürzte (pruned)
Regel zum Regelset addiert und die von ihr erfaßten Beispiele werden
gelöscht.
|
Wann soll man aufhören die Regel zu addieren? |
Es wird vorausgesetzt, daß Information
Gain nie gleich 0 ist. Das Bedeutet, daß jede Regel einige positive
Beispiele erfassen muß. Das garantiert, daß der Prozeß
irgendwann terminiert wird. Aber mit fehlerhaften (noisy) Korpora
würde es mehrere Regeln geben, die nur wenige Bespiele erfassen. Dies
kann die Berechnungszeit verschlechtern. Für solche Fälle bietet
IREP eine zusätzliche Heuristik an, die versucht, festzustellen, ob
das aktuelle Regelset schon "groß genug" ist. Dieses Stop-Kriterium
ist auf der MDL (minimum description length) Heuristik basierend.
Die Grundidee: das beste Modell unter gegebenen Datensets ist immer dasjenige, das am kürzesten verschlüsselt werden kann. Die Datenverschlüsselung geschieht in 2 Schritten: zuerst wird das Modell verschlüsselt und dann werden auch seine Fehler verschlüsselt. Nachdem alle Modelle kodiert wurden, wird das beste gewählt: dasjenige mit der kleinsten Beschreibungslänge (smallest descripton length) – die kleinste Anzahl der Bits, die man für das Encoding braucht. IREP: Immer wenn eine Regel zum Regelset addiert wird, wird auch die total description length vom Regelset berechnet. IREP hört auf, die Regeln zu addieren, wenn diese Beschreibungslänge 64 Bit größer als die kleinste Beschreibungslänge ist, die zu dem Moment bekannt ist, oder falls es keine positiven Beispiele mehr gibt. Das Regelset wird danach so komprimiert, daß alle Regel durchgegangen werden, angefangen mit der letzten addierten Regel. Jede Regel, die die Beschreibungslänge erhöht, wird gelöscht.
|
Stufe II (Optimierung des Regelsets)Optimierung ist als Prozeß der Reduzierung des RS und Erhöhung seiner Präzision gedacht.Die Regeln werden wieder nacheinander durchgegangen, in der Reihenfolge, wie sie zum Regelset addiert wurden. Für jede Regel r werden 2 alternative Regeln konstruiert (r‘,r^). Regel r‘ - Replacement (Substitution) für Regel r - wird so wachsen (grown) und gekürzt (pruned), daß die Fehlerquote im ganzen Regelset minimiert wird, falls man statt rr‘ nehmen würde. Regel r^ – Revision (Überarbeitung) für Regel r – wird mit greedy Addition von Konditionen zu r erzeugt. Danach wird eine Entscheidung getroffen,
welche der drei (Original: r, Replacement: r‘, Revision:
r^) im endgültigen Regelset bleibt. Es wird wieder mit der
MDL-Heuristik
gemacht: die Variante, die nach der Kompression die kleinste Beschreibungslänge
hat, wird genommen.
|
RIPPER und TextkategorisierungFür den Einsatz bei Textkategorisierungsproblemen sollte der Ripper noch angepaßt werden:
|
|
A = { w1 , w2 , w3 ,...., wn} |
Dadurch sparen wir uns, die Wörter,
die im Dokument wiederholt werden, und die Wörter, die nicht informativ
sind (die den Disjunktionsprozeß für die aktuelle Kategorie
nicht beeinflussen).
Der Attributtest wird während der Regelerzeugung implementiert: der Ripper sucht nach Konditionen, die den Information Gain erhöhen. Der Ripper geht durch das Dokumentenset S, das von aktuellen Regeln bereits sortiert wurde, und merkt sich das Wörterset WaS, das die Elemente vom Attribut a für ein Dokument d aus S enthält. Für jedes Wort wi aus WaS werden 2 Statistiken erzeugt: pi – wieviel Mal kommt wi in positiven Dokumenten aus S vor, ni – wieviel Mal kommt wi in negativen Dokumenten aus S vor. Dann wird die Mutual Information für jedes Wort aus WaS und die Kategorie (für die wir das aktuelle Regelset erzeugen) berechnet und k Wörter mit dem höchsten Gewinn werden als Elemente des Attributes vom Dokument genommen. Als Attributelemente kann man auch die
Phrasen und Wortstämme benutzen.
|
Für den Referat wurden die fogenden Quellen benuzt:
http://mason.gmu.edu/~mblake/cs650/ch3.htm http://www.research.whizbang.com/~wcohen/ http://www.cs.cornell.edu/home/cardie/tutorial/tutorial.html |