Assistants virtuels personnels et agents avec interfaces conversationnelles sont des technologies qui deviennent de plus en plus populaires auprès de beaucoup de développeurs logiciels.
C’est grâce au développement rapide de la compréhension des langages naturels et des technologies à haut débit d’information que nous pouvons observer une forte croissance dans ce domaine. Ces assistants sont présentés comme des entrées pour des applications et services qui fournissent des méta-strates d’intelligence faisant office d’arbitres entre les applications pour une requête utilisateur.
Les démonstrations effectuées les présentent comme extrêmement performants avec une large série de tâches, comme suggérer à un utilisateur de faire quelque chose basé sur les événements précédemment traqués (assistance proactive) ou répondre à une requête utilisateur dite de manière explicite ou écrite (assistance réactive). Nous pouvons citer quelques exemples marquants comme Google Now, Alexa d’Amazon, Siri d’Apple ou encore Cortana de Microsoft. Naturellement, il existe des ensembles de prérequis que ces assistants à échelle industrielle doivent satisfaire :
- L’étendue des domaines et expériences de compréhension du langage
- La nature du langage de l’utilisateur
- La complexité des dialogues
- L’étendue des modalités et les appareils avec lesquels les assistants peuvent interagir
- L’étendue des expertises liées aux expériences des auteurs qui est supportée
- La latence et la capacité du back-end ou des services cloud qui peuvent être contenus
- La latence et l’exactitude globales des réponses du système
- Les coûts raisonnables (par exemple : les coûts de la puissance de la machine, de mise en œuvre et de maintenance)
- Le support de développement d’expériences utilisateurs uniformes (par exemple : la personnalité de l’assistant)
- La possibilité d’amélioration des expériences
De manière générale, beaucoup de développeurs peinent à trouver un équilibre optimal entre la latence et l’exactitude. Par exemple, le niveau de d’automatisation de Cortana varie, des dialogues totalement automatisés au human-in-the-loop, qui permet à des requêtes plus complexes d’être traitées par des humains.
L’approche appliquée pour le seq2seq de Google consiste à mapper une séquence par rapport à une autre (mapper entre les requêtes et les réponses en utilisant des réseaux récurrents). Cela peut être utile pour les modélisations conversationnelles, autrement dit pour prédire la prochaine séquence selon la ou les précédente(s). Etonnement, cette approche réussi à générer des réponses fluides et précises. Une autre technique appliquée dans le Google Smart Reply est basée sur un classement des réponses qui peuvent démontrer la bonne connaissance du monde réel. La majorité des solutions existantes utilisent une approche standard basée sur les intentions et les entités.
Ce comportement se révèle être efficace lors d’un travail sur de simples tâches comme la création d’une alarme ou la réservation d’une table auprès d’un restaurant. Par conséquent, l’argument de vente principalement mis en avant de ces systèmes est qu’ils permettent aux utilisateurs de déléguer de nombreuses tâches grâce à un seul et unique point d’entrée, i.e, qui remplace une recherche sur un site ou une application.
Néanmoins, lorsque les tâches vont au-delà du cadre des modélisations conversationnelles principales, les résultats produits par les technologies citées ci-dessus ne répondent pas forcément correctement aux attentes de l’utilisateur. Par exemple, l’approche la plus commune basée sur les entités et les intentions nécessite un entrainement manuel des entités spécifiques au domaine. Pour illustrer, les assistants virtuels de Microsoft utilisent un classificateur binaire de type one-vs-all séparé pour chaque domaine. Dans le cas où la requête de l’utilisateur dépasse le cadre des domaines pré-entrainés, le système peut perdre en performance. Comme mentionné précédemment, l’approche basée sur les la méthode du rang démontre une bonne connaissance du monde, mais les résultats nécessitent le réseau de neurones avec une échelle suffisamment large. De plus, la méthode du rang peut être efficace même sans comprendre le dialogue, car il utilise les transformations sémantiques et une approche basée autour des règles.
Même le seq2seq de Google qui semble être un outil parfait pour les modélisations conversationnelles peut rencontrer de sérieuses difficultés. Premièrement, seq2seq n’est pas capable de mettre à jour sa mémoire à long terme. Par conséquent, les choses importantes comme le nom d’utilisateur sera oublié après plusieurs itérations et donc, aucun nouvel élément ne pourra être mémorisé. Il est également important de souligner le fait que seq2seq n’est pas capable d’obtenir des données de la part de ressources externes. De plus, le savoir obtenu durant la phase d’apprentissage peut ne pas être appliqué à d’autres domaines et demande beaucoup de temps et de données pour apprendre le nouveau modèle. En outre, le modèle a tendance à donner des réponses courtes comme « oui » ou « non ». Dans les scénarios, lorsque l’utilisateur se retrouve inondé avec trop de données et trop peu de temps pour les comprendre, les solutions existantes ne se révèlent pas nécessairement efficaces.
Pour illustrer ce type de scénario, nous avons le système de synthétisation de texte pour les médecins où l’exactitude et la rapidité sont leurs principaux soucis. Il est également important de réaliser que tous les agents conversationnels décrits précédemment sont des agents réactifs, ce qui rend impossible l’implémentation d’analyses prescriptives. Pour résumer, nous pouvons dire qu’il est particulièrement intéressant de développer un agent qui :
- Est doté de connaissances dans un domaine spécifique
- Est doté de bon sens
- Ne nécessite pas l’aide d’un humain
- Ne nécessite pas un large réseau de neurones pour le réentrainement à chaque itération
- Suggère des options de décisions
Traduit de l’anglais, consultez la version originale ainsi que les références utilisées dans cet article Partie 1 et Partie 2.
Ecrit par Alibek Jakupov.