https://d226lax1qjow5r.cloudfront.net/blog/blogposts/how-to-build-an-intent-classification-hierarchy/intent-classification-hierarchy.png

Aufbau einer Hierarchie zur Klassifizierung von Absichten

Zuletzt aktualisiert am March 18, 2024

Lesedauer: 10 Minuten

KI-Agenten sind eine großartige Möglichkeit, die wichtigste Ressource Ihres Unternehmens zu sparen: die Zeit der Mitarbeiter! Agenten sind wie interaktive FAQs, nur viel flexibler. Wenn sie richtig aufgebaut sind, können sie das Kundenerlebnis drastisch verbessern. Die Frage ist nur: Wie baut man sie richtig auf?

Zum Glück hat das Team von AI Studio die harte Arbeit für Sie erledigt! Wir konnten die Leistung von großen KI-Agenten (50+ Intents) erheblich verbessern. Diese Techniken haben dazu geführt, dass einige Agenten 55 % mehr erfolgreiche Anrufe und 83 % weniger Anfragen an menschliche Agenten verzeichnen konnten.

In diesem Beitrag wird beschrieben, wie man eine Hierarchie in Absichts-Klassifizierung eine Hierarchie aufbaut, um die Leistung Ihrer Agenten bei der Weiterleitung von Benutzern zum richtigen Intent zu verbessern. Zu den Themen gehören allgemeine NLU-Best Practices, Beispiele für den Aufbau einer hierarchischen Klassifizierung und Tipps für die Gestaltung Ihres Conversational AI Agenten in AI Studio.

NLU Bewährte Praktiken

Was ist NLU? Natürliches Sprachverstehenoder NLU, ist der Prozess, der es einem Computer ermöglicht, die Absicht eines Textes zu verstehen. NLU bedeutet, dass ein Computer versteht, was ein Benutzer meint, wenn er mit dem Computer spricht. Die Software tut dies durch Intent-Klassifizierung und Entitätsextraktion.

Absichtsüberschneidung und Mehrdeutigkeit

Die Klassifizierung von Absichten scheint ziemlich einfach zu sein, oder? Der Agent zerlegt einfach die Benutzereingaben und ordnet sie den von Ihnen definierten Absichten zu. In der Praxis ist es jedoch sehr einfach, das Modell zu verwirren.

Stellen Sie sich das Szenario eines Agenten vor, der für ein Finanzinstitut, z. B. eine Bank, entwickelt wurde. In diesem Kontext können Kunden verschiedene Interaktionen im Zusammenhang mit Krediten initiieren, z. B. eine Kreditanfrage stellen, den Kreditstatus überprüfen oder allgemeine Kreditinformationen abfragen.

Die Herausforderung besteht darin, dass Begriffe wie "Darlehen" oder "Hypothek" in verschiedenen Kontexten verwendet werden, z. B. in Ausdrücken wie "mit einem Vertreter für Hypotheken sprechen" oder "ein Angebot für eine Hypothek einholen". Diese häufige Verwendung derselben Schlüsselwörter innerhalb eines einzigen Klassifizierungsknotens kann zu einer Fehlklassifizierung durch das Modell führen.

Um dieses Problem zu entschärfen, schlagen wir eine hierarchische Struktur mit zwei Ebenen vor, die im Wesentlichen aus zwei Klassifizierungsknoten besteht. Die erste Schicht würde sich auf die Klassifizierung des Kernkonzepts konzentrieren, z. B. "Kredit" oder "Hypothek", während die zweite Schicht auf die Erkennung der spezifischen Aktion oder Absicht spezialisiert wäre, die mit der Anfrage des Nutzers verbunden ist (Anfrage, Status, Vertreter usw.). Dieser hierarchische Ansatz zielt darauf ab, die Präzision des Modells zu verbessern und die Wahrscheinlichkeit einer Fehlklassifizierung ähnlicher, aber kontextuell unterschiedlicher Absichten zu verringern.

Intent Overlap & AmbiguityIntent Overlap & Ambiguity

Konsistenz des Trainingssatzes

