Architecture d’un système de dialogue moderne

Converser avec une véritable machine intelligente tenait de la science-fiction il y a quelques années. Aujourd'hui même s'il reste encore un long chemin à parcourir pour atteindre ce stade, la démocratisation de diverses technologies de traitement du langage naturel nous en rapproche chaque jour...

Introduction

L’humanité a longtemps été passionnée par la création de machines intelligentes pouvant librement communiquer avec nous dans notre langue. Même une perspective beaucoup moins ambitieuse, comme la communication en langage humain avec des appareils électroniques sur une tâche spécifique, est très enthousiasmante.
Et s’il reste encore un long chemin à parcourir pour atteindre le premier objectif, le second devient moins illusoire avec l’avènement et l’avancement de diverses technologies de traitement du langage naturel (NLP).
La plupart d’entre nous ont utilisé au moins une fois dans nos vies (ou utiliserons sans aucun doute à l’avenir) certaines des technologies NLP suivantes: Google Services (Recherche, Traduction, Voix, Google Home, etc.), Siri d’Apple, Cortana de Microsoft, OpenEars, etc.

Les systèmes communiquant directement avec les utilisateurs dans une langue naturelle partagent une caractéristique commune: ils représentent une forme de système de dialogue. Ce système peut être plus ou moins sophistiqué; il peut utiliser différents modes de communication (oral, écrit, graphique, etc.), mais le processus est toujours le même: il prend une entrée (une commande/requête/question) de l’utilisateur en langage naturel, le traite et fournit une réponse, en langage naturel également.

Comment ça marche ?

Les systèmes de dialogue modernes ont une architecture assez standard, qui comprend cinq composants principaux. Le signal audio émis par l’utilisateur est traité par un module de reconnaissance vocale (SR) qui produit une transcription sous la forme d’une chaîne de mots; la transcription est transmise à un module de compréhension de la parole (langage parlé) qui extrait la signification de l’entrée de l’utilisateur en marquant la transcription avec des concepts sémantiques («date», «lieu», «action», etc.).

L’ensemble des concepts doit être bien défini à l’avance et le « tagueur » SLU entraîné sur des données spécifiques annotées avec ces concepts et adapté à celles-ci. La représentation sémantique de l’entrée est ensuite transmise au gestionnaire de dialogue (DM) qui détermine le type de l’énoncé (demande, annulation, etc.), enregistre les unités d’information passées avec l’entrée, et construit une sortie correspondante, habituellement dans le même format que l’entrée, par exemple un ensemble ordonné / non ordonné de concepts sémantiques.
Ainsi, à la fois l’entrée et la sortie du DM utilisent la même représentation sémantique. Après cela, le DM transmet la sortie à un module de génération de langage naturel (NLG), qui génère une réponse système dans un langage humain à partir de l’ensemble des concepts sémantiques fournis par le gestionnaire de dialogue. Enfin, la sortie du composant NLG (sous la forme d’une phrase en langage naturel) est envoyée à un synthétiseur vocal (TTS) qui la convertit en un signal audio à retransmettre à l’utilisateur.

La technologie des composants des systèmes de dialogue

À ce jour, presque tous les composants des systèmes de dialogue ont adopté des méthodes statistiques et les utilisent largement comme modèles de base. Le module SR a été le premier à adopter une approche entièrement basée sur les données: avec l’avènement des modèles de Markov cachés à la fin des années 60, les systèmes SR, précédemment basés sur des règles, qui utilisaient des modèles de mots, et qui recherchaient des modèles de sons dans les fichiers d’entrée, sont passés d’une capacité de reconnaissance de quelques centaines de milliers de mots, à un nombre potentiellement illimité de mots. En synthèse vocale, les synthèses concaténative* et formante** ont été suivies par la synthèse basée sur les modèles de Markov cachés (HMM) où le spectre de fréquence, la fréquence fondamentale et la durée de la parole sont modélisés simultanément par les HMM. Les formes d’onde de la parole sont ensuite générées à partir des HMM eux-mêmes en fonction de l’estimation du maximum de vraisemblance.

Dans la reconnaissance de langage, les modèles HVS (Hidden Vector State) et les modèles CRF ultérieurs ont surpassé les méthodes manuelles précédentes, non seulement en termes de précision, mais aussi en termes de réduction des efforts et des ressources humaines. Dans la gestion des dialogues, la création manuelle de règles de décision complexes ont été remplacées par l’apprentissage par renfort (Processus de décision de Markov, processus dans lequel chaque DM doit sélectionner une action sur la base de l’état et les récompenses possibles de chaque action) et en acquérant des stratégies de prise de décision à partir de l’observation et de l’imitation des humains. Jusqu’à récemment, la génération de langage naturel utilisait principalement des modèles codés à la main, qui représentaient des phrases modèles, contenant éventuellement des valeurs variables, et qui étaient mappés à une réalisation sémantique particulière. Ces modèles sont encore largement utilisés, en particulier dans la génération de la langue écrite, ainsi que pour des tâches spécifiques liées à un domaine et qui ne nécessitent pas de variabilité ou de flexibilité dans leur sortie. Les modules NLG parlés plus dynamiques nécessitaient eux une autre approche, permettant non seulement plus de flexibilité, mais également moins coûteuse en termes de temps de développement et de ressources. À cet égard, les paradigmes de génération de langage axés sur les données semblent particulièrement prometteurs.

Systèmes à base de règles ou Machine Learning

Les modèles orientés données (Machine Learning) se basent sur un corpus existant d’exemples pour apprendre comment traiter les futurs inputs. Construire un tel système demande donc souvent une grande quantité de données d’exemple, qui n’est pas toujours disponible. De plus, la précision de ces systèmes dépend souvent de la quantité de ces données (dans de nombreux cas, la performance est directement proportionnelle à la taille du corpus d’exemples). Construire de telles ressources est souvent trop coûteux et force les développeurs à opter pour des systèmes à base de règles plus simples à mettre en oeuvre. Dans les systèmes à base de règles, toutes les décisions, opérations et interactions sont gérées par un ensemble de règles définies à l’avance, et encodées directement dans le modèle. Le problème est que ces règles ne couvrent pas forcément tous les scénarios. Augmenter le champ couvert peut engendrer des centaines de nouvelles règles, et un nombre plus important encore de lignes de code. La charge de travail et le temps passé à rédiger les nouvelles règles peut rapidement dépasser le temps nécessaire à la création d’un corpus d’exemple pour un système de machine learning. À l’inverse, les modèles utilisés par les systèmes de machine learning peuvent apprendre des données qu’ils traitent dans leurs opérations. De ce point de vue, ces systèmes ne nécessitent pas de maintenance constante, et leur amélioration avec le temps s’effectue automatiquement, et d’une certaine manière, naturellement.

Conclusion

Les systèmes de machine learning permettront-ils de créer des systèmes de dialogue évolutifs si performants, qu’il sera un jour impossible de distinguer d’un interlocuteur humain ? L’avenir nous le dira. Pour l’instant, nous pouvons seulement affirmer qu’un long chemin a été parcouru depuis les premiers « Chatbots » basiques et les systèmes de dialogues complexes, capables de s’adapter et d’apprendre, comme le font les humains.

*Synthèse concaténative – Modèle TTS qui utilise des segments concaténés de discours (humain) enregistré.
**Synthèse formante – Modèle TTS qui couple la synthèse additive et un modèle acoustique pour produire des pistes vocales de discours artificiel.
sources :
Data-driven natural language generation using statistical machine translation and discriminative learning, E.Manishina, 2016, UAPV.

Inbenta est un leader dans les technologies innovantes de recherche pour les entreprises. Nous mettons en oeuvre les dernières avancées en terme de traitement automatique du langage afin d’améliorer la qualité de service pour les entreprises et leurs clients.

Intéressés ? Notre team d’experts est à votre service pour vous créer une offre personnalisée.

PLANIFIER UNE DÉMO