Content Analytics – Bring your own AI vs. Driver-less AI

Beispiel Textklassifikation: einfache Aufgabenstellung, große Komplexität

Ein konkretes Beispiel für die Komplexität der Wahl der richtigen Algorithmen ist die Textklassifikation, die für viele Anwendungsfälle wichtig ist: Ob es um die automatische Erkennung von Dokumenten im Posteingang, die Stimmungsanalyse in der Kundenkommunikation (Sentiment Analysis), die automatische Verschlagwortung in einem Dokumentenmanagementsystem (DMS) oder die Zuordnung von Unfallberichten zu Sachbearbeitern geht, immer müssen Texte Klassen zugeordnet werden. Die Klassifikation ist zudem eine der grundlegenden ML-Aufgaben beim Supervised Learning. Eine informative Übersicht zur Vielfalt der Verfahren findet sich im Google ML Guide zur Textklassifikation.

Flowchart aus dem Google Guide zur Textklassifikation. Das Beispiel zeigt die Komplexität und Algorithmen-Vielfalt, mit der sich Data Scientists beim BYOAIT-Ansatz auseinandersetzen müssen (Abb. 1) (Bild: Google)

Zunächst stellt sich die Frage, wie sich ein Text in einen numerischen Vektor verwandeln lässt, den letztlich alle ML-Verfahren benötigen. Dieser Feature-Vektor ist bei strukturierten Daten viel leichter erstellt: Beispielsweise lassen sich Sensordaten von Maschinen oft direkt für ein Vorhersagemodell zu möglichen Ausfällen nutzen.

Texte hingegen erfordern erst die Umwandlung in Token, wobei ein Stemming (Stammformreduktion) erfolgen kann oder auch Stopp-Wörter entfernt werden. Anschließend lassen sich einzelne Wörter (Unigramm) oder auch Kombinationen von Wörtern (Bigramm oder Trigramm) nutzen. Die Existenz, Häufigkeit oder auch der TF/IDF-Score (Vorkommenshäufigkeit und inverse Dokumenthäufigkeit) fließen nun in den Vektor ein. Im einfachsten Fall spricht man hier vom Bag-of-Words-Modell.

Kommen 10.000 verschiedene Wörter in der Trainingsmenge vor, so fallen rein rechnerisch bei Trigrammen bereits eine Billion Kombinationen an. Das ist auch heute noch zu viel für Machine Learning. Daher muss eine Feature Reduction erfolgen, für die es wiederum diverse Verfahren gibt. Erst am Ende steht dann die Wahl des eigentlichen ML-Algorithmus. Soll es ein Multi-layer Perceptron (also ein sozusagen normales neuronales Netz) sein? Oder doch eine Support Vector Machine (SVM)? Hat sich Maximum-Entropie nicht als gut bei Texten herausgestellt? Basieren die meisten Spam-Filter nicht immer noch auf Naive Bayes? Was ist eigentlich dieses Gradient Boosting on Decision Trees (GBDT)? Oder fehlt etwa XGBoost noch in der Framework-Liste?

Angesichts der unüberschaubaren Vielfalt fällt die Wahl der richtigen Mischung schwer. Auf die Textklassifikation übertragen, heißt das: Wie sieht es denn hier mit Deep Learning aus? Tatsächlich sind Recurrent Neural Networks (RNN) auf den ersten Blick für die Verarbeitung von Text gut geeignet, da sie eine Art Gedächtnis haben und somit die Reihenfolge von Wörtern berücksichtigen können. Aber auch Convolutional Neural Networks (CNN) kommen zum Einsatz.

Grundlage sind in diesen Fällen sogenannte Word Embeddings, die einzelne Wörter in Vektoren verwandeln, sodass am Ende Matrizen als Input für das Deep Neural Network (DNN) dienen. Voraussetzung für all diese Verfahren sind aber riesige Datenmengen, die man sich zunächst aus unterschiedlichen Quellsystemen besorgen muss. Statt den Content zur KI zu bringen, ist eine sinnvolle Alternative, KI-Funktionen dort zu integrieren, wo die unstrukturierten Informationen gemanagt werden, beispielsweise direkt in einer Content-Services-Plattform.

Beim Ansatz "Bring your own AI” steht großer Flexibilität und Freiheit eine gewaltige Komplexität gegenüber. Die Erstellung eigener Modelle mit einem eigenen Baukasten an Werkzeugen setzt solides Expertenwissen voraus. Aber selbst wenn das vorhanden ist, bleibt ein Problem häufig unbeachtet: Mit dem Deployment des trainierten Modells ist die Arbeit nicht getan, die kontinuierliche Verbesserung der Modelle mit neuen Daten, ihre Reproduzierbarkeit und das Benchmarking sind nicht zu unterschätzen.

Deploy your model – damit ist die Arbeit nicht getan

Wer ein per Jupyter Notebook in vielen Versuchen und Iterationen optimiertes und trainiertes Modell einfach deployt und in Produktion nimmt, darf nicht vergessen, alle Schritte zur Erstellung des Modells reproduzierbar vorzuhalten und in einer Pipeline zu automatisieren.

Übertrieben formuliert: Nichts ist so alt wie das gestern trainierte Modell. Kommen täglich neue Daten hinzu, müssen diese im Rahmen des Gesamtprozess in die Trainingsmenge einfließen und zur weiteren Verbesserung des Modell dienen. Es gilt also, die Spielwiese in eine Automationsumgebung zu überführen, die kontinuierlich Modelle erstellt und ihre Erkennungsrate mit aktuellen Daten misst. Online-Learning, Modellversionierung und On-the-fly-Benchmarks mit verschiedenen Versionen sind Konzepte, die zum Ansatz "Driver-less AI" (Auto-ML) führen.