Chatbot

=Présentation=


 * Sujet : ChatBot
 * Auteur : Edwin NIOGRET
 * Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU

=Mots clés= Chatbot, intelligence artificielle, IHM

=Résumé= L'intelligence artificielle est en plein expansion et est de plus en plus apte à mimer et comprendre les comportements humains. Les enjeux sont de taille dans de nombreux domaines. Entre autre, le fait de pouvoir converser de manière intelligence avec un ordinateur serait un outil très puissant pour de nombreuses entreprises. A cet effet, des "chatbots", c'est à dire des chats virtuels avec des machines sont développés chaque année et ils sont de plus en plus performants (Siri développé par Apple...). Il reste tout de fois encore du chemin à faire avant qu'un ordinateur puisse leurrer un humain et se faire passer pour un autre être humain.

=Abstract= A chatbot is an artificial intelligent able to speak with a human. It is a human-computer interaction system and it aims to mimic a human behaviour. However, even if a lot of progress are made in this field, there are still a lot to do. At this time, Chatbots are able to speak with you only if you use simple sentences.

=Synthèse=

Principe
Le principe d'un chatbot est de simuler une conversation humaine avec un utilisateur humain à des fins ludiques ou plus sérieuse. Pour cela on utilise un agent conversationnel, c'est à dire une intelligence artificielle développé dans la compréhension et la compréhension des langages humains (par exemple l'anglais). On parle de NLP : Natural Language Processing. Ils mettent en œuvre des connaissances linguistiques, psychologiques, et bien sûr des bases de programmation. On peut se servir du test de Turing pour tenter d'évaluer le chatbot.



Marchés
L'étude de marché fait ressortir plusieurs domaines d'utilisation le chatbot :
 * Marketing: Connaitre les besoins de l'utilisateur en lui parlant. On pourra ainsi lui produire des publicités ciblées.
 * Economique : Dans un service après ventes par exemple, si l'intelligence artificielle est correctement développée, elle évitera l'entreprise d'embaucher des opérateurs humains pour intérargir avec le client.
 * Recherche: Le développement des chatbots, leur relation avec des êtres humains et la collecte de ces données pourra permettre d'améliorer nos connaissances du cerveau humain.
 * Ludique : A ce stade, beaucoup de jeux existent lié aux chatbots, par exemple un jeu existe dont le but est de découvrir si on parle à un humain ou à un robot (test de Turing inversé).

Acteurs
Actuellement, les principaux développeurs des chatbots sont:
 * Microsoft


 * Apple




 * Google



Tandis que Microsoft développe une API de chatbots, Apple et Google développe une intelligence capable d'intérargir avec l'utilisateur, par exemple sur son téléphone portable, afin de l'aider à accomplir une tâche. C'est un argument de vente pour leurs produits.

D'autres API pour développer et intégrer des chatbots sur Facebook, Kik, Whatsapp... sont disponibles comme, Errbo et Hubot...

Fonctionnement
Un chatbot a pour but de faciliter une interaction avec une machine ou de remplacer un humain. Il faut donc qu'il soit très simple d'utilisation pour l'utilisateur tout en étant extrêmement efficace afin de répondre à la demande de celui-çi.



Point de vue utilisateur
Du point de vue utilisateur, il suffit de lancer le chat avec l'agent conversationnel grâce à une commande spécifique puis il suffit de parler ou écrire à l'agent pour qu'il fasse une action précise (répondre et/ou effectuer une tâche). Malheureusement, dû à l'intelligence encore limité de ces agents, les commandes ou discutions complexes ne seront que très mal (ou pas du tout) comprise par le chatbot. Il résultera une réponse incohérente par rapport à la demande de l'utilisateur.


 * Comment se faire comprendre par la machine

-Utiliser des phrases simples et non ambiguës

-Ne pas demander des commandes dépendant du contexte d'utilisation

-Utiliser des mots clés connus. La plupart des chatbots recherchent juste les mots importants de la phrase de l'utilisateur sans aucune analyse syntaxique

Point de vue développeur
Le développement d'une intelligence artificielle peut se baser sur le Deep Learning et les méthodes d'apprentissages. C'est ce que fait le chatbot Cleverbot. Le principe est que l'intelligence artificielle se base sur les réponses des utilisateurs pour comprendre les questions qu'on leur a posé. Comme un enfant, elle développera son intelligence et sa capacité conversationnelle au fil des conversations. Il convient de faire parler l'agent avec un grand nombre d'utilisateur "test" avant que le chatbot soit opérationnel. Il faut donc que les utilisateurs "test" soit bien sélectionné pour pas que le chatbot apprenne des mauvaises manières de parler. C'est ce qui s'est passé avec "Tay", une IA développée par Microsoft, parlant à des utilisateurs sur Twitter. En moins d'une journée, des utilisateurs mal intentionnés ont rendu l'IA raciste et antisémite.
 * Deep Learning et méthode d'apprentissage

En plus des méthodes d'apprentissages, le chatbot peut tenter d'analyser les phrases de l'utilisateur et de comprendre le contexte de discussion. Cela passe par l'analyse de la fréquence des mots, et l'analyse syntaxique et grammaticale des phrases de l'utilisateur. Malheureusement, ces techniques ne sont pas encore très abouties de nos jours.
 * Analyse de la fréquence des mots, analyse syntaxique et grammaticale des phrases

La plupart des chatbots n'utilisent pas des techniques aussi avancées pour parler avec l'utilisateur. Les agents conversationnels se contentent de rechercher des mots-clés dans les phrases prononcés par l'utilisateur et ont des réponses prédéfinies en fonction de ces mots clés. Par exemple, si l'utilisateur écrit "heure", le chatbot comprendra que celui-ci souhaite avoir l'heure et lui donnera l'heure actuelle.
 * Recherche de mot clés

ChatBots connus

 * Siri : Développé par Apple, utilisé sur leur système d'exploitation IOS.




 * Cortana : Développé par Microsoft, utilisé sur leur système d'exploitation Windows.




 * Google Talk : Développé par Google, utilisé sur leur système d'exploitation mobile Android.




 * CleverBot : Développé par Rollo Carpenter. Accessible sur internet pour tout le monde.



=Conclusion= Les chatbots ne sont pas encore totalement au point. En parlant à une intelligence artificielle, on arrive assez vite à ses limites, surtout si on utilise autre chose que des phrases basiques. Néanmoins, les enjeux économiques dans ce domaine sont de taille et il est très probable de que dans un futur proche, on puisse développer des intelligences artificielles assez efficaces pour "tromper" un être humain en imitant de manière quasiment parfaite un cerveau humain.

=Plateformes open-sources=
 * Smartly.AI, une plateforme française
 * Rasa.ai une plateforme open-source
 * BotMaker, une plateforme open-source

=Bibliographie=
 * https://fr.wikipedia.org/wiki/Agent_conversationnel
 * http://www.liberation.fr/futurs/2016/04/15/robots-sociaux-les-chatbots-vont-ils-deferler-sur-la-france_14465407
 * http://www.lesechos.fr/idees-debats/cercle/cercle-159055-chatbots-pourquoi-la-machine-est-elle-devenue-la-star-de-la-relation-client-2015613.php
 * http://www.theverge.com/2016/3/24/11297050/tay-microsoft-chatbot-racist
 * http://blog.octo.com/les-chatbots/
 * https://www.smile.eu/sites/default/files/2018-01/MiniBook_Mobile_Chatbots_VF_04012018.pdf