Zusätzlich, weil die Übungssätze die die einzelnen Intents bilden, sehr ähnliche Ausdrücke haben, müssen wir extrem konsistent sein. Das Hinzufügen von mehrdeutigen Wörtern in Ihren Trainingssätzen kann zu unerwartetem Verhalten führen, wenn es inkonsequent angewendet wird.

Stellen Sie sich zum Beispiel vor, Ihre Absicht (Darlehens-)Anfrage enthält den Ausdruck "Ich möchte ein Darlehen beantragen". Nun fragt ein Benutzer Ihren Agenten: "Ich möchte einen Darlehensstatus erfragen", was ihn zu (Loan) Status weiterleiten sollte. Wenn Ihr Trainingsdatensatz für Status keinen Ausdruck mit der Phrase "I want to" und "loan" enthält, besteht eine sehr hohe Wahrscheinlichkeit, dass er fälschlicherweise zu Request weitergeleitet wird. Um dieses Problem zu lösen, müssen Ihre Trainingsdaten extrem konsistent mit mehrdeutigen Füll- bzw. Unterstützungswörtern sein. Fügen Sie sie also entweder überall hinzu oder entfernen Sie sie überall. Oft ist es einfacher, sie wegzulassen.

Training Set ConsistencyTraining Set Consistency

Schulungsunterlagen Fallstudie: Vertrieb vs. Kundenbetreuung

Stellen Sie sich nun vor, dass wir unserem Bankagenten zwei neue Absichten hinzufügen wollen: Rückruf und Vertrieb. Der Rückruf ist für Benutzer gedacht, die von einem Kundenbetreuer zurückgerufen werden möchten, und der Verkauf für jemanden aus der Vertriebsabteilung.

Inconsistent Training ExampleInconsistent Training Example

Wir gehen davon aus, dass alle folgenden Punkte als "Umsatz" eingestuft werden:

  • Ich möchte mit einem Vertriebsmitarbeiter sprechen

  • mit einem Vertriebsmitarbeiter sprechen möchten

  • mit einem Vertriebsmitarbeiter

  • Vertriebsmitarbeiter

Wie im Diagramm zu sehen ist, werden jedoch die ersten beiden Benutzereingaben, die "sprechen wollen mit" enthalten, als "Rückruf" klassifiziert. Das liegt daran, dass die Worte "sprechen Sie mit" eher mit "Rückruf" als mit "Verkauf" zu vergleichen sind.

Die Lösung besteht darin, unserer Absicht "Verkauf" Trainingsdaten hinzuzufügen, die "möchte mit" enthalten. Sie sollten im gleichen Verhältnis wie die Trainingsdaten für ähnliche Trainingsdaten im Trainingsset "Rückruf" stehen.

In einem komplizierteren Agenten können diese beiden Absichten im Vergleich zu anderen Absichten sehr ähnlich aussehen. Wir werden in Kürze sehen, wie die hierarchische Klassifizierung unserem Agenten helfen wird, zu dem Punkt zu gelangen, an dem er diese genauere Unterscheidung treffen kann.

Was ist eine hierarchische Klassifikation?

Die Bereinigung unserer Intents zur Vermeidung von Intent-Überschneidungen und die Sicherstellung, dass unsere Trainingssets konsistent sind, sind ein guter Anfang zur Verbesserung der Klassifizierung, aber sobald wir Agenten mit vielen Intents haben, wird das nicht mehr ausreichen, da die Welt voller unvermeidlicher Überschneidungen ist. Und diese lästigen Benutzer verhalten sich nie so, wie wir es wollen!

Die hierarchische Klassifizierung hilft bei diesen groß angelegten Agenten, da sie Klassifizierungsebenen schafft, um die Klassifizierung jeweils nur auf eine Variable oder ein Thema zu konzentrieren. Durch die stufenweise Klassifizierung ist der Agent am effektivsten, wenn er Absichten nach ihren größten Unterscheidungsmerkmalen in Gruppen kategorisiert. Die Gruppierung nach dem größten Unterscheidungsmerkmal hilft, Überschneidungen und Mehrdeutigkeiten zu vermeiden.

