Wie versteht eigentlich ein digitaler Assistent was ich meine?

Erfahre, wie Du einem Computer beibringen kannst, dich wirklich zu “verstehen”. Unser Entwickler Marcel erklärt wie das geht.

Wir kommunizieren sowohl mit Menschen, als auch mit Maschinen meist mit einer bestimmten Absicht. Wenn ich einen Passanten frage…

“Entschuldigen Sie, wie spät ist es?“


… dann wird meine Absicht, die Uhrzeit zu erfahren meist verstanden und ich erhalte (mit Glück) eine nette Antwort. Wenn ich eine klassische ÖPNV-App auf dem Smartphone öffne und dort "Start: Berlin Hbf", "Ziel: München Hbf" sowie "Zeit: 13:37" in die entsprechenden Feldern eingebe und anschließend auf "Suchen" drücke, so versteht die Anwendung ebenfalls meine Absicht:

“Ich möchte bitte eine Verbindungsauskunft für 13:37 Uhr vom Berliner Hauptbahnhof zum Münchener Hauptbahnhof erhalten.“


Auch hier gelange ich (mit der richtigen App) schnell und gut an meine gewünschte Information. Die Software versteht demnach meine Absicht, weil ich die richtigen "Knöpfe drücke". Der Passant hingegen, versteht sie, weil das menschliche Gehirn den gesagten Text interpretieren kann - das ist schon beeindruckend!

Wenn wir von digitalen Assistenten sprechen sind damit in erster Linie meist Chatbots oder Sprachassistenten gemeint. Ich möchte euch in diesem Artikel an das Thema digitale Assistenten heranführen. Nun hat jeder schon einmal eine Chatanwendung bedient oder etwas von Sprachassistenten gehört. Dem aufmerksamen Leser sollten nun Parallelen und Unterschiede zu den oben genannten Beispielen aufgefallen sein. Wenn ich der Software etwas sage oder ihr schreibe, dann ist das natürliche Sprache und kein Drücken der richtigen Knöpfe. Also muss die Software plötzlich das leisten, was der Passant mit seinem menschlichen Hirn geschafft hat: Aus einem Satz die Absicht herausfinden! Wir brauchen also ein maschinelles menschliches Gehirn.

Natural Language Processing (NLP) ist die Computer-Disziplin, um natürliche Sprache zu verarbeiten. Der Unterbereich Natural Language Unterstanding (NLU) beschäftigt sich damit, den natürlichsprachlichen Text zu verstehen. Doch was heißt überhaupt "verstehen"? Im ersten Schritt genau das, was wir oben beschrieben haben. Die Absicht (Intention) des Satzes zu ermitteln. Nun hat unser menschliches Hirn bereits einige Jahre Erfahrung und schon so einiges gehört und gelernt. Ähnlich verhält es sich mit der NLU-Engine (NLU-Engine: Der Teil des Computerprogramms, der den Text verarbeitet und auswertet). Diese muss "trainiert" werden und "Erfahrungen" sammeln. Am besten mit vielen Beispielsätzen, die einer menschliche Absicht zugeordnet werden. Wir nehmen noch einmal die Beispiele von eben. Möchte ich einen digitalen Assistenten entwickeln, der die Absichten

– Frage nach einer Uhrzeit
– Frage nach einer Verbindungsauskunft

versteht, so muss ich ihm für beide Absichten möglichst viele Beispiele zeigen und ihn damit trainieren.

Architekturaufbau der Demonstrationsanwendung

Um im Folgenden die NLU zu testen und mit ihr zu kommunizieren, wird die folgende Architektur genutzt:

“Clients/Touchpoints“ ist ein Sammelbegriff für Anwendungen, die potentiell mit dem digitalen Assistenten kommunizieren. Das können Produkte großer Hersteller von Chatanwendungen wie Facebook Messenger oder WhatsApp sein aber auch Sprachassistenten wie Alexa, Google Assistant usw.  In unserem Demonstrationsaufbau ist es eine eigene ChatApp, die im Browser aufgerufen wird. Diese ChatApp kommuniziert mit einer Middleware. Eine Middleware ist eine Software, auf die verschiedene “Clients/Touchpoints“ zugreifen können. Alle “Softwareteile“ des digitalen Assistenten zusammengefasst (hier in dem Fall nur der Service Layer und die NLU-Engine) nennen wir “Digitale Assistenten Middleware”. Der Service Layer ist der Zugangspunkt für die “Clients/Tochpoints”, um die Informationen weiterzuleiten. Hier leitet der Service Layer die Anfrage von der ChatApp direkt an die NLU-Engine. Also dem “Hirn“ des digitalen Assistenten. Die Antwort der NLU wird direkt, unverarbeitet an die ChatApp zurückgespielt, die das Ergebnis als Text ausgibt.

Demo 1 - Ein digitaler Assistent ohne Trainingsdaten

Ohne Trainingssätze versteht der digitale Assistent unsere Absichten nicht.

Demo 2 - Ein trainierter digitaler Assistent mit Beispieldaten

Mit Trainingssätzen versteht der digitale Assistent unsere Absicht aus dem eingegebenen Text.

Demo 3 - Ein trainierter digitaler Assistent versteht auch verwandte Eingaben

Die NLU-Engine arbeitet mit maschinellem Lernen und neuronalen Netzen. Das bedeutet, sie funktioniert zum Teil wie ein echtes Gehirn. Das, was sie für am wahrscheinlichsten hält, wird als Intention erkannt. Daher können wir auch Fragen stellen, die so nicht in den Beispielsätzen vorkommen.

Jetzt haben wir schon einmal viel erreicht! Im übertragenen Sinne können wir jetzt natürlichsprachlich verstehen, dass der Nutzer gerne auf den "Suchen"-Knopf drücken möchte, damit ein Auskunftsservice eine Verbindungssuche starten kann. Das ist super, dann machen wir das doch...
...
...
...
... FEHLER!

"Ach lieber Autor", wird sich vielleicht der ein oder andere denken, "zu einer Verbindungsauskunft brauchen wir doch mindestens Start, Ziel und Zeitpunkt, das hatten wir doch sogar oben besprochen". Richtig! Das ist neben dem Herausfinden der Absicht die zweite wichtige Aufgabe der NLU. Die Wortgruppen in einem Satz, die relevant für das Erfüllen einer Absicht sind, nennt man Entitäten. Welche Entitäten brauchen wir also für die Verbindungsauskunft? Dafür schauen wir uns mal beispielhaft diesen Satz an:

“Ich möchte jetzt vom Berliner Hbf zum Münchener Hbf”


Jetzt nehmen wir unsere Buntstifte heraus und markieren in dem Satz die relevanten Informationen.

”Ich möchte
jetzt vom Berliner Hbf zum Münchener Hbf

Hier sind wir wieder beim Thema "beeindruckendes menschliches Gehirn"! Nächste Aufgabe ist für Fortgeschrittene. Ersetze die farbigen Bereiche durch eine passende Oberkategorie.

“Ich möchte
ZEITPUNKT vom HALTESTELLE zum HALTESTELLE

Im letzten Schritt benennen wir die Oberkategorien konkret.

“Ich möchte
ZEITPUNKT(Abfahrtszeit) vom HALTESTELLE(Start) zum HALTESTELLE(Ziel)

Grandios! Wir haben die zwei wichtigen Arten von Entitäten (Zeitpunkt, Haltestelle) herausgefunden und ihnen einen konkreten Namen gegeben. Auch hier sind wir mit unserem menschlichen Gehirn der NLU um Jahre und Millionen von Eindrücken voraus. Trotzdem können wir nun anfangen ihr beizubringen, dass es...

– zwei Arten von Entitäten gibt
– welche es konkret gibt
– wie diese in den Intentionen auftauchen.

Damit kann die NLU wieder trainiert werden und unser digitaler Assistent lernt und lernt und lernt.

