Communications de haute technologie, ou comment nous créons un agent vocal sur seulement 500 enregistrements

image



Sur Habré, ils ont écrit plus d'une ou deux fois sur les robots vocaux, les principes de leur travail et les tâches qu'ils sont capables de résoudre. En conséquence, les principes généraux de création de tels robots (nous préférons les appeler «agents numériques») sont clairs pour beaucoup. Et c'est bien, car dans cet article, nous aimerions parler de l'apprentissage rapide des robots.



Nous avons réussi à former des agents sur une base d'appels très limitée. Le nombre minimum d'enregistrements sur la base desquels un agent numérique à part entière peut être développé n'est que de 500. (Alerte Spoiler - nous parlons davantage de la spécialisation d'un assistant et de ne pas apprendre à partir de zéro). Comment se déroule la formation, quels sont les pièges, les fonctionnalités, qu'est-ce qui est au cœur de la technologie? Nous en parlerons aujourd'hui.



Que doit être capable de faire un agent numérique?



Pour le moment, les agents numériques que nous concevons, qui fonctionnent avec l'utilisation du classificateur d'intention dans le segment b2c, peuvent entretenir un dialogue à part entière. Cela est devenu possible grâce au fait que nous leur avons appris:



  • DĂ©terminer dans le discours d'une personne et classer diverses rĂ©ponses, questions, objections.
  • SĂ©lectionnez une rĂ©ponse ou une rĂ©action qui a un sens appropriĂ©.
  • Identifiez les cas oĂą l'abonnĂ© n'est pas Ă  l'Ă©coute du dialogue et exprime une opinion nĂ©gative. DĂ©terminez si l'abonnĂ© est un enfant et / ou une personne âgĂ©e et mettez fin correctement Ă  l'appel dans de tels cas.
  • DĂ©terminer dans le discours d'une personne et enregistrer, si nĂ©cessaire, diffĂ©rentes entitĂ©s que l'abonnĂ© appelle: noms, adresses, dates, numĂ©ros de tĂ©lĂ©phone, etc.
  • . , , , . .
  • «» («», «») , .
  • , (, ) . , .
  • «background sound» (« »). , , « », , - , .. . — .


À quoi sert cette fonctionnalité? Pour que l'agent numérique puisse prendre en charge les tâches d'élaboration de la ligne du centre d'appel entrant et répondre aux questions standard des clients. D'après notre expérience, un agent numérique peut traiter de manière indépendante jusqu'à 90% des demandes. Dans le même temps, les opérateurs humains peuvent effectuer des tâches plus créatives et résoudre des problèmes non standard. L'IA peut être chargée de dialoguer avec les abonnés du centre d'appels, le support de l'entreprise, etc.



Eh bien, et ce qui est le plus important dans ce segment, c'est que les agents numériques ne sont pas en mesure de vendre pire (et dans de nombreux cas même mieux) qu'un opérateur en direct. Nous créons de tels agents numériques avancés, par exemple, pour les grands opérateurs de télécommunications.







Comment entraîner un robot à dialoguer



C'est un défi très intéressant. Maintenant, nous le résolvons d'une manière complètement différente de celle d'il y a quelques années. Et pour le moment, nous avons besoin de plusieurs centaines d'enregistrements pour former un agent. Mais, bien sûr, nous ne sommes pas arrivés à cela tout de suite - nous avons dû beaucoup travailler.



Comme c'était avant?



Il y a plusieurs années, l'extraction des intentions et des entités à partir de la parole humaine et leur classification était réalisée à l'aide d'expressions régulières ( regex ). Pour faire simple, c'est une langue de recherche de texte. Pour la recherche, un exemple de chaîne (aka pattern) est utilisé, qui définit la règle de recherche. L'expression régulière utilise une syntaxe spéciale pour définir les règles de recherche. Mais cette méthode présentait plusieurs inconvénients:



  • Le besoin d'une ressource humaine importante et qualifiĂ©e pour crĂ©er des expressions rĂ©gulières.
  • – , , .
  • , — .
  • , .
  • - (NLU).
  • ( , , , , ) 3-7 ; .


?



Nous avons développé une base de données de base, un ensemble de données de millions d'appels effectués à l'aide d'expressions régulières: nous avons vérifié et balisé les données et créé un modèle qui, en fait, imite le résultat du travail du classifieur sur les expressions régulières, mais avec une meilleure qualité.



