Ein Textklassifikator, der seine Entscheidungen erklärt

11

Ich baue einen Textkategorisierer für kurze Sätze. Ich möchte dem Benutzer nicht nur mitteilen, dass die Kategorie des von Ihnen eingegebenen Textes C ist, sondern auch kurz und verständlich erklären können, warum ich diese Entscheidung getroffen habe. Zum Beispiel möchte ich dem Benutzer nicht sagen: "Ich habe Ihren Satz in ein komplexes dreischichtiges neuronales Netzwerk eingefügt, und das ist die Antwort, die am besten abgeschnitten hat." Ich möchte Erklärungen wie "Ihr Satz enthält die Wörter U, V und W, die für diese Kategorie charakteristisch sind, weil Sätze wie X, Y und Z in den Trainingsdaten enthalten sind".

Meine Frage ist: Welche Klassifizierungsalgorithmen eignen sich am besten für eine solche Anwendung?

k-next-neighbours scheint ein guter Kandidat zu sein, da ich dem Benutzer sagen kann: "Ihr Satz hat die Kategorie C, weil er den Sätzen X, Y und Z ähnelt, die dieselbe Kategorie haben. Die Leistung bei Textkategorisierungsproblemen ist jedoch bekannt Sei arm. Ich suche eine Klassifikation, die Leistung mit Erklärungsfähigkeit in Einklang bringt.

EDIT: Nachdem ich viel Zeit damit verbracht hatte, nach einem solchen Klassifikator zu suchen, begann ich mit dem Aufbau einer Bibliothek für maschinelles Lernen namens Limdu , mit der die Klassifikatoren ihre Entscheidungen erklären können. Es befindet sich noch in der Entwicklung, aber es hat mir bereits geholfen, mir und meinen Kollegen zu erklären, warum unsere Klassifikatoren so oft versagen ...

Erel Segal-Halevi
quelle
Der Punkt des maschinellen Lernens ist, dass es Ihnen egal ist, was unter der Haube passiert, Sie kümmern sich nur um die Leistung. Der andere Ansatz ist gescheitert, und deshalb verwenden heutzutage alle diese undurchsichtigen statistischen Ansätze - sie sind einfach so viel besser.
Yuval Filmus
2
@ Yuval Ich bin völlig anderer Meinung, dass die anderen Ansätze fehlgeschlagen sind. Sie sind nicht optimal, erreichen aber dennoch das Ziel, Klassifizierungsaufgaben zu automatisieren, die weit über dem liegen, wozu ein Mensch fähig oder geduldig ist. Undurchsichtige Black Boxes sind nicht die einzige Möglichkeit, maschinelles Lernen effektiv durchzuführen, insbesondere in Situationen wie diesen, in denen die Leistung nicht die einzige Überlegung ist. Seien Sie etwas aufgeschlossener gegenüber den unterschiedlichen Zielen, die hinter maschinellen Lernaufgaben stehen.
Richard D

Antworten:

7

Obwohl es bei Textklassifizierungsaufgaben eine schlechte Leistung erbringt, ist ein Entscheidungsbaum die beste Option , wenn Sie eine klare Erklärung der Klassifizierungsgründe wünschen, da er klare Regeln für die Klassifizierung einer Instanz enthält. Eine Ablaufverfolgung des Baums würde die bestimmenden Werte liefern. Durch Analysieren der Instanzen in der Nähe des Stammknotens können Sie möglicherweise sogar bestimmen, welche Attribute in der Klassifizierung von größerer Bedeutung sind.

Eine andere Option wäre die Verwendung eines Naive Bayes-Klassifikators , der für Text Mining-Aufgaben eine bessere Leistung erbringt und Ihnen ein verständliches Bewertungsschema auf der Grundlage von Wahrscheinlichkeiten bietet, mit denen Sie das gesuchte "Warum" generieren und sogar einen Hinweis darauf geben können Welche Attributwerte waren für die Bestimmung wichtiger als andere?

Support-Vektor-Maschinen , insbesondere Sequential Minimum Optimization (SMO), scheinen mit diesen Aufgaben gut zu funktionieren und liefern ebenfalls Hinweise auf die Werte, die für die Klassifizierung in Form von Attributgewichten und Support-Vektoren verwendet werden. Ich denke, Sie haben es möglicherweise schwerer explizit machen, wie diese Gewichte und Vektoren die Gesamtklassifizierungsentscheidung beeinflusst haben.

Viel Glück bei Ihrem Projekt! Klingt sehr interessant.

Richard D.
quelle
1
Vielen Dank. Ich fand auch heraus, dass Online-Klassifizierer wie Perzeptron und Winnow bei dieser Aufgabe ziemlich gut sind (zumindest in meinem Szenario), und es ist einfach, die Entscheidung zu erklären, indem man den absoluten Wert betrachtet, den jedes Merkmal zur Klassifizierungsbewertung hinzufügt. Für jedes Beispiel sortiere ich die Merkmale nach dem absoluten Wert von (Merkmal * Gewicht) und zeige die ersten paar.
Erel Segal-Halevi
3

Ich erinnere mich vage daran, dass Peter Norvig eine Implementierung von MYCIN hatte , einem Expertensystem für medizinische Diagnose , das in LISP in seinem Buch Paradigms of Artificial Intelligence Programming: Fallstudien in Common Lisp geschrieben wurde und genau dies tat.

Vielleicht ist das ein guter Ort, um Ihre Forschung zu beginnen. Sie finden den Quellcode online zusammen mit einer Regelbasis . Ich empfehle jedoch dringend, den Text zu lesen und nicht zu versuchen, ihn allein aus dem Quellcode zu verstehen.

Sie können auch direkt zur Seite für Emycin gehen (meine Betonung),

Emycin ist eine Expertensystem- Shell, ein Framework zum Erstellen von Programmen, die das Wissen von Domain-Experten aufzeichnen und dieses Wissen verwenden, um Nicht-Experten-Benutzern bei der Lösung von Problemen zu helfen. Es bietet eine Schnittstelle, über die Experten Datentypen und -regeln definieren können, einen Argumentationsalgorithmus für die Rückwärtsverkettung (ähnlich wie Prolog, jedoch mit wesentlichen Unterschieden), einen Mechanismus für den Umgang mit Unsicherheiten und Möglichkeiten zur Selbstbeobachtung, mit denen Benutzer lernen können, was das System weiß und was es tut .

Pål GD
quelle
2
Es gibt einen Grund, warum Expertensysteme nicht mehr sehr beliebt sind. Es ist schwierig, alle Regeln zu codieren.
AdrianN