DOs und DON'Ts für das Konversationsdesign

Die Erstellung eines stabilen Sets von Intents für einen erfolgreichen Skill erfordert viel Aufmerksamkeit. Hier sind einige Best Practices, die dabei beachtet werden sollten.

Intents entwerfen und trainieren

DO DON'T
Planen Sie, Äußerungen hinzuzufügen, bis Sie die von Ihnen erwarteten Ergebnisse erhalten. Im Allgemeinen schneiden die Modelle gut ab, wenn Sie mehr qualitativ hochwertige Trainingsäußerungen hinzufügen. Die Anzahl der benötigten Äußerungen hängt vom Modell, den Trainingsdaten und dem Grad der Genauigkeit ab, der für Ihr Modell realistisch ist. Führen Sie nicht zu viele Trainings für einzelne Intents durch. Fügen Sie nicht übermäßige Trainingsdaten zu einigen Intents hinzu, damit sie "perfekt" funktionieren. Wenn sich die Intent-Auflösung nicht wie erwartet verhält, überprüfen Sie Ihre Intent-Struktur auf Überschneidungen zwischen den Intents. Die Intent-Auflösung wird niemals zu 100 % genau sein.
Verwenden Sie Daten aus der realen Welt. Es ist entscheidend, dass Sie die Sprache verwenden, die Ihrem Skill am ehesten begegnen wird. Vorgefertigte Äußerungen stoßen schnell an ihre Grenzen und werden Ihren Skill nicht auf einen Einsatz in der realen Welt vorbereiten. Verwenden Sie nicht nur Schlüsselwörter in Trainingsdaten. Obwohl es akzeptabel ist, einzelne Wörter/kurze Sätze für das Training zu verwenden, sollten die Trainingsdaten die gleiche Struktur wie die Eingaben des Benutzers haben. Je weniger Wörter in den Äußerungen vorhanden sind, desto weniger erfolgreich ist die Klassifizierung.
Verwenden Sie nur ganze Sätze, um Intents zu trainieren. Es ist zwar in Ordnung, kurze Trainingsäußerungen zu verwenden, aber achten Sie darauf, dass sie dem Unterhaltungsstil Ihrer Benutzer so gut wie möglich entsprechen. Verzerren Sie nicht versehentlich die Intents. Gehen Sie vorsichtig mit Wörtern, die keine spezifische Bedeutung haben (z.B. "bitte" und "danke"), oder mit Entitywerten innerhalb von Äußerungen um, da diese unbeabsichtigterweise die Intent-Auflösung verzerren können, wenn sie in einem Intent häufig verwendet werden, in einem anderen aber nicht.
Verwenden Sie eine ähnliche Anzahl von Äußerungen pro Intent. Bei einigen Intents (z.B. "Hallo", "Auf Wiedersehen") können weniger Äußerungen in den Trainingssätzen vorhanden sein. Stellen Sie jedoch sicher, dass Ihre Haupt-Intents eine ähnliche Anzahl von Äußerungen haben, um eine Verzerrung Ihres Modells zu vermeiden. Verlassen Sie sich nicht allein auf die Intent-Auflösung. Verwenden Sie Entitys, um häufige Intents eindeutig zu machen. Wenn es sprachliche Überschneidungen zwischen Intents gibt, sollten Sie Entitys verwenden, um die Absichten des Benutzers (und den entsprechenden eindeutigen Unterhaltungspfad) eindeutig zu machen.
Berücksichtigen Sie Smalltalk. Benutzer werden Anfragen stellen, die für den Zweck des Skills nicht relevant sind, z.B. nach Witzen und Wetterberichten. Sie können auch andere Dinge tun, wie zum Beispiel fragen, ob der Skill ein Mensch ist. Stellen Sie sicher, dass Sie eine Smalltalkstrategie haben, und testen Sie aggressiv, wie der Skill bei allen Schritten innerhalb Ihres Unterhaltungsablaufs reagiert. Verwenden Sie unresolvedIntent nicht übermäßig. Erstellen Sie Intents "außerhalb des Geltungsbereichs" für die Dinge, von denen Sie wissen, dass Sie sie nicht wissen (und deren Ausführung Sie Ihrem Skill später möglicherweise, aber nicht zwingend beibringen).
Berücksichtigen Sie mehrere Intents für einen einzigen Anwendungsfall. Kunden können dasselbe Bedürfnis auf unterschiedliche Weise ausdrücken, z.B. in Bezug auf die von ihnen gewünschte Lösung oder das Symptom ihres Problems. Verwenden Sie mehrere Intents, die alle mit derselben "Antwort" aufgelöst werden. Ignorieren Sie missbräuchliche Interaktionen nicht. Entwickeln Sie ähnlich wie für Smalltalk auch einen Plan für Missbrauch. Dieser Plan muss unter Umständen Maßnahmen enthalten, die sicherstellen, dass missbräuchliche Eingaben des Benutzers nicht durch den Skill widergespiegelt werden, sowie Vorkehrungen für eine sofortige Eskalation.

Benutzererfahrung während der Unterhaltung

