NLP
27/02/2020

Labellisation : quels outils statistiques pour réduire le temps d’annotation ?


Temps de lecture : 11 minutes
Quantmetry.com : Labellisation : quels outils statistiques pour réduire le temps d’annotation ?

Thibaud RealAntoine Isnardy / Temps de lecture : 8 minutes.

La performance de nombreux algorithmes d’apprentissage automatique dépend de la qualité et de la quantité des données traitées. Lorsque ces données ne sont pas déjà labellisées, il est parfois nécessaire qu’un expert annote les exemples les uns après les autres. Ce processus se révèle souvent long et fastidieux. A titre d’exemple, deux ans et demi ont été nécessaires pour annoter les premières images (3 millions) du corpus ImageNet. Tout projet ne dispose pas d’autant de moyens (temporels et/ou financiers).

Quantmetry s’intéresse aux enjeux induits par la labellisation, et plus particulièrement dans un contexte de Traitement Automatique du Langage (TAL ou NLP). Plusieurs enseignements ont déjà été partagés dans cet article. Le présent article traite toujours de cette question de la labellisation, mais sous un angle davantage quantitatif et statistique. Aussi, sont étudiées ici quelques stratégies permettant de réduire l’effort d’annotation. Ces dernières peuvent être regroupées en plusieurs objectifs complémentaires :

  • Réduire le nombre d’exemples qu’il est nécessaire d’annoter pour obtenir un certain niveau de performances via l’active learning, dont proportion, une approche construite par Quantmetry et produisant des résultats intéressants.
  • Accélérer le processus d’annotation en réduisant le temps que va passer un.e « annotateur.rice » à labelliser chaque exemple via l’auto-labelling.
  • S’adapter à un contexte changeant en récoltant des labels rafraîchis.

Stratégies pour réduire l’effort d’annotation

Les campagnes de labellisation sont souvent menées sous contraintes de ressources limitées (temps, humain), et il n’est donc pas possible d’annoter toutes les données. Ainsi, quelle(s) stratégie(s) adopter afin d’obtenir des données annotées les plus qualitatives possibles, et qui viendront par la suite alimenter un modèle d’apprentissage automatique ? Les sections suivantes se proposent d’explorer plusieurs alternatives.

Randomisation

Il est contre-productif d’annoter des données similaires. Le cas de données similaires survient par exemple dans des contextes où la temporalité joue un rôle clé (dataset de news, demandes d’attestations saisonnières comme des attestations scolaires à la rentrée des classes, …). Considérées dans leur ordre naturel (ou d’arrivée), ces données (i) spécialiseraient un modèle d’apprentissage automatique sous-jacent à un périmètre restreint, et le priveraient en retour de son caractère généralisable ; (ii) susciteraient l’ennui d’annotateur.rices contraints de labelliser des informations trop semblables. Une première piste simple consiste donc à mélanger les données afin d’obtenir un dataset « équilibré » : c’est la randomisation.

Active learning
Principe

Une seconde alternative consiste à utiliser l’Active Learning. L’idée centrale de l’active learning est qu’un algorithme pourrait atteindre des performances raisonnables avec moins de données labellisées, si les données à annoter – et à partir desquelles il apprend, sont choisies judicieusement. L’active learning pool-based – que nous étudions ici – est un processus itératif, décrit en Fig 1. A noter qu’il existe d’autres méthodes d’Active Learning (stream-based par exemple) que nous ne détaillerons pas dans cet article.

Fonctionnement de l’active learning

Fig 1. Fonctionnement de l’active learning

 

Stratégies de sélection

L’enjeu majeur de l’active learning réside donc dans la phase de sélection des exemples parmi les données non labellisées : il faut les sélectionner de sorte que l’algorithme apprenne avec le moins de labels possibles. Nous présentons ci-dessous deux stratégies de sélection.

Least confident

