conversational-interfaces-chatbots

Conversational Interfaces (aka Chatbots) bieten viele Vorteile für Nutzer und Anbieter nahezu aller Services und Leistungen. Der Nutzer kann sein Anliegen in normaler Sprache formulieren, so als würde er mit einem anderen Menschen sprechen. Der Anbieter des Dienstes kann sofortige Antworten ohne Wartezeiten bieten, und für den Großteil der Anfragen auch die Qualität der Antworten verbessern, während gleichzeitig seine Kosten drastisch sinken. Dadurch entstehen freie Kapazitäten, um komplexe Anfragen durch echte Experten beantworten zu lassen.

Bis 2020 könnten laut Gartner bereits bis zu 85% aller Kundeninteraktionen automatisiert werden und nach Oracles Auffassung werden 80% aller Unternehmen bis dahin bereits Conversational Interfaces einsetzen. Diese rasante Entwicklung wird auch durch einen neuen Ansatz beim Design von Conversational Interfaces möglich: Durch die Verwendung von Deep Learning anstatt fester Dialogbäume.

Exkurs: Was sind Conversational Interfaces / Chatbots?

Als Conversational Interface bezeichnet man ein System zur Mensch-Computer-Interaktion, das einer menschlichen Konversation nachempfunden ist. Die Konversation kann entweder auf Textbasis (als Chat-Oberfläche) oder auch als Sprach-Variante erfolgen. Ein Nutzer kann sein Anliegen einfach in normaler Sprache eintippen oder -sprechen und erhält vom System eine Text- oder Sprachantwort. Hinzu kommen Zusatzelemente (z.B. Bilder oder Buttons), welche in die Konversation eingebunden werden können und so zusätzliche Interaktionsmöglichkeiten bieten.

Im allgemeinen Sprachgebrauch werden Conversational Interfaces auch als Chatbots bezeichnet, wobei ein Conversational Interface im engeren Sinn nur die Art der Benutzeroberfläche bezeichnet – z.B. einen Chat. Der Begriff Chatbot umfasst zusätzlich auch die Funktionen und Aktivitäten, die ein hinter dem Conversational Interface liegendes System ausführt. Der Output dieses Hintergrundsystems wird im Conversational Interface dargestellt – die Logik und das dahinter liegende System an sich sind jedoch separat zu betrachten.

Diese Hintergrundsysteme lassen sich in der Praxis an verschiedene Conversational Interfaces anbinden. Neben einer individuell entwickelten Chat-Oberfläche sind so z.B. auch Anbindungen an den Facebook Messenger, ein SMS-Gateway oder auch die Integration in Telefonanlagen möglich. Letzteres erfordert ein zwischengeschaltetes Text-to-Speech-System, welches die gesprochenen Wörter in Text umwandelt. Dieser wird dann wiederum an das Hintergrundsystem übergeben und dort verarbeitet.

Facebook Messenger Bots

Mittlerweile werden die Begriffe Conversational Interface und Chatbot synonym genutzt und stehen für das Gesamtkonstrukt aus Benutzeroberfläche und Hintergrundsystemen.

Bisher: Intelligente Erkennung der Absicht, aber regelbasierte Dialoge

Die aktuelle Generation von Conversational Interfaces verwendet bereits künstliche Intelligenz, um aus dem Input-Text die Absicht des Nutzers, den sogenannten Intent, zu extrahieren.

Für diese sog. Intent-Erkennung werden verschiedene Methoden aus den KI Bereichen supervised Learning und auch unsupervised Learning (z.B. Word2Vec) verwendet. Die Absicht des Nutzers kann mit den aktuellen Technologien und mit genügend Beispiel-Daten für das Training bereits sehr zuverlässig erkannt werden.

Ebenso können wichtige Informationen des Nutzers, sogenannte Entities, die mit seiner Absicht zusammenhängen und wichtig für den Verlauf der Konversation sind, automatisch im Text erkannt werden. Diese Entities (z.B. Start- und Zielflughafen bei einer Reisebuchung) können dann für die Füllung der notwendigen Kontext-Variablen (Slots) einer Interaktion genutzt werden.

Nach der Erkennung der Absicht des Nutzers greifen dann vordefinierte Dialogbäume, welche die erkannten Intents, Entities und Slots verwenden, um dem Nutzer regelbasiert vordefinierte Antworten zu geben und die angefragten  Aktionen auszuführen.

Und genau hier liegt die Schwäche nahezu aller aktuellen Anbieter von Conversational Interfaces / Chatbot-Systemen:

Die regelbasierten Dialogbäume werden sehr schnell sehr komplex, und dadurch starr, unflexibel und kaum noch wartbar. Sie sind optimiert für den sogenannten Happy Path, also für den bestmöglichen Ablauf einer Konversation. Die Kunden auf der anderen Seite erwarten aber ein flexibles, intelligentes System, welches z.B. auch in der Lage ist, Sprünge von einem Dialogbaum zu einem anderen zu verarbeiten.