Gruppierung von Absichten in der hierarchischen Klassifikation

Die Einteilung in Stufen mag einfach erscheinen, aber wir sehen schnell, dass es verschiedene Möglichkeiten gibt, Absichten zu gruppieren. Wir können sie entweder nach ihren Substantiven oder nach ihren Verben gruppieren.

Substantive sind die Elemente in Ihrem Agenten, nach denen sich ein Benutzer erkundigen kann. Stellen Sie sich diese als die direkten Objekte ihrer Anfrage vor. Meistens handelt es sich dabei um die Produkte oder Dienstleistungen, die Ihr Unternehmen anbietet. Beispiele für Substantive wären "spätes Auschecken", "Geburtstagspaket" und "1:1 Beratung".

Verben hingegen sind die Aktion, die jemand mit dem Substantiv ausführen möchte. Betrachten Sie die Unterschiede zwischen den Kundenanfragen "Buchung einer Reservierung", "Stornierung einer Reservierung" und "Änderung einer Reservierung".

Fallstudie: Gruppierung nach Substantiven vs. Verben

Stellen Sie sich vor, wir erweitern unser Bank-Szenario. Anstatt nur Kredite anzubieten, wollen wir auch Versicherungen anbieten. Für die Versicherung geben wir dem Benutzer auch die Möglichkeit, eine Versicherung zu beantragen, den Versicherungsstatus zu überprüfen und allgemeine Versicherungsinformationen zu erhalten. Unser Klassifikator muss nun die Benutzereingaben mit einer Vielzahl von Trainingsdaten vergleichen, die sich zwangsläufig überschneiden werden.

Dies ist genau das Szenario, in dem die Hierarchie die Leistung unseres Agenten verbessern wird. Der erste Schritt besteht darin, unsere Themen zu gruppieren. In diesem Beispiel haben wir mehrere Möglichkeiten, die Themen zu gruppieren. Wir können sie entweder nach Produkten oder nach Dienstleistungen gruppieren.

Dieses Diagramm veranschaulicht, wie wir nach Verben gruppieren können:

Hierarchy Grouped By VerbsHierarchy Grouped By Verbs

Während die Gruppen logisch sinnvoll sind und wir den ersten Klassifikator mit guten Ergebnissen bestehen könnten, was passiert dann in der zweiten Stufe der Klassifizierung? Wie wir bereits gesehen haben, wird der Klassifikator in der zweiten Runde Probleme haben, da beim Vergleich von Benutzereingaben, die wie Darlehensanweisungen und Versicherungsanweisungen aussehen, eine hohe Mehrdeutigkeit wahrscheinlich ist. In diesen Fällen kommt es zu einer starken Überschneidung in den Trainingssätzen, und wir müssen sehr genau darauf achten, dass die Daten konsistent bleiben.

Nun wollen wir sehen, was passiert, wenn wir die Intents nach Substantiven gruppieren:

Hierarchy Grouped By NounsHierarchy Grouped By Nouns

Wir sehen hier, dass wir nicht nur eine Ebene der Komplexität entfernen, indem wir sofort zwischen Support und Verkauf unterscheiden, sondern vor allem, dass wir in der zweiten Runde Gruppierungen schaffen, die viel einfacher zu klassifizieren sind. In jeder Gruppe von Krediten und Versicherungen kann jedes Vorhaben so eingeteilt werden, dass es nur sehr wenige Überschneidungen gibt, wie wir es zuvor getan haben.

Hierarchische Klassifikation erstellen

Nachdem Sie nun die Theorie verstanden haben, lassen Sie uns mit einem praktischen Leitfaden beginnen.

Schritt 1: Sammeln oder Erstellen eines idealisierten Trainingssatzes

Wenn Sie Daten aus der realen Welt haben, sind Sie dem Spiel einen Schritt voraus! Gehen Sie zu Schritt 2 über, konzentrieren Sie sich auf die wichtigsten Trainingsdaten und lassen Sie Ausreißer vorerst weg.

