Construire la base de connaissances d'un chatbot
|
|
Le besoin
Créer la base de connaissances d'un chatbot
Je suis responsable commercial d'un site de vente en ligne de matériel et d'équipement cycliste et je souhaite améliorer l'expérience commerciale de mes clients en intégrant un chatbot à notre site pour accompagner mes clients dans leurs achats. En effet, certains produits vendus sur notre plateforme sont des produits de haute technicité à propos desquels un client peut avoir des questions. L'objectif est que le client dubitatif sur un produit ou perdu dans ses achats puisse s'adresser à un assistant tout comme il le ferait en boutique pour avoir un renseignement, par exemple pour vérifier si le dérailleur qu'il a trouvé correspond bien à celui dont il a besoin pour réparer son cycle.
Je comprends que le chatbot doit disposer de connaissances spécifiques à mon activité pour être efficace. Cependant, je ne sais pas quelles informations fournir, comment les mettre à disposition du chatbot, et, surtout, comme les mettre à jour.
Nos fournisseurs mettent à notre disposition des fichiers sous la forme de tableurs qui décrivent les produits que nous revendons. Ces fichiers contiennent des colonnes spécifiques aux différents types de produits.
Par exemple, le fichier concernant les dérailleurs contient notamment :
- une colonne "nombre de vitesses" qui décrit le nombre de vitesses du dérailleur,
- une colonne "compatibilité" qui décrit les marques et modèles des composants avec lesquels ce dérailleur est compatible.
Ces fichiers contiennent également des descriptions textuelles du produit, qui constituent souvent des arguments de vente et des précisions sur le produit que les champs descriptifs classiques ne contiennent pas.
Par exemple :
"Le dérailleur arrière Shimano Alivio M3100 présente un profil compact qui vous permet de rouler agressivement avec moins de cassures de rythme grâce à sa conception Shimano SHADOW."
Comment mettre à disposition ces informations au chatbot pour que le client potentiel soit renseigné de la façon la plus complète et la plus pertinente possible ?
La solution
Analyse, collecte et extraction de données pour construire une base de connaissances adaptée au besoin
L'objectif d'un chatbot (agent conversationnel, en français) est de simuler la posture d'un commercial, c'est-à-dire simuler la compréhension d'un besoin exprimé par un prospect en langage naturel, puis de trouver le produit qui répond le mieux à ce besoin parmi ceux proposés en catalogue. Le chatbot doit donc avoir à disposition l'ensemble des informations du catalogue. Il ne s'agit pas d'établir une simple liste d'informations mais bien de structurer cette information de façon fine en fonction du domaine.
Définir le périmètre et l'infrastructure
Avant de créer la base de connaissances, il est important de définir le périmètre du chatbot : qui sera la cible, à quels types de besoins le chatbot devra-t-il répondre :
- achats guidés,
- infos produits,
- expérience client,
- SAV/support,
- etc.
Plus le périmètre du chatbot est restreint, plus le chatbot a de chances d'être performant mais il devra pour cela guider l'utilisateur à travers un chemin prédéfini et clairement balisé (à l'aide de boutons et de choix restreints, par exemple) afin d'éviter les questions hors périmètre et donc hors des compétences du chatbot.
Une fois la cible et le périmètre clairement définis, vient le choix de l'infrastructure. En effet, il existe actuellement plusieurs moyens de créer un chatbot :
- chatbot avec une technologie développée en interne, qui permet d'être totalement indépendant et 100% made in France, par exemple,
- infrastructure préexistante qu’il faut adapter au besoin spécifique de ce chatbot,
- plateforme d’IA avancée qui permet de créer un chatbot très rapidement et facilement en utilisant une API.
De ce choix dépendront le format des données attendues pour créer la base de connaissances du chatbot et la quantité de travail à fournir pour construire le chatbot dans son ensemble.
Maintenant, comment construire la base de connaissances du chatbot à partir du catalogue de produits de l'entreprise ?
Extraire les informations utiles concernant les produits
Les données à extraire et qui vont constituer la base de connaissances du chatbot peuvent être transmises par les fournisseurs sous différents formats.
Informations organisées dans un tableur
Les catalogues de produits fournis par les fournisseurs peuvent être structurés dans un tableur, c'est-à-dire présentés dans un vaste tableau divisé en lignes et colonnes composées de cellules contenant du texte ou des nombres, entre autres. Ces catalogues regroupent notamment des descriptions textuelles riches en informations. Il faut donc extraire ces dernières et en représenter le sens dans une base de connaissances dont le chatbot pourra se servir pour guider le client dans ses futurs achats.
Les ontologies ou taxinomies sont idéales pour représenter ces informations. Les premières servent à représenter de manière hiérarchisée des éléments (termes ou concepts) au sein d'un graphe où les relations sont soit sémantiques, soit de subsomption. Les secondes, quant à elles, permettent de représenter la manière dont les termes ou concepts sont emboîtés par des relations d'hyponymie ou d'hyperonymie.
Par exemple, une ontologie pour décrire les composants d'un cycle pourrait de manière informelle être décrite comme suit :
- un dérailleur arrière est un dérailleur,
- un dérailleur possède un certain nombre de vitesses,
- un dérailleur est un composant de vélo,
- un composant possède des caractéristiques.
La construction d'une telle ontologie se fait dans un premier temps manuellement par un expert, donc un commercial (ou un technicien spécialisé) dans le cadre de vente, puisque c'est lui qui connaît le plus précisément les produits, et en collaboration avec un spécialiste des ontologies.
Il est cependant possible de réutiliser et compléter des ontologies existantes afin de ne pas avoir à formaliser tout un domaine à partir de zéro. Il existe en effet sur le web des ontologies disponibles en libre accès, qui sont soit spécifiques à un domaine, comme par exemple la cuisine, ou générales, comme DBpedia, une ontologie qui vise à structurer les connaissances de Wikipédia. Ces ontologies peuvent être utilisées soit entièrement, soit partiellement comme base pouvant être enrichie en fonction du besoin.
Une telle ontologie doit ensuite être peuplée, c'est-à-dire qu'on va y ajouter des termes en fonction de leurs caractéristiques.
Par exemple, le produit dérailleur arrière Shimano Alivio M3100 est un dérailleur arrière, comme son nom l'indique, mais les relations établies lors de la construction de l'ontologie permettent d'inférer d'autres caractéristiques :
- caractéristique 1 : composant de vélo,
- caractéristique 2 : composant de la transmission du vélo,
- caractéristique 3 : possède plusieurs vitesses (9 pour ce modèle),
- caractéristique 4 : possède des caractéristiques techniques.
Exemple d'ontologie correspondante :
Contrairement à la construction, le peuplement de l'ontologie peut faire l'objet d'une automatisation. En effet, l'ontologie peut être peuplée automatiquement en extrayant les produits décrits dans les fichiers de produits de nos fournisseurs.
Par exemple, si une colonne du tableur contient un champ "nombre de vitesses", il est possible d'en extraire automatiquement la valeur afin qu'elle devienne la caractéristique "nombre de vitesses" du produit décrit dans l'ontologie. C'est l'avantage des données structurées.
Informations présentes dans des descriptions de produits
Les données non structurées, c'est-à-dire rédigées en langage naturel et donc non formatées pour être facilement lisibles par un programme, nécessitent une étape supplémentaire d'extraction des entités.
Extraction d'entités
Les descriptions des produits peuvent aussi servir à peupler automatiquement l'ontologie. Contrairement aux caractéristiques bien organisées dans un tableur, les descriptions en langage naturel nécessitent une étape d'extraction des entités. Celle-ci vise à localiser et classer les entités nommées présentes dans du texte non structuré. Cela revient en général à identifier des informations comme des dates, des personnes, des organisations ou des lieux ou, dans un contexte spécifique comme celui du commerce, des informations propres au domaine considéré, par exemple : Idéal sprinter à partir de Conduite agressive.
La plupart des outils d'extraction d'entités actuels reposent sur des modèles statistiques pré-entraînés capables d'extraire ces entités grâce à leur contexte d'énonciation ou grâce à certains indices linguistiques (majuscules pour les marques, par exemple), entre autres. Cependant, il est possible de spécifier les connaissances du modèle en ré-entraînant ces modèles pré-entraînés sur du vocabulaire spécifique (ici, les pièces de vélo et le jargon du cyclisme, notamment) pour être capable de détecter des produits tels que "dérailleur" ou des marques telles que "Shimano".
Création des questions de la base de connaissances
La création des questions qui formeront la base de connaissances du chatbot peut se faire de différentes manières, selon l'infrastructure choisie.
Avec saisie manuelle
L'objectif est de rédiger toutes les questions potentielles des utilisateurs ainsi que leurs alternatives. Il est aussi nécessaire de définir les synonymes et antonymes, les mots-clés pertinents, ainsi que la signification des acronymes en toutes lettres afin d'avoir le maximum d'indices possible pour identifier la ou les intentions de l'utilisateur lors de sa future conversation en langage naturel. Ce travail est long et laborieux mais il permet d'avoir un chatbot assez précis et certaines étapes peuvent être automatisées. Il est cependant difficile à maintenir en cas de mis à jour du catalogue de produits.
Sans saisie manuelle
Il existe aussi un autre moyen de générer des questions de manière quasi automatique sans saisie manuelle. En effet, la technologie de machine reading permet de créer une base de connaissances à partir d'une documentation d'entreprise rédigée sous divers formats. Pour cela, les documents sont convertis en HTML et un pré-traitement est appliqué de manière à les rendre les plus lisibles possible afin que tous les éléments présents dans des balises titres soient transformés en questions, et toutes les balises paragraphes, en réponses correspondantes. Ainsi, la documentation rédigée en langage naturel issue de l'entreprise est transformée en base de connaissances sous forme de questions/réponses pour le chatbot.
Voici un exemple concret :
Fiche produit
Base de connaissances du chatbot
Question (ajoutée automatiquement) : [Quelles sont les informations pour le] Dérailleur arrière SHIMANO ALIVIO - Dérailleur arrière SHIMANO SHADOW RD 9 vitesses [?]
Question alternative (ajoutée manuellement) : Quelles sont les caractéristiques du dérailleur arrière SHIMANO ALIVIO M3100 ?
Réponse associée (ajoutée automatiquement aux deux questions) : Le dérailleur arrière SHIMANO ALIVIO M3100 présente un profil compact qui vous permet de rouler agressivement avec moins de cassures de rythme grâce à sa conception SHIMANO SHADOW.
Cette façon de procéder facilite la mise à jour régulière des informations de l'entreprise puisqu'il suffit d'ajouter les nouveaux documents à la base de connaissances et d'adapter le pré-traitement à ceux-ci afin de générer de nouvelles questions pertinentes et de supprimer les anciennes.
Points d'attention
Pour enrichir les connaissances du chatbot et/ou élargir son périmètre, il peut être intéressant de combiner les informations contenues dans le catalogue de produits du fournisseur avec celles d'une FAQ déjà présente sur le site, ou bien d'avis clients sur les produits, ou encore d'échanges clients avec le service après-vente. C'est en grande partie la qualité de la base de connaissances qui va déterminer les performances du chatbot, et donc sa pertinence et son succès auprès des utilisateurs.