Rohdaten
Der Datensatz umfasst etwa 30000 Tickets erstellt in einem Zeitraum von 5 Jahren. Ein Ticket wird mittels einer E-Mail erstellt. Jedem Ticket wurde ein Servicetyp zugewiesen, wobei bei ca. 7000 Tickets dieser Servicetyp fehlt. Insgesamt wurden ca. 400 verschiedene Typen verwendet.
Aufbereitung
Eine Klassifizierung mit einer sehr großen Anzahl an verschiedenen Typen ist nicht zielführend. Betrachtet man den Datensatz kann man erkennen, dass einige Servicetypen nur sehr spärlich verwendet wurden. Um die Kategorien einzuschränken, betrachten wir nun nur Typen mit mindestens 200 Einträgen. Dadurch bleiben 17 verschiedene Kategorien bei verbleibenden 22000 Tickets. Ohne die Anzahl der Tickets signifikant zu verringern (ca. 1000 Datensätze) kann so mit einem abgespeckten Klassenspektrum gestartet werden. Als Input wird die E-Mail im Format „<Betreff>: <Inhalt>“ verwendet.
Klassifizierung
LUIS
Zur Analyse wird der Cloud Service von Microsoft Language Understanding Intelligent Service (LUIS) verwendet.
Model
Die Erstellung eines Modells erfolgt mittels Definition von Intents und Entities. Jeder Servicetype wird als Intent abgebildet (siehe Abbildung „Intents“). Als Entities können bei Bedarf beispielsweise Fehlercode oder Personalnummer definiert werden. Auf die genaue Beschreibung zur Erstellung des Modells wird hier nicht eingegangen, da dazu bereits viele Online-Ressourcen verfügbar sind (z.B. https://aischool.microsoft.com/learning-paths/2sBClBrUiwGeeOaAWA2IQ6).
Batch Testing Panel
Im Online Portal gibt es die Möglichkeit das trainierte Model zu testen. Für jede Kategorie wird ein Diagramm mit detaillierten Klassifizierungsergebnissen angezeigt (siehe Abbildung „Klassifizierungsergebnis“). Die zugrunde liegenden Testdatensätze können mit einem Klick auf einen bestimmten Datenpunkt bzw. mittels Auswahl von einem der vier Bereiche (TP, FP, FN, TN) angezeigt werden.
Weiters werden die Kennzahlen Precision, Recall & F-Measure berechnet.
Limitierungen
- Maximal 1000 Einträge pro Testdatensatz
- Maximal 500 Zeichen pro Textinput
- Maximal 10 Testdatensätze
Evaluierung
Beim Testen des Modells (1000 Einträge) wurden nur 12,9 % aller Einträge richtig klassifiziert. Um die Ursache für dieses schlechte Ergebnis zu finden werden die Ergebnisse im Detail zu betrachten. Hier kann man erkennen, dass einige Servicetypen bereits sehr gut erkannt wurden, andere jedoch extrem schlecht.
Servicetyp | Recall |
PC | 0.03 |
Schnittstelle Vertriebssystem / ERP System | 0.06 |
Handy | 0.06 |
Laserbeschriftung | 0.08 |
E-Mail (Exchange) | 0.09 |
Telefon (Standgerät) | 0.18 |
DMS | 0.30 |
Drucker (Netzwerk) | 0.31 |
Vertriebssystem | 0.34 |
Notebook | 0.43 |
BI | 0.47 |
Smartphone | 0.56 |
Active Directory | 0.59 |
Druckmanagement | 0.62 |
Telefonanlage | 0.62 |
Office | 0.64 |
ERP System | 0.86 |
Um zu erkennen, welche falschen Kategorien für einen bestimmten Typ am häufigsten zugewiesen wurden, empfiehlt es sich, einzelne Testdatensätze mit jeweils einem Typ zu erstellen.
Dabei lassen sich folgende Erkenntnisse für die problematischen Servicetypen gewinnen:
PC
Dieser Servicetyp ist sehr allgemein, da sowohl Hardware als auch Software (Installationen, Probleme) betroffen sein kann.
Lösungsansatz: Unterteilung in spezifischere Kategorien (z.B. Softwareinstallation, Hardware, etc.)
Schnittstelle Vertriebssystem / ERP System
Fast alle Einträge des Testdatensatzes wurden zu ERP System zugewiesen.
Lösungsansatz: Kategorie entfernen und mit ERP System zusammenführen
Handy
Hier werden die Testtickets vor allem der Kategorie Smartphone zugewiesen. Generell fällt auf, dass es im Bereich Telefonie sehr viele Servicetypen gibt.
Lösungsansatz: Handy, Telefon (Standgerät), Smartphone, Telefonanlage zur Kategorie Telefonie zusammenführen
Laserbeschriftung
Bei vielen Servicetickets handelt es sich um Dateifreigaben und dadurch werden diese der Kategorie Active Directory zugewiesen.
Lösungsansatz: Überarbeitung der Datensatzeinträge und Neuzuweisung zu Active Directory, falls es sich um File/Ordner Freigaben handelt. Dadurch kann sich der Servicetyp Laserbeschriftung um programmspezifische Tickets kümmern.
E-Mail (Exchange)
Hier kommt es unter anderem zu Konflikten mit dem Servicetyp Office, da Outlook in beiden Kategorien sehr häufig erwähnt wird.
Lösungsansatz: Dieses Verhalten ist nur schwer zu vermeiden, da selbst bei manuellem Kategorisieren oft Unklarheiten auftreten. Da ein Fehlkategorisieren jedoch hier unkritisch ist, kann dies so belassen werden.
Das Erstellen eines guten Modells für eine Klassifizierung erfordert viel Fingerspitzengefühl. Mithilfe von einem Testdatensatz kann das Modell im Detail untersucht und schrittweise verbessert werden um ein zufriedenstellendes Ergebnis zu erreichen.
Automatisierung
Nachdem das Modell fertiggestellt wurde, kann dieses im Onlineportal als Webservice zu Verfügung gestellt werden. Neue Servicetickets können nun mithilfe eines SSIS Packages automatisch kategorisiert werden. Hierfür wird als erstes ein Datenflusstask erstellt (siehe Abbildung „Automatisierung“).
Der Datenfluss setzt sich zusammen aus der Datenquelle mit den neuen Servicetickets, einem Skripttask, welcher den Klassifizierungsservice aufruft, und dem abschließenden Abspeichern der Klassifizierungsergebnisse (siehe Abbildung „Datenfluss“).
Im Skripttask werden als Eingangsspalten „Betreff“ und „Inhalt“ des E-Mails verwendet. Als Ausgang wird die vom Webservice mit der höchsten Wahrscheinlichkeit deklarierte Klasse zurückgegeben (siehe Abbildung „Skript“).
Um das vom Webservice gelieferte JSON Objekt zu verarbeiten, wurden Hilfsklassen, welche eine äquivalente Struktur aufweisen, angelegt. Dadurch kann das JSON Objekt zu einem C# Objekt deserialisiert werden (siehe Abbildung „Hilfsklassen“).
Der Aufbau der URL für den Aufruf des Webservices kann der API Referenz entnommen werden: https://westus.dev.cognitive.microsoft.com/docs/services/5819c76f40a6350ce09de1ac/operations/5819c77140a63516d81aee78
Zusammenfassung
In diesem Beitrag wurde gezeigt wie mit LUIS und SSIS mit nur wenigen Zeilen Code eine vollständige Automatisierung für die Klassifizierung von Servicetickets realisiert werden kann. LUIS bietet eine Plattform um auch ohne Expertenwissen ein Machine Learning Modell erzeugen zu können, jedoch ist das Ergebnis des Services stark abhängig von einem guten Design des Modells, welches oftmals erst mithilfe eines iterativen Verbesserungsprozesses zum gewünschten Resultat führt.