Le lego des algorithmes

J’ai eu à produire voilà quelque temps une (seconde) expertise pour un papier de recherche proposé à une conférence internationale sur le Traitement Automatique des Langues. Son contenu, très semblable à bien d’autres, m’a paru très typique de la tendance actuelle autour de l’IA, du deep-learning et autres mots à la mode. Et aussi très typique de l’état de la recherche sur le traitement du langage… et de ce que je pense être des dérives.

L’approche standard

La structure de cet article était très similaire à l’immense majorité de ce que je peux lire sur le sujet. La démarche claire, standardisée, ne laisse pas de place à l’imprévu :

  1. on commence par se réaliser un corpus de référence, généralement en utilisant Amazon Mechanical Turk (on pourra lire une analyse critique de cette approche, tant sur le plan technique que sur le plan technique, ici). Le corpus de référence donne l’idéal de ce que devrait fournir la machine. Dans des approches de type « apprentissage » (machine-learning), c’est à partir d’une portion de ce corpus que l’on fera l’apprentissage, l’autre portion servant à la validation ;
  2. on réalise une « baseline », c’est-à-dire qu’on détermine un indicateur et la performance minimale qu’il doit atteindre et à partir de laquelle on estimera qu’on a fait avancer la science. Si le sujet est assez étudié, il existe des métriques de référence. Sinon, on les fabrique soi-même (c’était le cas dans notre article) en créant un algorithme naïf.

Ensuite commence l’approche typique, basée (doit-on le préciser ?) sur des réseaux de neurones. On commence par reprendre une configuration de réseau déjà utilisée pour un problème similaire. On en fait évoluer la topologie, en ajoutant des couches cachées, des hyperparamètres, en empilant divers niveaux de réseaux de neurones (réseaux de convolution ou CNN, réseaux à mémoire ou LSTM, etc.).

L’expérimentation est d’autant plus aisée qu’on s’est donné dès le départ des outils pour mesurer les progrès : une référence, un indicateur et la valeur de base à dépasser (la fameuse baseline). On teste donc une configuration et la valeur de l’indicateur permet de savoir immédiatement si elle est meilleure ou non que la précédente. On itère ainsi jusqu’à obtention d’un résultat satisfaisant.

Je ne jette pas la pierre à l’approche : on ne sait pas aujourd’hui expliquer exactement pourquoi les réseaux de neurones fonctionnent si bien pour le traitement de la langue (voir en particulier cet article le succès insolent des réseaux de neurones en TAL). La seule approche est donc d’expérimenter, en faisant évoluer des systèmes que d’autres ont déjà testés. Les boîtes à outils pour l’apprentissage comme Tensorflow, Keras, ou PyTorch sont particulièrement bien adaptés à cette approche « lego » : je mets un réseau comme-ci avec 3 couches suivi d’une couche de pooling, suivi d’un réseau comme ça etc. C’est la seule façon de faire et ça le restera certainement encore pendant des années, avant qu’on ait réellement réussi à domestiquer ces drôles de bestioles.

Pourquoi c’est gênant

Ce qui m’ennuie, dans la majorité de ce qu’on peut lire, c’est qu’on a oublié la matière sur laquelle on travaillait, à savoir du texte. Les textes analysés disparaissent derrière les mesures des indicateurs de précision, rappel, etc. et ce n’est plus qu’un progrès sur cette mesure qui justifie la publication d’un article scientifique.

On ne voit que très rarement des exemples de phrases ou textes analysés par les systèmes dans les communications et quasiment jamais des analyses qualitatives sur les capacités du système ainsi réalisé à prendre en compte des régularités de la langue (ou des exceptions). Cette étude a été remplacée par des tableaux de chiffres donnant des valeurs d’indicateurs pour les différentes itérations et réalisées pendant l’étude. L‘étude de corpus a été éclipsée par l’évaluation alors que les deux sont complémentaires.

C’est d’autant plus choquant lorsque la « baseline » a été réalisée ad-hoc. C’était le cas pour l’article que j’évoquais en introduction :  le sujet était la détection de phrases vagues dans les CGU en ligne (sujet pour le moins à la mode en ces temps de RGPD et de Cambridge Analytica). Le corpus avait été réalisé en sélectionnant dans les CGU les phrases qui contenaient un mot vague issu d’une liste (réalisée par une autre étude) – on imagine le biais ainsi introduit. La baseline était un système qui comptait les mots vagues et se déterminait en fonction d’un seuil. A aucun moment n’ont été illustrées les éventuelles capacités de généralisation du réseau de neurones, sa capacité d’abstraction. Seules les métriques sont affichées (en l’occurrence, un gain de 4 points sur un rappel à 54% – décevant). La seule analyse du contenu était qu’on voyait une « forte corrélation entre le nombre de mots vagues et la caractérisation des phrases ». Avec un tel corpus d’entraînement, on se demande comment il pourrait en être autrement.

Linguistes, réveillez-vous !

Ne nous méprenons pas, je ne dis pas qu’il ne faut pas évaluer, bien au contraire ! L’évaluation est un outil précieux, tant pour les scientifiques que pour les industriels et quelques exemples ne peuvent prouver la qualité d’une approche scientifique. Mais une analyse sur les productions (linguistiques) effectives du système ne font pas de mal, loin de là. La vague du deep-learning qui prône une approche sans modèle (on donne à manger les exemples bruts au système) rend l’approche encore plus caricaturale : plus de temps à passer sur  une analyse préalable du corpus, sur le modèle à adopter, sur les caractéristiques linguistiques à utiliser, etc. Tout le temps est passé en observations du comportement du réseau.

Alors que faire pour faire revenir un peu de « quali » dans tout ça ? Il ne faut pas demander aux data-scientists de faire des études de corpus : ils ne sont pas formés pour ça et ça les ennuie. C’est bien le travail des linguistes de revenir au matériau de base (le texte) et d’évaluer l’apport de telle ou telle technique.

Alors, mesdames-messieurs les linguistes, la prochaine fois que, dans un congrès de TAL, on vous présente des tableaux de chiffres pour justifier telle ou telle approche, demandez à voir la réalité du système : les textes. Et surtout, surtout, ne vous laissez pas ravir l’analyse de la langue par ceux qui ne font que compter les mots sans les lire.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s