Natural Language Understanding (NLU) – Über die Nutzung von Techniken zur maschinellen Verarbeitung natürlicher Sprache
Die Zahl der Applikationen zur Verarbeitung natürlicher Sprache steigt beinahe genauso rasant an wie die Anzahl der Lösungen, die man sich von dem zugrundeliegenden maschinellen Lernen verspricht. In den vergangenen Jahren haben große Messaging-Plattformen wie Facebook begonnen, sprachverarbeitende Technologien wie Chatbots nicht nur zu dulden, sondern zu fördern. Aber nicht nur Chatbots, die primär Texteingaben verarbeiten, sondern auch Sprachassistenten wie Siri spielen eine immer größere Rolle für die Industrie und den Endverbraucher.
"Ich habe dich leider nicht verstanden" ist ein Satz, den Nutzer von solchen Applikationen nicht selten hören. Woran liegt das und wie kann diese durchaus frustrierende Aussage umgangen werden? Dieser Artikel setzt sich mit den Chancen und Grenzen von Technologien, die sich an der Verarbeitung der natürlichen Sprache versuchen, auseinander. Wir konnten unter anderem im Finanz- und im Mobilitätssektor bei der Erstellung solcher Applikationen verschiedenste Erfahrungen sammeln. Anhand dieser Erfahrungen werden mögliche Hürden aufgezeigt und es wird erläutert, wie diese genommen werden können.
Chancen – das Beispiel Chatbots
Das präsenteste Beispiel einer sprachverarbeitenden Technologie sind Chatbots, Computerprogramme, die die Intention einer Anfrage verstehen und darauf angemessen reagieren sollen. Chatbots werden vorwiegend über Messaging-Applikationen wie den Facebook Messenger oder über den Webauftritt von Unternehmen eingebunden. Während es humoristische Gesprächsausschnitte in die Schlagzeilen schaffen, wird wenig über die Bots selbst diskutiert, obwohl eine Vielzahl von großen nationalen und internationalen Unternehmen wie Sparkasse, CNN und Mastercard sich seit einigen Jahren mit Chatbots befassen.
Die Gründe dafür, dass Chatbots für viele Firmen bereits interessant sind und immer interessanter werden, sind vielseitig: Immer mehr Endverbraucher weichen von traditionellen sozialen Medien wie Facebook auf reine Messaging-Applikationen aus, wodurch ideale Rahmenbedingungen für die Verbreitung von Chatbots geschaffen werden [1, 2]. Auch die steigende Bereitschaft von Nutzern, generell mit Bots zu kommunizieren, ist zentral [3]. Die Akzeptanz steigt vor allem deswegen, weil die zugrundeliegende Technologie in den letzten Jahren große Fortschritte zu verzeichnen hat.
Häufig gibt es allerdings Schwierigkeiten, eine Idee als Bot umzusetzen, denn eine oft unterschätzte Hürde ist das Erstellen eines umsetzbaren Konzepts. Gerade wenn es keine ausreichende Auseinandersetzung mit der verwendeten Technologie gibt, ist eine realistische Konzeptionierung schwer. Fehlt diese, können mehrere nachträgliche Restrukturierungen erforderlich sein. Mitunter stellt sich dabei heraus, dass das gewünschte Ziel nicht mit einem Chatbot umsetzbar ist. Doch in welchen Bereichen sind gute Chatbots nun sinnvoll und ohne den Einsatz von vielen Ressourcen umsetzbar?
Der Hauptanwendungsbereich für eine solche Technologie ist aktuell der Kundenservice: Oftmals gibt es frei verfügbare Ressourcen zu wiederkehrenden Problemen eines Produkts – beispielsweise in Form von FAQs. Diese sind jedoch häufig schlecht zugänglich, da eine spezifische Fragestellung benötigt wird, um zu dem gewünschten Ergebnis zu gelangen. Auch die Navigationsstruktur der Ressourcen ist für den Endnutzer womöglich nicht intuitiv genug. Dies ist ein idealer Einsatzbereich für Chatbots, denn gerade lineare Aufgaben mit fest definierten Schritten und einem begrenzten Aufgabenbereich, wie beispielsweise Bestellvorgänge oder das Abfragen von Informationen, lassen sich häufig durch Chatbots schneller vielfältig, übersichtlich und zentral gestalten.
Chatbots können genutzt werden, um zu informieren: Viele Unternehmen kämpfen damit, vorhandene Informationen – intern, genauso wie extern – leicht verfügbar zu machen. Die Fachsprache einiger Branchen ist für Laien schwer verständlich. Um beim Verständnis der Materie zu helfen und Interesse zu wecken, können Chatbots eingesetzt werden. Diese können intuitive Erklärungen oder zuverlässige Definitionen von Begriffen auf Nachfrage der Nutzer liefern. Durch die Möglichkeit, den Chatbot mit einer Persönlichkeit zu versehen, kann ein Bot verschiedenste Zielgruppen ansprechen. Soweit die Theorie, woran kann dies jedoch scheitern?
Grenzen – Was bei der Projektplanung beachtet werden sollte
Seit einigen Jahren werden immer mehr Technologien entwickelt, um Programmen menschliche Eigenschaften zu geben. Zentral ist dabei vor allem die Eigenschaft des Verstehens. Hinter dem Sprachverständnis der meisten modernen sprachverarbeitenden Technologien steckt maschinelles Lernen.
Grenzen des maschinellen Lernens verstehen
Maschinelles Lernen ist die Basis beeindruckender Errungenschaften, wie des Besiegens von Lee Sedol in Go [4]. Von der dadurch erzeugten medialen Präsenz und Euphorie profitieren andere Anwendungen des maschinelle Lernens, wie das maschinelle Sprachverständnis, bei dem das maschinelle Lernen mittlerweile meist als zentraler Bestandteil angesehen wird [5].
Nun ist es nicht abstreitbar, dass das maschinelle Lernen für substantielle Fortschritte beim Verständnis der natürlichen Sprache (Natural Language Understanding, kurz NLU) verantwortlich ist und es in den letzten Jahren viele Durchbrüche in diesem Forschungsgebiet gab. Dennoch: auch wenn die modernen Systeme deutlich vielfältiger einsetzbar und fehlerresistenter als vorangegangene Verfahren sind, gibt es viele Bereiche, in denen das Erkennen der Intention des Nutzers noch problematisch ist. Beispiele hierfür sind Sarkasmus und Negationen. Darüber hinaus können bei Textanfragen Rechtschreibfehler, Dialekte oder lange, komplexe Fragestellungen zu Fehlern führen. Bei Spracheingaben wiederum stören beispielsweise Umgebungsgeräusche.
Um passende Antworten zu generieren, ist es nötig, die Sprachmodelle zu trainieren. Das heißt, dass beispielhafte Eingaben erzeugt werden müssen, damit aus diesen weitere – gegebenenfalls unbekannte – Eingaben korrekt klassifiziert werden. Um eine hohe Genauigkeit zu gewährleisten, müssen neue Informationen händisch antrainiert werden. Da das selbständige, vollautomatisierte Antrainieren von Informationen in der Regel zu fehlerhaft ist, wird die Interaktion mit dem Nutzer meist auf bestimmte Themen limitiert. Diese Limitierung sollte dem Nutzer klar vermittelt werden.
Wichtig ist zudem, zu verstehen, dass ein natürliches Sprachverständnis nicht der Ist-Zustand dieser Technologie ist, sondern das generelle Ziel. Ein echtes Sprachverständnis ist aktuell nicht möglich und leichte Abweichungen vom Wissensschatz des Bots können zu einem frustrierenden Nutzererlebnis führen.
Egal, ob die Kommunikation über Text- oder Sprachinput verläuft: Bots benötigen Training, um ihren Wissensschatz zu erweitern. Dies geschieht meist über NLU-Plattformen, also Plattformen, deren Hauptaufgabe es ist, das Verstehen der Sprache als Service anzubieten. Fragestellungen müssen hier vom Ersteller des Bots selbst eingegeben werden. Wenn Anfragen außerhalb des antrainierten Fragenpools eintreffen, ist die künstliche Intelligenz deutlich weniger intelligent.
Eine geeignete Plattform zur Sprachverarbeitung wählen
Wie bereits erwähnt, gibt es verschiedene NLU-Plattformen, die sich auf das Erkennen der Intention einer Nutzereingabe konzentrieren. Auf diesen Plattformen lassen sich Nutzereingaben – derzeit in der Regel händisch – mit den gewünschten, meist statischen, Antworten des Bots verknüpfen.
Bei dieser Verknüpfung müssen nicht alle möglichen Eingaben antrainiert werden, sondern es werden sogenannte Entitäten ermittelt und verknüpft, um Fragevarianten zu einem bestimmten Themengebiet zusammenzufassen. Diese Entitäten kann man sich meist wie Slots vorstellen, die im Laufe der Konversation gefüllt werden müssen. Bei der Anfrage "Wie ist das Wetter in Frankfurt?" ist “Frankfurt” eine mögliche Ausprägung einer Entität zum Ort, die bei dieser Anfrage erwartet wird. Entitäten sind oft Gruppierungen von Worten, die inhaltlich dem selben Gebiet zugeordnet werden können ("Fußball" und "Volleyball" wären beide in dem Gebiet "Ballsport"), oder Synonyme. So kann es eine Entität zum Themenbereich "Kosten" geben, in der die Formulierungen "wie teuer" und "was kostet" enthalten sind. Nach Antrainieren der Frage "Wie teuer ist das Produkt?" wird die Frage "Was kostet das Produkt?" implizit erkannt. Häufig werden Konzepte zum Simulieren eines realen Gesprächsablaufs genutzt; die genauen Funktionalitäten sind jedoch plattformabhängig.
Zusammen mit der rasant steigenden Zahl von Softwarelösungen, die sich auf NLU verlassen, ist das Angebot solcher Plattformen gestiegen. Neben proprietären Lösungen großer Unternehmen, wie beispielsweise Dialogflow von Google oder LUIS von Microsoft, existieren auch Open-Source-Plattformen wie Rasa oder Snips [6]. Mit letzteren ist ein besserer Schutz der Privatsphäre möglich, da sie nicht herstellerspezifisch in der Cloud laufen müssen. Snips spezialisiert sich zudem auf besondere Hardwarearchitekturen (Embedded/IoT).
Die Qualität der Antworten der Plattformen unterscheidet sich dabei nicht nur im inhaltlichen Themengebiet, sondern auch in den Arten der Fragestellungen, die am besten verarbeitet werden können.
Vereinfacht gesagt fokussieren sich einige Plattform mehr auf die Ermittlung von Entitäten, um aufgabenorientierte Anfragen zu verarbeiten, während andere Plattformen darüber hinaus versuchen auch natürliche, freie Texteingaben zu verarbeiten. Dies ist ein ambitioniertes Unterfangen, denn es ist im Allgemeinen schwer, die Intention aus langen Sätzen mit vielen Informationen zu filtern oder ausholendere und breitere Fragestellungen zu unterstützen.
Wenn hingegen eine Anfrage mit begrenzten Fragemöglichkeiten verarbeitet werden soll, die einem linearen Ablauf mit wenig Unregelmäßigkeiten folgt, dann sind die qualitativen Unterschiede zwischen den Plattformen eher gering. Ein Beispiel hierfür ist die Eingabe von Nutzerdaten, die einem festen Schema folgen. In so einem Fall eröffnen sich daher mehr Möglichkeiten, eine passende NLU-Plattform zu wählen, die weitere Vorteile für das eigene Projekt bietet. Dies kann beispielsweise der bereits erwähnte Fokus auf die Privatsphäre sein.
Keine der Plattformen bietet allerdings eine Lösung, die für alle Anwendungszwecke im Bereich der natürlichen Sprachverarbeitung gleichermaßen geeignet ist, weswegen die für das eigene Projekt passende Lösung stets individuell ermittelt werden sollte.
Ausreichende Informationen über den Entwicklungsaufwand sammeln
Bei der Einschätzung des Entwicklungsaufwands sollte zunächst vor allem zwischen dem inhaltlichen und dem technischen Entwicklungsaufwand differenziert werden.
Der inhaltliche Entwicklungsaufwand ist abhängig von den gewünschten Fähigkeiten der zu entwickelnden Applikation. Je komplexer die Aufgaben, Anfragen oder generell das Themengebiet des Bots, desto schwieriger ist es, Nutzeranfragen zuverlässig zu beantworten. Eine umfangreiche Unterstützung von offenen Fragen kann vor allem bei Projekten wichtig sein, die eine Außenwirkung haben. Es besteht zwar die Möglichkeit, dass die inhaltliche Entwicklung durch eine externe Firma übernommen wird, jedoch sind die Entwicklungskosten erfahrungsgemäß deutlich geringer, wenn das Training von Antworten zu offenen, fachlichen Fragen unternehmensintern durchgeführt wird. Dies liegt vor allem daran, dass es längere Absprachen bei der Erstellung von Antworten geben kann, wenn die Entwickler fachfremd sind. Ein möglicher Grund für die externe inhaltliche Entwicklung ist, dass Mitarbeiter für das Training eines Bots in der Handhabung der NLU-Plattform geschult werden müssten, was sich bei einem kleinen Bot unter Umständen nicht rentiert.
Bei Unternehmen mit großen Datenspeichern gibt es oft den Wunsch, Daten durch einen Bot sinnvoll und beispielsweise für interne Zwecke passend aufzubereiten. In solchen unternehmensinternen Projekten können Kosten gespart werden, wenn Zusatzfunktionalitäten wie Smalltalk in den Hintergrund rücken oder ganz ignoriert werden. Je nach Anwendungsgebiet und Anspruch können einige Komponenten des Bots allerdings stattdessen ausgelagert werden, um firmenintern Aufwand zu sparen. So gibt es beispielsweise vorkonfigurierte und anpassbare Smalltalk-Komponenten. Solche Zusatzkomponenten helfen unter anderem dabei, unerwünschte Eingaben wie Beleidigungen abzufangen und dem Bot eine grundlegende Persönlichkeit und Intelligenz zu verleihen.
Das Training eines Chatbots ist vor allem zu Beginn aufwändig. Nach einer anfänglichen, ausführlichen Trainingsphase ist die Betreuung jedoch meist mit geringem Ressourcenaufwand umsetzbar. Da der Inhalt eines Chatbots zudem nicht von der Messaging-Plattform abhängt, sondern über die NLU-Plattform erstellt wird, kann der Inhalt für andere Applikationen und Messaging-Plattformen wiederverwendet werden.
Der technische Entwicklungsaufwand ist hingegen in der Regel anfangs gering, jedoch können sich die Anforderungen an die Fähigkeiten des Bots schnell ändern. In solchen Fällen hängt der zusätzliche Entwicklungsaufwand von der Architektur des Bots ab. Generell kann zwischen die Messaging- und die NLU-Plattform ein eigener Server geschaltet werden, der die Verarbeitung der Nachrichten organisiert. Ist die Applikation so aufgebaut, müssen bei einer Erweiterung lediglich entsprechende Schnittstellen für neue Messaging-Plattformen oder NLU-Plattformen geschrieben werden, die die plattformspezifischen Formate unterstützen.
Eigene Schnittstellen zu schreiben ist nicht zwingend notwendig, denn alternativ zum oben genannten Aufbau gibt es auch NLU-Plattformen, die das Sprachverständnis direkt mit einer Applikation verknüpfen und bei denen auf einen Server verzichtet werden kann. Das ist natürlich entwicklerfreundlicher und kostensparend, hat jedoch unter anderem den Nachteil, dass persönliche Informationen des Nutzers direkt an die NLU-Plattform gelangen, die sonst von einem Server abgefangen werden könnten. Diese Informationen können die Facebook-Kennung oder Angaben zur eigenen Person sein.
Im Hinblick auf zukünftige Erweiterungen und die damit verbundenen Kosten zahlt es sich also aus, den Bot auf zwei Ebenen ordentlich zu planen. Zum Einen sollten inhaltlich die sprachlichen Möglichkeiten durch eine klare Definition des Aufgabengebiets abgesteckt werden. Zum Anderen sollte die technische Seite wohldurchdacht sein. Das von uns entwickelte Bot-Framework setzt hier auf ein Dreischichtenmodell.
Architektur zum Einbinden der natürlichen Sprachverarbeitung
Das entwickelte Bot-Framework baut auf den Erfahrungen auf, die im Laufe der letzten Jahre durch die Entwicklung mehrerer Bots für verschiedene Plattformen gesammelt wurden. Obwohl dieses Framework für Chatbots entwickelt wurde, lässt es sich einfach auf weitere praktische Aufgabengebiete der Sprachverarbeitung, wie die automatische Spracherkennung (Automated Speech Recognition – ASR), anwenden oder damit verknüpfen.
Zentral ist bei dieser Architektur die klare Komponententrennung, die das Einfügen neuer Funktionen wie plattformspezifischer Input-/Outputformate (u. a. Antwortvorschläge, Buttons oder Bilder) ermöglicht. Durch eine einheitliche Schnittstelle ist es möglich, über mehrere Kanäle zu kommunizieren. So kann der gleiche Bot Nachrichten beispielsweise sowohl über den Facebook Messenger empfangen und beantworten, als auch Anfragen von einem im eigenen Webauftritt eingebundenen Chatfenster verarbeiten.
Ein für diese Architektur typischer Datenaustausch könnte wie folgt aussehen: Nachdem ein Nutzer eine Eingabe getätigt hat, wird die Nachricht an einen Server geleitet. Dieser verwirft überflüssige Metadaten, also Informationen, die durch messenger-spezifische Übertragungsformate erzeugt werden, aber nicht für die Verarbeitung der Nachricht nötig sind. So wird die Nachricht auf das Nötigste reduziert. Teilweise können hier persönliche Daten des Absenders vor dem Weiterleiten an die NLU-Plattform unkenntlich gemacht werden. Die Anonymisierung der Daten schützt die Privatsphäre der Nutzer vor allem bei der Weiterleitung an NLU-Plattformen, die ihren Service in der Cloud anbieten. Noch besser ist die Privatsphäre natürlich geschützt, wenn der angebotene Service nicht auf die Kommunikation mit einem Server angewiesen ist. In dieser Hinsicht sind die erwähnten Open-Source-Lösungen umso attraktiver, denn dort ist ein hoher Schutz der Privatsphäre leicht erreichbar und Datenschutzverordnungen, wie die DSGVO, können leichter erfüllt werden.
Einige für die Verarbeitung von Nachrichten relevante, technische Informationen werden meist temporär auf den NLU-Plattformen gespeichert. Diese temporären Informationen können nun beliebig oft über den eigenen Server wieder an die NLU-Plattform geschickt werden, um die nötigen Informationen zum bestehenden Gespräch zu liefern. So kann beispielsweise ein Gespräch weitergeführt werden, das vor drei Wochen begonnen wurde, ohne, dass der Bot kontextuell relevante Gesprächsdaten vergisst. Im Anschluss wird die Nachricht im Format der gewünschten NLU-Plattform weitergeleitet, auf der Plattform ausgewertet und daraufhin zurück an den Server übermittelt. Hier werden die für die weitere Verarbeitung relevanten Daten extrahiert und es können verschiedene Aktionen ausgeführt werden. Diese Aktionen sind meist dynamische Vorgänge wie das Auslesen von Daten aus einer Datenbank, um die Antwort des Bots nutzerspezifisch anzupassen. Abschließend wird die Nachricht zurück an den Nutzer geleitet.
Durch die klare Trennung von Messaging-Plattform und NLU-Plattform mit einem zwischengeschalteten Server ist eine deutlich zielgerichtetere Konfiguration möglich. Diese trägt nicht nur zur Anonymisierung von Nutzerdaten oder Erweiterbarkeit des Bots bei, sondern kann ebenso zu mehr inhaltlichen Funktionalitäten führen. So können Antworten nicht nur auf der NLU-Plattform, sondern auch leicht auf dem eigenen Server erstellt werden. Zudem liegt die Kontrolle über die Funktionalitäten und die ausgetauschten Daten bei dem Betreiber des Bots und nicht bei einer betriebsfremden Plattform.
Fazit
Chatbots und Sprachassistenten sind Technologien, die durch die Fortschritte des maschinellen Lernens in der Lage sein werden, immer mehr Aufgaben im Servicebereich zu übernehmen. Schon heute können Chatbots bei Aufgaben mit klar definierten Abläufen, wie zum Beispiel Reservierungsprozessen, helfen. Bei der Aufbereitung von Informationen, die intern oder extern übersichtlich zur Verfügung gestellt werden sollen, sind Chatbots eine neue, ernstzunehmende Alternative zu herkömmlichen Lösungen.
Dennoch ist eine Vielzahl der Berichte über Technologien, die natürliche Sprache verarbeiten, mit Vorsicht zu genießen. Trotz zahlreicher Fortschritte in der Erkennung von Nutzerintentionen gibt es noch einige Grenzen, die dafür sorgen, dass das Training eines Chatbots vorerst nur mit menschlicher Intervention möglich ist. Dies gilt vor allem dann, wenn der Bot auf frei stellbare Fragen antworten und der Nutzer in der Eingabe weitestgehend unbeschränkt sein soll. Darüber hinaus erfordert jede Anpassung oder Erweiterung des Bots den Einsatz menschlicher Ressourcen.
Eine detaillierte Planung und ein von Anfang an durchdachter Aufbau helfen, kosten- und zeitintensive Restrukturierungen zu vermeiden und eine leichte Wiederverwendung der Inhalte zu garantieren. Eine gute Softwarearchitektur vereinfacht den Austausch des Kommunikationsmediums. Eine größere Menge an Testern ermöglicht es, genügend Testdaten zu liefern, um ausreichend viele und qualitativ hochwertige Inhalte zu erstellen.
Gerade aus diesen Gründen ist es ratsam, sich vor der genauen Planung selbständig, oder mit Hilfe eines entsprechenden Partners, umfangreich mit grundsätzlichen Fragestellungen auseinanderzusetzen. Dies können Fragen zur Zielgruppe, den zur Verfügung stehenden Softwarelösungen, dem inhaltlichen Umfang des Chatbots, sowie den Grenzen der genutzten Technologien sein.
- Facebook launches Messenger platform with chatbots
- Grafik: Business Insider: The latest market research, trends & landscape in the growing AI chatbot industry
- 2018 Chatbot Statistics - All The Data You Need
- Wikipedia: AlphaGo gegen Lee Sedol
- Dialogflow: Dokumentation
- Dialogflow, LUIS, Rasa, Snips