Les chatbots : mythes et réalités

Julien Wiesel
8 min readNov 3, 2017

--

Je me donne pour objectif d’expliquer de manière compréhensible comment fonctionne un chatbot. Et pourquoi je trouve que le buzz qu’en font aujourd’hui un grand nombre de personnalités et d’entreprises est à mon sens injustifié. Et pourquoi je pense qu’il est encore tôt pour positionner un chatbot en interaction directe avec un client.

Ce n’est pas parce qu’ils sont nombreux à avoir tort qu’ils ont raison

De plus en plus d’entreprise du monde IT / éditeur de logiciel / cabinets de conseil se sont appropriés le thème de l’intelligence artificielle comme la clé de voute de leur message prospectif sur l’entreprise de demain. Je suis tout à fait d’accord avec cette prédiction.

“L’année 2018 sera celle de l’intelligence artificielle.” — Yet another IT / software / consulting company

Mais l’exemple qui revient invariablement ce sont les chatbots. Dans les événements de communication des grandes entreprises du secteur, un speech sur deux a pour objet les chatbots. La promesse actuelle de l’intelligence artificielle se résumerait presque aux chatbots. Et quelle promesse ? Révolutionner la relation client de demain. Et le poste de travail. Et pour les plus fous : l’usage même de l’informatique.

Une petite minute !

Mais d’abord c’est quoi un chatbot ?

Un chatbot, ou sous sa dénomination plus fleurie “agent conversationnel”, est un logiciel qui a pour objet de discuter avec son utilisateur. Rien à voir avec nos amis félins. La discussion peut se faire sous forme de chat textuel (on tape son message et on lit la réponse) ou vocal : dans ce cas un moteur de reconnaissance vocale transcrit ce que l’utilisateur dit, puis un moteur de synthèse vocale transcrit la réponse.

Veillez je vous prie à ne pas confondre chatbot et commande vocale. Une commande vocale, c’est quand vous demandez à votre téléphone d’appeler le cousin machin, de lancer votre musique favorite ou de vous donner la météo du jour. La commande vocale est une technologie qui a également bénéficié d’une accélération fulgurante ces dernières années. Mais ce n’est pas un chatbot. La commande vocale, c’est quand vous énoncez une commande à haute voix et quand l’appareil s’exécute. Le chatbot c’est quand il y a une conversation, c’est à dire de multiples échanges entre l’utilisateur et la machine. Il y a certes des points communs entre les deux, mais les usages sont différents. La distinction est pour moi très importante, car à l’inverse des chatbots je n’ai aucun doute sur l’avenir de la commande vocale.

Depuis combien de temps ça existe ?

L’idée de converser avec une machine est loin d’être nouvelle. Alan Turing a décrit en 1950 le test qui porte aujourd’hui son nom. Réfléchissant sur la possibilité qu’une machine puisse penser, il a imaginé un test dans lequel la machine devait dialoguer avec un être humain en lui faisant croire qu’elle était humaine. Si la machine réussissait à tromper l’humain, c’est qu’elle pouvait alors être considérée comme pensante.

Depuis 1990, le prix Loebner reproduit cette expérience et récompense l’équipe qui aura créé le meilleur logiciel de conversation.

Jusqu’à assez récemment, le développement de ce type de logiciel était très complexe. Il faut en effet que le logiciel comprenne les phrases de l’utilisateur quelles que soient leurs formes. Et ces formes peuvent être très diverses :

  • Comment vous appelez-vous ?
  • Quel est votre nom ?
  • Tu t’appelles comment ?
  • C’est quoi ton p’tit nom ?
  • Rappelez-moi votre nom.

Bien-entendu, la seule présence des mots “nom” et/ou “appeller” ne suffit pas à caractériser de manière certaine la question (ex : as-tu déjà lu le Nom de la Rose ? Pouvez-vous appeler votre chef ?).

