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.