Auto-correction dans un analyseur neuronal par transitions : un comportement factice ? (Self-correction in a transition-based neural parser : a spurious behaviour ?) (2022)

Abstract: Cette étude explore la capacité d’auto-correction dans le cas d’un analyseur neuronal par transitions. Nous définissons un oracle dynamique pour le système étudié lui apprenant à s’auto-corriger. Les performances du modèle restent identiques à celles du modèle de base, qui ne s’auto-corrige pas. En effet, il y a à peu près autant de « corrections » justes que de fautives. Les erreurs finales commises par les deux modèles sont aussi similaires. Nous montrons néanmoins que beaucoup des corrections effectuées par le modèle avec oracle dynamique coïncident avec des cas difficiles à gérer par les analyseurs automatiques. Le problème d’apprentissage d’un comportement efficace d’auto-correction retombe dans un traitement efficace de ces cas difficiles.

## introduction dans cet article, nous parlons d'auto-correction pour désigner l'action d'un agent modifiant le résultat de ses propres décisions antérieures. elle se produit naturellement chez les humains dans leur traitement du langage naturel. par exemple, en lisant une phrase du type garden path telle que « the horse raced past the barn fell. » @xcite , un locuteur natif de l'anglais pourrait intuitivement analyser les premiers mots de la phrases en pensant que « raced » est le prétérit du mot « race » et le considère comme verbe principal de la phrase. en réalité, il s'agit de son participe passé et le verbe principal est « fell ». le locuteur peut très rapidement se rendre compte de ses erreurs, car le mot « fell » ne peut s'insérer dans cette analyse. il peut ensuite se corriger, comme illustré dans la figure 1, afin d'obtenir une analyse cohérente. the horse raced past the barn fell . le cheval doubler_participe au-delà-de la grange tomber_preterit . le cheval conduit au galop au-delà de la grange tomba . les systèmes de traitement automatique des langues (tal) actuels ne sont, dans leur écrasante majorité, pas conçus de manière à pouvoir s'auto-corriger. de fait, l'incapacité à s'auto-corriger est particulièrement problématique pour un système prenant des décisions de manière séquentielle, où une décision à un temps t dépend des décisions précédentes : lorsqu'il effectue une erreur à un certain point, il ne peut par la suite pas la rectifier et cette erreur initiale l'amène souvent à commettre d'autres erreurs. la capacité d'auto-correction suggère donc une piste de recherche contre ce phénomène bien connu, la propagation d'erreurs @xcite . @xcite se servent de la technique du raffinement itératif (iterative refinement) pour la tâche d'étiquetage des rôles sémantiques (semantic role labeling, srl). la même technique a aussi été employée par @xcite pour la traduction automatique. concrètement, une prédiction initiale est faite avec un modèle de base. ensuite, un modèle de raffinement est utilisé, qui prend en entrée la phrase et la prédiction du modèle de base, et qui calcule une nouvelle prédiction. soit cette prédiction est considérée comme finale, soit elle est réutilisée à la place de la prédiction du modèle de base pour l'itération suivante. nous étudions dans cet article l'auto-correction dans le cadre des tâches d'étiquetage morphosyntaxique et d'analyse sémantique en dépendances. plus précisément, nous partons de l'analyseur présenté par @xcite , que nous nommerons mti-tagsynsem. à notre connaissance, cela est le seul système par transition qui permet l'auto-correction. contrairement à ce qui se passe dans le cas des systèmes par raffinement itératif, l'auto-correction est partie intégrante du système de transition de mti-tagsynsem : durant l'analyse, il est capable de revenir à tout moment sur ses prédictions précédentes pour les modifier. alors que bernard (2021) a étudié l'impact d'une analyse jointe des tâches visées par rapport à une analyse séquentielle, la présente étude porte spécifiquement sur l'auto-correction réalisée en pratique par ce système. mti-tagsynsem, comme son nom l'indique, implémente un paradigme dit d'intégration de tâches (multiple tasks integration) et effectue une analyse à trois niveaux linguistiques : l'étiquetage morpho-syntaxique (tag) l'analyse syntaxique en dépendances (syn) et l'analyse sémantique en dépendances (sem). nous expliquons plus bas ce qu'est la mti. pour une première étude sur la capacité d'auto-correction de ce système, nous choisissons uniquement deux parmi ces tâches : l'étiquetage morpho-syntaxique et l'analyse sémantique en dépendances 1 . ce choix repose sur le fait que l'analyse sémantique est une tâche plus difficile et nous attendons donc des résultats plus intéressants en correction sur cette tâche. nous référons au système étudié dans cet article par mti-tagsem. une pratique courante consiste à effectuer l'analyse du texte à différents niveaux de manière séquentielle, typiquement en commençant par un étiquetage morpho-syntaxique, puis une analyse sémantique. on parle de chaîne de traitement (pipeline). une autre possibilité est d'entraîner un système multi-tâche (multitask ; @xcite , qui mène l'analyse à différents niveaux de manière indépendante mais avec une partie de ses paramètres partagés. l'idée principale de l'intégration de tâches est que l'analyse se fait parallèlement sur tous les niveaux modélisés sans contraintes d'ordre d'exécution. de plus, chaque décision du système repose sur l'ensemble des annotations prédites jusqu'alors. concrètement, l'analyse se fait en plusieurs étapes : à chaque étape, pour chaque token de la phrase, une action est choisie depuis un ensemble d'actions (intégrant tous les niveaux d'analyse). les actions pour le token de position i peuvent être de type « assigner l'étiquette morpho-syntaxique t à i », « ajouter une dépendance sémantique de j vers i avec l'étiquette l », et on a également l'action spéciale « ne rien faire » sur ce token. nous détaillons toutes les actions possibles dans mti-tagsem un peu plus bas dans cette section. comme mentionné plus haut, il n'y a pas de contraintes sur l'ordre d'exécution de ces actions. par conception, il est possible que le système revienne à tout moment sur les prédictions effectuées précédemment dans l'analyse. en effet, si le système choisit une action qui ajoute une annotation incompatible avec une annotation précédemment prédite, celle-ci sera toujours écrasée par la nouvelle annotation 2 . il s'agit alors là d'une correction (qu'elle soit juste ou fautive) 3 . cependant, dans une étude préliminaire, nous avons constaté que le système ne réalisait aucune correction. deux faits seraient conjointement à l'origine de ce phénomène : i) l'usage d'un oracle statique pour l'entraînement du système et ii) le système de transition, qui ne permet que des corrections très limitées en sémantique. l'usage d'un oracle statique foot_0 dans notre expérience, mti-tagsem effectue un entraînement supervisé classique. cet entraînement repose sur un oracle statique, qui converti les annotations de référence en séquences d'actions que le modèle sera entraîné à reproduire. comme il n'y a pas d'erreurs dans les séquences de l'oracle, et par conséquent aucune correction, le système n'apprend jamais à faire de corrections. en conséquence, nous remplaçons l'oracle statique par un oracle dynamique @xcite . l'idée centrale de l'oracle dynamique est qu'à chaque étape d'analyse, celui-ci prend en compte la structure d'annotations actuelle ainsi que les annotations de références et calcule un ensemble d'actions possibles. les actions possibles sont essentiellement les actions qui ajoutent les annotations de référence manquantes. si le système de transition le permet, comme dans notre cas, l'oracle dynamique inclut aussi des actions correctives si la structure d'annotations actuelle comporte des erreurs. par ailleurs, l'usage d'un oracle dynamique a un autre avantage. traditionnellement, lorsque l'on entraîne un système avec oracle statique, quelles que soient les prédictions du système, on n'applique que les actions de l'oracle. par conséquent, le système apprend à prédire des actions en se basant uniquement sur des annotations de référence. on parle de « teacher forcing » pour désigner l'exposition forcée aux données de référence durant l'entraînement. l'usage du « teacher forcing » tend à accélérer la convergence de l'apprentissage. cependant, durant l'inférence, le système doit se reposer sur ses propres prédictions, et ce décalage entre entraînement et inférence donne souvent lieu à des erreurs @xcite . en inférence, si le système effectue une prédiction incorrecte foot_1 , il se retrouve dans une situation non vue à l'apprentissage, ce qui vraisemblablement perturbe l'inférence des actions suivantes @xcite . une pratique courante contre ce problème est l'échantillonage programmé (scheduled sampling ; @xcite . il s'agit d'alterner entre les actions données par l'oracle et les décisions du système durant l'entraînement afin de s'écarter intentionnellement des situations idéales. naturellement, il est plus approprié d'utiliser un oracle dynamique pour faire de l'échantillonnage programmé : celui-ci est capable de calculer les actions possibles à chaque étape en fonction de l'évolution de l'analyse et donne des actions correctives lorsqu'une erreur est effectuée. suivant @xcite , nous alternons les actions effectuées durant l'entraînement entre les actions prédites par le système et celles calculées par l'oracle dynamique selon une probabilité q que nous régularisons au cours de l'entraînement foot_2 . ainsi, nous encourageons le système à explorer ses propres décisions, au lieu de lui imposer toujours les actions de l'oracle. le système de transition nous détaillons ici l'inventaire des actions possibles du système mtitagsem. pour un token (de position i dans la phrase), le système peut choisir : comme nous l'avons mentionné au début de cette section, lorsqu'une action choisie ajoute une annotation incompatible avec une annotation existante, cette dernière est effacée. par conséquent, la possibilité des corrections dépend de la façon dont on définit les incompatibilités. en sémantique, le seul cas où il peut y avoir une correction est lorsque l'action choisie ajoute une dépendance qui a les mêmes dépendant et gouverneur qu'une dépendance existante, mais une étiquette différente. les possibilités d'auto-correction en sémantique sont donc très limitées. il est en particulier impossible de supprimer une dépendance. afin de donner à mti-tagsem une capacité d'auto-correction complète en sémantique, nous ajoutons dans l'inventaire des actions un nouveau type d'actions spéciales, [erase], qui a pour effet de supprimer une annotation précédemment prédite. par exemple, l'action sem-j [erase] choisie pour un token à position i supprime la dépendance sémantique (quelle que soit la relation) depuis le token à position j (gouverneur) vers le token actuel à position i (dépendant), si une telle dépendance a été prédite précédemment. sinon, s'il n'y a pas de dépendance depuis j vers i, l'action sem-j [erase] sera simplement ignorée foot_4 . bien que cette action soit conçue pour répondre au besoin de l'analyse sémantique, afin que les possibilités de correction soient les mêmes dans les deux cas (dans le sens où toute annotation est supprimable), nous autorisons aussi l'usage des actions [erase] en étiquetage morpho-syntaxique. de plus, les actions [erase] sont autorisées uniquement lorsque l'oracle dynamique est utilisé (l'oracle statique ne produirait de toute manière jamais de séquences d'entraînement contenant ces actions). remarquons aussi que dans le cas où l'on n'utilise pas d'actions @xcite , les corrections possibles sont faites par écrasement : au sein d'une même étape, une action nouvellement choisie écrase éventuellement une ancienne. avec les actions @xcite , un autre type de corrections est possible : dans une certaine étape, une annotation est supprimée pour un token ; ensuite, une nouvelle annotation (potentiellement identique à celle qui vient d'être supprimée) est rajoutée dans une étape plus tard foot_5 . ## expériences nous avons repris les mêmes données que celles utilisées par bernard (2021), c'est-à-dire les données anglaises de semeval 2015 task 18 @xcite . l'ensemble d'entraînement contient 33964 phrases et l'ensemble de développement 1692. en ce qui concerne les annotations en sémantique, nous travaillons avec les graphes orienté sans cycle. dans cette étude, nous avons repris uniquement le formalisme delph-in mrs-derived bi-lexical dependencies (dm ; @xcite . les annotations syntaxiques sont sous la forme de dépendances de stanford basic @xcite , obtenues par conversion des arbres de constituants du penn treebank (ptb ; @xcite . afin de mieux tirer parti du paradigme mti, bernard (2021) effectue un entraînement principal avec l'apprentissage par renforcement, précédé d'un pré-entraînement supervisé. cependant, pour une étude d'auto-correction avec oracle dynamique, nous limitons nos expériences et discussions sur l'apprentissage supervisé uniquement. la recherche d'hyperparamètres se fait en 20 exécutions (entraînement avec des hyperparamètres différents + évaluation) chacun pour le modèle avec oracle statique et pour le modèle avec oracle dynamique. ensuite, nous avons choisi un ensemble d'hyperparamètres ayant la meilleure f1 en sémantique pour chaque type d'oracle. finalement, pour chaque type d'oracle, nous effectué indépendamment trois exécutions (entraînement + évaluation) avec les mêmes (meilleurs) hyperparamètres. sauf indication contraire, les statistiques que nous reportons ci-après sont la moyenne des trois exécutions. les écarts types sont aussi fournis entre parenthèses. ## auto-correction en fonction des difficultés linguistiques dans cette section, nous présentons plusieurs analyses sur le comportement auto-correctif du modèle avec oracle dynamique. notre principal objectif est de trouver les difficultés linguistiques derrière les corrections effectuées par le modèle. en particulier, nous nous intéressons à un type d'ambiguïté dans le langage naturel concernant l'étiquetage morpho-syntaxique et à l'effet de la longueur de dépendance sémantique sur l'analyse sémantique. ## cohérence des erreurs entre les modèles nous avons vu dans la section 3 que le modèle avec oracle dynamique s'auto-corrige, bien que ces corrections ne permettent pas d'avoir de meilleures performances par rapport au modèle avec oracle statique. la question qui se pose maintenant est la suivante : si les différentes stratégies d'analyse n'ont pas d'impact sur la performance du système, est-ce qu'il y a une différence dans les prédictions, c'est-à-dire, dans les erreurs que font les deux modèles ? afin d'y répondre, nous proposons ici deux mesures de la cohérence des erreurs présentes dans les prédictions des deux modèles. la première concerne la cohérence des faux négatifs (c'est-à-dire, les annotations de référence qui ne sont prédites ni par l'un, ni par l'autre). la seconde concerne la cohérence des faux positifs (c'est-à-dire, les annotations incorrectes qui ont été prédites par les deux modèles). pour calculer la cohérence des faux positifs, nous remplaçons tout simplement f dans les équations 2 et 3 par une fonction g qui renvoie l'ensemble des annotations incorrectes prédites par l'exécution x du modèle x. le tableau 4 donne les scores de cohérence des faux négatifs et des faux positifs intra-modèles (entre les modèles avec oracle statique : intra-os ; entre les modèles avec oracle dynamique : intra-od) et inter-modèles (entre les modèles avec oracle statique et les modèles avec oracle dynamique : os-od). ces résultats indiquent que l'usage de l'oracle dynamique n'a pas apporté de vrais changements dans le fonctionnement du système, les scores inter-modèles étant similaires aux scores intra-modèles. il semble donc que le système n'a appris qu'un comportement d'auto-correction factice, dans le sens où ses corrections n'ont ni d'effets sur la performance du système, ni d'impacts sur les erreurs commises dans ses analyses. néanmoins, les scores intra-od sont supérieurs ou égaux aux scores intra-os, ce qui indique que l'entraînement serait plus stable. intra-os intra-od os-od cohérence des faux négatifs étiquetage morpho-syntaxique 67,0% 67,0% 66,3% analyse de dépendances sémantiques 64,1% 65,0% 64,1% cohérence des faux positifs étiquetage morpho-syntaxique 62,5% 69,7% 67,5% analyse de dépendances sémantiques 50,2% 67,5% 62,5% en vue de ce phénomène, nous formulons l'hypothèse suivante : le modèle est peut-être assez puissant pour apprendre à associer directement l'entrée et la sortie sans avoir à s'auto-corriger. la capacité importante du modèle est associée à la taille du réseau. nous pensons qu'en réduisant la capacité du modèle, en réduisant sa taille, l'auto-correction fera une différence. nous réservons cette piste d'exploration pour des travaux futurs.