Shitstorm Detection per Künstlicher Intelligenz: Machine Learning vs. Social Media

Shitstorm Detection, Machine Learning, Artificial Ingelligence: Über das maschinelle Lernen und dessen Fortschritte kann man wahnsinnig spannende Gespräche führen, und zwar mit Menschen, deren Auffassungen gegenüber dem Thema "K.I." unterschiedlicher nicht sein könnten. Unterhaltet ihr euch mit jemandem, der im Bereich Data Science tätig ist, erhaltet ihr vielleicht Input über spannende Gewinner-Algorithmen oder die Vorteile von Clustering gegenüber der Klassifizierung. Unterhaltet ihr euch indes mit einem Marketer, einer Einkäuferin, einer Ingenieurin oder einem Business Developer, werdet ihr feststellen, dass diese ganz andere Themen haben: Automatisierung möglicherweise, Testing, Personalisierung, Finanzwesen, Dokumentenerkennung, Sentiment Analysen. Verschiedene Stimmungsbilder herrschen also zum Thema "K.I.“ und "Machine Learning", und um genau solche geht es auch in unserem heutigen Interview mit Sven Bodemer vom funk – Content-Netzwerk der ARD und ZDF. Wir wollten von ihm nämlich wissen, wie deren überaus spannende, auf K.I. basierende Shitstorm Detection funktioniert, was dahintersteckt – und wo Parallelen zur Automobil-Branche in der Entwicklung bestehen, denn, so viel kann verraten werden: Das Ergebnis ist unterschiedlich, die Methoden gleichen sich jedoch definitiv.

Viel Spaß mit diesem spannenden Interview!

Marc Wiechmann Cognizant Mobility

Marc

Marketing Professional

15.11.22

Ca. 15 min

Sharing is caring!

Shitstorm Detection per K.I. – Data Science made for Social Media (und Automotive)

Mobility Rockstars: Hallo Sven, schön, dass du Zeit für uns gefunden hast! Magst du dich unseren Lesern kurz vorstellen und erklären, was genau du bei funk so machst?

Sven: Seit August 2022 leite ich den Bereich Softwareentwicklung, Distribution und Analytics (SEDA) bei funk. Das Ganze mache ich in Elternzeitvertretung für Rebecca Glinka, die ich an dieser Stelle ganz herzlich grüße! Zu meinen Aufgaben gehören neben Personal, Budget, Projektkoordination und administrativen Dingen auch die strategische Ausrichtung unserer Produkte, z.B. der Shitstorm Detection oder unserer WebApp funk.net. Bei funk arbeite ich seit 2018 als Data Engineer mit den Schwerpunkten Business Intelligence, Machine Learning, NLP, Social-Media-Schnittstellen sowie DevOps Aufgaben. Studiert habe ich Informatik mit dem Schwerpunkt „Interaktive Anwendungen und Maschinelles Lernen“.

shitstorm-detection-per-ki-sven-bodemer-im-interview-mit-mobility-rockstars
Sven Bodemer vom funk Content Netzwerk der ARD und ZDF stellte sich tapfer den Fragen der Mobility Rockstars – und das mit Bravour. (Copyright @funk/Jana Kay)

Mobility Rockstars: Wozu braucht man eine „Shitstorm Detection“ überhaupt? Geht das nicht manuell oder mit bestehenden Social Listening Tools wie Sprout Social etc.? Was macht ihr anders?

Sven: Manuell geht das leider nicht und mit bestehenden Tools am Markt nur bedingt, da unser Use-Case speziell ist. Generell haben wir als funk und Teil der Öffentlich-Rechtlichen mit Desinformation und Hate im Netz fast täglich zu tun. Dies war der Grund, warum wir 2021 das funk-interne, interdisziplinäre Projekt „Desinformation und Empörungswellen“ ins Leben gerufen haben. Für mein Team bestand der technische Aspekt darin, eine Lösung zu entwickeln, um möglichst frühzeitig Shitstorms erkennen und so unser Kommunikations- sowie Content-Team bestmöglich unterstützen zu können.
Was machen wir nun anders? Wir betrachten nicht nur die Social-Media-Plattformen an sich, sondern haben auch ein Monitoring für Telegram entwickelt. Denn bei unseren Analysen bereits vergangener Shitstorms haben wir festgestellt, dass sich Empörungswellen in Gruppen bereits ankündigen und teilweise dort auch organisiert werden. Außerdem haben wir ein eigenes Modell zur Sentiment-Analyse trainiert, was die Tonalität (positiv, neutral, negativ) eines Kommentars ermitteln kann.

So viele Fragen zur Shitstorm-Detection – und die Antworten

Mobility Rockstars: Stichwort Sentiment-Analyse: Wie genau ist hier das Vorgehen? Wie werden die Ergebnisse geclustert, und mit welchem Verfahren? k-means? Oder wird Klassifizierung eingesetzt? Wie trennt man im Weiteren zwischen legitimen, negativen Kommentaren („Ich finde den Krieg in der Ukraine entsetzlich!“) und Desinformations-Kampagnen, Shitstorms oder Bots?

Sven: Okay wow, das waren jetzt viele Fragen auf einmal!
Unser Sentiment-Modell kann positiv, neutral und negativ unterscheiden, also eine Klassifizierung durchführen. Für das Training haben wir Supervised Learning angewendet, ein Verfahren aus dem Bereich des maschinellen Lernens. Dabei gibt ein Supervisor vor, was richtig und was falsch ist – in unserem Fall bezieht sich das eben auf die Kommentare. Ganz praktisch bedeutet dies, dass wir einen Datensatz von 120.000 Kommentaren manuell mit positiv, neutral und negativ annotiert haben. Bei einem Clustering Verfahren wie k-Means (unsupervised learning) wäre dies nicht notwendig gewesen, jedoch ist hier der Nachteil, dass die gebildeten Cluster keine Annotation haben zu was sie thematisch gehören. Das bedeutet wiederum viel manuellen Aufwand. Ziel war es, dass unser System automatisiert die Tonalität eines Kommentars bewerten kann, deswegen Klassifizierung und kein Clustering.
Ein weiteres Beispiel ist der Kommentar „Wer bezahlt dich“, welcher unter dem maiLab Video „Impflicht ist OK“ kommentierte wurde. Der:Die Nutzer:in wollte Moderatorin Mai Thi Nguyen vermeintlich Korruption unterstellen. Kommentare dieser Art erkennt unser System korrekt als NEGATIV, auch wenn kein typisch negativ konnotierter Begriff enthalten ist.

Mobility Rockstars: Und noch ein Stichwort: „Prognostizieren“ – Wenn es um Prognostizieren bzw. Predictive Analytics geht, spielt bei uns z.B. Predictive Maintenance eine große Rolle. Was prognostiziert / predicted ihr denn so im Rahmen der Shitstorm Detection?

Sven: Unser System predicted die Wahrscheinlichkeit, mit welcher ein neuer, unbekannter Kommentar eher positiv, neutral oder negativ ist. Ein weiterer Anwendungsfall ist beispielsweise auch eine Prognose der künftigen Entwicklung von Abonnent:innen unserer Kanäle.

Shitstorm Detection – Vom Training zum (Erfolgs-)Modell

Mobility Rockstars: Künstliches, neuronales Netzwerk, schon trainiert – wie wurde die Shitstorm Detection trainiert (BERT, Deep Learning)? BERT beispielsweise ist ja als Transformer-Modell auf große Textmengen trainiert. Wie wurde euer Feintuning gemacht? Da das out-of-the-box-Modell „nur“ Word Embedding und Sprachverstehen emuliert, müsste ein End-Training für die konkrete Aufgabenstellung der Shitstormerkennung gemacht werden? Transfer Learning?

