ChatBot et Agents Conversationnels

Depuis plus de 50 ans, un des fantasmes de l’informaticien est de créer une intelligence artificielle avec laquelle il sera en mesure de converser

Souvenez-vous du film « WarGames » (1983) dans lequel un ordinateur déclenche une guerre nucléaire, ou « IronMan » qui discute avec son assistant Jarvis. Pour ma part, je me suis lancé en 2012 sur SARAH inspiré de la série TV « Eureka ». Le film « Her » est aussi une anticipation très inspirante.

Ce rêve est en passe de devenir une réalité avec les avancées réalisées en matière de Deep Learning et d’analyse du langage naturel. C’est une des raisons pour lesquelles nous voyons apparaître de plus en plus d’agents conversationnels ou de robots !

Qu’est ce qu’un bot ?

Un agent conversationnel est un programme ayant la capacité de dialoguer via des interfaces textuelles ou vocales.

Il peut être plus ou moins complexe, animé par des humains (Mechanical Turk), un moteur de règles ou une intelligence artificielle allant chercher des informations dans des bases de connaissances (comme Wikipedia ou métier).

Il peut être proactif, ne pas simplement répondre à des questions mais aussi interroger l’utilisateur au moment opportun de la journée.

Ce n’est pas nouveau !

Dès 1964, Joseph Weizenbaum écrivait le programme ELIZA qui s’amusait à jouer les psychothérapeutes en reformulant les affirmations des patients en questions. Bluffant pour l’époque, il posait la question du test de Turing.

Le critère de pouvoir parler avec un humain sans qu’il se rende compte qu’il a affaire à un ordinateur a été posé en critère d’intelligence artificielle.

Le protocole IRC date de 1988, c’est l’ancêtre des « salons de discussion ». Déjà à l’époque il était possible d’envoyer des commandes textuelles pour déclencher des scripts (des bots).

En 1995, ALICE va populariser le langage AIML qui simplifie l’écriture de la conscience d’un agent conversationnel. Ce n’est plus du code mais du XML qui est utilisé pour décrire les réponses du bot et rendre plus accessible la technologie.

Dans les années 2000 les premiers services SaaS permettent la création de Bot souvent assistant de page web et levier marketing pour les marques. Le site ChatBot.org en recense plus de 1200 !

Mais avançons, en 2006 Violet sort le Nabaztag qui d’une part va personnifier un bot dans un objet physique (comme Furby). Et d’autre part, fournir une API de synthèse vocale puis plus tard de reconnaissance vocale aux développeurs.

En 2008, des chercheurs ont fait le travail d’annoter un énorme corpus de texte permettant à l’ensemble de la communauté scientifique de travailler sur de nouveaux algorithmes d’analyse du langage naturel ce qui a entraîné une nouvelle vague de ChatBot.

En 2010, c’est l’arrivée de SIRI qui paradoxalement freine considérablement le sujet ChatBot (ce saut de technologie à du décourager plus d’un chercheur). Apple utilise une approche Deep Learning (réseaux de neurones) complètement différente. C’est aussi à cette époque que IBM Watson gagne au Jeopardy.

Puis tout s’accélère, dans les grandes lignes:

  • Septembre 2012, première version de SARAH 🙂 reposant sur Microsoft Kinect
  • Novembre 2014, Amazon présente Echo, un objet physique ! communicant en Anglais uniquement
  • En 2015 un nouveau dataset de données annotées est fourni à la communauté améliorant à nouveau l’ensemble des algorithmes
  • En 2016 Facebook présente Messenger (pour contourner Google) sur les traces de WeChat (2011) en Asie

Over 2.5 billion people have at least one messaging app installed. Within a couple of years that will reach 3.6 billion, about half of humanity.” — The Economist

C’est une révélation ! Les gens passent un temps considérable sur un media (et donc une app) ou les marques sont totalement absentes !

C’est ainsi qu’un alignement des planètes se fait entre des technologies enfin fiables et des consommateurs (et non plus des geeks) qui utilisent intensivement les outils de discussions.

A quoi ça sert ?

Pour certaines personnes les bots vont remplacer toutes les applications mobiles. C’est un petit peu extrême 🙂

Language is the most natural interface humans understand, and that’s the interface that bots use

En fait, il est important de comprendre que les bots proposent une nouvelle ergonomie qui vient en complément des apps pour fournir une expérience utilisateur plus simple ou plus fluide.

Il peut intervenir a tout les étapes d’interactions avec des clients BtB ou BtC.

Consider