Andernfalls stellen Sie sich vor, dass Ihre Benutzer ohne Füllwörter oder unnötige Zusatzwörter sprechen. Schreiben Sie nun alle Benutzerausdrücke auf, die Ihnen einfallen. Dies ist Ihr idealisierter Trainingssatz.

  • Stellen Sie sich alle möglichen Synonyme für Ihre Produkte/Angebote vor.

    • Beispiel: Zimmer/Reservierung/Buchung/Aufenthalt

Schritt 2: Organisieren Sie Ihre idealisierten Daten in breite Gruppen

So wie wir die Themen der Bank in grobe Gruppen von Substantiven eingeteilt haben, sollten auch Sie Ihre Themen in grobe Kategorien von Substantiven/Nomenphrasen einteilen. An diesem Punkt können Sie beginnen, die unterstützenden Verben/Verben zu identifizieren.

In der realen Welt verhalten sich die Nutzer ähnlich wie Höhlenmenschen. Sehr oft antworten sie mit einzelnen Wörtern, viel häufiger mit Substantiven als mit Verben. Die Gruppierung um Substantive führt zu einer viel höheren Leistung.

Wo ist das Potenzial für hohe Mehrdeutigkeit am größten? Fügen Sie für die hochgradig mehrdeutigen Fälle Trainingsdaten hinzu, um sie zu standardisieren und einheitliche Phrasen für die verschiedenen Gruppen zu erstellen. Genau wie im obigen Beispiel von Verkaufsabsichten und Rückrufabsichten sollten Sie die Trainingsdaten für Gruppen mit hoher Mehrdeutigkeit normalisieren.

Schritt 3: Umgang mit den Ausreißern

Nachdem Sie die meisten Anwendungsfälle gelöst haben, stellen Sie vielleicht fest, dass Sie noch einige Absichten haben, die nicht in Ihre breit angelegten Themen passen. Wo sollten Sie diese berücksichtigen?

Sie sollten diese Absichten an der Stelle hinzufügen, an der sie am ehesten von Ihrem Modell negiert werden können. Nehmen wir an, Sie haben einen Agenten für einen Ernährungsberater und eine Ihrer Absichten ist "Gesunde Ernährung". Ein Benutzer fragt jedoch: "Kann ich eine Pizza bestellen?". Das Modell wird den Benutzer höchstwahrscheinlich zum Intent "Gesunde Ernährung" leiten, auch wenn eine Pizza dort nicht hingehört. Siehe das Diagramm:

Classification Hierarchy: Nutritionist ExampleClassification Hierarchy: Nutritionist Example

Unsere Lösung besteht darin, eine neue "negative" Absicht zu erstellen, um das Standardverhalten zu erfassen und es entsprechend weiterzuleiten. Wir erstellen also eine Absicht "Ungesunde Lebensmittel", die diese "negativen" Fälle erfasst und an den richtigen Fluss weiterleitet. Unsere aktualisierte Klassifizierung:

Classification Negative Intent ExampleClassification Negative Intent Example

Entwurfsüberlegungen in AI Studio

Verwendung von Subflows in AI Studio

AI Studio erleichtert den schnellen Einstieg und die Erstellung von Agenten mit Drag-and-Drop-Knoten. Wenn Ihr Agent jedoch zu skalieren beginnt, wird es sehr schwierig, den Überblick über Dutzende oder Hunderte von Knoten zu behalten. Nicht nur die Organisation der Agenten wird unübersichtlich, auch das Studio wird im Browserfenster langsam, wenn eine große Anzahl von Knoten geladen wird.

Es ist am besten, diese Probleme zu vermeiden, indem Sie Ihren Agenten im Voraus planen und die Subflow-Funktion. Am besten ist es, wenn jeder Vorgang einen eigenen Subflow hat. Jeder dieser Subflows wird auf der Ebene einer Themengruppe zusammengeführt. Jede dieser Gruppen wird dann in eine Hauptebene übergehen. Wenn Sie vor Beginn Ihrer Arbeit eine hierarchische Klassifizierung erstellen, wird die Organisation Ihrer Subflows zum Kinderspiel und verhindert die Entstehung zukünftiger technischer Schulden.