Une première stratégie intuitive consiste à sélectionner les instances à labelliser pour lesquelles l’algorithme est le moins certain de sa prédiction. Il s’agit de ne pas continuer à labelliser des données pour lesquelles l’algorithme est déjà performant, ce qui entraînerait au mieux une perte de temps et au pire du sur-apprentissage, mais – à l’image du boosting – de se concentrer de façon itérative sur les instances difficiles à prédire. Plus précisément, cela revient à faire labelliser les instances qui possèdent la probabilité la plus faible associée au label attribué (least confident) : x_{LC}^* = \underset{x}{\operatorname{argmax}} \ 1 - P_{\theta}(\hat{y} | x) \hat{y} = \underset{y}{\operatorname{argmax}} \ P_{\theta}({y} | x) .
Avec une telle méthode cependant, la distribution des autres labels n’est pas prise en compte. Une méthode dérivée est margin sampling : x_M^* = \underset{x}{\operatorname{argmin}} \ P_{\theta}(\hat{y_1} | x) - P_{\theta}(\hat{y_2} | x) \hat{y_1} et \hat{y_2} sont les deux labels les plus probables. Cette méthode a donc pour objectif de corriger le défaut précédemment soulevé de least confident en y ajoutant la probabilité a priori du deuxième label le plus probable. Il s’agit de sélectionner les exemples pour lesquels on est le plus proche de la frontière de décision ; cette frontière de décision correspond aux régions de l’espace qui délimitent les différentes classes, et où l’algorithme a le plus de chance de se tromper. Le lecteur intéressé pourra se référer à l’article suivant pour plus de détails sur les différentes approches concernant l’active learning.

Proportion

Un avantage intéressant de cette méthode est qu’elle ne dépend pas de l’algorithme utilisé, mais uniquement des données.

Les stratégies introduites dans le paragraphe précédent dépendent de l’algorithme d’apprentissage utilisé (et en particulier de ses probabilités de sortie). Aussi, lors de l’utilisation successive d’un premier algorithme pour la phase de labellisation, puis d’un second – entraîné sur les exemples acquis grâce au processus d’active learning, les gains et la généralisation observés grâce audit active learning ne sont pas toujours « transférés » du premier au second algorithme (voir cet article notamment). C’est cette observation qui nous a poussés à créer une autre stratégie basée sur la distribution des données, plutôt qu’une stratégie de sélection dépendant d’un algorithme, et résumée comme suit :

  • Nous avons représenté les phrases dans un espace vectoriel (plusieurs alternatives implémentées dont représentations denses et contextuelles ou TF-IDF), qui permet d’associer à chaque document un vecteur,
  • Nous avons ensuite calculé la matrice de similarité entre chaque phrase via une mesure de similarité cosinus.
  • Enfin, une procédure de clustering nous a permis de regrouper les phrases qui se ressemblent à partir de la matrice précédente.
  • Lors de la phase de sélection, nous avons choisi de manière aléatoire dans chaque cluster un nombre de phrases proportionnel à la taille du cluster, et ce afin de conserver les proportions de l’espace.

Un avantage intéressant de cette méthode est qu’elle ne dépend pas de l’algorithme utilisé, mais uniquement des données. Par conséquent, les gains associés seront observables sur n’importe quel algorithme, si jamais on décide de changer d’algorithme plus tard par exemple.

Auto labelling

La section précédente s’attachait à réduire le nombre de données à labelliser. Une autre méthode pour réduire l’effort d’annotation est de réduire le temps passé à effectuer chaque annotation. C’est l’objectif de l’auto-labelling, qui permet de présenter à l’annotateur.rice des données pré-labellisées par un algorithme. En pratique, au bout de n données annotées, l’algorithme s’entraîne sur les données labellisées et effectue des prédictions sur des données non labellisées. Lorsque les nouvelles données sont présentées à l’annotateur.rice, l’algorithme propose alors des suggestions que l’annotateur.rice peut accepter ou modifier.

