
Amis, nous portons à votre attention une traduction abrégée d'une
présentation curieuse sur les problèmes de création de chat bots: quelles sont les caractéristiques de cette tâche, quelles sont les difficultés rencontrées par les développeurs et comment les résoudre. Nous avons également demandé à un expert du Jet Infosystems Machine Learning Center de commenter ce matériel. Vous trouverez son avis à la fin de l'article.
Pas les réseaux sociaux, pas les applications mobiles, mais la messagerie est une nouvelle tendance très importante. Aujourd'hui, l'intensité de la messagerie augmente de façon exponentielle et en termes de volume de données, ce mode de communication a dépassé les réseaux sociaux ailleurs début 2015. Par exemple, Facebook se concentre sur les messages et va pousser tout le reste qui est connecté à votre page sur ce réseau social - un fil d'actualité et d'autres choses - quelque part très loin.
Aujourd'hui, grâce aux smartphones, les interfaces tactiles ont conquis le monde. Et il semble que la prochaine étape sera l'interface utilisateur de chat dans laquelle vous aurez un bot de chat vocal ou texte.
Parlons des difficultés qui doivent être surmontées - et qui devront l'être à l'avenir - par les développeurs de robots de discussion à part entière.
Que nous disent les analystes?
Gartner affirme que d'ici 2022, 70% de toutes les interactions avec les clients se produiront via une sorte d'IA. On suppose que même le nombre d'appels vocaux dans l'entreprise diminuera de 10%. Au minimum, lorsque les utilisateurs appellent l'entreprise dans 60% des cas, la participation humaine n'est pas requise. Et dans d'autres cas, les gens ne participeront qu'à une étape du processus, communiquant probablement directement avec les utilisateurs.
Selon d'autres études, le marché des chatbots connaîtra une croissance exponentielle. Et ce n'est pas seulement une question de service client, mais aussi de vente et de marketing. Les chercheurs pensent que les chatbots seront en mesure de remplacer 6% de la main-d'œuvre dans le monde. Cela signifie que près de 200 millions de personnes devront chercher un nouvel emploi plus intéressant.