Sven: Transfer Learning trifft es ziemlich gut. Wir nutzen als Basis ein bereits fertig trainiertes BERT-Modell in der deutschsprachigen Variante. Diese wurde mit ~12GB an Daten trainiert u.a. die komplette deutschsprachige Wikipedia (https://huggingface.co/bert-base-german-cased). Darauf aufbauend haben wir ein weiteres „Layer“ generiert und den bereits angesprochenen Datensatz von 120k Kommentaren „eingefügt“. Das Feintuning – oder genauer gesagt – das Finden der optimalen Hyperparameter unseres Modells hat mehrere Wochen in Anspruch genommen. Hierbei hat uns die AI-Plattform „Weights & Biases“ (https://wandb.ai/site) wunderbar geholfen.

Mobility Rockstars: Und wieso überhaupt BERT? Habt ihr auch andere Tools probiert, oder gab es spezifische Gründe? Wurde zuvor eine simplere Benchmark gebaut (ELMO)? Convolutional Neural Network, wo Text Embedded auch schon gemacht wurde? Oder war es eher „never change a running system“?

Sven: BERT ist einfach state-of-the-art in diesem Bereich und bietet viele Open Source Modelle in deutscher Sprache an. Ja, es gibt mittlerweile neuere Verfahren und Modelle, jedoch meist nur in Englisch, was nicht sehr nützlich für uns ist.

Never change a running system? Aktuell ein klares JA! Wir sind seit September 2021 damit „live” und mussten bisher an unserem Modell keine Veränderungen vornehmen – sind aber in Planung.

Mobility Rockstars: Du hast erwähnt, dass ihr selbst 120.000 Kommentare klassifiziert habt – habt ihr wirklich all diese Beiträge selbst gelabelt? Wieso habt ihr euch für diesen Schritt entschieden, und welchen Hub hat das gebracht – ist das der Unterschied zu den 93 Prozent der korrekten Erkennung verglichen mit den 75 Prozent des off-the-shelf-Modells der Perspective A.I.?

Sven: Ja, die 120k Kommentare wurden von unserem Community-Management-Team manuell annotiert. Das war viel Arbeit, die guten Ergebnisse unseres Modells geben uns hier jedoch eine tolle Bestätigung, dass es sich gelohnt hat.
Den Vergleich mit der Perspective API von Google muss ich etwas einordnen. Es ist richtig, dass dieser kostenlose Google-Dienst bei unserem Test mit einer Genauigkeit von 75% abgeschnitten hat. Jetzt sollte hier unbedingt erwähnt werden, dass das Google-Modell keine Social-Media-Daten kennt bzw. damit trainiert wurde. Dies ist natürlich ein Unterschied zu unserem Modell und erklärt gut die Unterschiede. Bei dem Test ging es uns ganz zu Beginn des Projekts einfach darum, wie gut Out-Of-The-Box Lösungen am Markt sind.

Labels und Validierung: Wie füttert man eine Shitstorm Detection K.I.?

Mobility Rockstars: Das Thema Labeling ist ja immer, aber im Falle eurer Shitstorm Detection sogar wirklich besonders spannend: Wie stellt ihr die eindeutige Zuordnung von positiv, negativ oder neutral fest? Wurde ein Labeling-Handbuch erstellt, das beispielsweise verschiedenen Menschen gegeben wurde, um zu prüfen, ob diese Kommentare übereinstimmend als positiv oder negativ einordnen, und wurde dies dann bewertet und statistisch ausgewertet?

Sven: Ein Handbuch ist etwas zu viel gesagt, wir haben uns auf einer Seite die wichtigsten Kriterien notiert, wann ein Kommentar für uns positiv, neutral oder negativ ist. Unser 15-köpfiges Community-Management-Team hat dies dann in dessen tägliche Arbeit integriert und Kommentare kontinuierlich bewertet. Der so entstandene Datensatz wurde in Trainings- und Test-Daten aufgesplittet. Stichwort „Cross Validation”: Dies ist ein Verfahren, um zu prüfen wie gut die Vorhersagekraft eines Modells ist. Die Trainingsdaten bilden das Fundament, die Testdaten dienen dazu das Modell zu validieren und werden NICHT zum Training verwendet.

Mobility Rockstars: Da wir auch im Cloud-Sektor immer fleißig unterwegs sind, interessiert uns auch dieser Aspekt eurer Arbeit besonders: Wie habt ihr die Produktiv-Instanz umgesetzt? Besteht diese in einer Cloud, beispielsweise auf ARD-Servern oder vergleichbarem? Wie geht ihr mit „Data Drift“ und „Concept Drift“ um – muss das Modell hier neu trainiert werden? Sind dafür Machine-Learning-Ops und ein Monitoring vorhanden, um sicherzustellen, was an Trainings-Daten vorhanden ist und funktioniert?

Sven: Unsere Produktiv-Instanz läuft in der Cloud und nutzt eine GPU, um in Sekundenschnelle neue Kommentare bewerten zu können. Unser Datawarehouse ist innerhalb der ARD gehostet. Für das Monitoring nutzen wir die Boardmittel der Google Cloud.

Mobility Rockstars: Kann man sich das so vorstellen, dass es einen Alert gibt, und wenn dieser eintritt, startet eine aktive Spec-Loop Verifizierung? Sprich, der Alert wird registriert, der Prozentsatz der Fehlalarme erfasst, und diese Daten fließen in das Re-Training ein, um den going stale eines Modells mit so hoher Reifestufe zu verhindern?

Sven: Aktuell ist unser Modell statisch, sodass kein Re-Training stattfindet. Wir prüfen aktuell gerade wie sehr sich die Sprache unserer Community seit dem Training verändert hat und werden dann ggf. ein Re-Training anstoßen.

Mobility Rockstars: Gehen wir doch nochmal zurück zum Stimmungsbild, der Sentiment Analyse: Wir würden gerne über das Thema des Topic Modeling sprechen. Kann die Art des Shitstorms im Detail erkannt werden? Also kann der negative Trend noch unterteilt werden in (z.B.) Kommentare gegen die NATO, gegen Putin, gegen Melnyk, etc.? Gibt es dazu eine Nach-Lösung?

Sven: Leider nein! Unser Modell ist „nur“ in der Lage drei Klassen zu erkennen. Eine differenzierte Analyse nach bestimmten Topics ist nicht möglich und war für dieses Projekt auch nicht vorgesehen. Natürlich ist die Frage total naheliegend und berechtigt. Was wir im Business Intelligence Team bei funk jedoch machen ist, bei so spezifischen Fragen wie Kommentaren gegen ARD/ZDF, NATO, gegen Putin usw. eine Ad-Hoc Analyse zu fahren. Hierfür nutzen wir die Daten unserer Datawarehouses, SQL-Magic und die wunderbare Python Library spaCy.

Wie lässt sich eine Shitstorm Detection noch sinnvoll einsetzen?

Mobility Rockstars: In welchen anderen Technologie-Bereichen könntest du dir den Einsatz der K.I. zur Detektion von Fragen und Kommentaren noch vorstellen? Wie ließe sich euer Konzept beispielsweise auf die Automotive-Industrie übertragen?

Sven: Eigentlich in allen Bereichen, die Textdaten verarbeiten. Sei es der TikTok Account eines Automobilherstellers, der Twitter-Account eines Herstellers für Head Up Displays oder auf der eigenen Unternehmenswebsite, um einen Chat-Bot anbieten zu können.

Mobility Rockstars: Und umgekehrt – welche Technologien, Lösungen oder Insights habt ihr für eure Arbeit aus der Automotive Data Science bezogen?

Sven: Der Bereich Automotive Data Science ist für mich neu, so dass ich hierzu nichts sagen kann. Wir nutzen als Team von Data Scientist den typischen Scientific-Tech-Stack, welchen die meisten an der Uni oder Hochschule kennengelernt haben. Dazu zählen numpy, pandas, spacy, sickit-learn, pytorch, keras, tensorflow oder plottly/dash.

Mobility Rockstars: Sven, wir danken dir vielmals für deine Zeit und Mühe, unseren Fragen Rede und Antwort zu stehen. Es war wirklich wahnsinnig interessant, und wer weiß – bestimmt kreuzen sich die Wege von funk und Cognizant Mobility erneut. Die grundlegenden Felder der Data Science zeigen ja eindeutig die gemeinsamen Wurzeln im Machine Learning, der Klassifizierung und der Nutzung durchaus ähnlicher Herangehensweisen – auch wenn ihr in Sachen Shitstorm-Erkennung ganz sicher die Nase vorn habt! Wir haben uns sehr über den tiefen und detaillierten Einblick in eure spannende Arbeit gefreut, vielen Dank!

Sven: Ich bedanke mich auch für eure spannenden Fragen und würde sagen wir bleiben in Kontakt! Happy coding 🙂