/ Ein Open Source Chatbot-Builder im Eigenbau

Ein Open Source Chatbot-Builder im Eigenbau Teil 2: Warum eine Konversation nicht in einen Baum passt

Einige Botbuilder bilden Konversationen als kausale Entscheidungsbäume oder Behavior trees ab. Warum ein geführtes Gespräch jedoch kein Baum sein sollte und warum Netzwerkstrukturen dafür besser geeignet sind, möchte ich dir hier erklären.

Eventuell ist es dir bei dem ein oder anderen Botbuilder, den es auf dem Markt gibt schon passiert: Manche Gesprächsverläufe lassen sich nur mit umständlichen Eigenprogrammierungen lösen. Das liegt daran, dass Gespräche manchmal als visueller Baum aufgebaut werden.

Ich verstehe Konversationen generell nicht als Baumstruktur. Auch nicht, wenn diese geplant und geführt sind. Geführte Gespräche bestehen für mich im Wesentlichen aus Fragen, Antworten und komplexen Schlussfolgerungen. Viel wichtiger als diese Komponenten sind meiner Meinung nach jedoch die Verbindungen zwischen ihnen. Erst diese definieren wie und wann eine bestimmte Frage oder Antwort in einer Konversation ausgelöst wird.

Ich habe innerhalb von Gesprächen verschiedene theoretische Verlaufsmuster identifiziert, die sich nicht allein mit simplen Baumstrukturen beschreiben lassen.

Verschiedene Muster innerhalb von Gesprächen

Gespräche lassen sich in verschiedene Muster zerlegen. Einige sind simpel. Andere sind komplizierter. Jedoch kannst du aus diesen Mustern jede Art eines komplexen Gesprächsverlaufs konstruieren.

1. Simple Fragenketten

Die erste Form sind einfache sequenzielle Verkettungen verschiedener Fragen, die unabhängig von ihren Antworten nacheinander gestellt werden.

Diese Art von Muster ist typisch für den Beginn eines Gesprächs. Zum Beispiel wenn es darum geht, zunächst grundlegende Informationen zu erörtern, auf denen die nachfolgende Konversation dann basiert. Derartige Ketten lassen sich übrigens noch problemlos in Baumstrukturen abbilden.

chain-structures-in-conversations

2. Baumstrukturen aus Fragen und Antworten

Es gibt auch reine Baumstrukturen in Konversationen, keine Frage. Du wirst allerdings sehen, dass diese nicht die einzigen Strukturen in geplanten Gesprächen sind.

Das Interessante an Baumstrukturen in Konversationen ist, dass die Fragen, die unterhalb eines bestimmten Knotens stehen, völlig gleichberechtigt sind. Daher sollte es hier nie eine Rolle spielen welche der weiteren Fragen als nächstes gestellt wird. Sie könnten zum Beispiel ganz einfach zufällig gewählt werden. Ist die Reihenfolge der Fragen wichtig sind allerdings Fragenketten die bessere Wahl.

tree-structures-in-conversations

3. Zusammenführen von Informationen zu Schlussfolgerungen

Man könnte auch sagen es handelt sich hierbei um verschiedene Verzweigungen eines Gesprächs, die an einer bestimmten Stelle wieder zusammenwachsen und dadurch Schlussfolgerungen bilden. Mindestens zwei oder mehr Antwortvorschläge führen hier zu einer neuen Frage. Schlussfolgerungen in Gesprächen sind wichtig. Durch sie ist es möglich, verdeckte Intensionen aufzuspüren und den Verlauf des weiteren Gesprächs zu planen.

Mit manchen Chatbot-Baukästen kannst du das nicht einfach abbilden. Häufig muss Derartiges dann durch umständliche Eigenprogrammierungen gelöst werden.

conclusion-structures-in-conversations

4. Rautenstrukturen als Grundlage für Netzwerke

Rautenstrukturen entstehen wenn man die Äste eines Baumes wieder zusammenführt. Sie sind sozusagen die Kombination aus Bäumen und Schlussfolgerungen. Diese Struktur lässt sich mit einer reinen Baumstruktur nicht mehr abbilden. Die Zusammenführung von Zweigen, die ihren Ursprung ihrerseits in einem einzigen Knoten haben, hat bereits Netzwerkcharakter.

