# Qu’est-ce que l’apprentissage séquence à séquence, et pourquoi l’article de 2014 a-t-il été si important?

Date: 2021-06-28 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/apprentissage-sequence-a-sequence-seq2seq/

**Answer:** L’apprentissage séquence à séquence consiste à entraîner un réseau de neurones à lire une séquence, comme une phrase, et un second réseau à en écrire une séquence différente, comme sa traduction. Dans un article mis en ligne le 10 septembre 2014, les chercheurs de Google Ilya Sutskever, Oriol Vinyals et Quoc Le ont montré que cette conception simple en deux parties pouvait battre un système de traduction statistique éprouvé, ce qui a aidé à lancer l’ère de la traduction automatique neuronale.

Bien des tâches utiles reviennent à transformer une suite d’éléments en une autre : une phrase anglaise en phrase française, un enregistrement en texte, un long article en court résumé, une question en réponse. Le problème, c’est que l’entrée et la sortie ont rarement la même longueur, et que les mots ne se correspondent pas un à un. Avant 2014, les réseaux de neurones profonds excellaient dans les problèmes de taille fixe, comme étiqueter une photo, mais n’avaient aucune façon propre de gérer ce genre de travail.

« Sequence to Sequence Learning with Neural Networks », souvent abrégé en **seq2seq**, en a proposé une. Sa recette est presque désarmante de simplicité : un réseau lit, un autre écrit.

## Ce qui s’est passé, et qui y a participé

La première version de l’article a été mise en ligne sur arXiv, l’archive ouverte d’articles de recherche, le 10 septembre 2014. Ses trois auteurs, Ilya Sutskever, Oriol Vinyals et Quoc V. Le, travaillaient tous chez Google. Sutskever est un nom familier pour quiconque suit GPT-3 : en décembre 2015, il est devenu directeur de la recherche d’OpenAI, alors nouvellement fondée.

Le test choisi était difficile : traduire de l’anglais vers le français à l’aide d’un banc d’essai public de l’atelier de 2014 sur la traduction automatique (WMT’14). Les systèmes statistiques « par segments » (*phrase-based*), construits à partir de nombreuses pièces réglées séparément, dominaient cette tâche depuis des années.

## Comment ça fonctionne : un encodeur et un décodeur

Le modèle utilise deux réseaux **LSTM**. Un LSTM, ou réseau à longue mémoire à court terme (*Long Short-Term Memory*), est un type de **réseau de neurones récurrent** : il lit un mot à la fois et garde une mémoire interne courante, en décidant à chaque étape quoi garder et quoi oublier.

1. **L’encodeur** lit la phrase anglaise mot par mot. Quand il arrive à la fin, sa mémoire contient une seule liste de nombres, un **vecteur**, qui représente toute la phrase.
2. **Le décodeur** part de ce vecteur et écrit la phrase française un mot à la fois. Chaque nouveau mot dépend du vecteur et des mots qu’il a déjà écrits.
3. Un symbole spécial de fin de phrase indique au décodeur quand s’arrêter, de sorte que la sortie peut être plus courte ou plus longue que l’entrée.

Une bonne analogie : un relais entre deux interprètes qui ne partagent aucune note. Le premier écoute toute la phrase et se forme une idée de son sens; le second n’entend que cette idée et l’exprime dans une autre langue.

Les réseaux étaient grands pour 2014 : quatre couches de 1 000 cellules de mémoire chacune, avec un vocabulaire d’entrée de 160 000 mots anglais et un vocabulaire de sortie de 80 000 mots français, pour 384 millions de nombres ajustables (paramètres) au total. L’entraînement a utilisé 12 millions de paires de phrases, a tourné sur une machine équipée de huit processeurs graphiques et a duré environ dix jours.

## L’astuce surprenante, et les résultats

La découverte la plus mémorable de l’article était une astuce simple. Les auteurs fournissaient les phrases anglaises dans l’**ordre inverse**, tout en gardant le français dans l’ordre normal. Voici l’idée avec un tout petit exemple :

| | Ordre fourni au réseau |
|---|---|
| Entrée normale | the cat sat → *le chat s’est assis* |
| Entrée inversée | sat cat the → *le chat s’est assis* |

