Chatbot Intents, Granularität & Fallback Intents

Inhaltsverzeichnis

Über diesen Guide

In der Rubrik "KI mit Kai" geht unser Head of AI (mit dem passenden Namen Kai) Themen in den Bereichen KI, Chatbots und NLP genauer auf den Grund und bereitet diese einfach und verständlich auf.
In diesem Artikel geht es um
Chatbot Intents. Was ist ein Chatbot Intent? Was hat es mit der sogenannten Intent Detection auf sich? Diese beiden Fragen (und noch mehr!) beantwortet Kai. Außerdem gibt es Tipps für lange und glückliche Chatbot-Beziehungen, die lassen sich nämlich ideal gestalten mithilfe der richtigen Granularität und Fallback-Intents. Klingt alles etwas komplex? Keine Sorge, wir übergeben jetzt an KI-Experte Kai, der erklärt das verständlich und humorvoll.

Kai Matzutt, Head of AI: 

Ihr kennt das vermutlich, ihr unterhaltet euch nett und plötzlich kommt ein Satz und ihr fragt euch: “Was soll mir das denn jetzt sagen?” oder einfach nur: “Häh?”.
So geht es einem Chatbot mit jedem Satz. Zum Glück hat sich unsere Lieblingsdisziplin, das Natural Language Processing (NLP), schon lange Gedanken dazu gemacht, wie man mit der Ratlosigkeit unseres Chatbots umgehen kann.

Der Zweig der NLP, der sich damit beschäftigt, nennt sich Intent Detection.

Unser Chatbot, nennen wir sie einfach mal Botilda, ist natürlich eine Expertin, d.h. sie kennt sich mit einer Reihe von Themen besonders gut aus, z.B. wie Ihr auf einer Webseite den Stand der Bestellung erfahren könnt, oder was Ihr tun müsst, wenn Ihr euer Passwort vergessen habt. Eine gut umgesetzte Intent detection ist nun die Technik, die ihr erlaubt, bei einer Frage oder einem Kommentar des Gegenübers zu erkennen, ob ein Thema angesprochen wurde, mit dem Botilda sich auskennt. Für den Fall hat Botilda natürlich die passende Antwort parat. Wie ihr euch vermutlich bereits gedacht habt, heißen Themen im NLP-Jargon Intents. Aus diesem Grund werde ich in diesem Text beide Bezeichnungen, also Themen/Intents nutzen.

Wenn Ihr diese Kolumne regelmäßig verfolgt, dann wollt ihr ja vielleicht auch Experten für NLP werden, deswegen will ich euch auch ein wenig mehr dazu erzählen, wie eine solche Intent Detection umgesetzt werden kann.

Sentence Embeddings (und schweben in höheren Dimensionen)

Jeder weiß doch, dass Computer nur in 0en und 1en “denken” (“binär”). Und Botilda ist doch irgendwie auch ein Computer, wie also “versteht” sie, was wir sagen? Wir brauchen erst einmal einen Weg, wie wir den Text so für unseren Chatbot übersetzen, dass sie “den Sinn” erfassen kann. Natürlich lassen sich Buchstaben sehr leicht in 0en und 1en übersetzen (wenn auch auf viele Arten – ich denke da vor allem an die Anfangszeit von “Unicode” zurück). Aber den Sinn von Worten oder sogar Sätzen hat man dann noch lange nicht in Binär-Sprache erfasst. 

Dafür müssen wir uns ein wenig zurück in Eure Schul- und Studienzeit zurückdenken, in der ihr (hoffentlich!) mal etwas über Vektoren gelernt habt. Ja, das waren diese Pfeile, die man so addieren konnte, dass neue Pfeile entstehen. Oder man konnte sie als Punkte in einem bestimmten Raum, zum Beispiel einer Ebene, interpretieren.

Nun stellt euch vor, dass man jedem denkbaren Satz einen solchen Vektor, einen Punkt in einem bestimmten Raum zuordnen kann. Und zwar so, dass Sätze, die von der Bedeutung her ähnlich sind nah beieinander sind (im Idealfall egal in welcher Sprache) und dass Beziehungen, die zwischen Sätzen bestehen irgendwie durch die räumliche Beziehung ihrer zugeordneten Punkte “gespeichert” sind.

Klingt ein wenig verrückt, aber mit Hilfe von Sprach-Modellen, die ich schon in meinem ersten Blog-Beitrag "NLP – Beispiele und Potenziale" erwähnt habe, bekommt man das heutzutage sehr gut hin.