Les « FanBots » qui engagent déjà une audience ont naturellement beaucoup de succès. Par exemple, Disney fait parler les personnages de Zootopia pour le lancement du film éponyme.

De même les « Gaming Bot » fonctionnent très bien par leur côté simple et ludique. On y retrouve les mécaniques des MUD ou livres dont vous êtes le héro.

Evaluate

Le bot peut intervenir pour faciliter la demande d’un devis, faire une recherche de produit / service / hôtel / train. Il peut conseiller ou devenir coach.

Buy

Il intervient lors du processus d’achat pour réserver un hôtel ou un vol, commander un repas, faire livrer des fleurs…

Dans le cas de PizzaHut, 40% des utilisateurs payent directement dans l’application et 50% vont jusqu’au bout du processus de commande. La prise de commande (après la première) prend moins d’une minute.

Avec la reconnaissance vocale, des outils comme Amazon Echo permettent une prise de commande sans les mains et surtout sans ce mobile aux interfaces compliquées.

Care

Le care est le sujet qui revient plus régulièrement. Le bot est souvent utilisé pour masquer tous les outils 1.0 « adminsitratifs ». Il permet d’humaniser une FAQ, faire le suivi de livraison, SAV, ou d’une réclamation.

Et plus encore !

Certaines startups développent un bot, AVANT ou à la place d’une application mobile, afin de pouvoir rapidement tester l’appétence pour leur service.

Dans un précédent article j’avais beaucoup aimé le principe du bot « garde meuble » dont le rôle est de simplement stocker ou récupérer des objets.

En bref, ce sera principalement l’ergonomie épurée et fluide, immédiatement disponible dans son outil de discussion préféré, qui justifiera de remplacer ou compléter une application mobile.

Comment ça marche ?

Le principe de développer un programme avec le comportement suivant:

  • Réception d’un flux audio et conversion en texte
  • Réception d’un flux texte
  • Compréhension du langage naturel (NLP ou NLU)
    • Détection de l’intention (réserver un voyage, acheter un produit, se renseigner sur un sujet, …)
    • Détection des entités (Marques, Villes, Quantités, Mesures, Catégories, Dates, …)
  • Traitement de l’action à effectuer
  • Emission d’une réponse
  • Vocalisation de la réponse

Etat de l’art

Oreilly a dressé un panorama des solutions existantes en 2016.

Comme vous pouvez le constater les GAFAM ont plusieurs briques permettant de communiquer avec l’utilisateur et comprendre ses messages. Depuis peu, Samsung, très présent sur le SmartHome, a racheté ViV.

Architecture

Une bonne pratique consiste à mettre en place un serveur HTTP(s) recevant des requêtes REST (message de l’utilisateur) et renvoyant une réponse textuelle à l’utilisateur.

