Auf Habré haben sie mehr als ein- oder zweimal über Sprachroboter, die Prinzipien ihrer Arbeit und die Aufgaben geschrieben, die sie lösen können. Dementsprechend sind vielen die allgemeinen Prinzipien für die Erstellung solcher Roboter (wir nennen sie lieber „digitale Agenten“) klar. Und das ist gut so, denn in diesem Artikel möchten wir über das schnelle Lernen von Robotern sprechen.
Wir konnten Agenten auf einer sehr begrenzten Anrufbasis erfolgreich schulen. Die Mindestanzahl von Datensätzen, auf deren Grundlage ein vollwertiger digitaler Agent entwickelt werden kann, beträgt nur 500. (Spoiler-Alarm - wir sprechen mehr über die Spezialisierung eines Assistenten und lernen nicht von Grund auf neu). Wie findet das Training statt und was sind die Fallstricke, Merkmale, was ist das Herzstück der Technologie? Wir werden heute darüber sprechen.
Was sollte ein digitaler Agent können?
Derzeit können die von uns entworfenen digitalen Agenten, die mit dem Intent-Klassifikator im B2C-Segment arbeiten, einen vollwertigen Dialog führen. Dies wurde möglich, weil wir sie unterrichteten:
- Bestimmen Sie in der Rede einer Person und klassifizieren Sie verschiedene Antworten, Fragen, Einwände.
- Wählen Sie eine Antwort oder Reaktion aus, deren Bedeutung angemessen ist.
- Identifizieren Sie Fälle, in denen der Teilnehmer nicht auf Dialog eingestellt ist und Negatives ausdrückt. Stellen Sie fest, wann der Teilnehmer ein Kind und / oder eine ältere Person ist, und beenden Sie den Anruf in solchen Fällen korrekt.
- Bestimmen Sie in der Rede einer Person und zeichnen Sie gegebenenfalls verschiedene Entitäten auf, die der Teilnehmer anruft: Namen, Adressen, Daten, Telefonnummern usw.
- . , , , . .
- «» («», «») , .
- , (, ) . , .
- «background sound» (« »). , , « », , - , .. . — .
Wofür ist diese Funktion? Damit der digitale Agent die Aufgabe übernehmen kann, die eingehende Call-Center-Leitung zu bearbeiten und Standard-Kundenfragen zu beantworten. Nach unserer Erfahrung kann ein digitaler Agent bis zu 90% der Anfragen unabhängig bearbeiten. Gleichzeitig können menschliche Bediener kreativere Aufgaben erledigen und bei nicht standardmäßigen Problemen helfen. AI kann angewiesen werden, einen Dialog mit Call-Center-Abonnenten, Unternehmensunterstützung usw. zu führen.
Nun, und was in diesem Segment am wichtigsten ist, ist, dass digitale Agenten nicht schlechter (und in vielen Fällen sogar besser) verkaufen können als ein Live-Betreiber. Wir entwickeln solche fortschrittlichen digitalen Agenten beispielsweise für große Telekommunikationsbetreiber.
Wie man einen Roboter trainiert, um einen Dialog zu führen
Dies ist eine sehr interessante Herausforderung. Jetzt lösen wir es ganz anders als vor ein paar Jahren. Und im Moment brauchen wir mehrere hundert Unterlagen, um einen Agenten auszubilden. Aber natürlich sind wir nicht sofort dazu gekommen - wir mussten viel arbeiten.
Wie vorher?
Vor einigen Jahren wurde die Extraktion von Absichten und Entitäten aus der menschlichen Sprache und ihre Klassifizierung unter Verwendung regulärer Ausdrücke ( Regex ) durchgeführt. Einfach ausgedrückt handelt es sich um eine Textsuchsprache. Für die Suche wird eine Beispielzeichenfolge (auch bekannt als Muster) verwendet, die die Suchregel festlegt. Der reguläre Ausdruck verwendet eine spezielle Syntax, um die Suchregeln festzulegen. Diese Methode hatte jedoch mehrere Nachteile:
- Die Notwendigkeit einer großen und qualifizierten Personalabteilung, um regelmäßige Ausdrücke zu erstellen.
- – , , .
- , — .
- , .
- - (NLU).
- ( , , , , ) 3-7 ; .
?
Wir haben eine Basisdatenbank entwickelt, einen Datensatz mit Millionen von Aufrufen, die mit regulären Ausdrücken getätigt wurden: Wir haben die Daten überprüft und markiert und ein Modell erstellt, das zwar das Ergebnis der Arbeit des Klassifikators an regulären Ausdrücken imitiert, jedoch besser Qualität.
Im Zuge der weiteren Verwendung des Modells in realen Projekten führen wir zusätzliche Schulungen über eine spezielle Markup-Schnittstelle auf unserer Plattform durch. Daher identifizieren Content Manager Hinweise, die nicht genau klassifiziert sind, markieren sie und „füttern“ das Modell, damit es in ihren Fällen verbessert werden kann.
Jetzt besteht die Schulung aus zwei Phasen: direktes Training des Modells auf dem Datensatz und Weiterbildung während des kommerziellen Betriebs. Derzeit dauert die Verbindung zur NLU-Engine und die Express-Erkennungstests nur wenige Stunden.
Die Qualität, die früher durch wochenlange sorgfältige Arbeit erreicht wurde, wird jetzt dank der Hauptbasis sofort bereitgestellt. Beispielsweise verringerte sich im b2c-Segment der anfängliche Prozentsatz der Fehler beim Erkennen der Zustimmung / Verweigerung einer Zielmaßnahme um das Dreifache (von 10% auf 2-3% der Gesamtzahl der Fälle).
Die Schulung beginnt mit der Aufzeichnung von Gesprächen zwischen Betreibern und Kunden des Kundenunternehmens. Idealerweise sollte ein Datensatz mindestens 500 Datensätze enthalten. Darüber hinaus werden zusätzliche Informationen angefordert, einschließlich Fälligkeitsterminen, Priorität, vorhandenen Anweisungen und Skripten für Call Center-Mitarbeiter (optional, aber wünschenswert).
Um dies zu lösen, verwenden wir eine spezielle NLU-Engine . Es basiert auf der semantischen Analyse von Text, der aus ASR-Systemen stammt. Im Verlauf der Erkennung gibt es zwei Arten von Erkennungsobjekten:
Entitäten .
Intents (Absicht).
Ein wichtiger Punkt: Wir haben kein klassisches Dialogsystem im herkömmlichen Sinne, ein maschinelles Lernsystem erstellt keine Antwort dynamisch, die Antwort wird von Skriptdesignern festgelegt. Die Phrasen des Bots sind streng vorbestimmt, es gibt zum Glück oder leider keinen freien Willen für künstliche Intelligenz ...
Die Logik des Gesprächs ist ebenfalls vorbestimmt - tatsächlich wird der Intent-Klassifikator verwendet, um zu bestimmen, was der Abonnent uns gesagt hat und wofür welcher Sinn. Nachdem wir die Absicht festgelegt haben, können wir die geeignete Bot-Phrase auswählen, die erforderlich ist, um auf den Abonnenten zu antworten - und tatsächlich einen vollwertigen Dialog zu führen.
Dialogbeispiel
Unten finden Sie ein komplexes HR-Skript mit den Bezeichnungsabsichten und -entitäten. Erkannte Entitäten und Absichten werden unter dem Replikat jedes Abonnenten angezeigt und sind kursiv dargestellt.
Bot: Hallo! Mein Name ist Elena, ich rufe wegen Ihres Lebenslaufs an. Sagen Sie mir, ist das Stellenangebot für Sie relevant?
Abonnent: Ja, hallo
Absicht: hallo_confirm = wahr
Bot:Schauen Sie, jetzt haben wir eine freie Stelle für einen Verkaufsbüro-Spezialisten. Zu den Aufgaben gehören die Beratung von Abonnenten, der Verkauf von Geräten und die Arbeit mit der Registrierkasse. Die Registrierung ist vollständig offiziell, das Gehalt ist weiß, das Durchschnittseinkommen beträgt N Rubel, das Höchstniveau ist praktisch unbegrenzt, es besteht die Möglichkeit eines Karrierewachstums. Planen Sie 5 Arbeitstage mit zwei freien Tagen. Wir bieten auch alle sozialen Garantien, VMS, Boni und Rabatte des Unternehmens.
Betrachten Sie diese Bedingungen für sich selbst?
Abonnent: Und wieder, woher rufen Sie an?
Absicht: question = what_company
Bot: Dies ist ein Einzelhandelsnetzwerk. NNN-
Abonnent: Wie sieht Ihr Zeitplan aus?
Absicht: Frage = Zeitplan
Bot:Der Arbeitsplan wird vom Programm automatisch erstellt, wobei der Kundenfluss und die Arbeitsbelastung im Büro mit zwei schwebenden freien Tagen berücksichtigt werden, dh die Schicht der Arbeitnehmer 6 8 10 12 Stunden pro Tag darf nicht mehr als 40 Stunden betragen eine Woche. In diesem Fall wird der Zeitplan für 2 Wochen im Voraus erstellt, dh Sie kennen Ihren Zeitplan, Ihr Wochenende im Voraus und können bereits planen.
Abonnent: Nun,
Absicht: Bestätigung = wahr
Bot: Lassen Sie uns dann Ihre persönlichen Daten mit Ihnen überprüfen ...
Bitte teilen Sie mir Ihren Nachnamen mit Vollständiger Name Patronymic
Abonnent : Elena Gudkova
Entität: Name = wahr
Bot: Bitte nennen Sie Ihr Geburtsdatum
Abonnent:dreizehnte Null Sekunde siebenundachtzig
Entitäten:
Tag = [13]
Monat == [Februar]
Jahr == [1987]
Bot: Sag mir, kann ich die Nummer aufschreiben, die ich dich als Kontakt anrufe?
Abonnent: Nein, wahrscheinlich
Absicht: Bestätigung = falsch
Bot: Sagen Sie mir dann die Nummer, unter der ich Sie kontaktieren kann?
Abonnent: neunhundert zehn achthundert achtzig fünfundfünfzig fünfundzwanzig
Entität: Telefon = wahr
Bot: Sag mir, was ist deine Ausbildung?
Abonnent: Höhere
Entität: Bildung = höherer
Bot:Klarstellen, studieren Sie derzeit in Vollzeit?
Abonnent: Nein
Absicht: Bestätigung = falsch
Bot: Sag mir, hast du die russische Staatsbürgerschaft?
Abonnent: Russische Staatsbürgerschaft
Entität: Staatsbürgerschaft = Russland
Bot: Ok, das war die letzte Frage. Vielen Dank für die Beantwortung meiner Fragen. Jetzt sende ich den Fragebogen zur Prüfung an den Manager. Die Fragebögen werden innerhalb von 3 Tagen geprüft. Im Falle einer positiven Entscheidung werden sich unsere Mitarbeiter mit Ihnen in Verbindung setzen. Auf Wiedersehen.
Ok, das Skript ist entwickelt, was dann?
Nach alledem werden die entwickelten Skripte mit dem Kunden vereinbart. In einigen Fällen möchten Kunden etwas hinzufügen oder ändern, was wir auch tun. Manchmal müssen die technischen Parameter geklärt werden:
- Integrationsmethode.
- Eingabe- / Ausgabeparameter.
- SIP-Amtsleitungsverbindung (wenn die Telefonie des Kunden verwendet werden soll).
- SMS-Verbindung oder Verbindung zu Kundensystemen von Drittanbietern (CRM, Kampagnenverwaltung).
Was sind die Eingabe- und Ausgabeparameter? Dies sind verschiedene Variablen, die unser digitaler Agent benötigt, um einen Anruf einzuleiten. Zuallererst ist dies natürlich die Telefonnummer oder ID des Teilnehmers, den wir anrufen. Optional können es je nach Kunde und Projekt andere Daten sein, zum Beispiel:
- verschiedene Komponenten und Kosten von Diensten und Diensten, die der Assistent je nach den spezifischen Bedingungen verschiedenen Abonnenten mitteilen sollte;
- Namen von Servicepaketen oder Services, die der Assistent an verschiedene Teilnehmer anruft;
- verschiedene Namen, unter denen der Assistent Anrufer bei der Begrüßung ansprechen kann;
- Zusätzliche Information.
Das heißt, damit der Assistent abhängig von bestimmten Bedingungen diese oder jene Aktion während des Anrufs oder danach ausführen kann, müssen Sie ihm diese Bedingungen übermitteln, die als "Eingabeparameter" bezeichnet werden.
Nun, die Ausgabeparameter sind eine Reihe von Daten, die der Assistent nach einem Anruf an uns zurücksenden sollte.
Zum Beispiel: die Telefonnummer des Teilnehmers, die Dauer des Anrufs, der Name des Projekts, in dem der Anruf getätigt wurde, die Ergebnisse des Anrufs usw. Die Ausgabe enthält auch das Hauptergebnis des Aufrufs, das von den Ergebnissen des Dialogs zu einem bestimmten Projekt abhängt (das einfachste Beispiel ist das Ergebnis "Zustimmung", wenn der Teilnehmer der Durchführung der Zielaktion zugestimmt hat, oder das Ergebnis "Ablehnung", wenn das Teilnehmer abgelehnt). Und das Letzte sind technische Daten zum Status des Anrufs und verschiedene Codes möglicher Fehler (der Anruf wurde getätigt, der Anruf wurde aufgrund von Telefonieproblemen nicht getätigt, der Anruf wurde aufgrund falscher Eingabedaten nicht getätigt usw. ).
Diese Daten können einfach in die Ausgabe der Eingabedaten fallen (z. B. haben wir in den Eingabedaten die Nummer des Teilnehmers an den Assistenten übergeben, und in den Ausgabedaten nach dem Anruf hat uns der Assistent dieselbe Telefonnummer gegeben).
Außerdem kann der Roboter diese Daten basierend auf dem Ergebnis des Anrufs vom Teilnehmer „sammeln“: Notieren Sie beispielsweise die von den Teilnehmern benannten Namen, Adressen, Telefonnummern usw. und zeichnen Sie sie in den Ausgabedaten auf. Darauf aufbauend werden Berichte und Analysen erstellt.
Nun sind dann Phasen wie Skriptbewertung, Logikentwicklung, Musterentwicklung, Softwareüberprüfung und schließlich die Übertragung des Projekts an den Kunden an der Reihe.
Das ist in der Tat alles. Natürlich ist der Prozess der Erstellung eines digitalen Agenten selbst etwas komplizierter als oben beschrieben - nur im Rahmen des Artikels können nicht alle Nuancen angegeben werden. Jetzt planen wir, diesen Artikel fortzusetzen, indem wir den zweiten Teil bereits über die technischen Aspekte der Schulung und die interne „Küche“ des Unternehmens machen. Wenn Sie etwas wissen möchten, das gerade nicht im Artikel enthalten ist, fragen Sie und wir werden auf jeden Fall antworten.