Les capacités des chatbots sont limitées par leur nature même : ils ne sont pas toujours à la hauteur lorsqu’il s’agit de reconnaître les flux de conversation humains. Cela conduit à des situations très courantes du type « Je ne comprends pas votre demande, veuillez reformuler ». Frustrant, n’est-ce pas ? Cela se produit car le langage « naturel » ne peut pas toujours rester aussi naturel en programmation : nous pouvons alimenter le bot avec toutes les règles de grammaire possibles mais dans les conversations humaines réelles, il y aura toujours quelques (voire de nombreuses) nuances linguistiques et diverses dérivations des standards. Un chatbot qui ne s’appuie que sur la logique des mots-clés ne pourra pas reconnaître ces petits détails. La question est donc de savoir comment développer un chatbot qui sera capable de comprendre nos demandes dans toute leur diversité.

L’illusion de la compréhension

Pour « comprendre » un interlocuteur humain, un bot typique comparera ce qui a été dit avec de nombreuses phrases sur lesquelles il a été entraîné. Il trouve des similitudes avec les modèles de phrases, détermine le sujet de la question et exécute l’action programmée pour ce type de question. L’interlocuteur a alors l’illusion que le bot le comprend : il agit logiquement, réagit de manière humaine et poursuit la conversation. Le fameux test de Turing est basé sur cette illusion : si l’évaluateur ne peut pas déterminer s’il parle à une machine ou à un vrai humain, le test est considéré comme réussi.

Ex-machina, un thriller d’Alex Garner datant de 2015, se concentre sur l’histoire d’un robot mis au défi de passer le test de Turing (pas de spoilers !).

Les chatbots apprennent comme les enfants

Former un chatbot, c’est un peu comme éduquer un enfant. Nous devons l’instruire sur ce qu’il peut ou ne peut pas dire dans différents contextes. Nous devrions également lui dire comment comprendre et réagir correctement aux demandes et lui donner quelques notions rudimentaires sur la façon de prendre des décisions concernant les points mentionnés ci-dessus. Dès la petite enfance, les humains savent comment séparer les informations importantes du discours, prendre en compte le contexte du dialogue et comprendre qu’une même idée peut être exprimée de nombreuses manières différentes. Malheureusement, lorsqu’il s’agit de chatbots, nous ne pouvons pas vraiment attendre qu’il termine tout le cursus de l’enseignement secondaire : il faut qu’il apprenne tout ce que nous avons appris en grandissant dans un laps de temps ridiculement court.

Alors, comment entraîne-t-on un chatbot?

Il existe deux principaux modes d’apprentissage des robots : supervisé et non-supervisé. Nous avons déjà expliqué dans notre article précédent, Chatbots professionnels : mythes et réalités décortiqués, pourquoi l’apprentissage non-supervisé n’est pas encore adapté au niveau actuel de développement de l’IA (après tout, on ne laisse pas un enfant apprendre tout seul, n’est-ce pas ?). Cela nous laisse l’apprentissage supervisé. Comment préparer le terrain pour l’apprentissage supervisé ?

Afin d’apprendre au bot à comprendre les intentions et les entités (si vous vous sentez perdu avec ces mots, lisez Vocabulaire des chatbots : les termes à connaître), il est nécessaire d’annoter un grand nombre de textes à l’aide de programmes spéciaux. Pour apprendre au bot à comprendre les entités nommées – le nom d’une personne, d’une société, d’un lieu – il faut aussi beaucoup de textes à analyser. Par conséquent, l’algorithme d’apprentissage supervisé est trés performant car il permet de créer un système de reconnaissance efficace d’une part, mais il faut aussi d’énormes quantités d’ensembles de données annotées comme support d’entraînement : c’est un processus long et coûteux (il est donc toujours plus facile de demander l’aide des services avec les moteurs NLU déjà développés).

Pour aller au bout des choses, un assistant « intelligent » doit :

  1. Comprendre correctement le sens de la question
  2. Considérez le contexte de la conversation
  3. Être en mesure d’apporter une réponse adéquate

Creusons un peu le sujet.

1. Comprendre l’apprentissage.

La principale technologie utilisée par les bots modernes est le NLU (Natural Language Understanding – pour en savoir plus, cliquez ici Comment choisir entre NLP et NLU pour un chatbot ?). Elle permet à la machine de comprendre les utilisateurs et d’exécuter les paramètres nécessaires au traitement des demandes. La requête principale doit être séparée des éléments « inutiles », puis le moteur doit reconnaître les homonymes (« livre » comme l’objet et « livre » comme dans « livre-moi des fleurs »), choisir la plus appropriée parmi plusieurs options et être capable de traiter les erreurs grammaticales dans les phrases. Vous devez apprendre aux bots à comprendre les chiffres écrits dans un texte, à reconnaître le sens d’une phrase avec des fautes d’orthographe, d’argot ou un ordre de mots inexact. Je vais passer les choses moins évidentes, mais il y a des milliers de règles à prendre en compte.

