Les origines de Deeplink

Cet article a été traduit automatiquement. Lire l’original en anglais.

Sur la route cahoteuse de la construction d’un chatbot de conseil en relation amoureuse

Un jour, mon associé est venu me voir et m’a dit : « On m’a demandé de créer un chatbot preuve de concept ».

Le thème : les relations amoureuses.

Après une analyse approfondie avec un thérapeute (car nous ne sommes pas les mieux placés pour donner des conseils sur les relations), nous avons décidé que le robot devait comprendre douze des problèmes relationnels les plus courants, notamment les ruptures, la jalousie (de l’utilisateur ou de son partenaire), la violence, le sexe, les enfants, la communication et l’avenir de la relation.

La première tâche NLP que nous devions accomplir était clairement définie : Classer des phrases telles que « Ma copine est folle, elle parcourt mes messages téléphoniques tous les soirs » dans la catégorie « jalousie » et des phrases telles que « Je suis marié depuis trop longtemps et je crois que j’ai besoin de changement » dans la catégorie « avenir relationnel ».

Comme pour la plupart des tâches d’apprentissage automatique, nous avons commencé par collecter des données.

1. Première tentative : fouiller sur Internet.

Nous sommes allés sur des sites de psychologie et avons cherché des témoignages dans les catégories susmentionnées. Nous les avons découpés en phrases et avons classé manuellement celles qui ressemblaient à de véritables réponses de chatbot.

Nous avons fait tourner ce premier ensemble de données dans un classificateur NLP (celui de Rasa) et avons obtenu des résultats descendants. Nous en avons donc déplacé un et utilisé le classificateur formé dans notre prototype de chatbot.

En donnant le chatbot à essayer à nos amis, nous avons réalisé qu’il était assez mauvais pour classer leurs réponses.

Leçon apprise : On ne rédige pas un témoignage ouvert à tous sur Internet comme on le ferait à un chatbot…

2. Deuxième essai : Collectons des données (et demandons à nos femmes)

De retour à la case départ, nous avons décidé de collecter des données d’une autre manière. Nous avons pris le temps d’écrire de nombreuses versions de « Je trompe ma femme ». Nous avons fait de même avec toutes les autres catégories.

Nous avons également demandé à nos femmes de faire de même (car tous nos amis étaient un peu fatigués de notre chatbot).

Nous avons ainsi obtenu un ensemble de données de 1000 phrases. Nous avons réentraîné notre classificateur et donné au chatbot un autre essai. Ça ne marche toujours pas très bien..

Leçons apprises : Eh bien deux choses : 1000 phrases pour 12 catégories n’est clairement pas suffisant. Et comme les phrases provenaient de 4 personnes ayant le même niveau d’éducation, les données étaient quelque peu biaisées.

3. Troisième essai : Demander de l’aide (payante)

Nous nous sommes souvenus d’une publication de recherche de Facebook qui recueillait des données en utilisant des plateformes de crowd sourcing.

Nous nous sommes rendus sur ces plateformes pour savoir si elles proposaient des outils pour faciliter cette collecte de données. La seule chose disponible était une interface de type tableur où nous pouvions demander aux gens d’entrer des données. Pas la meilleure façon de mettre les gens dans le contexte d’un bot.

Heureusement, ils nous permettent également d’envoyer un lien de sondage externe à leurs utilisateurs ! Hourra !

Nous avons donc écrit Chatbotstrap, qui a maintenant été renommé Deeplink, avec l’idée d’en faire le « Doodle » de la collecte des données initiales des chatbots :

  • Ouvrez l’outil, définissez les intentions que le chatbot doit comprendre.
  • Ensuite, concevez des maquettes de dialogues conduisant l’utilisateur à l’intention que vous voulez qu’il exprime.
Définissez des scénarios pour mettre les utilisateurs en contexte
  • Obtenez un lien de sondage, envoyez-le (sur Amazon Mechanical Turk, Clickworker, vos amis, vos collègues, vos étudiants ou votre partenaire) et commencez à recevoir des phrases d’entraînement.
L’interface de sondage originale

Le tout premier cas d’utilisation de Chatbotstrap était notre chatbot relationnel. En quelques jours, nous avons collecté plus de 4500 phrases d’entraînement. Le score F1 de notre chatbot est passé de 0,55 à 0,75 et nous étions suffisamment confiants pour en faire la démonstration au client.

En conclusion

Malheureusement, le projet de chatbot relationnel a été annulé. Néanmoins, nous avons réécrit Chatbotstrap pour en faire plus qu’un outil à usage unique et nous l’avons utilisé sur d’autres projets (jetez un oeil à notre chatbot d’entreprise).

N’hésitez pas à essayer la plateforme Deeplink (gratuite) si, comme nous, vous avez du mal à trouver des données d’entraînement initiales appropriées pour vos bots (exportation en CSV, Rasa, Luis et Flair sont disponibles)