Les développeurs devaient donc implémenter des algorithmes d’analyse grammaticale complexe, en essayant de couvrir le plus grand éventail de formulation possible. Et les logiciels devaient aussi garder le fil de la conversation parce que dans bien des cas, la seule donnée de la dernière phrase prononcée par l’utilisateur ne suffit pas à répondre correctement. Mais même les logiciels les plus complexes et riches en règles de conversation étaient loin d’être parfaits.

Aujourd’hui encore, les meilleurs chatbots ne dupent personne plus de quelques minutes sur le fait qu’il s’agisse de robots. Ce n’est certes pas forcément l’objectif.

La grande nouveauté, en revanche, c’est que les avancées récentes en matière de machine learning les rendent beaucoup plus faciles à développer.

Tout le monde a le droit à son chatbot

Construire un chatbot est aujourd’hui extrêmement simple et accessible à tous. Oui, même à vous, maintenant, depuis votre bureau ou votre canapé. Tous les grands acteurs du Web et un certain nombre de startups proposent leur service de chatbot. La plupart du temps, la conception de votre chatbot est gratuite, et on paie à l’usage lorsque le nombre de requête dépasse une certaine limite. C’est quasiment tous les mêmes, avec les mêmes fonctionnalités et la même mécanique sous-jacente.

Comment fait-on ? Un chatbot, ça s’entraîne.

Le fonctionnement est invariablement le suivant :

  • Vous allez définir un certain nombre “d’intentions” de l’utilisateur, caractérisées par des phrases d’exemple, qui seront associées à une réponse.
  • Vous allez ensuite éventuellement chainer ces intentions entre elles pour définir des séquences / arbres de conversation.

Par exemple, supposons que vous ayez l’idée de paramétrer un chatbot pour réserver des billets de train. Vous allez définir une première intention correspondant à l’utilisateur qui déclare haut et fort sa volonté de se mouvoir sur rail par voie terrestre. Vous allez fournir au chatbot des exemples de phrase correspondant à cette intention :

  • Je souhaiterais réserver un billet de train.
  • J’aimerais aller à Strasbourg
  • Reste-t-il des places dans le train n°3615 de mardi prochain ?
  • Etc.

Vous remarquerez que ces différentes formulations contiennent déjà pour certaines des informations plus ou moins précises sur la destination ou l’horaire. Votre chatbot peut apprendre à reconnaitre et extraire ces informations (qu’on appelle des “entités” dans le jargon).

La grande nouveauté par rapport aux chatbots d’anciennes générations, c’est qu’il suffit de donner un nombre suffisant de phrases d’exemple (disons quelques dizaines) pour que le chatbot identifie avec succès une intention et des entités dans une formulation qu’il n’aura pourtant jamais vue. Ce principe permettra également l’amélioration continue du chatbot, puisque vous pourrez passer en revue les conversations réelles pour réaffecter si nécessaire une phrase qui aurait été associée à une intention erronée. Le chatbot pourra alors intégrer ce nouvel exemple dans son apprentissage.

Vous allez ensuite procéder de même en créant des intentions pour permettre à l’utilisateur de préciser sa destination, ses horaires de préférence, etc. Bien entendu, la destination ne sera demandée que si l’utilisateur ne l’a pas déjà précisée. Toutes ces intentions vont former un arbre de conversation, dans lequel le chatbot saura à quel moment il doit attendre quelle intention, et quelle réponse / question il doit prononcer. L’objectif est que le chatbot dispose rapidement de toutes les informations lui permettant de réserver le billet de train.

Vous connecterez bien-sûr votre chatbot avec votre API préférée de réservation de train, afin qu’il puisse y faire les requêtes nécessaires à l’exercice légitime de ses fonctions.

Comment un chatbot apprend-il ?

Il s’agit de techniques d’apprentissage supervisé basées sur des réseaux de neurones :

Un chatbot, c’est un classifieur de phrases complété d’une reconnaissance d’entités. Lorsque l’utilisateur saisit une phrase, le chatbot doit déterminer parmi l’ensemble des intentions relatives à l’état de conversation présent quelle est celle la plus susceptible de correspondre à l’intention réelle de l’utilisateur. Et il doit en extraire les entités éventuellement présentes. Il choisit ensuite aléatoirement l’une des réponses préparées pour l’intention. Et voilà le travail.

