Les chatbots sont désormais largement utilisés dans divers domaines d'activité. Par exemple, les banques peuvent les utiliser pour optimiser le travail de leur centre de contact, en répondant instantanément aux questions courantes des clients et en leur fournissant des informations de référence. Pour les clients, les chatbots sont également un outil pratique: il est beaucoup plus facile d'écrire une question dans le chat que d'attendre une réponse en appelant un centre de contact.
Dans d'autres domaines, les chatbots ont également fait leurs preuves: en médecine, ils peuvent interroger un patient, transmettre des symptômes à un spécialiste et prendre rendez-vous avec un médecin pour établir un diagnostic. Dans les entreprises de logistique, les robots de discussion vous aideront à convenir de la date de livraison, à modifier l'adresse et à choisir un point de retrait pratique. Dans les grands magasins en ligne, les chat bots ont en partie pris en charge la maintenance des commandes, et dans le domaine des services d'autopartage, les chat bots réalisent jusqu'à 90% des tâches de l'opérateur. Cependant, les robots de discussion ne sont pas encore en mesure de résoudre les réclamations. Les retours négatifs et les situations controversées retombent toujours sur les épaules des opérateurs et des spécialistes.
Ainsi, la plupart des entreprises en croissance utilisent déjà activement des chatbots pour travailler avec leurs clients. Cependant, les avantages de la mise en œuvre d'un chatbot varient souvent: dans certaines entreprises, le niveau d'automatisation atteint 90%, dans d'autres entreprises, il n'est que de 30 à 40%. De quoi cela dépend-il? Quelle est la valeur de cette métrique pour une entreprise? Existe-t-il des moyens d'augmenter le niveau d'automatisation des chatbot? Cet article abordera des questions qui vous aideront à comprendre cela.
Benchmarking
Aujourd'hui, presque chaque secteur d'activité a son propre environnement concurrentiel. De nombreuses entreprises adoptent des approches commerciales similaires. Par conséquent, si des entreprises concurrentes utilisent des robots de discussion dans leurs activités, il est tout à fait conseillé de les comparer. L'analyse comparative est un bon outil de comparaison.
Dans notre cas, l'analyse comparative des chatbots impliquera des recherches secrètes afin de comparer les fonctionnalités des chatbots des concurrents avec les fonctionnalités de votre propre chatbot. Prenons l'exemple d'un cas utilisant un bot de chat bancaire.
Supposons qu'une banque ait développé un chatbot pour optimiser le fonctionnement du centre de contact et réduire le coût de sa maintenance. Pour effectuer un benchmarking, il est nécessaire d'analyser les autres banques et d'identifier les chatbots les plus fonctionnels de leurs concurrents.
Il est nécessaire de constituer une liste de questions de vérification (au moins 50 questions réparties en plusieurs thèmes):
- Questions sur les services bancaires , par exemple: "Quels sont vos taux de dépôt?", "Comment réémettre une carte?" etc.
- Informations de référence , par exemple: "Quel est le taux de change actuel?", "Comment obtenir des vacances de crédit?" etc.
- Niveau de compréhension du client. (Résistance du bot aux fautes de frappe, aux erreurs, à la perception d'un discours familier), par exemple: "Je saute la carte, qu'est-ce que je fais?", "Recharger le mobile", etc.
- Conversation sur des sujets abstraits , par exemple: "Racontez une blague", "Que faire pendant l'auto-isolement?" etc.
Remarque: ces sujets de questions sont donnés à titre d'exemple et peuvent être développés ou modifiés.
Ce sont les questions que vous devriez poser à votre chatbot ainsi qu'aux chatbots de vos concurrents. Après avoir écrit la question, 3 options pour le résultat sont possibles (selon le résultat, le score correspondant est inscrit):
- le bot n'a pas reconnu la question du client (0 point);
- le bot a reconnu la question du client, mais seulement après avoir clarifié les questions (0,5 point);
- le bot a reconnu la question du premier coup (1 point).
Si le chatbot a transféré le client à l'opérateur, la question est également considérée comme non reconnue (0 point).
Ensuite, le nombre de points marqués par chaque chatbot est résumé, après quoi la part des questions correctement reconnues sur chaque sujet est calculée (faible - moins de 40%, moyenne - de 40 à 80%, élevée - plus de 80%), et la note finale est compilée. Les résultats peuvent être présentés sous forme de tableau:
Supposons que, selon les résultats de l'analyse comparative, le chatbot de la banque prenne la deuxième place. Quelles conclusions peut-on tirer? Le résultat n'est pas le meilleur, mais pas le pire non plus. Sur la base du tableau, nous pouvons dire que ses côtés ne sont pas les plus forts: tout d'abord, les algorithmes doivent être améliorés pour reconnaître correctement les questions du client (le chatbot ne comprend pas toujours les questions du client contenant des erreurs et des fautes de frappe), et ne prend pas toujours en charge un dialogue sur des sujets abstraits ... Une différence plus détaillée peut être observée lors de la comparaison avec le premier chatbot.
Le chatbot, qui a pris la troisième place, s'est montré pire: d'une part, il nécessite une révision sérieuse de la base de connaissances sur les services bancaires et les informations de référence, et d'autre part, il est mal formé pour dialoguer avec un client sur des sujets abstraits. Il est évident que le niveau d'automatisation d'un tel chatbot est à un niveau inférieur par rapport aux concurrents qui ont pris les places I et II.
Ainsi, sur la base des résultats de l'analyse comparative, les forces et les faiblesses du travail des chat bots ont été identifiées, ainsi qu'une comparaison des chat bots concurrents les uns avec les autres. La prochaine étape consiste à identifier ces problèmes. Comment cela peut il etre accompli? Considérons quelques approches basées sur l'analyse de données: AutoML, Process-mining, approche DE.
AutoML
Actuellement, l'intelligence artificielle a déjà pénétré et continue de pénétrer de nombreux domaines d'activité, ce qui entraîne inévitablement une demande accrue de compétences dans le domaine de la DataScience. Cependant, la demande de tels spécialistes croît plus vite que le niveau de leurs qualifications. Le fait est que le développement de modèles d'apprentissage automatique nécessite beaucoup de ressources et nécessite non seulement une grande quantité de connaissances d'un spécialiste, mais également un temps considérable consacré à la construction de modèles et à leur comparaison. Pour réduire la pression créée par la rareté et raccourcir le temps de développement des modèles, de nombreuses entreprises ont commencé à créer des algorithmes capables d'automatiser le travail des DataScientists. Ces algorithmes sont appelés AutoML.
AutoML, également appelé apprentissage automatique automatisé, aide le DataScientist à automatiser les tâches chronophages et répétitives de développement de modèles d'apprentissage automatique tout en maintenant leur qualité. Si les modèles AutoML peuvent vous faire gagner du temps, ils ne seront efficaces que lorsque le problème qu'ils résolvent est persistant et répétitif. Dans ces conditions, les modèles AutoML fonctionnent bien et affichent des résultats acceptables.
Utilisons maintenant AutoML pour résoudre notre problème: identifier les zones problématiques dans le travail des chatbots. Comme mentionné ci-dessus, un chatbot est un robot, ou un programme spécialisé. Elle sait extraire des mots-clés d'un message et rechercher une réponse adaptée dans sa base de données. C'est une chose de chercher la bonne réponse, une autre est de maintenir un dialogue logique, en imitant la communication avec une personne réelle. Ce processus dépend de la qualité du script du chatbot.
Imaginez une situation où un client a une question et qu'un chatbot lui répond de manière étrange, pas logique, ou généralement sur un autre sujet. En conséquence, le client n'est pas satisfait d'une telle réponse, et au mieux écrit sur son incompréhension de la réponse, au pire - des messages négatifs envers le chatbot. Par conséquent, la tâche d'AutoML sera d'identifier les dialogues négatifs à partir du nombre total (sur la base des journaux de chatbot téléchargés depuis la base de données), après quoi il est nécessaire d'identifier les scénarios auxquels ces dialogues se rapportent. Le résultat obtenu servira de base à l'affinement de ces scénarios.
Tout d'abord, marquons les dialogues du client avec le chatbot. Dans chaque dialogue, nous ne laissons que les messages des clients. Si dans le message du client il y a un négatif en direction du chatbot, ou ne comprend pas ses réponses, définissez flag = 1, dans les autres cas = 0:
Marquage des messages des clients
Ensuite, nous déclarons le modèle AutoML, le formons sur les données balisées et le sauvegardons (tous les paramètres de modèle nécessaires sont également passés, mais ils ne sont pas montrés dans l'exemple ci-dessous).
automl = saa.AutoML
res_df, feat_imp = automl.train('test.csv', 'test_preds.csv', 'classification', cache_dir = 'tmp_dir', use_ids = False)
automl.save('prec')
Nous chargeons le modèle résultant, après quoi nous faisons une prédiction de la variable cible pour le fichier de test:
automl = saa.AutoML
automl.load('text_model.pkl')
preds_df, score, res_df = automl.predict('test.csv', 'test_preds.csv', cache_dir = 'tmp_dir')
preds_df.to_csv('preds.csv', sep=',', index=False)
Ensuite, nous évaluons le modèle résultant:
test_df = pd.read_csv('test.csv')
threshold = 0.5
am_test = preds_df['prediction'].copy()
am_test.loc[am_test>=threshold] = 1
am_test.loc[am_test<threshold] = 0
clear_output()
print_result(test_df[target_col], am_test.apply(int))
La matrice d'erreurs résultante:
Lors du processus de création du modèle, nous avons essayé de minimiser l'erreur du 1er type (attribuer un bon dialogue à un mauvais), par conséquent, pour le classificateur obtenu, nous nous sommes arrêtés à la mesure f1 égale à 0,66. Avec l'aide du modèle entraîné, il a été possible d'identifier 65 000 «mauvaises» sessions, ce qui a permis à son tour d'identifier 7 scénarios insuffisamment efficaces.
Extraction de processus
Pour identifier les scénarios problématiques, nous pouvons également utiliser des outils basés sur Process Mining - le nom général d'un certain nombre de méthodes et d'approches conçues pour analyser et améliorer les processus dans les systèmes d'information ou les processus métiers basés sur l'étude des journaux d'événements.
Grâce à cette méthode, nous avons pu identifier 7 scénarios impliqués dans des dialogues longs et inefficaces:
18% des dialogues ont plus de 4 messages du chatbot,
chaque élément du graphique ci-dessus est un scénario. Comme vous pouvez le voir sur la figure, les scripts sont en boucle et les flèches en gras indiquent un dialogue assez long entre le client et le chatbot.
De plus, pour trouver de mauvais scénarios, nous avons préparé un ensemble de données séparé et construit un graphique basé sur celui-ci. Pour cela, il ne restait que les boîtes de dialogue dans lesquelles il n'y avait pas d'accès à l'opérateur, après quoi ils ont filtré les boîtes de dialogue avec des questions non résolues. En conséquence, nous avons identifié 5 scénarios d'amélioration, dans lesquels le chatbot ne résout pas la question du client.
Les scénarios identifiés figurent dans environ 15% de tous les dialogues
Approche DE (Data Engineering)
De plus, une approche analytique simple a été appliquée pour rechercher des scénarios de problème: des dialogues ont été identifiés, la note de rétroaction (du côté des clients) variait de 1 à 7 points, puis les scénarios les plus courants de cet échantillon ont été sélectionnés.
Ainsi, en utilisant les approches basées sur AutoML, Process Mining et DE de manière globale, nous avons identifié les zones problématiques dans le chatbot de l'entreprise qui nécessitaient des améliorations.
Maintenant, le chatbot s'améliore!