Expert Views

Published on Mar 17, 2017

Teil 3: Chatbots – Technologie und Architektur

Dieser Analyst View ist Teil 3 einer Serie zu dem Thema Chatbots. Bereits veröffentlicht sind Teil 1: 2017 – Das Jahr der Chatbots? und Teil 2: Chatbots – Anbieterüberblick.

Dieser Teil widmet sich der Technologie und Architektur von Chatbots. Dazu wird zunächst der prinzipielle Ablauf einer Konversation dargestellt. Darauf basierend werden Technologien und Architekturen für die Implementierung von Chatbots vorgestellt.

Ablauf einer Konversation

Das folgende Diagramm zeigt den prinzipiellen Ablauf einer Konversation – sowohl für sprach- als auch textbasierte Konversationen.

Ablauf einer Konversation (Quelle: Crisp Research 2017)
  1. Im Falle der sprachbasierten Konversation werden zunächst die mit Mikrofonen empfangenen Audiodaten mit Verfahren der automatischen Spracherkennung in Text überführt. (Die automatische Spracherkennung wird auch von verschiedenen Anbietern als eigener Service zur Verfügung gestellt.)
  2. Aus dem vorliegenden Text, der durch Konvertierung von Audiodaten oder durch Texteingabe in einem Messenger stammen kann, werden auf Basis von Verfahren zum Verständnis natürlicher Sprache strukturierte Daten abgeleitet.
  3. Die vorliegenden strukturierten Daten werden auf Anfragen abgebildet und an eine Bot-Aplikation übergeben.
  4. Diese Bot-Applikation generiert auf Basis der übergebenen Daten Texte, die als Antwort zurückgegeben werden.
  5. Im Falle der sprachbasierten Konversation werden die Texte durch Verfahren der Sprachsynthese in Audiodaten überführt, die vom Interface über einen Lautsprecher ausgegeben werden.

Technologien

Für die verschiedenen Prozessschritte einer bot-basierten Konversation kommen verschiedene Technologien zum Einsatz, die im Folgenden erläutert werden.

Quelle: Crisp Research 2017

Benutzerschnittstelle (Hardware)

Benutzer interagieren mit einem Chatbot über ein mit Mikrofonen und Lautsprechern ausgestattets Endgerät. Beispiele hierfür sind:

  • Amazon Echo, Google Home, Apple Airpods
  • Smartphones und Tablets
  • PCs und Laptops
  • entsprechend ausgestattete Autos, Kühlschränke, Lautsprecher-Boxen etc.
  • Entwicklungsplattformen wie z. B. Conexant AudioSmart und Matrix Creator

Das können aber auch Geräte sein, die nur eine textbasierte Interaktion ermöglichen, also

  • Smartphones und Tablets
  • PCs und Laptops

Benutzerschnittstelle (Software)

Die Hardware fungiert mit entsprechender Software als sprach- oder textbasiertes Conversational Interface (CUI).

Sprachbasierte Interfaces

Das Gerät, mit dem der Benutzer interagiert, muss mit einer entsprechenden Software ausgestattet sein. Im Falle von Sprache dient die Software dazu, Audiodaten zwischen dem Endgerät und einem Service für die Konvertierung von Sprache in Text und umgekehrt zu übertragen. Dabei kommen Verfahren der automatischen Spracherkennung zum Einsatz.

Es kann auch spezielle Software zur Erkennung von “wake words” zum Einsatz kommen. So kann Amazon Echo mit “Alexa” oder Google Home mit “Hello Google” aktiviert werden.

Die in digitalen Assistenten verwendeten Services zur automatischen Spracherkennung und wake word engines werden auch als separate cloudbasierte Services angeboten.

Textbasierte Interfaces

Interagiert ein Benutzer über Text, kann dies über eine Messenger-App oder einen Messenger-Service erfolgen, der in eine Webapp eingebettet ist.