Mais alors c’est quoi le problème ?

Le problème, c’est qu’au delà de la commande vocale, c’est à dire des cas où l’utilisateur n’a pas la possibilité d’interagir avec la machine autrement que par la voix, il n’y a aujourd’hui qu’assez peu de cas d’usage.

Comment ça ?

Faisons un petit test : avez-vous déjà une fois dans votre vie utilisé un chatbot pour faire un vrai truc ? Je veux dire pas pour juste essayer un chatbot ou lui raconter des bêtises dans l’objectif de tester l’humour de son développeur. Non, je veux dire utiliser un chatbot pour réaliser une vraie action comme réserver un hôtel ou un billet de train, ou faire un virement bancaire. Encore une fois, je ne parle pas de commande vocale mais bien d’une conversation avec un chatbot.

Je travaille tous les jours aux côté de pleins de gens qui sont au coeur de la transformation digitale, de startupers, d’UX designer, de développeurs… Personne n’a jamais fait quoi que ce soit avec un chatbot. Personne.

Pourquoi ? Parce que ça reste assez pénible à utiliser. C’est souvent même complètement insupportable à utiliser.

Parce que lorsque j’achète un billet de train, j’aime voir le tableau des prix pour ajuster mes horaires. Parce que je ne réserve jamais un hôtel sans regarder les photos et lire les commentaires. Parce que je relis 3 fois le récapitulatif d’un virement avant de cliquer sur confirmer. Et parce qu’une interface graphique bien faite reste infiniment plus puissante et agréable qu’un chat.

Parce qu’il suffit de jouer quelques minutes avec un chatbot, même un chatbot entrainé sur de très nombreuses phrases d’exemple en prenant en compte de nombreuses intentions de l’utilisation, pour avoir une réponse à côté de la plaque.

Parce qu’en réalité, cette technologie n’est pas encore mature. La commande vocale est mature, la conversation ne l’est pas.

Admettons même que dans certains cas il puisse y avoir un usage. La reconnaissance des intentions et des entités fonctionne bien mais le séquencement de la conversation est une horreur. C’est un peu comme quand vous appelez un support téléphonique pour un produit ou un opérateur bas de gamme, et que vous tombez sur un opérateur de service-desk offshore qui lit son script de manière robotique même quand vos questions s’en écartent. Un chatbot, c’est pareil, mais en pire.

Mettre un chatbot en interaction directe avec un client, croire que les chatbots vont permettre d’améliorer la satisfaction client est une erreur. Certes, l’opération peut significativement réduire les coûts, mais au prix d’une satisfaction client au plus bas.

Mes recommandations

  • Essayez de paramétrer vous-même un chatbot avec un outil gratuitement disponible en ligne. C’est le meilleur moyen d’appréhender ce qu’un chatbot peut faire, et ce qu’il ne peut pas faire.
  • La technologie chatbot n’est pas encore mature. Ne mettez pas vos clients directement en contact avec un chatbot. A la limite, comme l’a fait une banque française, utilisez les chatbots pour pré-écrire des réponses mail à vos clients qui seront supervisés par de vrais agents en chair et en os. Mais peut-on alors vraiment parler de chatbot ?
  • Le jour où les chatbots seront mature et présenteront de réels cas d’usage, il y a fort à parier que le marché se concentrera autour de quelques fournisseurs d’API à l’état de l’art. En d’autres termes, soyez vigilants avec les petites startups qui ne s’appuient pas sur un géant du marché. Sauf expérimentation sur un périmètre limité, ne vous bloquez pas dans une API spécifique car la technologie pourrait beaucoup évoluer dans les années à venir.
  • Expérimentez pour constituer une vitrine de vos activités digitales, et pour recruter et retenir les talents, mais attendez le prochain virage technologique des chatbots pour envisager sa généralisation.

Pour jouer tout de suite

Voici quelques exemples de plateformes de chatbot :

--

--