Z.B. könnte ein Kunde mit einem Chatbot eine Flugbuchung durchführen und kurz vor dem Abschluss des Buchungs-Prozesses noch einmal nach dem Wetter am Zielort fragen – um danach den Flug entweder zu buchen oder doch noch das Ziel zu ändern. Jedes starre Dialogsystem wird hier an seine Grenzen kommen und der Nutzer wird eine enttäuschende Erfahrung machen. Für einen menschlichen Agent wäre ein solcher Themensprung kein Problem.

Generell bestehen die echten Kunden-Interaktionen in komplexen Dialogbäumen oft nur noch aus Edge-Cases und schlagen dementsprechend viel zu häufig fehl.

Der neue Ansatz: Deep Learning statt starrer Dialogbaum

Die Lösung für dieses Problem lautet: Weg mit den starren Dialogbäumen und statt dessen ein flexibles Deep Learning Modell verwenden, welches virtuelle Dialogbäume anhand von echten Beispielen lernt, und welches anhand der eingehenden neuen Kundeninteraktionen ständig dazu lernt.

Diese Strategie ist verblüffend einfach und effektiv zur gleichen Zeit: Ein künstliches neuronales Netz sagt anhand des aktuell erkannten Intents, sowie anhand der vorher bereits getätigten Interaktionen des Nutzers die beste nächste Aktion voraus, und kann so flexibel zwischen Themen hin- und herspringen, ohne den Kontext zu verlieren.

Die eingesetzte Deep Learning Technologie kann ein sogenanntes Long-Short-Term-Memory (LSTM) Netz sein, aber auch andere Arten von Recurrent Neural Networks sind möglich.

Anfangs kennt das Modell nur die Dialogwege, welche die Architekten des Conversational Interface Systems entworfen haben. Anhand der vor dem Launch erstellten Beispiel-Dialoge wird das Modell trainiert. Dabei wird absichtlich ein sogenanntes Overfitting des Modells herbeigeführt, d.h. das Modell generalisiert nicht, sondern lernt die gewünschte Dialogstruktur zunächst auswendig, und es entsteht ein virtueller Dialogbaum.

Dieser ist anfangs dadurch ebenso zuverlässig, wie ein starrer Dialogbaum – durch zunehmende echte Kundeninteraktionen bekommt das Modell jedoch immer weitere Daten zu möglichen abweichenden Gesprächsverläufen, sodass das Overfitting langsam zurückgeht und das Modell immer intelligenter generalisiert.

Je mehr valide Dialoge das System gesehen hat, desto besser und flexibler wird es. Die bis dahin gelernten Dialogbäume sind dabei keine Blackbox, sondern lassen sich auch visualisieren, um ggfs. an bestimmten Stellen nachzujustieren.

Wirklich intelligente Conversational Interfaces

Die Forschung arbeitet bereits an sogenannten End-to-End Systemen für Conversational Interfaces, bei denen mit Hilfe von Deep Learning direkt aus dem eingehenden Buchstaben-Stream dynamisch Antworten generiert und Aktionen getriggert werden.

Dieses Systeme sind allerdings noch nicht für den produktiven Einsatz geeignet. Das Abbilden von flexiblen Dialogbäumen mit intelligenten LSTM-Netzen ist jedoch schon heute eine zuverlässig einsetzbare Methode, um Chatbots und Conversational Interfaces flexibler und intelligenter zu machen, als es mit den bisherigen Tools möglich war.

Open Source Projekt RASA.AI

Besonders hervorzuheben ist in diesem Zusammenhang das Open Source Projekt RASA.AI aus Berlin. Das Team um CEO Alexander Weidauer, CTO Alan Nichol und Lead Engineer Tom Bocklisch hatte mit RASA NLU bereits eine hoch performante Open Source Library für die Erkennung von Intents und Entities entwickelt. Die in diesem Monat veröffentlichte neue Komponente RASA CORE setzt nun den oben beschriebenen Weg zur Ersetzung von starren Dialogbäumen durch ein LSTM Deep Learning Modell um und ist ebenfalls als Open Source Projekt verfügbar. Das RASA CORE System ist bereits bei großen Kunden im Einsatz und wird ständig weiter entwickelt.

Das Team von JUST ADD AI hat den JAAI Agent auf der Basis von RASA NLU und RASA CORE entwickelt und um eigene Komponenten erweitert. Der JAAI Agent kann flexibel für die verschiedensten Einsatzgebiete angepasst werden.

Es dürfte nur eine Frage der Zeit sein, bis auch die großen Anbieter von Conversational Interfaces und Chatbots ebenfalls diesen Weg einschlagen und die Chatbots von den starren Dialogbäumen befreien.


Bild: Screenshot von messenger.fb.com/get-started