Die meisten relevanten Messenger-Apps verfügen über HTTP-basierte Bot-APIs, mit denen die Messenger für die Chatbot-Konversation genutzt werden können. Eine große Ausnahme stellt Whatsapp dar. Google bietet aktuell noch keine Bot-API für Allo, diese ist aber geplant.

Die Entwicklungsplattformen für Chatbots bieten in unterschiedlichem Maße Unterstützung für die Integration für Messenger an. Dabei können Messenger direkt aus der GUI der Entwicklungsplattformen heraus integriert werden oder es werden SDKs bereitgestellt. Die Nutzung von HTTP-APIs bietet aber allgemein die Möglichkeit, die Bot-APIs der Messenger mit den Bot-Frameworks zu nutzen.

Bot Frameworks

Die Bot-Frameworks sind der eigentliche Kern der Chatbots. Hier kommen die jüngsten Innovationen im Bereich des Natürlichen Sprachverständnisses zum Einsatz. Dabei handelt es sich um ein Teilgebiet der künstlichen Intelligenz, das inzwischen im Hinblick auf Genauigkeit (“Accuracy”) und Geschwindigkeit ein Niveau erreicht hat, das die Nutzung für Chatbots ermöglicht. Diese Verfahren sind sehr rechenintensiv und sind daher praktisch nur als cloudbasierte Services verfügbar – wenn man hierfür nicht einen HPC-Cluster on premise bereitstellen will.

In der Gesamtarchitektur erfüllen die KI-Komponenten der Bot-Frameworks die Aufgabe, die von Benutzern in natürlicher Sprache erhaltenen Äußerungen (“utterances”) auf strukturierte Daten für die weitere Verarbeitung abzubilden (Schritt 2 im “Ablauf einer Konversation”).

Die Funktionalität umfasst im Allgemeinen folgende Funktionen:

  • Zuordnung von Äußerungen (“utterances”) auf Absichten (“intents”). Den Absichten sind jeweils Funktionen zugeordnet, mit denen Antworten generiert werden.
  • Extraktion von Entitäten. Die Äußerungen enthalten Daten, die für die Generierung der Antworten von Bedeutung sind. Diese Daten werden identifiziert und aus den Äußerungen extrahiert. Dabei handelt es sich z. B. um Zahlen, Daten oder Namen. Die NLU-Plattformen verfügen zumeist über Kataloge von Entitäten (“builtin entities”) und bieten die Möglichkeit, eigene Entitäten zu definieren (“custom entities”).
  • Einbeziehung eines Kontextes. Die Generierung von Antworten ist abhängig vom bisherigen Gesprächsverlauf. Dazu werden Daten in einem Kontext transportiert, die bei der Generierung einbezogen werden können.

Das folgende einfache Beispiel demonstriert diesen Prozess:

  • Der Benutzer äußert die Frage “Wie wird das Wetter morgen in Berlin?”.
  • Im Bot-Framework sind für den Chatbot exemplarische Äußerungen hinterlegt. Dabei ist das Bot-Framework auch in der Lage, von den hinterlegten Äußerungen abweichende Äußerungen zuzuordnen. Die Äußerung wird dann z.B. als Frage nach dem Wetter interpretiert. Dies kann z. B. als strukturiertes Datum {“intent”: “weather”} abgebildet werden.
  • Zudem können auf Basis von hinterlegten Beispielen Daten extrahiert und interpretiert werden. Auch hier sorgt maschinelles Lernen dafür, dass das Bot-Framework in der Lage ist zu generalisieren, d. h. auch Daten ohne hinterlegtes Beispiel zu extrahieren. Die Bot-Plattformen unterstützen diese Datenextraktion vielfach durch Mechanismen zur Identifikation bestimmter Daten, wie z. B. Zahlen, Namen, Daten, Orte etc. Im vorliegenden Beispiel würden die Daten “18.03.2017” (Datum), abgeleitet aus “morgen”, und “Berlin” (Ort) extrahiert werden. Dies kann z. B. als strukturiertes Datum {“intent”: “weather”, “date”: “2017-03-18”, “location”: “Berlin”}
    abgebildet werden.
  • Über einen entsprechenden Handler wird dieses Datenobjekt dann an eine Funktion übergeben, die über einen entsprechenden Service die Wettervorhersage-Daten generiert und einen Antworttext generiert, z. B. “Morgen beträgt die Tageshöchsttemperatur in Berlin 9°C bei wechselhaftem Wetter”.