Enfin, les analystes estiment que l'utilisation de chatbots peut économiser 7 000 milliards de dollars par an dans le monde.
Intentions et expressions
Il y a deux ans, je détestais les robots de discussion, mais aujourd'hui je les aime parce que je les développe. Mais beaucoup aujourd'hui ne les aiment toujours pas. Pourquoi les chatbots sont-ils si mauvais?
Il me semble que les raisons de leur imperfection peuvent être divisées en deux groupes: l'un concerne le domaine de l'IA, et le second groupe est lié aux personnes. Mais comme je suis ingénieur et pas trop fort en psychologie et autres sujets liés aux utilisateurs eux-mêmes, ils ne parleront que d'IA.
Tout d'abord, nous devons nous demander: comment les robots de chat reconnaissent-ils ce que les utilisateurs leur disent? La reconnaissance a deux concepts clés. Quelle est l'
intention de l' utilisateur, son but? Par exemple, une personne a reçu une facture de services d'un montant énorme et veut savoir pourquoi tant de personnes. Il se tourne vers le support client, son intention est d'obtenir une réponse à sa question. Un tel utilisateur peut utiliser plusieurs
expressions ; il peut demander: «Pourquoi mon compte est-il si gros?»; "Que s'est-il passé?"; «Qu'est-ce qui ne va pas avec mon compte?»; "Pourquoi devrais-je payer autant?" Ces concepts sont très largement utilisés dans le domaine de la création de robots de discussion.
Comment reconnaître les intentions et les expressions?
Chatbots utilisés pour isoler les mots clés. Disons que si le texte «utilisateur» était dans le texte de l'utilisateur, alors l'appel se réfère probablement au service de facturation. Mais l'utilisateur peut dire: "
J'ai vu dans la facture que j'avais probablement le mauvais abonnement ". Cette personne n'est pas intéressée par le compte, elle souhaite un autre abonnement. Et vous devez inventer toutes sortes de règles de béquilles.
Mais l'utilisateur peut retourner la phrase et dire: "
Je pense que j'ai le mauvais abonnement, car j'ai remarqué que quelque chose ne va pas sur mon compte ." Et vos béquilles ne fonctionnent plus! Et vous développez ces règles en empilant de nouvelles couches de béquilles.
Ces règles ne fonctionnent pas parfaitement et les développeurs ont consacré trop de temps à la finalisation. De nouveaux progrès n'ont été réalisés que grâce à l'apprentissage automatique. Dans le domaine de la compréhension d'une langue naturelle (Natural Language Understanding, NLU), il existe une direction distincte qui travaille sur cette tâche.
Dans le même temps, NLU fait partie intégrante du traitement du langage naturel (NLP) - ce terme décrit tout ce qui concerne la compréhension et la génération de la parole. Comprendre ce que quelqu'un vous dit est essentiellement une classification des expressions selon une intention particulière.
Difficultés à déterminer les intentions
L'un des principaux problèmes est l'existence de "mauvaises" expressions. Pour former les algorithmes, vous devez générer vos propres expressions d'intention. Par exemple, vous avez de tels exemples:
Pourquoi mon compte est-il si gros?
Pourquoi ma facture est-elle si chère?
Pourquoi le montant de
mon compte est-il si important?
Ils peuvent être utilisés comme entrée pour la formation des systèmes NLU et NLP. Ces phrases sont très similaires, elles commencent par "Pourquoi ...". De plus, toutes les phrases contiennent les mots "mon compte", vous pouvez donc utiliser une règle simple pour changer l'ordre, par exemple, la présence de l'expression "mon compte". De plus, à chaque fois que le mot «so» est mentionné, on peut supposer qu'il se réfère spécifiquement à la discussion du compte. Si vous n'avez pas expliqué à l'algorithme ce qui compte exactement pour déterminer ce type d'intention, alors votre système PNL ne fonctionnera pas bien.
Dans la phrase: «
Pourquoi diable devrais-je payer beaucoup plus que d'habitude? »Aucun des mots mis en évidence ci-dessus. Le système PNL ne pourra pas comprendre que la proposition appartient à ce groupe, sauf si vous avez une seule intention. Mais s'il y a plusieurs intentions, la situation devient très compliquée.
Variété d'expressions
Nous avons donc besoin d'un ensemble d'expressions très divers. Les générer n'est pas une tâche facile. Pour ce faire, j'ai développé ma stratégie de diversification.
→
Une partie du système NLP gère une variété de synonymes, et une autre partie gère une variété d'ordre des mots. La plupart des systèmes PNL se composent de deux blocs principaux:
- Word2Vec convertit les mots reconnaissables en représentation vectorielle.
- Un réseau neuronal convolutif (SNA) ou un réseau neuronal récurrent (RNS) qui traite l'ordre des mots.
Les fonctionnalités de Word2Vec lui permettent de reconnaître certaines propriétés des mots et, par conséquent, les mots de sens similaire seront proches les uns des autres. Mettre sur l'axe "taille" des véhicules:
Et si vous avez tout fait correctement, vous pouvez répartir ces entités le long d'un autre axe - l'environnement auquel ce type de transport est destiné.
Pour former le système, vous devez savoir quelle variété est pertinente pour votre tâche et laquelle ne l'est pas. Supposons que vous ayez besoin de transporter quelque chose de vraiment gros et que le mode de transport importe peu. Alors, probablement, une telle variété sera acceptable:
Dans un autre cas, la taille peut ne pas avoir d'importance si elle n'est livrée que par voie terrestre.
Word2Vec convertit les mots en représentation vectorielle. Cette représentation est ensuite transmise à un réseau de neurones qui étudie l'ordre des mots.
Ma stratégie est assez simple. Nous créons d'abord beaucoup d'offres. Dans le cas du compte, nous ne nous intéressons pas aux synonymes, mais uniquement à l'ordre des mots.
Pourquoi mon compte est-il si gros?
Mon compte est tellement gros!
Dans mon compte, un montant scandaleux!
Le mot «score» se trouve à différents endroits de la phrase. Nous essayons de générer autant d'exemples que possible avec un ordre de mots différent, sans nous soucier de la façon d'exprimer une pensée avec des mots différents.
Ensuite, vous devez ajouter des synonymes de diversité. Supposons que, dans la première phrase, au lieu de «
pourquoi », vous pouvez dire «
comment cela s'est passé, ... », «
expliquez-moi pourquoi ... » ou «
dites-moi comment il est arrivé que ... », puis vous pouvez terminer la phrase avec n'importe quel une autre option. Par exemple, "
Expliquez-moi pourquoi votre chèque est si énorme ."

