iX 6/2018
S. 50
Titel
Sprachinterfaces
Aufmacherbild

Chatbots entwickeln

Sprich mit mir!

Ein Chatbot auf der Website, in sozialen Netzen oder im Messenger bietet neue Möglichkeiten der Kundenkommunikation. Dank Plattformen wie Chatfuel muss man zur Entwicklung nicht mal selbst Code schreiben.

Sprachsteuerung ist auf dem Vormarsch: Amazons Alexa und Google Home stehen in immer mehr Wohnzimmern. Seit Facebook im April 2016 den Facebook Messenger für Entwickler öffnete mit der der Einladung, Chatbots zu erstellen, ist die Zahl der Messenger-Bots explodiert – auf mittlerweile mehr als 150 000 aktive Bots. Auch auf immer mehr Webseiten kann man mit einem virtuellen Berater chatten. Kein Wunder, wenn man sich die Statistiken anschaut, laut denen Unternehmen durch den Einsatz von Chatbots im Servicebereich Geld in Milliardenhöhe einsparen könnten (diesen und weitere Links unter ix.de/ix1806050).

Die Goldgräberstimmung führt dazu, dass immer mehr Unternehmen, von Banken und Versicherungen bis hin zu Einzelhändlern, via Chatbots mit Verbrauchern kommunizieren (siehe Artikel auf Seite 58). Der Trend ist so stark, dass Gartner prognostiziert, dass bis zum Jahr 2020 85 Prozent aller Kundeninteraktionen damit bewältigt werden.

Chatbots lassen sich in Messaging-Plattformen, Webseiten, mobile Apps und soziale Medien wie Facebook integrieren. Schon jetzt werden Messenger wie WhatsApp mehr genutzt als soziale Netze – umso wichtiger wird es für Unternehmen, auch auf diesem Kanal präsent zu sein. Beim Facebook Messenger, einer der beliebtesten Messaging-Plattformen mit mehr als einer Milliarde aktiven Nutzern, sind Zehntausende Chatbots auf Facebook-Seiten von Unternehmen aktiv. Im Bot-Store von Slack, der derzeit populärsten Messaging-Plattform für die Zusammenarbeit von Teams, lassen sich nützliche Bots einfach downloaden und installieren.

Dieser Artikel erläutert, wie Chatbots funktionieren und welche Technik dahintersteckt. Das Beispiel eines Banking-Bots der fiktiven Dagobert Bank zeigt, wie eine solche Software technisch realisiert wird und was beim Design zu berücksichtigen ist.

Guck mal, wer da spricht

Der Chatbot der Wiener Städtischen hilft Besuchern der Website weiter (Abb. 1).

Ein Chatbot ist ein Programm, das mit dem Nutzer eine Unterhaltung führen kann. Meist geht es dabei um die Interaktion mit den Benutzern einer Webseite (Abbildung 1), um die Integration von Dienstleistungen in Social-Media-Plattformen wie Facebook oder um Dienste auf Messenger-Plattformen. In seltenen Fällen kommunizieren auch Bots untereinander.

Onlinekundenservices haben das größte Potenzial für Chatbots. So können sie einen Großteil der Anfragen an Callcenter beantworten, sodass nur noch Kundenanfragen, denen der Bot nicht gewachsen ist, an menschliche Mitarbeiter weitergereicht werden müssen. Chatbots sind billiger und nie genervt, sie analysieren Fragen schneller als Mitarbeiter aus Fleisch und Blut und finden die passende Antwort in kürzerer Zeit.

Auch E-Commerce-Betreiber wie H&M haben das Potenzial der virtuellen Berater entdeckt, um das Einkaufserlebnis zu verbessern. Die E-Commerce-Branche wird laut dem Chatbot Survey 2017 am meisten von dieser Technik profitieren. Selbst in sensiblen Bereichen wie dem Recruiting kommen mittlerweile Chatbots zum Einsatz und führen das Erstgespräch mit möglichen zukünftigen Mitarbeitern.

Dem Nutzer von den Lippen lesen

Das größte Problem bei Chatbots ist, dass sie nur Antworten auf vordefinierte Fragen liefern können. Bei Fragen, die die Entwickler nicht vorgesehen haben, ist der Bot ratlos. KI-Systeme sind hier auch nicht der Weisheit letzter Schluss, wie sich beispielsweise bei der Healthcare-App Babylon Health zeigte (siehe ix.de/ix1806050). Textbasierte Chatbots scheitern, wenn die Benutzer nicht die richtigen Wörter verwenden oder es mit der Rechtschreibung nicht genau nehmen. Ihre sprachbasierten Kollegen stellt eine undeutliche Aussprache vor ein Problem. Ob der Anwender die richtige Antwort erhält, hängt oft davon ab, wie eine Frage gestellt wird.

Unter Skateboardern darf es durchaus etwas informeller zugehen (Abb. 2).

Es ist wichtig, dem Chatbot einen Charakter zu geben. Diese Persönlichkeit muss im Conversational Design entwickelt werden: die passende Stimme, die Art, wie Antworten formuliert werden. Der Bot einer Bank braucht eine formellere Sprache als derjenige eines Skateboard-Labels, der durchaus etwas lockerer unterwegs sein kann.

Drei Konzepte sind zentral: Utterances, Intents und Entities. Utterances (Äußerungen) sind alles, was der Benutzer sagt oder schreibt. Gibt der Benutzer „Zeige meinen Kontostand!“ ein, so ist der gesamte Satz die Äußerung.

Was ihr wollt

Intents (Absichten) bezeichnen die Absicht des Benutzers. Mit der Äußerung „Zeige meinen Kontostand“ möchte ein Nutzer seinen Kontostand abrufen. Intents erhalten einen Namen, oft ein Verb und ein Nomen wie „zeigeKontostand“. Entities (Entitäten) ändern eine Absicht: Wenn ein Benutzer „Zeige meinen Kontostand von gestern“ eingibt, ist „gestern“ die Entität, die die Absicht ändert.

Zunächst muss ein Chatbot alle relevanten Informationen aus der Frage extrahieren. Dies geschieht durch die Anwendung von Musterübereinstimmungs- und Absichtsklassifizierungstechniken. Dabei kommt Natural Language Processing (NLP) zum Einsatz, um die Absicht zu erkennen und bekannte Entitäten zu extrahieren.

Im nächsten Schritt versucht der Chatbot, anhand von Intent, Entities und dem Kontext der Konversation die passende Antwort zu finden. Schließlich werden neu erkannte Entitäten, Absichten und Äußerungen gespeichert, um für die folgenden Anfragen verfügbar zu sein. Das ist wichtig, da eine Anforderung abhängig vom bisherigen Dialogfluss unterschiedliche Bedeutungen haben kann.

Regelbasiert oder KI-gesteuert?

Chatbots können regelbasiert oder KI-basiert arbeiten. Die regelbasierten liefern ihre Antworten auf der Grundlage fest codierter Fragen: Sie haben einen definierten Regelbaum und reagieren nur auf vordefinierte Fragen oder Schlüsselwörter. Wenn der Benutzer nicht die richtigen Wörter, Fragen oder Befehle verwendet, weiß der Bot nicht, was gemeint ist.

Künstliche Intelligenz ermöglicht es Chatbots, dem Determinismus eines Regelbaumes zu entfliehen und zu Gesprächspartnern menschlicher Nutzer in deren natürlicher Sprache zu werden. KI-Bots verwenden maschinelles Lernen und künstliche Intelligenz, um die beste Antwort zu finden. Sie sind komplexer und werden im Einsatz durch maschinelles Lernen stetig besser.

Framework oder Plattform?

Chatbot Development Frameworks stellen Funktionen und Dienstprogramme zur Programmierung von Bots bereit. Sie unterscheiden sich in der Komplexität, Integrationsfähigkeit und Funktionalität. Zu den bekanntesten zählen das Bot Framework von Microsoft, Botpress, Facebooks Wit.ai und API.ai von Google. Die Erstellung mit eigenem Code hat viele Vorteile gegenüber der Verwendung einer Chatbot Development Platform, einschließlich der Möglichkeit der professionellen Quellcodeverwaltung und der Wiederverwendung von Funktionen. Es bleibt allerdings eine äußerst komplexe und aufwendige Aufgabe.

Plattformen zur Chatbot-Entwicklung erlauben die Konzentration auf das Wesentliche – das Conversational Design des Bots. Die meisten sind mit einer Entwicklungsoberfläche und Tools ausgestattet, die das Entwickeln eines ansprechenden Bots auch ohne das Schreiben von Code erlauben. Hier kann man in wenigen Minuten einen virtuellen Gesprächspartner erstellen und ausführen. Die meisten dieser Plattformen ermöglichen auch das Integrieren der Chatbots in die diversen Messaging-Plattformen. Chatfuel gehört zu den bekanntesten Vertretern dieser Tools und wird im Folgenden zum Einsatz kommen.

Die Klassifizierung natürlicher Sprache dient zum Erkennen der Absicht eines Benutzerbefehls. Bei der Frage „Wie lautet meine IBAN?“ sollte die KI eines Banking-Chatbots erkennen, dass der Benutzer nach der IBAN des eigenen Kontos fragt. Dieses Wissen wird konstruiert, indem ein Algorithmus mit vielen realen Sprachäußerungen in einem Anwendungsgebiet, in diesem Fall dem Gebiet der Finanzdienstleistung, trainiert wird. Beliebte KI-Services sind Watson von IBM, Wit.ai von Facebook oder Microsofts Cognitive Services.

Die Dagobert Bank, eine (fiktive) Traditionsbank aus Entenhausen, möchte ihren Kunden ein neues Benutzererlebnis in Form eines Chatbots bieten. Der CIO der Bank, Dagobert Duck IV, will damit neue Kunden an Land ziehen, vor allem Millennials, die mit der digitalen Revolution groß wurden und keine Angst vor neuer Technik haben. Außerdem soll der Kunden-Support effizienter werden.

Ein Chatbot fürs mobile Banking

Abfrage der IBAN bei der Dagobert Bank im Messenger auf dem Smartphone (Abb. 3).

In der ersten Version will die Dagobert Bank noch keine Kontotransaktionen wie Überweisungen erlauben, sondern lediglich Informationen liefern. Statt auf der Website zu suchen oder sich durch eine Smartphone-App zu tippen, um beispielsweise die IBAN des eigenen Kontos zu erfahren, stellt man dem Chatbot einfach die Frage „Wie lautet meine IBAN?“. Der Bot liefert dann die IBAN des Kontos zurück.

Bevor der Chatbot entwickelt werden kann, sind einige grundlegende Fragen zu beantworten. Was soll der Bot leisten? Reicht ein Informations-Bot, der den Benutzern lediglich Informationen in einem neuen Format liefert, oder braucht die Dagobert Bank einen Service-Bot, der Aufgaben erledigt und Fragen beantwortet? Dagobert Duck IV entscheidet sich für Letzteres.

Im nächsten Schritt muss man die Use Cases definieren, die der Chatbot behandeln soll. Wichtig ist hier, nicht sofort in die Vollen zu gehen. Nach dem Motto „Weniger ist mehr“ sollen in der ersten Version drei Use Cases umgesetzt werden: Bereitstellung von Informationen, Filialsuche und Kunden-Support.

Eine wichtige Frage ist, wo der virtuelle Gesprächspartner zu Hause sein wird. Die Dagobert Bank wählt für die ersten Schritte den Facebook Messenger aus, der bereits gut als Bot-Plattform etabliert ist.

Um schnell zu Ergebnissen zu kommen, entscheidet sich die Dagobert Bank für die Entwicklung mit der Chatbot Development Platform Chatfuel, einem kostenlosen, intuitiven Chatbot-Builder für den Facebook Messenger. Er ist ausgestattet mit einer Drag-and-Drop-Entwicklungsoberfläche und erfordert kaum Coding.