Dans le cadre de l'utilisation ultérieure du modèle sur des projets réels, nous effectuons une formation supplémentaire via une interface de balisage spéciale sur notre plate-forme. Ainsi, les gestionnaires de contenu identifient les indices qui ne sont pas classés avec précision, les balisent et «alimentent» le modèle afin qu'il puisse être amélioré sur leurs cas.



Désormais, la formation se compose de deux étapes: la formation directe du modèle sur l'ensemble de données et la formation continue pendant l'exploitation commerciale. Pour le moment, la connexion au moteur NLU et les tests de reconnaissance express ne nous prennent que quelques heures.



La qualité autrefois obtenue par des semaines de travail minutieux est désormais assurée immédiatement grâce à la base principale. Par exemple, dans le segment b2c, le% initial d'erreurs dans la reconnaissance du consentement / refus de prendre une action cible a diminué de 3 fois (de 10% à 2-3% du nombre total de cas).



La formation commence par la fourniture d'enregistrements de conversations entre les opérateurs et les clients de l'entreprise cliente. Idéalement, un ensemble de données doit contenir au moins 500 enregistrements. En outre, des informations supplémentaires sont demandées, y compris les dates d'échéance, la priorité, les instructions existantes et les scripts pour les employés du centre d'appels (facultatif, mais souhaitable).



Pour le résoudre, nous utilisons un moteur NLU spécialisé . Il est basé sur l'analyse sémantique du texte provenant des systèmes ASR. Au cours de la reconnaissance, les principaux objets de reconnaissance sont de deux types: les



entités .

Intentions (intention).



Un point important: nous n'avons pas de système de dialogue classique dans son sens traditionnel, un système d'apprentissage automatique ne compose pas une réponse de manière dynamique, la réponse est déterminée par les concepteurs de scripts. Les phrases du bot sont strictement prédéterminées, il n'y a pas de libre arbitre pour l'intelligence artificielle, heureusement ou malheureusement ...



La logique de la conversation est également prédéterminée - en fait, le classifieur d'intention est utilisé pour déterminer ce que l'abonné nous a dit et pour quel but. Après avoir déterminé l'intention, nous serons en mesure de sélectionner la phrase de bot appropriée, qui est nécessaire pour répondre à l'abonné - en fait, pour mener un dialogue à part entière.



Exemple de dialogue



Vous trouverez ci-dessous un script RH complexe avec les intentions et les entités de désignation; les entités reconnues et les intentions sont indiquées sous la réplique de chaque abonné et sont en italique.



Bot: Bonjour! Je m'appelle Elena, j'appelle pour votre CV. Dites-moi, l'offre d'emploi vous concerne-t-elle?



Abonné: Oui, bonjour



Intention: hello_confirm = true



Bot:Ecoutez, nous avons maintenant un poste vacant pour un spécialiste du bureau des ventes. Les responsabilités comprennent la consultation des abonnés, la vente de matériel et l'utilisation de la caisse enregistreuse. L'enregistrement est complètement officiel, le salaire est blanc, le revenu moyen est de N roubles, le niveau maximum est pratiquement illimité, il y a une possibilité de croissance de carrière. Planifiez 5 jours ouvrables avec deux jours de congé flottants. Nous fournissons également toutes les garanties sociales, VMS, bonus et remises de l'entreprise.



Considérez ces conditions pour vous-même?



Abonné: Et encore une fois, d'où appelez-vous?



Intention: question = what_company



Bot: Ceci est un réseau de vente au détail



Abonné NNN : Quel est votre horaire?



Intention: question = planification



Bot:L'horaire de travail est formé automatiquement par le programme, en tenant compte du flux de clients et de la charge de travail au bureau avec deux jours de congé flottants, c'est-à-dire que le quart de travail des travailleurs 6 8 10 12 heures par jour ne peut pas dépasser 40 heures une semaine. Dans ce cas, le planning est établi à l'avance pour 2 semaines, c'est-à-dire que vous connaissez à l'avance votre planning, votre week-end, et vous pouvez déjà planifier.



Abonné: Eh bien,



Intention: confirmation = vrai



Bot: Laissez-nous ensuite vérifier vos données personnelles avec vous ...

Veuillez me dire votre nom de famille Nom complet



Abonné Patronymique : Elena Gudkova



Entité: nom = vrai



Bot: Veuillez indiquer votre date de naissance



Abonné:treizième zéro seconde quatre-vingt-septième



Entités:

jour = [13]

mois == [février]

année == [1987]




Bot: Dites-moi, puis-je écrire le numéro que je vous appelle comme contact?



Abonné: Non, probablement



Intention: confirmation = faux