Nous créons une liste de synonymes autorisés dans ce contexte, écrivons un script pour générer des expressions et obtenons un bon ensemble de données de formation. Et vous devez ensuite indiquer explicitement au système quels synonymes sont autorisés dans ce contexte.
Amélioration
Il me semble que de nombreuses entreprises oublient que le bot de chat résultant doit être amélioré.
Prenez la phrase: «
Comment se fait-il que je doive payer beaucoup plus que d'habitude? »Ces mots ne sont pas inclus dans mes synonymes et l'ordre des mots est différent de ceux utilisés précédemment. Pas besoin d'ajouter cette phrase comme autre expression. Vérifiez d'abord s'il existe un tel ordre de mots, et sinon, ajoutez simplement la phrase en tant que nouvel ordre de mots, puis ajoutez des synonymes. De cette façon, vous obtenez un ensemble d'expressions très divers.
Évaluation de l'expression des variétés
Comment savez-vous comment tout fonctionne bien? Vous pouvez expérimenter la combinaison de représentations vectorielles de mots en grappes d'expressions simplifiées et évaluer leur diversité.

La métrique est très simple: on compte le nombre de clusters et on le divise par le nombre d'expressions. En moyenne, une grande variété d'expressions ont un niveau d'environ 50%.
Évidemment, si la variété est inférieure à 20%, alors vous ne travaillez pas très bien. En revanche, si la diversité est supérieure à 80%, alors les expressions ne sont probablement pas liées entre elles, et il est très difficile pour l'algorithme de trouver une bonne combinaison.
Précision de reconnaissance
Un score de train signifie la précision avec laquelle le système fonctionne sur un ensemble de données de formation. Ce n'est pas très intéressant, car vous n'obtiendrez qu'une évaluation de votre ensemble de données d'entraînement. Et que faire ensuite n'est pas clair.
Dans cette situation, vous devriez être intéressé par les expressions qui sont classées incorrectement. Où tout s'est-il mal passé?
La phrase «
J'ai vu dans le projet de loi que j'ai probablement le mauvais abonnement » a une forte probabilité d'être mal classée, même avec les exemples que j'ai montrés ci-dessus.
Et si vous voyez que la proposition est mal classée, vous devez trouver comment améliorer la situation.
Word2Vec et un réseau neuronal récurrent sont souvent considérés comme des boîtes noires; ils sont très difficiles à interpréter. Mais il y a encore un moyen pas trop difficile. Séparément pour chaque mot, nous ajoutons du bruit. Et en commençant à changer un mot, vous verrez à quel point la définition de ce mot devient sensible.
Donc, nous faisons avec chaque mot de la phrase: ajoutez du bruit au vecteur et exécutez-le dans l'algorithme. Si le résultat est le même, l'algorithme ne s'intéresse pas à ce mot. Si après avoir ajouté du bruit, le résultat devient complètement différent, alors ce mot est probablement très pertinent.
En analysant la sensibilité de cette manière, vous pourrez comprendre que l'intention a été déterminée par erreur, par exemple à cause du mot «compte». Ou, si la phrase ne contient que les mots «pourquoi ...», c'est peut-être eux qui ont conduit à une telle définition de l'intention. Si le tout est dans le mot «score», vous avez plusieurs options:
- Supprimez cette expression et votre expression mal classée disparaîtra.
- Ou dans le groupe d'expressions associé à l'abonnement, vous ajoutez simplement plus d'expressions avec le mot «count» pour que le système commence à «comprendre» que ces deux mots peuvent apparaître ensemble. Et, en fonction du contexte, vous devez savoir ce qui se passe, qu'il s'agisse d'un compte ou d'un abonnement.
- Ou, inversement, vous pouvez ajouter plus d'expressions liées au «comptage», mais sans les contenir, de sorte que le système devienne moins sensible au «comptage».
Flux de conversation
La prochaine chose, à laquelle trop peu de gens prêtent attention, ce sont les flux conversationnels. Comment les gens utilisent-ils votre bot? Comment travaillent-ils avec lui? Que se passe-t-il dans la conversation? Que font la plupart des utilisateurs?