Microsoft fournit une brique NodeJS (ou C#) permettant de gérer la communication en JSON avec les différents services de Bot. Ainsi un même Bot peut communiquer à la fois sur FaceBook Messenger, par SMS ou sur Slack.

De nombreuses platformes, comme Twitter, ouvrent leur APIs. Il est donc primordial de choisir un framework de bot qui sera multicanal (et multilingue).

Par ailleurs, il ne faut pas rester verrouiller sur une technologie propriétaire, les choses bougent vite et il est très important de pouvoir s’adapter aux services disponibles et contraintes client. Typiquement en ayant la possibilité de choisir son hébergement cloud ou son services de NLP.

Il y aura toujours des comportements spécifiques (Facebook propose le paiement « In Bot » là ou le canal SMS ne gère que des messages textes). Mais en utilisant un framework modulaire comme Node-RED et MSBotBuilder on peut espérer aller vers une standardisation des bonnes pratiques d’un ChatBot.

NLP et NLU

Le Natural Language Processor (ou Understanding) est la brique technologique qui permet aux bots de comprendre d’une part l’intention de l’utilisateur (faire un achat, réserver un voyage, trouver son chemin) et d’autre part toutes les entités associées à la question (villes, nom, marques, catégories, poids, devise, date, quantités, etc…)

Il n’y a pas de magie, l’analyse du langage naturelle n’est pas parfait c’est un complément à d’autres mécaniques de RegExp et il est très important de comparer les frameworks.

Voyage SNCF a fait le choix de développer ses propres algos pour son Bot. J’avais utilisé Soundex et Distance de Leveinstein dans une version expérimentale de SARAH. Mais je dois avouer que les services de type API.ai et bientôt ViV (Ex SIRI racheté par Samsung) sont vraiment bluffants.

BackEnd

Node-RED est une librairie OpenSource développée par IBM permettant de modéliser des flux d’événements. C’est le choix que nous avons fait chez VISEO pour modéliser les étapes du traitement d’un message. Et ce sera peut-être le prochain back-end de SARAH. Car cela permet:

  • d’un côté de modulariser et implémenter les briques techniques permettant de s’intégrer par exemple aux API métiers du client.
  • de séparer les aspects techniques et fonctionnels en proposant une ergonomie proche des outils de Mind Mapping très pratique pour modéliser des conversations.

Il est alors très simple de remplacer une brique NLP de Api.ai (google) par Wit.ai (Facebook) pour interpréter le message de l’utilisateur. Ou développer une brique spécifique au SI d’un client.

Ergonomie

Développer un bot semble très simple. Il y a pléthore d’articles intitulés « comment créer un bot en 5 minutes » sur internet. Mais il y à aussi de nombreux articles expliquant pourquoi 90% des ChatBot vont disparaitre: à cause de leur ergonomie !

With Great Power Comes Great Responsibility

Les ChatBots permettent d’engager une discussion 1-1 personnalisée avec l’utilisateur, c’est donc une opportunité de renforcer l’engagement avec la marque mais aussi un risque de faire des faux-pas.

Tous les codes de l’UX sont bouleversés et doivent être ré-inventés pour s’adapter au Texting. C’est une histoire de cerveau gauche / cerveau droit. Les yeux sont moins sollicités, le bot va travailler sur les émotions.

C’est le cas de Burger King qui propose le Burger du jour, au bon moment, fonctionnant sur l’envie et non pas en proposant une carte de 40 sandwich.

Avec l’expérience, de nombreuses bonnes pratiques se mettent en place. Ne pas les avoir lorsqu’on réalise un bot en 5 minutes peut coûter cher.

Par exemple, si un bot propose de réserver 4 billets de train, il doit absolument expliquer qu’il propose cela car l’utilisateur lui a indiqué précédemment qu’il était marié avec 2 enfants. La « magie » qui n’est pas expliquée peut braquer l’utilisateur qui aura l’impression de parler à Big Brother.

L’intelligence artificielle n’existe pas (encore), mais le bot peut employer de nombreuses astuces de comédien pour donner une impression d’intelligence. Par exemple, en changeant sa manière de répondre à la même question.

Solving the same problem in the same exact way can introduce a new problem: boredom. Research shows that dopamine surges when your brain is expecting a reward. Give your bot variability!

Comme dans un sketch, certains bots vont répondre très rapidement « oui oui voici le résultat » puis quelques secondes plus tard, vont rajouter « attends je me suis trompé, en fait la bonne réponse c’est ça ». L’erreur humanise le bot.

L’être humain a une fâcheuse tendance à fonctionner par anthropomorphisme. Le ChatBot répond à ce besoin de « connexion », avec un discours positif et bienveillant. Les Japonais dépensent déjà beaucoup d’argent dans des applications de « copine virtuelle ».

Ethnologie

Cette nouvelle forme d’interaction passant par le dialogue est aussi très intéressante avec le regard d’un ethnologue. Voici un bref retour de Séverine Enjolras ethnologue experte sur ces sujets mêlant l’humain et la technologie.

Le succès des bots dépendra non seulement de leur fiabilité – capacité à répondre à une demande ou faire une proposition pertinente – mais surtout de l’expérience et du parcours de l’utilisateur.

Il faudra le prototyper et le tester auprès d’un maximum d’utilisateurs et y adjoindre une expertise anthropologique. Si l’accès se devra probablement d’ être encore plus simple et plus rapide que sur les applications, il faudra bien comprendre le parcours, les circonstances de recours et le vécu émotionnel de l’utilisateur.

Cette démarche permettra d’identifier où se situe la valeur ajoutée du bot et quelles seront ses conditions d’adoption et d’acceptabilité. A titre d’exemple, quelques questions clés à se poser :

Si le bot fonctionne sur un système de messages écrits au sein d’une messagerie type Messenger, les utilisateurs accepteront-ils de consacrer du temps et des efforts pour échanger avec une marque par définition plus impersonnelle que mon entourage? Et si oui sous quelles conditions? Rentrer en conversation nécessite de mobiliser un registre de communication plus émotionnel. Si le bot emploie un langage standardisé, quel sera le niveau d’engagement de l’utilisateur nécessaire à la fidélisation?

Quelles seront les rôles les plus légitimes du bot? Si celui d’assistant personnel paraît évident, qu’en est-il de celui de coach? Le bot pourra-t- l s’adapter aux humeurs des utilisateurs, temporiser, offrir aussi parfois du silence pour ne pas être intrusif?

Natives User Interface

Jusqu’à présent nous avons principalement parlé d’interface textuelle. Mais les bot ont à leur disposition de nombreux sens !

La reconnaissance et la synthèse vocale sont une dimension supplémentaire à prendre en compte. le nom et la voix du bot ont leur importance !

C’est une volonté des GAFAM d’aller vers les interfaces vocales. Amazon avec Alexa ou Google avec Home sont maintenant des objets de la maison. De son côté Microsoft avec l’API Oxford (et Cortana) est capable d’obtenir une compréhension proche de l’oreille humaine !

Par exemple, en 2012, une partie de la communauté SARAH m’avait demandé de la renommer JARVIS. S’est alors posée la question de la voix masculine sous Windows 8!

Certains utilisateurs me disent que leurs enfants discutent avec SARAH dans leur chambre un peu comme l’ami imaginaire. D’autres me disent que SARAH fait partie de la famille et ressentent un manque quand ils dorment chez des amis.

Le pari du film « Her », tout comme ELIZA, est de ne jamais représenter le bot car l’imagination est bien plus puissante. A l’inverse, le croisement avec un animatronic peut être perturbant.

L’analyse d’image est aussi très importante. Il est très naturel depuis un client de messagerie d’envoyer une photo qui sera ensuite décortiqué par le bot !

  • Reconnaissance faciale, émotions
  • Reconnaissance d’objets, de formes, de couleurs
  • Reconnaissance de Code-barre ou QRCode
  • Reconnaissance de caractère et plaques minéralogique

Par exemple,

  • prendre une photo pour saisir ses notes de frais intantanément
  • reconnaître un produit, et interroger une service de recettes.
  • discuter avec un bot apportant des précisions sur un lieu tagué avec un QRCode

Un projet Agile !

Le développement d’un bot se combine parfaitement avec les méthodes Agile.

En effet, l’idée est de co-construire du fonctionnel, donc rapidement délivrer, voir les retours des utilisateurs et itérer sur l’analyse du langage naturel, les réponses à apporter, etc …

Appuyez-vous sur les stats ! Une métrique importante est la stickness, ou comment le bot va réussir à converser régulièrement avec un même interlocuteur pour installer une relation de confiance.

C’est aussi un moyen de mesurer le ROI de votre effort, prouver que ça ne se fait pas en 5 minutes et justifier vos choix en interne.

Aller plus loin ?

Le sujet est très vaste, n’hésitez pas à réagir dans les commentaires ou m’envoyer un message sur les réseaux sociaux.

Je tenais à remercier tout particulièrement Alice Vasseur avec qui j’interviens sur cette thématique innovante. A force de traiter le sujet et développer des bots pour différents clients, nous avons acquis une expertise que nous avons essayé de formaliser autour de BBL, Meetup et Articles.

De nombreux pointeurs ont été cités, n’hésitez pas à suivre ChatBot Magazine, ChatBot Life, … ou suivre le Meetup NLP Paris ou Chat Bot Paris.

Et comme toujours, c’est un sujet Trendy, méfiez-vous de ceux qui parlent sans ne jamais en avoir réalisé 🙂

Vous souhaitez réaliser un bot ? Ou travailler sur des sujets émergents tel que les Natives User Interface, Objets connectés et communicants, le SmartHome / SmartCity, les Cryptos Currency ou la BlockChain, la Réalité Virtuelle et Augmentée, le Machine Learning, … contactez Thibault Celier en charge de l’équipe VISEO Innovations.

6 pensées sur “ChatBot et Agents Conversationnels

  • 15 novembre 2016 à 15 h 22 min
    Permalink

    Super article !
    je cherche à en réaliser un, mais tout bête. C’est possible ? 🙂

    Répondre
    • 15 novembre 2016 à 15 h 46 min
      Permalink

      Salut Guillaume,

      Faire un « Dumb Bot » c’est très simple, il y a de nombreuses plateformes techniques qui proposent de réaliser un bot en quelques clics. Mais toute la difficulté est de faire un bot « qui marche », avec une bonne stickyness, qui sera réutilisé et apportera un vrai service.

      On vit le même schémas que les sites web et les app mobile, toutes les platformes annonces des chiffres énormes mais en pratiques très peu de bot sont utilisés car il faut beaucoup itérer pour faire un bot avec le bon périmètre. Je me souviens des questions « il y a vraiment besoin d’un graphiste ? d’un designer ? de faire du responsive ? ou une app native ? »

      Tiens ce sera peut-être intéressant d’en parler à ParisWeb 2017 🙂

      Je commence à voir passer des demandes de bot avec la voix, les images dans l’esprit de SARAH et on a à nouveau une couche d’ergonomie à faire.

      Bref si tu fais un bot technique, il y a pleins de services qui automatise cela. Si tu fais un bot avec une interaction utilisateur, il faut consommer du temps / de l’argent comme pour un service web ou une app mobile. C’est proportionnellement quand même moins cher (je pense) et le ROI se calcul vite.

      Typiquement, je caricature, un bot qui fait un support premier niveau : « j’ai oublié mon mot de passe » avant d’escalader à un humain ça désengorge le support et fait factuellement économiser du temps/homme.

      Bon cet exemple est utilisé depuis longtemps dans les call center. Mais il y des uses case bien plus pertinents… surtout dès que tu exploites le contexte utilisateur.

      Répondre
  • 15 novembre 2016 à 17 h 11 min
    Permalink

    Bonjour,

    Article très intéressant. Moi aussi j’ai passé un temps fou à jouer avec toute ces technos (AIML, rivescript, wit.ai, api.ai, microsoft oxford, watson, etc…) mais nous sommes encore très loin de HER.
    L’importance de nos gestes, de nos attitudes, du regard lorsque nous échangeons avec quelqu’un est très importante. Il suffit de voir comment une conf call peut être sujet à confusion car personne ne se voit.
    Je suis actuellement en train d’essayer de capturer les emotions avec l’API microsoft mais il faut vraiment forcer les expressions pour avoir un bon résultat.
    Je pense que personne n’utilisera vraiment un agent conversationnel (sauf des gens comme nous) tant qu’un haut pourcentage des interactions seront correctement interprétés par un bot sinon c’est une perte de temps pour l’utilisateur et un risque de paraitre ridicule.
    Sinon je « plussois » pour node-red. J’adore cette techno et je l’utilise de plus en plus.

    Répondre
    • 15 novembre 2016 à 17 h 33 min
      Permalink

      Je suis d’accord avec toi il faut que l’expérience utilisateur surtout en NUI soit « naturelle » pour que ça passe.
      Je ne crois absolument pas au Bot qui fait (pour le moment) comme Her. Par contre on peut tout a fait imaginer des usecases très spécifique.

      • Sur le ChatBot texte, il y a plein de cas qui marchent (il doit y avoir 10 articles par semaine sur ChatBot Magazine)
      • Sur la voix je crois beaucoup aux services pour les personnes âgés, idem pour la prise de commande comme Amazon Echo ou Pikit marchent très bien
      • Sur l’image je crois aussi beaucoup à la reconnaissance dans les photos (une images vaut milles mots). Mais effectivement sur ma vidéo la reconnaissance d’objet est bluffante pour un informaticien mais n’est pas satisfaisant pour Mme Michu

      Et c’est là ou l’ergonomie doit compenser la techno. Faire des questions fermées, guider l’utilisateur, utiliser le contexte, faire des choses cadrées, etc …

      Répondre
    • 15 novembre 2016 à 18 h 35 min
      Permalink

      Oui l’expérience utilisateur c’est primordiable. Je suis en train d’essayer de consevoir un POC d’agent conversationnel avec le bot sdk de krosoft pour un site e-commerce dont je suis l’architecte dans ma boite mais c’est très compliqué et je pense que ce POC ne passera pas l’étape du prototype. Commander un pizza et se la faire livrer c’est pas trop compliqué mais en environement BtoB il y a beaucoup de contraintes et l’utilisateur doit répondre à une tonne de questions….

      Répondre
      • 15 novembre 2016 à 19 h 01 min
        Permalink

        J’ai développé une surcouche au MS BotBuilder mais je ne peux pas partager mon code. Effectivement c’était aussi pour un usage B2C.

        Par contre, a mon avis, le bot ne doit pas mimer une application mobile. Typiquement Burger King marche sur l’émotionnel et propose 3 Burgers du moment (ou s’appui sur des commandes mobiles précédentes) mais ne va pas te proposer la carte des 40 burgers et toutes les variantes, frites, déserts, etc … car l’UX n’est pas adaptée.

        C’est là ou je disais qu’il y a une grosse phase de réflexion sur l’usage et l’ergonomie.

        Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *