Chatbot vs. Assistent – ohne Keywords keine Kekse?!

Eine technische Betrachtung der Unterschiede zwischen Text-Chat-Bots und Audio-/Voice-Assistenten

Basierend auf dem Whitepaper „Chatbots – nur „Shopping ohne Shop“ oder Revolution im Digital Commerce?“ habe ich mir die Frage gestellt, wie kompliziert es wirklich ist, einen Chatbot zu entwickeln. Dabei habe ich mir wahrscheinlich die gleichen Fragen gestellt, die sich jeder stellt, der einen eigenen Automatismus programmieren will. Und bei meinen Gedanken und der Erstellung des ersten Prototypen bin ich ziemlich schnell zu der Erkenntnis gelangt, dass auch eine Alexa oder ein Google Home oder ein Facebook nicht wirklich anders funktionieren als das, was ich mir im Kontext einer automatisierten Chat-Lösung überlegt habe.

Funktionsprinzip eines Chatbots

Grundsätzlich funktionieren die derzeit verfügbaren Chatbots nach einer relativ einfachen Mechanik. Durch eine Texteingabe bekommt ein Programm (der Bot-Algorithmus) eine Eingabe. Diese Eingabe wird in ihre Bestandteile und damit in die einzelnen eingegebenen Begriffe (Keywords) zerlegt. Anhand der Keywords versucht dann der Bot zu erkennen, was die grundsätzliche Fragestellung des Eingebenden ist. Diesen Schritt bezeichnet man als die Ermittlung des Intent, also der eigentlichen Absicht.

Sehr einfache Bots sind in der Lage, auf einen bestimmten Intent mit einer bestimmten Antwort zu reagieren. Es ist also in einer Datenbank oder einem Schema hinterlegt, welche Antwort zu einem oder mehreren Keywords passt. Dabei werden linguistische Merkmale oder Satzstellung überwiegend ignoriert. Schreibt ein Mensch beispielsweise „Ich suche ein paar Halbschuhe“, dann kann der Bot auf den Begriff „Halbschuhe“ reagieren. Die dazu gehörende Antwort wird vorformuliert durch den Betreiber des Bots. Der Bot schaut dann also in der Datenbank nach, welche Antwort er ausspielen soll, wenn das Keyword „Halbschuhe“ in der Nutzerfrage vorkommt. Das überwiegende Problem bei dieser Art Chatbot ist zum Beispiel eine Verneinung. „Ich suche Herrenschuhe, aber keine Halbschuhe“. Hier erkennt der Bot zwei Keywords. Herrenschuhe und Halbschuhe – nur was soll er machen? Darüber hinaus ist Halbschuhe negiert, sprich, der Nutzer sucht alles, nur eben nicht Halbschuhe. Diese Problematik kann ein derart einfacher Bot nicht abfangen, und wenn doch, dann auch wieder nur in einem bereits vordefinierten Rahmen.

Etwas schlauere Bots sind in der Lage, nach dem Erkennen eines Intents einen Pfad abzulaufen. Als Pfad wird dabei eine Kaskade oder Hierarchie an Fragen und jeweils möglichen Antworten oder Optionen bezeichnet. Diese weiteren Fragen und möglichen Antworten sind durch den Bot-Admin oder Betreiber in der Regel auch schon vordefiniert.

Der Nutzer gibt somit einen Text ein, der Bot prüft anhand der Keywords, ob ein Intent vorliegt, den er kennt. Wurde ein Intent für ein Keyword vordefiniert, bleibt der Bot innerhalb des Intent-Pfades und wertet alle weiteren Eingaben entsprechend der Pfad-Logik aus, die vordefiniert wurde.