(Was Sprach-Modelle sind und wie man damit Sätze zu Vektoren macht, werde ich mal in einem der nächsten Blog-Beiträge erklären müssen.)

Die Bedeutung eines Satzes lässt sich nun also an der Position, der Fachmann spricht hier auch von einer Einbettung (englisch: embedding) des Satz-Vektors in diesem Vektorraum erfassen. Weil Sprache aber nun ziemlich komplex ist, reicht hier als “Embedding Space” oder “Einbettungs-Vektorraum” keine Ebene, sondern hier haben sich Räume bewährt, die deutlich mehr Dimensionen als die zwei einer Ebene haben. Bei einer Einbettung, die wir von moinAI nutzen, befinden wir uns zum Beispiel in einem 1000-dimensionalen Raum. Das ist für Menschen schwer vorstellbar aber die Regeln, die in solchen Räumen gelten, lassen sich mit der von mir geliebten Mathematik recht gut von unseren drei Alltags-Dimensionen (für Besserwisser: Ich habe gefühlt nie Zeit, also habe ich die vierte Dimension, mit der wir leben, hier nicht erwähnt) ableiten.

Zur Veranschaulichung: Die drei Dimensionen, die wir Menschen kennen. Die elf Dimensionen (Stringtheorie) und die 1000 Dimensionen der künstlichen Intelligenz von moinAI.

Und Vektoren bzw. Punkte lassen sich sehr einfach in Binärsprache übersetzen, sodass Botilda durch diese Vektoren eine erste Vorstellung von den Beziehungen zwischen Sätzen/Texten nutzen kann. 

Damit Botilda jetzt auch noch versteht, was die verschiedenen Raumbereiche für tiefere Bedeutung haben, braucht sie nun noch ein paar Unterrichtsstunden von guten Lehrern. Damit beschäftigen wir uns im nächsten Abschnitt.

Classification – welcher Satz gehört zu welchem Thema?

Als nächsten Schritt wollen wir Botilda nun beibringen, welche Sätze zu welchem Thema gehören. Das nennt man in der Fachwelt Klassifizierung oder auf Englisch Classification (bei diesem Fachbegriff müssen die Vektoren übrigens nicht unbedingt zu Texten gehören) und anstatt von Themen spricht man eigentlich von Klassen. 

Das Prinzip hinter klassischen (haha!) Klassifizierungs-Algorithmen ist tatsächlich ein wenig wie in einer Schule: Zuerst geben wir Botilda ganz viele Beispiele von Sätzen und erzählen ihr zu welchem Thema die jeweiligen Sätze gehören (das sind die sogenannten Trainings-Datensätze). Dann geben wir ihr andere Beispielsätze und sie soll uns sagen, zu welchem Thema sie die Sätze zuordnen würde (diese Sätze bilden den Test-Datensatz). Je nachdem, wie gut sie das gemacht hat bekommt sie Noten. Für die Noten hat sich allerdings ein eher wirtschaftsnaher Begriff durchgesetzt: die “Kosten” ihrer Einschätzung werden mit einer sogenannten “cost function” bewertet. 

Da Botilda schlau ist, versucht sie aus dieser Bewertung ihre Schlüsse zu ziehen und wird beim nächsten Mal Themen etwas anders zuzuordnen. Wir gehen also in die nächste Runde und geben ihr noch einmal die Trainingsdaten zum Lernen und testen Botilda auf Basis der Trainingsdaten. Dieses Spiel führen wir nun solange durch, bis wir mit den Noten zufrieden sind oder sich die Noten einfach nicht mehr verbessern. In letzterem Fall müssen wir uns eventuell zusätzliche Trainingsbeispiele besorgen, damit Botilda eine gute Chance hat, noch besser zu werden.

Und wisst Ihr was daran am Besten ist, wenn ihr mit uns von moinAI zusammenarbeitet? Wir sind so ein eingespieltes Lehrer- und Trainer-Team, dass für euch fast gar nichts mehr zu tun ist. Wir geben euch zu Anfang ein paar grundlegende Tipps mit, dann sagt Ihr uns im Wesentlichen mit ein paar Beispielen, was für Anfragen Ihr erwartet und dann starten wir das Trainingscamp. Und nach kurzer Zeit habt Ihr eine einsatzbereite KI!

Gesprächstherapie – Tipps für lange glückliche Chatbot-Beziehungen

Hier möchte ich jetzt noch ein paar von den Tipps erläutern, die ich gerade erwähnt habe. 

Granularität Definition

Was ist Granularität?

