Zum Inhalt springen

Development

  • Von: Grant Ronald
  • Development
  • 27.09.2018

Ab in die Zukunft: KI-gesteuerte Dialog-Schnittstellen

Künstliche Intelligenz (KI), maschinelles Lernen und Chatbots sind auf Oracle-Veranstaltungen sehr beliebt geworden. In jeder Präsentation scheint es mindestens einen Anwendungsfall zu geben, in dem über Kommunikationskanäle eine KI-gesteuerte Dialog-Schnittstelle vorgestellt wird. Und warum auch nicht? Was könnte cooler sein, als ein Ansatz aus Mobile, Cloud und Künstlicher Intelligenz, um echte Probleme aus der Geschäftswelt in einer für Benutzer bereits angenehmen Umgebung anzugehen? Hier ein kurzer Überblick zum Erstellen von Chatbots.

Dieser Artikel erschien zuerst im zweimonatlich erscheinenden ORAWORLD e-magazine, einer Publikation der EOUC mit spannenden Geschichten aus der Oracle-Welt, technologischen Hintergrundartikeln und Einblicken in andere User Groups weltweit.

 

Die Bausteine

Alle Chatbot-Entwicklungsplattformen sind grundsätzlich aus den gleichen Bausteinen aufgebaut. Bei den Oracle Intelligent Bots haben wir diese Bausteine beispielsweise als ein Feature der Oracle Mobile Cloud Enterprise (OMCe) gebündelt – dadurch werden Chatbots ein Bürger erster Klasse in einer mehrkanaligen digitalen Erfahrung.

Die Bausteine sind:

 

Intents

(Absichten)

Der Anwendungsfall, den der Bot als etwas versteht, das er bewerkstelligen kann.

Training Utterances (Trainingsäußerungen)

Wie ein Lehrling weiß auch ein Bot erst einmal nicht viel, bis er trainiert wird.

Entities

(Entitäten)

Variable Elemente oder kritische Informationen in einem Dialog, die identifiziert werden müssen.

Natural Language Understanding (Verständnis natürlicher Sprache)

Es gibt bestimmt hundert unterschiedliche Arten, eine Pizza zu bestellen – je besser der Bot natürliche Sprache versteht, desto erfolgreicher wird er sein.

Dialog Flow (Dialogfluss)

Eine Konversation fließt wie ein Fluss. An dieser Stelle wird der Bot-Dialog definiert.

Backend Integration (Integration des Backends)

Ihr Bank- oder Pizza-Chatbot kann so gesprächig sein wie Sie möchten, aber am Ende muss er wirklich etwas im Backend-System tun.

 

Absichten und Training

Genau wie bei einem echten Menschen, der eine Aufgabe verrichtet, müssen Sie dem Bot mitteilen, mit welchen Anwendungsfällen er es zu tun haben wird. Im Rückschluss sollte der Bot alle anderen Aufgaben höflich ablehnen oder an eine andere zuständige Stelle weiterleiten. Jeden dieser Anwendungsfälle nennen wir eine „Absicht“. Außerdem müssen Sie Trainingsdaten bereitstellen, um zu veranschaulichen, wie verschiedene Anwendungsfälle unterschieden werden. Diese Daten nennen wir “Trainingsäußerungen”.

Abbildung 01: Für den Bot definieren Sie Absichten und Trainingsäußerungen

Bei unserem Beispiel zum Pizza-Chatbot definieren wir, dass unser Chatbot mit der Bestellung von Pizza und Pasta umgehen und eine Speisekarte anzeigen kann. Für die Anzeige der Speisekarte geben wir einige Beispiele von typischen Sätzen mit, die zur Anfrage einer Speisekarte benutzt werden.

An dieser Stelle kommt die supercoole KI ins Spiel. Da wir nicht garantieren können, wie der Benutzer die Anfrage zur Speisekarte stellen wird, erstellen wir ein Modell zur Berechnung der Wahrscheinlichkeit, dass irgendein empfangener Satz eines Benutzers als eine bestimmte Absicht klassifiziert werden kann.

Wie jedes KI-basierte maschinelle Lernen lebt das Modell von Daten. Je mehr hochqualitative Trainingsäußerungen bereitgestellt werden, desto besser. Aber natürlich bekommt man bessere Trainingsäußerungen aus der echten Welt durch echte Benutzereingaben. Das bedeutet, dass Sie wahrscheinlich damit anfangen, einen kleinen Satz von Äußerungen zusammenzufassen. Eines der coolen Features von Oracle Intelligent Bots sind verschiedene Trainingsmodelle: Das eine Modell eignet sich besser für kurze zusammengefasste Trainingsäu0erungen und das andere Modell bringt höhere Genauigkeit durch die gestaffelte Bereitstellung von Daten.