Wiederholung von Intents über mehrere Flows hinweg

Nachdem Sie die erste Version Ihres Agenten erstellt haben, stellen Sie vielleicht fest, dass Ihre Hierarchie "undicht" ist. Eine kleine Anzahl von Benutzern kann versehentlich im falschen Fluss landen. Anstatt sich den Kopf zu zerbrechen, um das perfekte Hierarchiemodell neu zu entwickeln, sollten Sie einfach "mit dem Strom schwimmen".

Nehmen wir als Beispiel, dass ein Hotel ein Premium-Restaurantpaket mit dem Namen "Eagles Nest" anbietet. Die Nutzer werden nach "Premium-Angebot für das Hotel" fragen oder andere Begriffe verwenden, weil sie nicht wissen, dass es "Eagles Nest" heißt. Es gab einen Top-Level-Klassifikator für das Hotel und einen Top-Level-Klassifikator für "Eagles Nest". Es gab so viele Trainingsdaten für "Hotel", dass die Benutzeranfragen oft im "Hotel" statt im "Eagles Nest" landeten. Anstatt also den gesamten Agenten neu zu entwerfen, können wir einen Subflow in Hotel hinzufügen, der dann zurück zu Eagles Nest führt. Im endgültigen Agenten kann sich dieser Subflow an 3 oder 4 verschiedenen Stellen befinden, da alles davon abhängt, wie jemand nach ihm fragt.

Handhabung für breite Abfragen

Nicht nur, dass die Nutzer viel zu einfache Eingaben machen, oft geben sie auch das Thema an, zu dem sie eine Frage haben, anstatt eine detaillierte Frage zu stellen. Eine gute Möglichkeit, damit umzugehen und die Nutzererfahrung zu verbessern, besteht darin, eine "Fangabsicht" auf der höchsten Klassifizierungsebene zu erstellen.

Anstatt z. B. zu sagen: "Ich möchte einen Termin bei Dr. Smith für eine Operation vereinbaren", werden sie sagen: "Frage zur Buchung" oder "Frage zur Operation".

Question Deflection ExampleQuestion Deflection Example

Wir haben festgestellt, dass diese einfache Möglichkeit der Eingabe von Fragen dazu beigetragen hat, das Vertrauen der Benutzer in die Fähigkeit des virtuellen Agenten zu stärken, ihnen zu helfen.

Schlussfolgerung

Nun, da Sie die Leistungsfähigkeit der Klassifizierungshierarchie in Conversational AI-Agenten kennengelernt haben, können Sie Ihre Agenten dazu bringen, Ihren Benutzern viel besser zu antworten! Denken Sie an diese Schritte und Sie werden der Held in Ihrem Unternehmen sein:

  1. Überprüfung der Trainingsdaten

  2. Organisieren Sie die Daten und ermitteln Sie, wo ein hohes Potenzial für Mehrdeutigkeit besteht.

  3. Erstellen Sie eine hierarchische Klassifizierung

  4. Agent ausbauen

  5. Test, Test, Test

Wenn Ihnen dieser Artikel gefallen hat, lassen Sie es uns auf Vonage Developer Gemeinschaft Slack. Dieser Beitrag wurde durch eine Frage eines Community-Mitglieds inspiriert! Sie können uns auch folgen auf X, früher bekannt als Twitterfür die neuesten Vonage API-Nachrichten.

Zusätzliche Ressourcen

Teilen Sie:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin AronovAdvokat für Entwickler

Benjamin Aronov ist ein Entwickler-Befürworter bei Vonage. Er ist ein bewährter Community Builder mit einem Hintergrund in Ruby on Rails. Benjamin genießt die Strände von Tel Aviv, das er sein Zuhause nennt. Von Tel Aviv aus kann er einige der besten Startup-Gründer der Welt treffen und von ihnen lernen. Außerhalb der Tech-Branche reist Benjamin gerne um die Welt auf der Suche nach dem perfekten Pain au Chocolat.