Ce diagramme montre le développement de la conversation. On peut voir que ce fil est utilisé le plus souvent, que beaucoup de gens aiment cette partie du bot. Mais il est plus important de voir où surviennent les moments de la conversation qui poussent les gens à cesser d'utiliser le bot: ils demandent quelque chose, puis ils partent soudainement.
Analyse des émotions
Il est important d'essayer de comprendre ce que les gens ressentent lorsqu'ils discutent avec votre robot de chat. Pour cela, nous utilisons l'analyse des émotions. Si vous pouvez comprendre que 60% ou plus d'utilisateurs ne se sentent pas satisfaits après avoir parlé avec un bot de discussion, alors quelque chose doit être fait. Je ne pense pas qu'une plateforme de dialogue prenne en compte ces informations.
Très souvent, les émotions négatives provoquent des propositions qui ne semblent pas négatives - elles viennent d'être apprises par un chat bot basé sur des emoji. Si vous avez une phrase sarcastique dans l'ensemble de données, cela peut signifier n'importe quoi. Un bot ne doit pas supposer qu'il est associé à une mauvaise émotion, car l'expression peut être neutre.
Exemples d'utilisation
Quand utiliser les robots de chat? Lorsque vos clients ont besoin d'une réponse rapide ou ne veulent pas faire la queue au téléphone avant qu'un opérateur ne soit prêt à les aider.
S'il n'y a pas assez de personnel, pourquoi ne pas utiliser le chat bot pour répondre rapidement à des questions basiques ou courantes?
Il est également très important de savoir quel domaine de votre entreprise représente la majorité des coûts, car vous pouvez alors économiser beaucoup d'argent si vous transférez cette zone vers des robots de discussion.
Les robots ne sont pas les meilleurs interlocuteurs en termes d'émotivité. Si vous appelez le service de secours, vous voulez une réponse directe. Mais si vous avez des problèmes avec la voiture ou un petit accident, vous appelez le service automobile et vous ne voulez pas attendre longtemps sur la ligne, alors vous pouvez simplement dire: "Mon pneu a éclaté", quelque chose comme ça. Bien sûr, je ne parle pas de petits accidents ou d'accidents avec un grand nombre de blessés, dans de telles situations, les robots de discussion ne peuvent pas être utilisés.
Et je veux aborder un autre aspect: évaluer si le bot de chat est adapté à une tâche spécifique. Beaucoup de nos clients viennent nous voir et nous disent: «
Nous avons un tel formulaire sur le site, pourquoi ne pas le transférer au chatbot? «Mais nous travaillons avec des formulaires depuis de nombreuses années et nous pensons qu'ils sont très efficaces.
Les formulaires sont très simples et les gens savent comment travailler avec eux. Pourquoi transformer un formulaire en bot de chat? Une partie de l'interaction utilisateur convient au chatbot, mais il est parfois préférable de simplement remplir le formulaire, car c'est beaucoup plus facile.
Mais il y a d'autres situations.
Par exemple, si l'interface graphique n'est pas très pratique pour rechercher des informations, l'interface utilisateur conversationnelle peut devenir la sortie. Bien sûr, si vous avez de "mauvaises" expressions, le bot de chat ne fonctionnera pas. Et généralement, de telles expressions sont générées par une personne.
La chose la plus importante est la conception de la conversation. Une conférence VoiceCon entière est consacrée à ce sujet. La conception de la conversation doit être très rigoureuse. Et si vous faites un bon design, vous pouvez vous en sortir avec une IA de très mauvaise qualité. Et c'est plutôt triste, car cela provoque des échecs dans les chatbots.
Conseils utiles
Vous êtes probablement nombreux à avoir vu des pop-ups sur des sites Web: «Bonjour. Puis-je vous aider avec quelque chose? " ou "Je vois que vous essayez d'envoyer une lettre. Laisse-moi t'aider!
Ne placez pas de robots de discussion sur la page principale. NE LE FAITES PAS.
Ces robots ne peuvent être utilisés sous une forme plus douce que s'ils n'occupent pas toute la page. Ensuite, les gens commencent à utiliser le bot car il peut vous aider à trouver les réponses. De plus, puisque vous limitez la portée du bot, il devient plus facile à développer. Cependant, vous ne dérangez pas les gens avec un bot dont ils n'ont pas besoin actuellement.
Les gens ont tendance à personnaliser le chatbot. Ils n'aiment pas les robots délibérés.
Personnalisez votre chatbot! Même si vous dites à vos clients à chaque fois qu'il s'agit d'un robot, donnez-lui tout de même quelques fonctionnalités individuelles.
Si vous êtes un directeur d'hôtel, alors vous avez peut-être besoin d'un bot de discussion très formel qui parle comme un majordome: «Oui, monsieur», «Merci, monsieur.» Et si vous êtes une entreprise de télécommunications et que vous développez des plans tarifaires pour les jeunes, alors il vaut mieux utiliser quelque chose comme: "Hé mec, comment vas-tu?"
Rappelez-vous toujours qui est votre public.
Si vous êtes soigné et cohérent, le bot de chat plaira davantage à vos clients. Maintenez la cohérence tout au long du flux conversationnel, car souvent au début, tout se passe bien et après un certain temps, la conversation devient très robotique.
Il est très important que votre chatbot communique de manière collaborative. Et d'une grande importance est la façon dont elle apparaît au tout début.
Une personne a ouvert votre bot de chat pour une raison quelconque. Expliquez immédiatement à l'utilisateur que vous pouvez créer un bot de discussion. De plus, gérez les attentes de l'utilisateur: dites que vous êtes un bot, car certaines erreurs lui seront excusables.
N'utilisez pas de phrases trop générales. Ne demandez pas: "Comment puis-je vous aider?"
Je demande généralement à ces robots: «
Aidez-moi à gagner à la loterie », ou quelque chose comme ça. Alors laissez le bot communiquer clairement et simplement.
Il est vraiment important - et difficile - de gérer le transfert d'initiative dans une conversation.
Lorsque nous communiquons entre nous, nous utilisons des signaux visuels qui nous permettent de comprendre: "
Maintenant, c'est mon tour de parler ." Mais le chat est assez difficile à implémenter. Il est nécessaire de faire comprendre à l'utilisateur que le bot attend maintenant ce qu'une personne va lui écrire. Par exemple, il a commandé un hamburger, et le bot peut demander: «
Voulez-vous plus de frites? "
Il est très important d'utiliser le langage humain dans les robots.
Une conversation sèche est très ennuyeuse. Utilisez l'identité du bot pour rendre la conversation plus crédible.
Il est très tentant de commencer à confirmer ou à vérifier les confirmations tout au long de la conversation avec le client.
Mais c'est ennuyeux si le bot demande constamment: "Tout va bien?" ou "non?" ou "Vous avez commandé un hamburger, non?" Ne faites pas cela dans votre chatbot!
Cela n'est permis que lorsqu'il est vraiment pertinent. Par exemple, à la fin de la conversation, ajoutez: «
Bien. Maintenant, vous devez payer un hamburger avec des frites et une boisson. Ça va? »Une manière élégante de le faire est d'avoir une confirmation intégrée. Si vous commandez un hamburger, vous pouvez demander: «
Bien. Voulez-vous des frites à votre hamburger? "À un moment donné, le bot peut mal interpréter quelque chose. De plus, les gens ont tendance à faire des erreurs. Parfois, vous commandez quelque chose et pensez: "
Hmm, je vais probablement prendre du triple bacon à la place, c'est mieux ." Par conséquent, le développeur doit s'assurer que le chatbot est capable de faire face à cela. Vous devez créer un flux de conversation afin de comprendre qu'à ce stade de la conversation, nous voulons modifier l'ordre.
Concevez des threads robustes contre les erreurs des utilisateurs car les gens font constamment des erreurs!
Le point est de rappeler un peu à une personne, mais la communication avec des gens qui s'excusent constamment est très ennuyeuse. Alors ne laissez pas votre bot de discussion s'excuser trop souvent. Évitez les excuses, suggérez des solutions. Dites: «
Je n'ai pas compris. Pouvez-vous reformuler? "Si vous faites quelques erreurs, vous pouvez dire à l'utilisateur:"
Vous demandez quelque chose que je ne comprends pas. Vous pouvez me commander un hamburger, des frites et des boissons . »
Le futur
Rendez le client facile à créer un chatbot avec une bonne conception de conversation. Si vous faites une erreur, essayez de la réparer. Honnêtement, les chatbots sont toujours nuls. Mais vous pouvez créer des robots de discussion qui fonctionneront vraiment, faites du travail pour nous. Il suffit de l'approcher correctement.
Opinion d'expert
Et maintenant, nous voulons partager avec vous l'opinion d'un expert de notre entreprise sur les idées et les conseils décrits ici.
Nikolay Knyazev, spécialiste en apprentissage automatique de premier plan chez Jet Infosystems :
Le discours de l'auteur est consacré à ce que le développeur doit savoir pour réussir ses chat bots. Le sujet est intéressant, de nombreux points ne se trouvent pas à la surface. Cependant, il vaut la peine de comprendre que, du point de vue des algorithmes, l'aperçu des méthodes est assez général, et rien n'indique leur mise en œuvre.
Par exemple, un exemple avec Word2vec est donné, mais il n'est pas dit à propos d'autres méthodes de vectorisation de mots, par exemple, Glove, Fasttext. Il existe différentes façons de classer le texte (du sac de mots à RNN et CNN), mais il n'y a pas de comparaison ou de bibliothèques où ils sont implémentés (par exemple, pour Python, ce sont Keras, Scikit-learn, etc.). Deux points importants ont été omis de l'examen général. Premièrement, les spécificités régionales: différentes méthodes réussiront pour différentes langues. Et l'implémentation de la langue anglaise n'est certainement pas adaptée à la langue russe. Bien que dans notre pays, il y ait des développements, par exemple, bigARTM ou le bâtiment de la taïga, sur la base desquels il est possible de former le Word2vec mentionné.
Un autre aspect est le concept d'utilisation du bot: bot unique (choix d'un appartement, résolution d'un problème) ou utilisation constante (partie du processus de travail). Dans le premier cas, en effet, on se souvient des émotions de la communication et de tout ce dont l'auteur a parlé. Dans le second, les gens attendent précisément le «fusil d'assaut Kalachnikov» pour qu'il remplisse ses fonctions sans poser de questions supplémentaires, apprenant lentement les moyens les plus courts de l'utiliser. Et ici, ce n'est pas la couleur émotionnelle qui vient au premier plan, mais l'expérience utilisateur, car jusqu'à présent, les réseaux de neurones dans notre tête s'adaptent à la réalité beaucoup plus rapidement que leurs homologues de la glande.