Bot-Applikation

Obwohl einige Bot-Frameworks die Implementierung auch komplexerer Dialoge und sogar die Einbindung von externen Services ermöglichen, ist es für die Realisierung von Chatbots im Allgemeinen notwendig, eine Bot-Applikation zu implementieren.

Prototypische Architekturen (Quelle: Crisp Research 2017)

Für die Kommunikation zwischen Bot-Framework und der Backend-Implementierung kommen verschiedene Verfahren zum Einsatz:

  • Kommuniziert die Bot-Applikation z. B. direkt mit der Benutzerschnittstelle, wird die Funktionalität der Bot-Frameworks über HTTP-APIs zur Verfügung gestellt. Das Bot-Framework erhält im Request den unstrukturierten Text und liefert eine Response mit den extrahierten, strukturierten Daten.
  • Kommuniziert dagegen das Bot-Framework mit der Benutzerschnittstelle, erfordert das im Allgemeinen die Bereitstellung einer HTTP-API (z. B. REST oder Webhook) für die Annahme von Requests vom Bot-Framework, die strukturierte Daten enthält. Das Bot-Framework erwartet dann in der Response einen Antworttext für den Benutzer.
  • Die Kommunikation mit der Bot-Applikation kann auch direkt mit Funktionen erfolgen, die als Function-as-a-Service bereitgestellt werden, wie etwa bei Amazon für Alexa und Lex.

Weitere Aspekte

In dieser aus Platzgründen stark vereinfachten und oberflächlichen Darstellung konnten viele für den praktischen Einsatz relevante Aspekte nicht erläutert werden. Dazu gehören z. B.:

  • Sicherheitsaspekte, z. B. Authentifizierung der involvierten Services
  • Abbildung der in Teil 2 dargelegten Services der Anbieter auf die Architekturen
  • herstellerspezifische Ausprägungen der hier dargelegten Architektur-Prototypen
  • tiefergehende Informationen über die verfügbaren APIs und SDKs
  • praktische Umsetzung der Architekturen in Cloud-Infrastrukturen
  • weitere Tools für die Bot-Entwicklung, z. B. für das Design oder das Prototyping von Bots, Deployment und Testen von Chatbots, Analytics für Chatbots, …
  • Aspekte wie unterstützte Sprachen, Skalierbarkeit, Performanz, Kosten, Datenschutz, …

Der Einstieg

Wir empfehlen CIOs, CDOs und anderen IT-Entscheidern eine intensive Auseinandersetzung mit dem Thema Chatbots und digitale Assistenten, wenn sie sich mit einem der folgenden Themen beschäftigen:

  • Aufbau neuer digitaler Geschäftsfelder
  • Digitaler Transformationsprozess
  • Automatisierung von Service- und Support-Prozessen
  • Einführung API-basierter Kollaborationsprozesse
  • Omnichannel-Kommunikation und Digital Customer Experience

Abhängig vom konkreten Use Case bietet das zunehmende Angebot an Chatbot-Plattformen und APIs vielfältige Umsetzungsmöglichkeiten, die am besten praktisch im Unternehmenskontext evaluiert werden. Dabei ist die rasante Entwicklung dieser jungen Produkte zu berücksichtigen – das Angebot wird schnell in der Breite und Tiefe ausgebaut werden.

Weitere Analyst Views zum Thema

Diese Analyst View ist der dritte Teil der Serie zu dem Thema Chatbots mit folgendem Aufbau: