Texte klassifizieren mit Azure ML

Das Kategorisieren von Kundenkorrespondenz ist zeit- und ressourcenintensiv. Wir zeigen eine Lösung auf Basis der künstlichen Intelligenz (KI).

Autor: Andreas Schneider

Kundenanliegen schnell und gut zu beantworten bedingt, dass sie an die richtige Stelle gelangen. Wir zeigen, wie wir dies mit modernen Methoden aus dem Bereich der künstlichen Intelligenz (KI) erreichen können. Dank Machine Learning (ML) in der Cloud, können wir die Anwendung schneller als mit herkömmlichen Methoden entwickeln, bereitstellen, operationalisieren und letztendlich auf den Markt bringen.

Use Case

Die Sprache ist unser wichtigstes Kommunikationsmittel. Deshalb birgt die automatisierte Auswertung von Texten grosse Potenziale. Textklassifizierung gehört zu den «Low Hanging Fruits» mit direktem Nutzen für die Benutzer. Lassen Sie uns nun also eine Frucht vom Machine-Learning-Baum pflücken. 

Unser Beispiel ist eine Versicherung, die ihre Kundenanfragen, mit Textklassifikation automatisiert, an die richtigen Bearbeiter zuordnen will. So gelangen die E-Mails schneller an die richtige Stelle und können zeitnah beantwortet werden. Dies soll nun neu durch eine «Lernmaschine» erfolgen und nicht mehr manuell von einer Person durchgeführt werden. Die Maschine teilt uns mit, mit welcher Wahrscheinlichkeit die E-Mail in eine der verschiedenen Kategorien gehört (Abbildung 1).

Lernmaschine.png
Abbildung 1: Eine Lernmaschine schätzt automatisch die Zugehörigkeitswahrscheinlichkeiten für ein gegebenes Kundenmail.

Weitere Use Cases für textuelle Daten finden Sie im Blogbeitrag zum Thema AI-based Natural Language Processing: 7 Einsatzgebiete in modernen Unternehmen.

Text-Klassifizierung mit Azure ML – 3 Phasen

Unser ML Modell für die E-Mail-Klassifizierung lernt aus Beispiel-Mails, von welchen wir die korrekte Zuordnung bereits kennen. Wir verwenden hier die Methoden, die uns Azure ML bietet um Daten, Code, und Modelle zu versionieren, damit wir die Entstehung unseres Modells später nachvollziehen können.

Erfolgreiches Machine Learning zeichnet sich durch ein sauberes Management von Daten, Modellen, Code und Deployments aus. Dazu sollten wir den ML-Lebenszyklus im Blick behalten und auf Best Practices achten. Azure ML hilft uns dabei.

Machine Learning Lebenszyklus_Webseite.png
Abbildung 2: Machine-Learning-Lebenszyklus. 1. Daten beschaffen, 2. Modelle Trainieren, 3. Modelle Bereitstellen. Wiederholen.

Machine Learning Projekte, wie das hier beschriebene, bestehen grob aus drei Phasen (Abbildung 2). Für jede Phase gibt es in Azure ML Konzepte, welche die Entwicklung vereinfachen. Abbildung 3 gibt einen Überblick zur Implementierung unseres Use Cases:

lAblauf Trainingsdaten bis fertiges Modell_Blau.png
Abbildung 3: Ablauf der Schritte von den Trainingsdaten bis zum fertigen Modell.

1.    Phase: Daten beschaffen

  • E-Mails einlesen: Wir laden die gelabelten Mails als Dataset nach Azure ML.
  • Vorverarbeiten: Wir wandeln den E-Mail-Inhalt in eine Abfolge aus Zahlen um. Worte entsprechen danach Zahlen. 

2.    Phase: Modelle trainieren

  • Training: Wir erstellen Modelle, die wir mit den vorverarbeiteten Texten und Kategorien aus dem vorherigen Schritt trainieren. 
  • Evaluation: Wir evaluieren die Performance und passen die Modelle, falls sie nicht zufriedenstellend sind, an. Wir wählen das beste Modell für das Deployment aus.

3.    Phase: Modell bereitstellen

  • Deployment: Modell über Rest-API auf einem Inference Cluster anbieten.
  • Monitoring: Azure ML sammelt die Eingabedaten und die Vorhersagen, um Data Drift zu erkennen und Leistungseinbussen früh festzustellen.

4.    Phase: Wiederholung Phase 1 bis 3

  • Der Kreis schliesst sich, indem wir das Modell mit den neu gesammelten Daten weiter trainieren.

 

Speziell für die Schweiz müssen wir in allen drei Phasen die Mehrsprachigkeit beachten, um gute Resultate zu erzielen. Pro Sprache haben wir unterschiedliche Mengen an Daten, aus welchen wir sprachspezifische Modelle erstellen.

In der Umsetzung unterstützt uns Azure ML mit verschiedenen Konzepten, welche die Entwicklung vereinfachen. Datasets geben uns versionierten Zugriff auf unsere E-Mails, unabhängig davon auf welcher Recheninstanz wir uns befinden. Resultate, Plots und andere Informationen, welche wir während dem Training aufzeichnen, können wir für jeden Durchlauf im Webinterface einsehen und damit verschiedene Runs vergleichen. Die Klassifikationsmodelle erfassen wir in der Model Registry. Sie gibt uns einen Überblick über alle Modelle und Modellversionen und vereinfacht uns die Modellauswahl. Mit Azure ML können wir mühelos fertige Modelle übers Internet anbieten und danach überwachen lassen. Azure ML erstellt dafür eine REST API für Modellabfragen. Pipelines geben uns die Möglichkeit bestehende Modelle mit den frisch gesammelten Daten zu trainieren. Zudem bietet Azure ML weitere Features wie zum Beispiel Auto ML, um das Bauen von Modellen zu automatisieren. 

Fazit


Azure ML gibt uns eine simple Infrastruktur, auf welcher wir mit bestehendem Wissen Machine-Learning-Modelle in der für Unternehmen geforderten Qualität entwickeln können. Die Beschleunigung  durch die Cloud verkürzt nicht nur die Time-To-Market, sondern erlaubt es uns auch Modelle mit speziellen Hardware-Anforderungen zu trainieren. Gleichzeitig bezahlen wir in der Cloud nur für diejenigen Dienste, welche wir benötigen.

Zudem unterstützt – oder fast schon zwingt – uns Azure ML reproduzierbare und nachvollziehbare Modelle zu bauen, weil Daten, Code und Modelle konsequent versioniert werden. Vorüber sind die Zeiten als jemand ein Modell gebaut hat, von dem nachher niemand mehr wusste, wie es zustande gekommen ist.

Dank Machine Learning können unsere Kunden schneller und besser auf die Anliegen ihrer Kunden reagieren. Das automatisierte Kategorisieren ist dabei erst der Anfang. Künstliche Intelligenz bietet weitere Möglichkeiten, den Kundenkontakt personalisiert und automatisiert zu unterstützen.
 

Tech-Box

Daten: E-Mail Inhalte, Labels für die verschiedenen Kategorien, einlesen mit Pandas.

Modell: Zeitreihen Multi-Class-Klassifizierung, LSTM Layers mit Keras.

Cloud: Azure ML Python SDK, Modellentstehung als Pipeline, Training mit GPUs, Deployment auf Inference Cluster