diamond-structures-in-conversations

5. Zirkel

Zugegeben das hier gezeigte Beispiel mag in Konversationen nicht wirklich gängig sein, jedoch kommen derartige Konstrukte in einfacheren Formen vor. In diesem Beispiel werden alle Fragen nacheinander abgearbeitet. Nur der Einstiegspunkt in die Kette hängt von einer bestimmten Antwort ab. Die Fragen werden hier nicht unendlich lange im Kreis gefragt, da jede letztlich nur einmal gestellt wird.

dependent-cahin-starts-in-conversations

6. Netzwerkartige Konversationsverläufe

Kombiniert man Ketten, Baumstrukturen, Rautenmuster und Zirkel entstehen netzwerkartige Gesprächsstrukturen. Auch sehr komplexe Konversationsmuster aus Fragen und Suggestionen sind damit umsetzbar.

network-structures-in-conversations

7. Tiefe kontextbezogene Schlussfolgerungen

Hierbei handelt es sich um Schlussfolgerungen, die gleichzeitig von vielen Faktoren abhängen. Sie sind nicht allein abhängig von Bedingungen, die in direktem Zusammenhang mit der Schlussfolgerung stehen. Die auslösenden Bedingungen können wie in der nachfolgenden Grafik zu sehen auch gestapelt sein.

keeping-the-context-1

Du siehst das Netzwerk vor lauter Bäumen nicht

Ich kann verstehen, dass dich diese Überschrift eventuell verwirrt. Ich erkläre es dir. Denn das ist letztlich vielleicht auch der Grund, weshalb eine Baumstruktur manchmal in Botbuildern zu finden ist, obwohl sie dort nicht hingehört.

Die netzwerkartig geplante Struktur wie Gespräche verlaufen können, unterscheidet sich grundlegend von der Struktur, die das Gespräch im tatsächlichen Verlauf der Konversation annimmt. Das bedeutet, du kannst ein Gespräch zwar als Netzwerk planen aber in der direkten Konversation nimmt es wieder eine Baumstruktur an. Noch dazu sind diese Bäume in der Realität besser sichtbar als die zugrunde liegenden Netzwerke aus Informationen und Expertenwissen.

Woran liegt das? Das liegt daran, dass nicht allen möglichen Wegen, die in einem Netzwerk definiert werden, letztlich auch gefolgt wird. Wenn Fragen beantwortet wurden, werden sie nämlich normalerweise in einem Gespräch nicht noch einmal gestellt. Das erkennst du auf der nachfolgenden Grafik. Ich habe dort den Verlauf des Gesprächs rot markiert. Erkennst du den Baum?

trees-in-networks

Kompliziert ausgedrückt: Theoretisch definierte netzwerkartige Gesprächsverläufe kollabieren beruhend auf den Entscheidungen innerhalb einer Konversation zu individuellen Gesprächsbäumen.

Der Weg, den ein Gespräch im Verlauf nimmt, lässt sich also als Baum abbilden. Die theoretischen Möglichkeiten und Verzweigungen, die ein Gespräch mit sich bringen kann, jedoch nicht.

Man könnte abschließend auch sagen, dass zwischen den theoretisch geplanten Verlaufsmöglichkeiten (Netzwerk) und dem jeweiligen individuellen Gesprächsverlauf (Baumstruktur) unterschieden werden muss. Möchte man Gespräche digital abbilden, muss das unbedingt berücksichtigt werden.

Versucht man netzwerkartige Strukturen dennoch in Bäumen abzubilden, entstehen an den Endpunkten der Bäume (den Blättern) manchmal umständliche Strukturen in Form von individuellen Programmierungen, die versuchen die Netzwerklogik wieder zu implementieren. Kommt dir das aus deinem Konversationsbaukasten bekannt vor?

Im nächsten Artikel zeige ich dir, welche Ansätze geeignet sind, um Netzwerkstrukturen in Datenbanken zu speichern.

This article is also available in english.

Ein Open Source Chatbot-Builder im Eigenbau Teil 2: Warum eine Konversation nicht in einen Baum passt
Share this