Hier wird die Herausforderung schon sichtbar: „Was passiert, wenn der Bot ein Keyword nicht kennt oder nicht erkennt?“ Normalerweise ist innerhalb der Bot-Logik dann eine Art Ausweich-Schritt vorgesehen, über welchen der Nutzer die vom Bot erwarteten Eingaben als Auswahl angezeigt bekommt. Hat sicherlich schon jeder einmal gesehen – „Bitte wählen Sie eine der Optionen aus: A, B oder C“. Hier hat der Bot nicht erkannt, was eigentlich gemeint war und lenkt den Nutzer so in eine Richtung, in die er selber weiter seinem Pfad folgen kann.

Funktionieren Alexa und der Google Home-Bot Allo anders und wo liegt die „Magie“?

Im Grunde funktionieren auch Audio- oder Voice-Bots nach dem gleichen Schema. Der Unterschied zu dem bereits Dargestellten liegt mehr oder weniger „lediglich“ darin, dass eine Alexa den Audio-Input, also die Spracheingabe, in einen Text umwandelt. Dabei werden Verfahren wie „Natural Language Processing“ oder „Latent semantische Indexierung“ genutzt. Das Ende der Transformation sind wiederum Keywords, anhand derer auch eine Alexa in der Datenbank nach einem Ergebnis sucht. Die Vorteile des NLP liegen darin, dass die beschriebenen Verneinungen eher erkannt werden, sodass ein Intent wesentlich treffsicherer erkannt werden kann als bei den einfachen Bots. Große Anbieter, wie Facebook beispielsweise, nutzen NLP auch für die Chat-Bot-Anbindung – der Aufwand der Umsetzung ist allerdings nicht trivial und setzt viele Daten voraus. Und die hat nicht jeder…

Die Antwort auf eine gestellte Frage erfolgt auf dem gleichen Weg, nur rückwärts. Das ermittelte Ergebnis wird wieder in einen Audio-Stream konvertiert, wobei alle von Alexa „gesprochenen“ Worte bereits vorliegen. Die Rückwärts-Transformation erfolgt auf den Amazon-Servern und unterliegt sicherlich einer gewissen modularen Anpassung, damit die gesprochenen Sätze eher natürlich wirken.

Durch diese Methodik ist es Amazon u.a. möglich, die Alexa-Plattform zu öffnen und externen Anwendern und Entwicklern die Möglichkeit eigener Anwendungen (Skills) zu geben. Das Grundprinzip bleibt dabei das Gleiche. Ein Alexa-Skill wird eingerichtet und reagiert auf Keywords. Man muss den Skill nicht an Sprache gewöhnen, sondern der Skill arbeitet wie ein Chatbot auf der Basis von Keywords. Diese werden wie beschrieben von Amazon aus dem Audio-Input des Nutzers errechnet bzw. ermittelt. Anschließend werden die ermittelten Keywords an den Skill weitergegeben, welcher entsprechend der Vordefinition reagiert.

Ein wichtiger Punkt bei den bisher beschriebenen Vorgehensweisen ist und bleibt das Anlernen des Bots. Hier gibt es zwei Wege, die allerdings gerne kombiniert werden. Der erste Weg sieht vor, das der Entwickler oder Konzepter des Bots versucht, alle möglichen Intents und vor allem auch die weiteren Schritte innerhalb eines Pfades zu antizipieren. Das bedeutet, der Entwickler definiert alle Pfade inklusive der möglichen Antwortoptionen und Reaktionen des Bots vor.

Der andere Weg sieht vor, dass der Entwickler oder der Kunde den Bot trainiert. Dazu wird sicherlich ein erster Pfad vordefiniert, der Kunde/Nutzer oder Admin kann jedoch nach einer Antwort des Bots angeben, ob und wie gut die Antwort war. Je nach Bewertung wird dem Bot dadurch beigebracht, ob er richtig oder falsch geantwortet hat. Bei einer gleichen Frage kann der Bot dann entsprechend anders reagieren. Dieses Verfahren bedingt einen gewissen Grundbestand an Daten, damit der Bot bei einer als „falsch“ gekennzeichneten Antwort eine weitere Option hat, zu antworten. Damit dieses Verfahren angewandt werden kann, ist es also notwendig, erst einmal viele Daten im Chat-Modus des Bots zu sammeln. Sind ausreichend Daten und Chat-Historien vorhanden, kann man beginnen, die Antworten des Bots zu analysieren, Nutzerbewertungen einfließen zu lassen und dem Bot mögliche weitere Antwortoptionen zur Verfügung zu stellen.