Demo 4 - Der digitale Assistent erkennt die Entitäten

Und bei der Absicht mit der Frage nach der Uhrzeit? Wenn unser digitaler Assistent nur die einfache Uhrzeit hier in Deutschland ansagen soll, benötigen wir keine Entitäten. Wir haben ja alle Informationen die wir brauchen um die Absicht des Nutzers zu bedienen. Wenn der Assistent allerdings auch andere Länderuhrzeiten können soll, so müssten wir die Entität "Land" hinzufügen. Sodass bei der Frage…

“Wie spät ist es in
England?“

… die Entität erkannt und die Antwort entsprechend angepasst werden kann.

Architekturaufbau mit Kommunikationstexten der Demonstrationsanwendung

Nun schauen wir uns die Architektur und Kommunikationswege der letzten Demo noch einmal mit dem konkret gewählten Beispiel an. In der unten dargestellten Architekturübersicht sieht man den bereits grob erklärten Aufbau. Im ersten Schritt schickt die ChatApp den Text …

“Wie komme ich jetzt vom Berliner Hbf zum Münchener Hbf“


… an die Middleware. Der Text wird in die trainierte NLU gegeben. Die NLU versucht die Intention und Entitäten herauszufinden und spielt die Antwort zurück. Die Antwort wird zur ChatApp zurück gesendet, die diese NLU Antwort liest und in die natürlichsprachliche Antwort…

“Ich bin mir zu
100% sicher, dass du eine Verbindungsauskunft jetzt vom Berliner Hbf zum Münchener Hbf möchtest.”

… umwandelt.

Fazit

In diesem Artikel sollte der generelle Unterschied von der Kommunikation mit einem digitalen Assistenten (natürliche Sprache) und dem Bedienen einer UI-Oberfläche, klar geworden sein. In diesem Zuge habe wir uns angeschaut, wie ein digitaler Assistent mit NLU-Engine funktioniert und aufgebaut werden kann. Er muss zum einen die Absicht (Intention) des Nutzers erkennen sowie die im Text relevanten Wörter, die für die Absicht relevant sind. Dies kann nur durch Beispieldaten und Training erreicht werden. Umso mehr wir davon haben, umso sicherer erkennt der digitale Assistenten die Intention und Entitäten korrekt. Durch den Ansatz des Machine Learnings müssen hierbei nicht einmal genau die angefragten Varianten als Beispiele aufgeführt sein.

Ähnliche Stories
Digitale Assistenten

Chatbots und Sprachassistenten „made in Germany“

Um unseren Kunden unabhängig von den amerikanischen Softwaregiganten wie Amazon, Google und Apple Produkte wie Chatbots und Sprachassistenten anbieten zu können, entwickeln wir eigene NLU-Engines (Sprachverständniseinheiten). So kann die Verarbeitung auf eigener Infrastruktur oder sogar lokal beim Nutzer im Smartphone durchgeführt werden.

Entdecken
Digitale Assistenten

Alexa Skill für Nordrhein-Westfalen

Eine Alexa Fahrplanauskunft für ganz Nordrhein-Westfalen zu erstellen ist eine solche Herausforderung, dass diese mit Amazon eigenen Mitteln nicht zu lösen ist. Für uns jedoch schon. So entwickelten wir eine eigene NLU (Sprachverständniseinheit), um die großen Datenmengen verarbeiten und den Skill für die Nutzer anbieten zu können.

Entdecken

Das gefällt Ihnen?

Kontaktieren Sie uns, damit wir mit Ihnen zusammen Ihre digitale Zukunft denken, gestalten und entwickeln können.

Kontakt

Wir freuen uns darauf, Sie kennenzulernen!

Ihr Ansprechpartner
Martin Löhdefink
Vielen Dank für Ihre Nachricht! Wir werden uns so schnell wie möglich bei Ihnen melden.
Ihre Nachricht konnte nicht gesendet werden. Schreiben Sie uns bitte per Mail (info@projektionisten.de).