Bot: Dites-moi alors le numéro par lequel je peux vous contacter?



Abonné: neuf cent dix huit cent quatre-vingt cinquante vingt cinq



Entité: téléphone = vrai



Bot: Dites-moi, quelle est votre éducation?



Abonné:



Entité supérieure : éducation = Bot supérieur



:Clarifiez, étudiez-vous actuellement à temps plein?



Abonné: Aucune



intention: confirmation = false



Bot: Dites-moi, avez-vous la citoyenneté russe?



Abonné: citoyenneté russe



Entité: citoyenneté = russie



Bot: Ok, c'était la dernière question. Merci d'avoir répondu à mes questions, maintenant je vais envoyer le questionnaire au gestionnaire pour examen. Les questionnaires sont pris en compte dans les 3 jours, et, en cas de décision positive, nos collaborateurs prendront contact avec vous. Au revoir.



Ok, le script est développé, alors quoi?



Après tout cela, les scripts développés sont convenus avec le client. Dans certains cas, les clients veulent ajouter ou modifier quelque chose, ce que nous faisons. Parfois, il devient nécessaire de clarifier les paramètres techniques:



  • MĂ©thode d'intĂ©gration.
  • Paramètres d'entrĂ©e / sortie.
  • Connexion de jonction SIP (s'il est prĂ©vu d'utiliser la tĂ©lĂ©phonie du client).
  • Connexion SMS ou connexion Ă  des systèmes clients tiers (CRM, gestion de campagne).


Quels sont les paramètres d'entrée et de sortie? Ce sont diverses variables dont notre agent numérique a besoin pour lancer un appel. Tout d'abord, il s'agit bien sûr du numéro de téléphone ou de l'identifiant de l'abonné que nous appelons. En option, en fonction du client et du projet spécifiques, il peut s'agir d'autres données, par exemple:



  • divers composants et coĂ»t des services et services que l'assistant doit annoncer aux diffĂ©rents abonnĂ©s, en fonction de conditions spĂ©cifiques;
  • les noms des packages de services ou des services que l'assistant appelle Ă  diffĂ©rents abonnĂ©s;
  • diffĂ©rents noms par lesquels l'assistant peut s'adresser aux appelants lors de l'accueil;
  • Information additionnelle.


Autrement dit, pour que l'assistant, en fonction de certaines conditions, effectue telle ou telle action pendant ou après l'appel, vous devez lui transmettre ces conditions, appelées «paramètres d'entrée».



Eh bien, les paramètres de sortie sont un ensemble de données que l'assistant doit nous renvoyer après un appel.



Par exemple: le numéro de téléphone de l'abonné, la durée de l'appel, le nom du projet dans lequel l'appel a été effectué, les résultats de l'appel, etc. La sortie contient également le résultat principal de l'appel, qui dépend des résultats du dialogue sur un projet spécifique (l'exemple le plus simple est le résultat "Consentement" si l'abonné a accepté d'effectuer l'action cible ou le résultat "Refus" si abonné refusé). Et la dernière chose est des données techniques sur l'état de l'appel et divers codes d'erreurs possibles (l'appel a été effectué, l'appel n'a pas eu lieu en raison de problèmes de téléphonie, l'appel n'a pas eu lieu en raison de données d'entrée incorrectes, etc. ).

Ces données peuvent simplement tomber dans la sortie des données d'entrée (par exemple, dans les données d'entrée, nous avons transmis le numéro d'abonné à l'assistant, et dans les données de sortie après l'appel, l'assistant nous a donné le même numéro de téléphone).



De plus, le robot peut «collecter» ces données auprès de l'abonné en fonction du résultat de l'appel: par exemple, noter les noms, adresses, numéros de téléphone, etc. nommés par les abonnés et les enregistrer dans les données de sortie. Sur cette base, des rapports et des analyses sont générés.



Eh bien, vient le tour d'étapes telles que la notation de script, le développement de la logique, le développement de modèles, la vérification du logiciel et, enfin, le transfert du projet au client.



C'est, en fait, tout. Bien sûr, le processus de création d'un agent numérique lui-même est un peu plus compliqué que celui décrit ci-dessus - juste dans le cadre de l'article, il ne sera pas possible d'indiquer absolument toutes les nuances. Nous prévoyons maintenant de poursuivre cet article en faisant déjà la deuxième partie sur les aspects techniques de la formation et la «cuisine» interne de l'entreprise. Si vous voulez savoir quelque chose qui ne figure pas dans l'article en ce moment, demandez et nous vous répondrons certainement.



All Articles