Le plus souvent, les assistants virtuels, ainsi que les chatbots, utilisent des méthodes de traitement de texte assez superficielles. L’algorithme se concentre sur la détection des principaux « faits » ou mots clés utilisés dans la demande qu’il a reçue. Si ces faits sont détectés avec un certain degré de probabilité, le reste du texte est généralement ignoré. Cela peut être suffisant pour des tâches commerciales simples.

Le modèle de l’analyse texte « surfaciel » le plus courant est le « sac de mots ». Ce modèle crée un ensemble de vecteurs contenant le nombre d’occurrences de mots, sans tenir compte de la position des mots les uns par rapport aux autres : par exemple, la phrase « Je n’aime pas beaucoup dessiner » sera présentée comme {« aime », « pas », « dessiner », « beaucoup », « je »}. Dans les domaines où l’analyse du texte intégral et la prise en compte de nuances sémantiques subtiles sont nécessaires, cette approche semble trop légère. Des méthodes de traitement linguistique approfondi basées sur des approches fondamentales de l’analyse de texte seront plus adéquates. En règle générale, les textes de cette approche passeront par une série de systèmes d’analyse :

– Graphique (traitement des caractères)

– Lexical (identification des mots)

– Morphologique (analyse de la forme des mots)

– Syntaxique (évaluation de la position mutuelle des mots et de leurs rôles)

– Sémantique (révéler le sens des mots et les liens entre eux)

Grâce à cette analyse, le moteur peut prendre d’autres mesures : saut de mots, lemmatisation, radicalisation (« stemming »), singularisation, analyse des erreurs de grammaire, et même de la correspondance des synonymes, entre autres.

 

2. Apprentissage du contexte.

La technologie à l’intérieur du chatbot doit tenir compte du contexte de la conversation. Par exemple, la question « comment traduire « réserver une chambre » en anglais » peut être reconnue à la fois comme une réservation et comme une demande de traduction. L’intention n’est pas bien définie. L’assistant « intelligent » commence à agir comme une personne – il met en corrélation la phrase avec les échantillons qu’il a étudiés et trouve la plus appropriée en termes de sens. Il pense en classifications, met en corrélation la nouvelle demande avec celles qui existent déjà. Les métabots comme Hubi, qui fonctionnent selon une logique modulaire, dépendent en grande partie d’un traitement adéquat du contexte. Un algorithme avancé de recherche de contexte permet à Hubi d’utiliser avec succès différents modules au sein du même canal. Des classifications sont formées en fonction de l’objectif de chaque module.

 

3. Donner une réponse adéquate.

Même une recherche rapide sur Internet vous donnera une foule de messages et de captures d’écran avec des bots qui passent totalement à côté de l’essentiel. Mais vous pouvez en trouver autant sur les erreurs des opérateurs humains. Dans les deux cas, les problèmes sont les mêmes : planification superficielle des tâches, mauvaise base de formation, pas de temps pour un apprentissage supplémentaire.

Voyez un chatbot comme une pastèque en remplaçant l’eau par des informations : 80% des informations, si elle consiste en des réponses toutes faites, ont été remplies par des humains. Sans exemples, même le plus intelligent des réseaux de neurones ne comprendra pas entièrement les demandes. Le contenu utile est la règle d’or. Mieux une entreprise connaît ses clients, mieux elle pourra fournir d’informations sur leurs demandes, et plus le bot sera intelligent.

Les développeurs doivent tenir compte de tous les détails lorsqu’ils travaillent avec le contenu : chaque demande doit être traitée correctement, en extrayant et en fournissant les bonnes données. La formation continue du chatbot doit également rester simple : les questions des clients changent tout le temps et le bot ne doit pas perdre sa pertinence. N’oubliez pas que les chatbots sont aussi intelligents qu’ils sont conçus pour l’être.

 

Et pour Hubi ?

 

Hubi.ai est une plateforme qui vous permet de créer des chatbots modulaires contextuels à partir de zéro. Les bots créés avec Hubi peuvent être intégrés à des messagers et des sites web. Le processus de conception se déroule dans deux éditeurs : un éditeur QnA et un éditeur de scénario (dialogue), permettant au bot d’adopter différents types de logique tout en vous parlant. Nous utilisons notre propre moteur NLU qui permet un niveau incroyable de compréhension du bot, même avec des bases de données et des scénarios complexes. De plus, grâce à un processus d’apprentissage supervisé facile et efficace, apprendre de nouvelles choses à votre chatbot se fait sans douleur.
Masha Isaeva, Responsable Pôle Apprentissage & Chatbot chez HubCollab