Cette méthode possède deux intérêts majeurs :

  • Gagner du temps,
  • Permettre à l’annotateur.rice de se rendre compte de la performance de l’algorithme « en direct ».

Implémentation et application au NER

Un mot sur le NER

La reconnaissance d’entités nommées (NER) est une tâche classique du traitement automatique du langage. Elle consiste à détecter des objets de sens dans un texte, comme par exemple des lieux, personnes, entreprises, montants… Si les cas d’usage sont nombreux, nous pouvons citer l’extraction d’informations dans des fiches patients (avancement d’une maladie, taille de tumeur, …), ou encore l’anonymisation de documents. La NER constitue donc un bon candidat pour l’application de techniques statistiques au cours du processus de labellisation.

Différents modèles de NER existent. Des modèles historiques comme les Conditional Random Fields (CRF – une classe de modèles statistiques prenant en compte l’interaction entre variables séquentiellement voisines) permettent d’obtenir des résultats intéressants avec un effort d’implémentation raisonnable. Ils ont par ailleurs l’avantage par rapport à d’autres modèles plus récents d’être rapides à entraîner. Pour plus de théorie, se référer à l’excellent cours de Slim Essid. Des méthodes plus récentes – à l’état de l’art – permettent d’obtenir des performances décentes avec peu de données d’entraînement. Toutes reposent sur du transfer learning. Parmi les meilleurs modèles actuels, BERT (Bidirectional Encoder Representations from Transformers) et ses dérivés sont parmi les plus populaires. On pourra se référer à cet article pour plus de détails sur leur utilisation. A noter que deux versions pré-entrainées sont désormais disponible en Français (non testées ici cependant) : CamemBERT et FlauBERT.

Quantmetry s’efforce d’utiliser des solutions open source dans un effort de démocratisation et de transparence ; aussi, nous avons donc décidé de nous appuyer sur Doccano, une interface de labellisation open-source, intuitive et ergonomique

Tooling

Différents outils existent pour labelliser des données textuelles. Certains outils payants comme Prodigy intègrent des stratégies d’active learning qui ne sont pas décrites explicitement et que l’on ne peut pas contrôler. Pour plus de détails sur les solutions existantes, le lecteur curieux peut se référer à cet article. Quantmetry s’efforce d’utiliser des solutions open source dans un effort de démocratisation et de transparence ; aussi, nous avons donc décidé de nous appuyer sur Doccano, une interface de labellisation open-source, intuitive et ergonomique. L’interface est visible en Fig 2. Nous avons par ailleurs amélioré cet outil en y ajoutant les techniques évoquées dans la partie précédente, permettant de réduire le temps d’annotation.

Présentation de Doccano, un outil de labellisation open source.

Fig 2. Doccano, un outil de labellisation open source. Source: https://github.com/doccano/doccano

 

Active Learning : les résultats

Nos expérimentations ont été menées sur le dataset CoNLL-2003. Il s’agit d’un dataset standard en NER, et qui comporte les entités suivantes : Personne, Lieu, Organisation, MISC. Notre objectif est d’appliquer à ce dataset les différentes stratégies d’active learning introduites plus haut :

  • Normal : aucun traitement appliqué aux données, la labellisation est faite dans l’ordre naturel d’arrivée,
  • Random : sélection aléatoire des instances à labelliser,
  • Least confident : sont labellisées les instances les plus incertaines pour le modèle,
  • Proportion : la labellisation est effectuée de sorte que les données annotées conservent les proportions de l’espace formé par l’ensemble des données disponibles.

Nous avons combiné ces stratégies avec différents algorithmes permettant de résoudre la tâche de NER : CRF simple, Bert embedding + CNN + LSTM, Bert embedding + BiLSTM + CRF. A chaque itération, on choisit les 300 prochaines phrases à annoter selon une stratégie d’active learning. Concernant le CRF on réentraîne à chaque fois le modèle from scratch sur l’ensemble des données labellisées disponibles. Pour les modèles de deep learning, on utilise le modèle entraîné lors de la dernière itération et on le réentraîne, avec un faible nombre d’epochs, sur les nouvelles données labellisées ainsi qu’un sous-ensemble des données précédemment labellisées (comme décrit dans cet article).