Wichtig ist bei KI-Chatbots immer die sogenannte Granulariät von Intents. Kurz gesagt geht es dabei darum, ob ein Thema/Intent besonders allgemein oder besonders spezifisch formuliert ist. 

Um das mal an einfachen Beispielen klarzumachen: Wenn man zum Beispiel ein Thema “Technisches Problem auf der Webseite” definiert, dann ist das vermutlich eine grobe Granularität, (englischer Fachterminus “coarse granularity”), denn dieses Thema ließe sich sicher noch viel feiner aufteilen, z.B. bei einem Webshop in “Bestellübersicht Fehler”, “Abschluss der Bestellung funktioniert nicht”, “App Verbindungsproblem” und weitere Themen, die alle irgendwie etwas mit der Technik der Seite zu tun haben. Wenn man nun die Themen so detailliert aufstellt, spricht man von feiner Granularität (Überraschung: im Englischen “fine granularity”). 

Ob man sich nun für eine feine oder eine grobe Granularität entscheiden sollte, hängt etwas von der Zielgruppe und den eigenen Präferenzen ab. Eine Möglichkeit, die bei uns besonders gut klappt, ist, dass man erst mit einem groben Themen-Raster anfängt und dann das moinAI  Dreaming-Feature nutzt. Dieses KI-basierte Feature schlägt auf Basis der Anfragen, die tatsächlich beim Chatbot ankommen, neue Themen vor. So sieht man in der Regel sehr schnell, ob es sich lohnt ein Thema aufzusplitten. Aufpassen muss man hier nur, dass sich die Themen nicht zu stark überschneiden. Denn Botilda will ja die beste Antwort geben und das ist im Idealfall die zu einem sehr fein gewählten Intent. Aber auch da könnt Ihr euch zurücklehnen und uns machen lassen. Unsere KI erkennt solche problematischen Fälle und unsere MI (Menschliche Intelligenz – in Form von CSM- und KI-Experten 😎 ) löst die Probleme für euch. Also quasi mit KIMI.

Fallback Lösung

Was ist ein Fallback Intent?

Nach all der akademischen Ausbildung weiß Botilda als Expertin auch sehr gut, was sie nicht versteht. Mit anderen Worten, all das, was nicht zu den von ihr trainierten Themen passt, wird in einem großen Sammelthema aufgefangen. Wir sprechen hier auch gerne vom Fallback Intent. Hier empfiehlt es sich dann, eine Antwort parat zu halten, die darauf hinweist, womit sie sich auskennt. Bei der Formulierung geeigneter Antworten helfen wir als Experten für Experten-Chatbots selbstverständlich gerne weiter.

Beziehung zwischen Themen und Chatbot-Antworten

Natürlich ist am Ende Botildas Ziel, mit Ihren Antworten ihre Gesprächspartner:innen glücklich zu machen. Da es hier immer mal wieder zu Verwirrung kommt, will ich noch mal darauf hinweisen, das Themen/Intents und passende Chatbot-Antworten natürlich in einer geeigneten Beziehung zueinander stehen, aber von Ihrer Bedeutung doch sehr unterschiedlich zu betrachten sind.

Wie der Name Intent Detection schon andeutet, wollen wir hier die Bedeutung der Anfrage erschließen. Die passende Chatbot-Antwort ist aber etwas, was mit passenden Inhalten zum erkannten Thema zu tun hat und die können sich von Kontext zu Kontext unterscheiden. Um es ganz banal deutlich zu machen: Unsere Intent Detection ist mehrsprachig. Ihr könnt also dieselben trainierten Themen für all eure länderspezifischen Webseiten nutzen. Ich bezweifle aber, dass sich eure französischen Kunden mit deutschsprachigen Antworten zufriedengeben werden. Wie man die Herausforderung mit der Mehrsprachigkeit in Bezug auf die Chatbot-Antworten lösen kann, erfahrt ihr in dem Blogartikel "Chatbot-Channels: Definition und Vorteile".

Falls Ihr euch fragt wie ein Chatbot in der Kundenkommunikation eures Unternehmens aussehen könnte, dann möchte ich euch eine Chatbot-Demo ans Herz legen. Diese wird von einem unserer Consultants durchgeführt und zeigt all die Möglichkeiten eines Chatbots in der Kundenkommunikation auf. Selbstverständlich individuell für den Use-Case eurer Wahl, kostenlos und unverbindlich.

➡️  Jetzt eine Demo buchen.

Zufriedenere Kunden durch schnellere Antworten.

Überzeugen Sie sich selbst und erstellen Sie Ihren eigenen Chatbot. Kostenlos und unverbindlich.