Die hohe Schule besteht letzten Endes darin, dass der Bot selbstständig lernt. Dazu muss ihm aber (heute noch) in einer Art „Trainingsmodus“ beigebracht werden, wie ein Frage-Antwort-Schema aussehen kann und welche Art von Antwort (Tonalität und Inhalt) pro Schema zu geben ist. Das derzeit viel genutzte Beispiel von IBM Watson benötigt ebenfalls einen Trainingsmodus. Im ersten Schritt wird Watson mit sehr vielen Daten gespeist.

Diese Daten analysiert das System – basierend auf Keywords sowie semantischen und linguistischen Verfahren. Anschließend kommt Watson in den Trainingsmodus. Der sogenannte „Knowledge-Corpus“ wird durch Menschen/ Experten manuell klassifiziert, strukturiert und grundsätzlich organisiert. Durch diese erste Bewertung und Organisation des Wissens lernt Watson also, wie eine Information zu verstehen und eine Frage zu beantworten ist (siehe Video). Je nach Datenmenge und Fragevolumen kann der Lernprozess schon die eine oder andere Woche dauern.

Der Google-Bot Allo ist in zwei Punkten etwas weiter als Alexa (jedenfalls zum aktuellen Stand). Der Google-Bot wandelt auch Sprache in Keywords um, nur kann sich der Google-Bot das Ergebnis einer vorherigen Frage merken und eine folgende Frage semantisch in den Kontext der bereits gegebenen Antwort bringen. Dadurch erscheint die Kommunikation weitaus menschlicher und intelligenter. Darüber hinaus kann Google die auf der Webseite schon seit langem genutzten Analytics-Ergebnisse nutzen. Schon seit Jahren zeichnet Google die wahrscheinliche Qualität der angezeigten Suchergebnisse auf. Wesentliches Kriterium bei einer Web-Suche ist dabei, wie lange ein Nutzer nach einem Klick auf ein Suchergebnis auf der Zielseite bleibt bzw. wie lange es dauert, bis er wieder in der Google-Suche ist und einen anderen Link klickt bzw. neu sucht. So erkennt Google selbst, wie gut das ausgespielte Ergebnis zur Frage des Nutzers passte. Kommt der Nutzer nicht wieder auf die Google-Suche, war das Ergebnis offenbar zufriedenstellend. Wenn Google dieses Wissen, wie gut eine Antwort auf eine Frage ist, in Allo oder den Google-Assistenten in kommenden Smartphones einfließen lässt, ist der inhaltliche Vorsprung gegenüber Amazon doch schon bedeutend.

Was Google bisher noch etwas fehlt, ist dann lediglich eine Mechanik die den Alexa-Skills Konkurrenz machen kann – aber auch hier sehe ich deutliche Zeichen, dass es bald so weit sein wird. Das Öffnen der Google „Daydream“-Plattform im Kontext Virtual und Augmented Reality ist wahrscheinlich nur der erste Schritt dahingehend, auch die Plattformen für Assistenzlösungen zu öffnen und externen Entwicklern analog des Google Play Stores die Möglichkeiten zu offerieren, eigene Anwendungen auf Voice-(Text)-Basis zu etablieren.

Ich bin gespannt, wie das Abrechnungsmodell aussieht, oder ob sich Google mit unseren Daten zufriedengibt.

Alexander Käppler

digital expert
Tel.: +49 711 2992-469
digital-solutions@diconium.com