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

Unternehmen, die neue Erkenntnisse aus vorhandenen Daten gewinnen wollen, stehen häufig vor der Entscheidung, eigene Data Scientists mit einem Python-KI-Baukasten eine individuelle Anwendung bauen zu lassen oder eine für den Anwendungsfall von Experten vorkonfektionierte Plattform mit integrierter KI beziehungsweise AutoML-Funktion zu nutzen.

Architektur/Methoden  –  3 Kommentare

(Bild: metamorworks / shutterstock.com)

Die ML-basierte Datenanalyse ist für Data Scientists oder Entwickler gleichermaßen eine komplexe Aufgabenstellung, die mit der Auswahl der eingesetzten Frameworks erst anfängt. Doch die Zahl an Frameworks und Tools in der sich rasant entwickelnden Welt der KI und des maschinellen Lernens (ML) ist schon nahezu unüberschaubar. Noch komplexer wird es, will man aus unstrukturierten Inhalten Erkenntnisse gewinnen und das Potenzial dieser "Dark Data" erschließen. Unstrukturierte Texte enthalten zahlreiche unternehmensrelevante Informationen, sind aber nur schwer systematisch auswertbar.

Kommt beim Thema Text & Content Analytics zum Machine Learning noch das Natural Language Processing (NLP) hinzu, sind die Datenmengen noch viel größer, und die Datenvorverarbeitung ist schwieriger – aber auch wichtiger. Die Klaviatur von Tokenizer, Stemmer, Lemmatizer, Word Embeddings, TF/IDF etc. müssen Data Scientist und Entwickler gut beherrschen – zusätzlich zur vielfältigen Welt von ML, neuronalen Netzen und Deep Learning.

Schnell stellt sich die Frage, ob der Data Scientist mit "seinem" Python-KI-Baukasten eine individuelle Anwendung für das Unternehmen bauen und diese Komplexität selbst beherrschen sollte. Oder setzt man besser auf eine Plattform mit integrierten KI-Funktionen, die Experten für bestimmte Anwendungsfälle vorkonfektioniert haben und die vielleicht sogar eine "AutoML"-Funktion bietet? Wie bei "make or buy" üblich, gibt es auch hier keine allgemeingültige Antwort. Eine ergebnisoffene Betrachtung der Vor- und Nachteile beider Ansätze ist für die Entscheidungsfindung nötig.

BYOAIT – Bring your own AI tools

Wenn der Data Scientist im Unternehmen ein Problem mit maschinellem Lernen lösen soll, steht er vor zahlreichen Herausforderungen. Typische Aufgaben wie "Dokumenttypen im Posteingang sollen automatisch klassifiziert werden" oder "Kundenbeschwerden sollen thematisch kategorisiert werden" sind meist einfach zu verstehen. Ob sich das Problem aber mit KI überhaupt gut lösen lässt, mit welcher Erkennungsrate, mit welchen Algorithmen und unter Nutzung welcher Frameworks, ist hingegen nur schwer einzuschätzen. Es ist zudem abhängig von den zur Verfügung stehenden Daten und der Erfahrung des Data Scientist. Hier gilt: Probieren geht über studieren.

Das ist sicher ein Hauptgrund, warum Python als Skriptsprache unter Data Scientists so beliebt ist. Zusammen mit vielen ML- und NLP-Frameworks und einem Jupyter Notebook – der bevorzugten IDE des Data Scientist – steht eine Spielwiese zur Datenanalyse zur Verfügung. Ad hoc lassen sich damit Daten vorverarbeiten, transformieren, Lernmengen aufbauen, Modelle trainieren und anschließend testen. Diese Flexibilität ist ein wesentliches Argument für diesen Ansatz.

Die wichtigsten nativen Python-Frameworks für ML sind Scikit-learn, PyTorch, Keras, Theano und Pandas. Scikit-learn nutzt wiederum NumPy und SciPy und dürfte derzeit zu den beliebtesten Frameworks zählen. Natürlich stehen auch Python-Entwicklern weitere populäre Bibliotheken zur Verfügung, die in anderen Programmiersprachen entwickelt werden. Hier geben sich die Big Five mit ihren Bibliotheken die Klinke in die Hand: TensorFlow (Google), CNTK/DMTK (Microsoft), MXNet (AWS), CoreML (Apple) – Facebook ist mit dem bereits erwähnten PyTorch vertreten. Aber DeepLearning4J, Apache Spark.MLlib oder Caffe dürfen auch nicht unerwähnt bleiben. So kann sehr schnell die übersichtliche Spielwiese im Wildwuchs untergehen. Der Artikel Gehirnbaukästen aus iX 10/2019 liefert eine Einordnung der Frameworks.

Im Kontext von Text & Content Analytics sind zudem in der Regel noch weitere Bibliotheken für das NLP nötig. Ohne Kenntnis des Natural Language Toolkit (NLTK) oder spaCy dürfte es der Python-Entwickler schwer haben. Aber reichen diese Bibliotheken? Welche Bedeutung kommt eigentlich den in den Bibliotheken angeboten Algorithmen zu?

Tatsächlich liegt hier der Hase im Pfeffer: Welcher Algorithmus ist für welchen Anwendungsfall geeignet und welche Features werden überhaupt gelernt? Vor lauter Mathematik gerät das eigentliche Ziel schnell aus den Augen.