Sie stellen dann vielleicht fest, dass anfängliche Entwicklung und Tests für ein Modell geeignet sind und dass Sie mit mehr Daten zu dem Modell wechseln, mit dem Sie alle Möglichkeiten von NLP (Natural Language Processing) nutzen. Dadurch versteht der Bot Feinheiten, Slang, Synonyme und andere Herausforderungen natürlicher Sprache.

Die Details finden

Mit dem Verstehen einer Benutzereingabe und der Zuordnung zu einer Absicht ist allerdings erst die Hälfte des Weges geschafft. In den meisten Fällen hat die Absicht variable Elemente, die gesondert verstanden werden müssen. Diese Elemente nennen wir „Entitäten“. "Ich möchte für heute um 22 Uhr eine große Salami-Pizza bestellen" ist ganz offensichtlich eine Pizzabestellung, aber "Salami", "groß", "heute" und "22 Uhr" sind variable Elemente der Eingabe, die wir besonders beachten müssen, da sie für jede Benutzeranfrage einzigartig (und wichtig!) sind.

Entität-Extraktion ist die Fähigkeit zur Definition variabler Elemente wie Datum, Zeit oder Zahlen sowie domänenspezifische Variablen wie "Pizzagröße" und "Pizzabelag", die der Chatbot aus dem Satz parsen und Variablen zuordnen kann. Üblicherweise sind diese Variablen dann bereit zur Weitergabe an ein Backend-System, das die genauen Details der Pizzabestellung wissen muss.

Abbildung 02: Entitäten helfen dabei, jeder Absicht Relevanz zu geben

Dialogfluss

Ein Dialog fließt: Von der anfänglichen Begrüßung bis zur Sicherstellung, dass der Chatbot alle relevanten Informationen zur Ausführung einer bestimmten Aufgabe erfasst. Bei Oracle Intelligent Bots ist dieser Fluss über eine einfache Auszeichnungssprache definiert, in der die unterschiedlichen Statuswerte oder Schritte einer Konversation implementiert werden. Jeder Schritt der Konversation ist mit einer "Komponente" implementiert, die eine einfache und eigenständige Aufgabe ausführt. Beispielsweise bietet eine Textkomponente einen Willkommensgruß gefolgt von einer Absichtskomponente, die die Benutzereingabe erfasst. Anschließend wird zum entsprechenden Punkt in der Konversation gesprungen. Grundlage dafür ist, wie die Eingabe zu einer spezifizierten Absicht aufgelöst wird (oder ob die Eingabe nicht aufgelöst wird). Jeder Schritt führt die Konversation, bis typischerweise eine besondere Komponente, die Systemkomponente, einen Backend-Webdienst aufruft, um die gewünschte Aktion gegen das Backend-System auszuführen.

Abbildung 03: Der Dialog fließt vom Auflösen der Absicht, zum Prüfen, ob schon einmal eine Pizza bestellt wurde und, falls ja, Anzeigen einer Liste mit Optionen Ja und Nein.

Ist das alles?

Nun, ja und nein. Das sind die ersten Bausteine zur Entwicklung eines Chatbots und ein echter Chatbot wird auch nur eine Sammlung an Absichten und Entitäten sein, der KI nutzt, um Eingaben aufzulösen und die Konversation über einen definierten Dialogfluss zu führen. Der Erfolg eines Chatbots und im Ganzen einer Chatbot-Plattform hängt allerdings auch von anderen Tools und Features ab, die diese wesentlichen Features unterstützen. Beispielsweise die Möglichkeit den Chatbot nicht nur über die sozialen Kanäle wie Facebook einzusetzen, sondern ihn auch innerhalb der Website Ihres Unternehmens oder in einer Firmen-App einzubinden.

Darüber hinaus gibt es auch die Möglichkeit, dass der Chatbot nahtlos an einen Mitarbeiter im Call-Center übergibt, falls das Einschreiten eines Menschen erforderlich wird. Mehrsprachige Bots, Erfassung von interaktiven Medien, Erfassung strukturierter Daten, standortbezogene Informationen und Handhabung von FAQ-artigen Interaktionen sind weitere Features, die dem Bot dabei helfen, den Bedürfnissen der Anwender gerecht zu werden.

Erfahren Sie mehr

Das ist nur die Kostprobe. Wenn Sie mehr über Oracle Intelligent Bots erfahren möchten, können Sie Oracles entsprechenden Kanal auf YouTube.com/OracleMobilePlatform oder Website auf Oracle.com/mobile besuchen.

Sie interessieren sich für das Thema Chatbots?
Dann kommen Sie doch zur DOAG 2018 Konferenz + Ausstellung. Auch hier wird das Thema in zahlreichen Vorträgen beleuchtet. Grant Ronald ist ebenfalls mit seinem Vortrag „When intelligence isn‘t enough: realworld chatbot develoment“ vertreten. Die Konferenz für Oracle-Anwender findet vom 20. bis 23. November in Nürnberg statt.
Weitere Infos und Anmeldung