Dans la version inversée, les premiers mots anglais (« the cat ») sont maintenant la dernière chose que lit l’encodeur, juste avant que le décodeur écrive « le chat ». La distance entre les mots correspondants diminue au début de la phrase, ce qui donne au processus d’entraînement une première prise plus facile. L’inversion a fait passer le score d’un seul modèle de 25,9 à 30,6 BLEU, une mesure standard du recoupement avec des traductions humaines, et les auteurs ont admis avoir été surpris de l’ampleur du gain.

> **À essayer :** écrivez une phrase courte sur une carte, lisez-la une fois, retournez la carte et essayez de la dire dans une autre langue que vous connaissez, ou simplement à l’envers. Essayez ensuite avec une phrase de 25 mots. La chute brutale que vous ressentez, c’est le problème du « résumé unique pour tout » sur lequel se sont concentrés les critiques de l’article, et ses successeurs.

Un ensemble (une équipe de cinq réseaux qui votent ensemble) a obtenu 34,8 BLEU sur l’ensemble de test complet. Un solide système par segments a obtenu 33,3 sur les mêmes données. C’était la première fois qu’un système purement neuronal traduisant directement battait ce genre de référence sur une grande tâche. Quand les réseaux ont servi à reclasser les 1 000 meilleures traductions candidates du système statistique, le score est monté à 36,5, près du meilleur résultat publié.

Les réseaux géraient aussi les longues phrases mieux que les auteurs ne l’avaient prévu, et les vecteurs de phrases qu’ils apprenaient regroupaient les expressions selon leur sens : des phrases de même sens à la voix active et à la voix passive se retrouvaient proches l’une de l’autre.

## Pourquoi c’était important

On attribue habituellement le lancement du seq2seq à deux articles de 2014 : celui-ci, et un article encodeur-décodeur très proche de Kyunghyun Cho et ses collègues. Leur faiblesse commune était le vecteur unique de taille fixe, qui doit transporter tout ce qui concerne une phrase. Neuf jours avant la parution de cet article, Dzmitry Bahdanau, Cho et Yoshua Bengio avaient mis en ligne leur solution : le **mécanisme d’attention**, qui permet au décodeur de revenir sur chaque mot de l’entrée.

La combinaison a transformé de vrais produits. En septembre 2016, Google a décrit son système de traduction automatique neuronale (*Neural Machine Translation*), un encodeur-décodeur LSTM profond de huit couches de chaque côté, avec attention et raccourcis résiduels, et a rapporté environ 60 % d’erreurs en moins que son ancien système par segments dans des évaluations humaines comparatives de phrases simples. Google Traduction est passé à ce système neuronal en 2016.

## Où utilise-t-on l’apprentissage séquence à séquence aujourd’hui?

L’idée de l’encodeur-décodeur est maintenant partout où un ordinateur transforme une séquence en une autre : traduction, reconnaissance vocale, description d’images (où la « séquence d’entrée » est une image), résumé de texte et robots conversationnels. Les pièces précises ont changé. Depuis 2017, les LSTM récurrents ont été largement remplacés par les **Transformers**, qui lisent tous les mots d’un coup et s’appuient sur l’attention de bout en bout.

On voit encore la forme d’origine dans les modèles d’aujourd’hui. Bien des systèmes de traduction gardent un encodeur et un décodeur séparés. GPT-3 d’OpenAI, lancé l’an dernier, ne garde que la moitié décodeur : il lit votre prompt, puis écrit un mot à la fois, chaque mot dépendant de tout ce qui précède, exactement comme le décodeur de 2014.

Si vous voulez sentir l’idée directement, essayez une application de traduction sur une longue phrase, puis découpez la même phrase en phrases courtes. Les systèmes modernes gèrent la version longue bien mieux que les réseaux de 2014, en grande partie grâce à l’attention, mais le travail de fond n’a pas changé : lire une séquence, puis en écrire une nouvelle.

## Sources

- Sequence to Sequence Learning with Neural Networks: https://arxiv.org/abs/1409.3215
- Seq2seq: https://en.wikipedia.org/wiki/Seq2seq
- Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation: https://arxiv.org/abs/1609.08144