DO DON'T
Geben Sie Hinweise zu den wahrscheinlichsten Antworten (einschließlich Hilfe und Beenden). Beispiel: "Hallo, ich bin Bob der Bot. Fragen Sie mich nach X, Y oder Z. Wenn Probleme auftreten, geben Sie einfach 'Hilfe' ein." Verschieben Sie das Konversationsdesign nicht auf "später im Projekt". Mit Ausnahme der einfachsten Skills muss das Konversationsdesign dieselbe Priorität und Dringlichkeit haben wie andere Entwicklungsaufgaben. Das Design sollte frühzeitig beginnen und parallel zu anderen Aufgaben weitergeführt werden.
Erwägen Sie, Ihren Bot mit einer Persönlichkeit auszustatten. Sie sollten sich die Persönlichkeit und den Ton Ihres Bots überlegen. Achten Sie jedoch darauf, die menschenähnliche Interaktion nicht zu übertreiben (Humor und Mitgefühl von einem Bot kommen häufig nicht gut an). Versuchen Sie außerdem nie, Ihren Benutzern den Eindruck zu vermitteln, sie interagierten mit einem Menschen. Geben Sie nicht an, dass der Skill "noch lernt". Das mag zwar gut gemeint sein, aber dieses falsche Verhalten signalisiert dem Benutzer (bewusst oder unbewusst), dass der Skill der Aufgabe nicht gewachsen ist.
Leiten Sie den Benutzer an, was von ihm erwartet wird. Der Skill sollte versuchen, den Benutzer zu einer angemessenen Antwort zu führen, und keine Fragen offen lassen. Bei offenen Fragen ist es eher wahrscheinlich, dass der Benutzer den Happy Path verlässt. Verwenden Sie keine "netten" oder "Lückenfüller"-Antworten. Siehe Leiten Sie den Benutzer an, was von ihm erwartet wird.
Teilen Sie lange Antworten in einzelne Chatblasen auf, und/oder verwenden Sie Zeilenumbrüche. Große Textblöcke ohne visuelle Unterbrechungen sind schwer zu lesen und können zu Verwirrung führen. Sagen Sie nicht "Tut mir leid, ich verstehe nicht. Könnten Sie Ihre Frage neu formulieren?" Diese bequeme Herangehensweise an die Fehlerbehandlung ist in den meisten Fällen falsch. Unabhängig davon, wie oft ein Benutzer eine Frage, die nicht in den gültigen Bereich fällt, umformuliert, wird der Skill nie etwas Intelligentes zu sagen haben.
-- Verwenden Sie nicht zu viele Bestätigungswortgruppen. Bestätigungswortgruppen haben ihre Berechtigung. Verwenden Sie sie jedoch nicht übermäßig. Erwägen Sie ihren Einsatz in Dialogabläufen, die in der Lage sind, die Konfidenzniveaus zu berücksichtigen, bevor Sie die Benutzer um Bestätigung bitten.

Teststrategien

DO DON'T
Entwickeln Sie Äußerungen zyklisch. Die Entwicklung eines stabilen Trainingskorpus erfordert mehrere Iterationen und Testzyklen sowie eine fortlaufende Überwachung und Optimierung. Verwenden Sie einen zyklischen Ansatz zum Erstellen, Testen, Bereitstellen, Überwachen und Aktualisieren. Vernachlässigen Sie nicht die Notwendigkeit eines Plans zur Messung und Verbesserung der Leistung. Wenn Sie keinen Plan für die Messung und Verbesserung Ihres Skills haben, werden Sie nicht erfahren, ob der Skill tatsächlich funktioniert.
Testen Sie Äußerungen mit der 80/20-Regel. Testen Sie die Robustheit Ihrer Intents immer im Vergleich zu anderen, indem Sie mehrere 80/20-Tests durchführen, wobei 80 % der neu erfassten Äußerungen zum Training des Modells verwendet und 20 % Ihren Testdaten hinzugefügt werden. Testen Sie nicht nur den Happy Path. "Den Skill zum Laufen zu bringen" macht 20 % der Arbeit aus. Die restlichen 80 % bestehen daraus, zu testen und anzupassen, wie der Skill auf falsche Eingaben und Benutzeraktionen reagiert.
Testen Sie Skillfehler. Versuchen Sie aggressiv, ein fehlerhaftes Verhalten Ihres Skills hervorzurufen, um zu sehen, was passiert. Verlassen Sie sich nicht nur auf positive Tests. Ignorieren Sie nicht die Verarbeitung von Nachrichten, die nicht die richtige Reihenfolge haben. Benutzer werden in der Unterhaltungshistorie zurückscrollen und auf vorherige Schaltflächen klicken. Das Testen der Ergebnisse muss Teil der 80 % Ihrer Arbeit sein (wie unter Testen Sie nicht nur den Happy Path angegeben).
-- Vergessen Sie bei der Aktualisierung Ihrer Intents nicht, diese erneut zu testen. Wenn Sie weitere Trainingsdaten hinzufügen (z.B. wenn Ihr Bot immer häufiger in der realen Welt eingesetzt wird) und/oder wenn Sie neue Intents für neue Anwendungsfälle hinzufügen, vergessen Sie nicht, Ihr Modell erneut zu testen.

Projektüberlegungen

DO DON'T
Wählen Sie Anwendungsfälle aus, die durch das Conversational User Interface (CUI) verbessert werden. Die Entwicklung des Conversational User Interface (über Skills und digitale Assistenten) ist aufwendig. Vergewissern Sie sich daher, dass der Anwendungsfall durch Hinzufügen des CUI tatsächlich verbessert wird. Versäumen Sie nicht, einen Eskalationspfad einzurichten. Auch wenn Sie nicht vorhaben, eine Eskalation zu einem Menschen zu ermöglichen, benötigen Sie eine Strategie für Interaktionen, bei denen der Skill nicht helfen kann.
Gehen Sie davon aus, dass der erste Tag am ungünstigsten verlaufen wird. Selbst die am besten getesteten Skills und digitalen Assistenten müssen am ersten Tag optimiert werden. Lösen Sie das Projektteam nicht sofort nach dem Start auf. Stellen Sie bei der Planung Ihres Skillprojekts sicher, dass die an der Entwicklung des Skills beteiligten Mitarbeiter (Conversational Designer, Projektmanager, Tech Lead usw.) lange genug weiterhin Teil des Projekts sind, um eine angemessene Optimierung und schließlich den Wissenstransfer zu gewährleisten.