Nous analysons dans un premier temps la performance stricte de ces approches. La performance est ici vue comme le nombre d’exemples à annoter pour atteindre une performance raisonnable. La Fig 3 nous montre que le seul fait de sélectionner des phrases de manière aléatoire (stratégie random) permet d’obtenir des gains intéressants par rapport à l’ordre normal (on enlève en effet un biais intrinsèque à l’ordre naturel des données). Par ailleurs, avec le CRF simple, on observe que la stratégie least confident permet d’obtenir des gains de performance notoires par rapport à une sélection aléatoire des données. A noter que la sous-performance de least confident appliquée au BiLSTM-CRF peut s’expliquer par la sélection d’outliers, comme mentionné dans la littérature. Enfin, la stratégie proportion semble intéressante dans le cas des réseaux de neurones. L’importance de la diversité des données d’entraînement sur des modèles BERT-based est souvent soulignée (voir cette conférence de l’un des auteurs de CamemBERT) ; c’est précisément l’effet escompté avec des stratégies comme proportion.

Courbes résultats représentant le F1-score obtenu enfonction du nombre de phrases labellisées.

Fig 3. Courbes représentant le F1-Score obtenu en fonction du nombre de phrases labellisées, la stratégie d’active learning employée, et l’algorithme d’apprentissage sous-jaccent.

 

Nous présentons maintenant ces résultats sous un angle pratique, c’est-à-dire en se mettant dans la situation d’un atelier de labellisation impliquant des acteurs métiers. La vidéo ci-dessous simule une telle situation – fictive, et montre un exemple de l’utilisation de l’active learning et de l’auto labelling en temps réel, couplés à l’outil d’annotation open source Doccano (amélioré par Quantmetry pour les besoins de cette étude).

 

La Table 1 nous montre que les techniques de transfer learning permettent d’obtenir des résultats très intéressants après seulement 900 phrases labellisées (les datasets de NER possèdent généralement de l’ordre de 10 000 phrases). Cependant, le réentraînement est plus long, et il est nécessaire de disposer de davantage de puissance de calcul. Par conséquent, si l’active learning est réalisé au cours d’une séance de labellisation, alors il est préférable d’utiliser un CRF dont le temps d’entraînement est quasi instantané. Une alternative serait de réaliser le processus d’active learning entre deux séances de labellisation, et dans ce cas, il est alors recommandé d’utiliser des algorithmes s’appuyant sur des algorithmes davantage à l’état de l’art, qui nécessitent un temps d’entraînement plus long, mais qui permettent d’obtenir des performances élevées assez rapidement.

 

Table 1 – Différentes stratégies d’active learning dans un contexte d’atelier de labellisation. En comparaison, un client de Quantmetry a labellisé 900 phrases en 3h20, avec 3 annotateurs.trices.

 

Pour conclure, cette étude nous a permis de comparer plusieurs stratégies de sélection dans le processus d’active learning – dont proportion que nous avons créée from scratch – appliquées à la tâche de NER, et couplées à l’auto labelling. L’auto labelling, disponible après une (ou quelques) itération(s), contribue à réduire significativement le temps passé à labelliser, pour un effort d’implémentation raisonnable. Il s’agit donc d’une feature essentielle lors de tout atelier de labellisation. Enfin, si les stratégies de sélection étudiées permettent d’obtenir de meilleurs résultats qu’une sélection aléatoire des données, l’incrément de performance semble faible au regard de l’effort d’implémentation consenti. Ces résultats corroborent finalement plusieurs discussions sur le sujet (voir par exemple les problèmes de transférabilité liés à l’active learning).

Thibaud Real, Antoine Isnardy
Aller en haut