# Qu’est-ce que word2vec, et comment a-t-il appris aux ordinateurs le sens des mots?

Date: 2021-03-25 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/qu-est-ce-que-word2vec/

**Answer:** Word2vec est une méthode, décrite par Tomas Mikolov et ses collègues de Google dans un article mis en ligne le 16 janvier 2013, qui transforme chaque mot en une liste de nombres (un vecteur) apprise à partir des mots qui l’entourent dans d’énormes quantités de texte. Les mots employés de façon semblable obtiennent des vecteurs semblables, si bien qu’une simple opération comme « roi moins homme plus femme » tombe près de « reine », et cette méthode rapide et peu coûteuse est devenue une brique de base de l’IA du langage.

Les ordinateurs manient bien les nombres et mal les mots. Pendant des décennies, la plupart des logiciels de traitement du langage ont traité chaque mot comme un symbole isolé : « chat » et « chaton » n’avaient pas plus de lien que « chat » et « carburateur ». Le 16 janvier 2013, quatre chercheurs de Google ont mis en ligne un article qui proposait une issue rapide et simple. Leur méthode donne à chaque mot une position dans un espace de quelques centaines de dimensions, de sorte que les mots de sens voisin se retrouvent proches les uns des autres.

L’article s’intitule « Efficient Estimation of Word Representations in Vector Space ». Ses auteurs étaient Tomas Mikolov, Kai Chen, Greg Corrado et Jeffrey Dean, tous chez Google à Mountain View, en Californie. En août 2013, Google a publié le code sous forme de boîte à outils en code source ouvert sous le nom de word2vec, abréviation de *word to vector* (du mot au vecteur), et le nom est resté attaché à toute l’approche.

## L’idée : on connaît un mot par ses voisins

La méthode repose sur une observation simple : les mots qui apparaissent dans des contextes semblables ont tendance à avoir des sens semblables. « Café » et « thé » se retrouvent tous deux près de « tasse », « chaud », « boire » et « matin ». Un système qui ne voit jamais que les mots qui se côtoient peut tout de même déduire que le café et le thé se ressemblent.

Word2vec transforme cette observation en jeu d’entraînement. Il lit des milliards de mots de texte et, à chaque position, tente de prédire des mots manquants à partir de leur entourage. Chaque mot commence avec un vecteur aléatoire, une liste de, disons, 300 nombres. Chaque fois qu’une prédiction est fausse, les vecteurs sont légèrement ajustés pour que la prochaine réponse soit meilleure. Après assez de texte, les vecteurs encodent une quantité étonnante d’information sur la façon dont chaque mot est employé.

## Deux modèles : CBOW et skip-gram

L’article proposait deux architectures de réseau simples.

- **Le sac de mots continu (*continuous bag-of-words*, CBOW)** regarde les mots autour d’un trou et prédit le mot du milieu. « Sac de mots » signifie que l’ordre des mots environnants est ignoré.
- **Le skip-gram continu** fait l’inverse : à partir d’un mot, il prédit les mots susceptibles d’apparaître à proximité.

Voici la même phrase vue par chaque modèle, avec une fenêtre de deux mots de chaque côté :

| Modèle | Entrée | Ce qu’il doit prédire |
|---|---|---|
| CBOW | « le », « chat », « sur », « le » | « dort » |
| Skip-gram | « dort » | « le », « chat », « sur », « le » |

Les deux sont volontairement peu profonds, beaucoup plus simples que les réseaux profonds qui faisaient alors les manchettes en reconnaissance d’images. Cette simplicité était le but recherché. Les auteurs ont rapporté qu’un seul ordinateur pouvait apprendre de bons vecteurs de 300 dimensions pour un vocabulaire d’un million de mots, à partir de 1,6 milliard de mots de texte, en moins d’une journée. Pour leurs principales expériences, ils se sont entraînés sur une collection de Google News d’environ 6 milliards de jetons. Selon les notes des auteurs eux-mêmes, CBOW s’entraîne plus vite, tandis que skip-gram réussit mieux avec les mots rares.

## De l’arithmétique avec du sens

Le plus frappant, c’est ce qu’on pouvait faire avec les vecteurs obtenus. Comme les mots apparentés s’alignent dans des directions cohérentes, on peut les additionner et les soustraire. L’article rappelle un résultat antérieur selon lequel le vecteur de « roi », moins « homme », plus « femme », tombe le plus près de « reine ». Il donne ses propres exemples : soustrayez « gros » de « plus gros », ajoutez « petit », et le mot le plus proche est « plus petit ». Les capitales s’alignent avec leur pays de la même façon : la France est à Paris ce que l’Allemagne est à Berlin.

Pour mesurer cela, l’équipe a construit un test de près de 20 000 questions d’analogie de ce genre : 8 869 sur le sens (comme les capitales et les pays) et 10 675 sur la grammaire (comme les temps passés et les pluriels). Une question n’était comptée comme réussie que si le mot le plus proche du vecteur calculé était exactement la réponse attendue.

> **À essayer :** choisissez une analogie, comme « Paris est à la France ce que Rome est à ___ ». Notez la « direction » que vous suivez (de la ville au pays). Inventez ensuite trois autres analogies qui suivent la même direction et une qui en suit une autre, comme du présent au passé.

## Pourquoi c’était important

Word2vec a rendu bon marché les bonnes représentations de mots. N’importe qui pouvait télécharger le code, le faire tourner sur une seule machine et obtenir des vecteurs qui captaient de vraies relations. L’annonce de Google énumérait des usages possibles comme la traduction automatique, la réponse aux questions, l’extraction de connaissances et les systèmes conversationnels. Les deux articles de Mikolov de 2013 avaient été cités des dizaines de milliers de fois en 2020. L’approche a aussi inspiré de proches parents, comme doc2vec pour des documents entiers.

Elle a aussi montré une limite. Chaque mot reçoit exactement un vecteur : en anglais, *bank* au sens de rive et *bank* au sens de banque partagent donc les mêmes nombres. Résoudre ce problème est une grande partie de ce que les modèles de langage ont accompli depuis.

## Quel est le lien entre les vecteurs de mots et les modèles de langage actuels comme GPT-3?

Les vecteurs de mots sont les ancêtres, et ils sont toujours à l’intérieur. GPT-3, qu’OpenAI a décrit en mai 2020, commence lui aussi par transformer chaque morceau de texte en vecteur. Ces vecteurs de départ sont appris dans un esprit semblable : en prédisant du texte, sans étiquettes humaines.

La grande différence, c’est le contexte. Word2vec donne à *bank* un seul vecteur fixe. Un modèle de langage moderne bâti sur l’architecture Transformer met à jour le vecteur de chaque mot en fonction de tous les autres mots du passage; *bank* dans *river bank* (la rive) et dans *bank loan* (le prêt bancaire) se retrouve donc avec des représentations internes différentes. C’est pourquoi il peut suivre le sens sur des paragraphes entiers.

L’autre différence, c’est l’échelle. Les réseaux de word2vec étaient peu profonds par conception, et son entraînement prenait une journée sur une seule machine. GPT-3 compte 175 milliards de paramètres et a besoin de grandes grappes de puces spécialisées pour son entraînement. Pourtant, la leçon de fond est la même que celle de l’article de 2013 : le sens peut s’apprendre à partir de l’usage des mots, si on lit assez de texte.

## Sources

- Efficient Estimation of Word Representations in Vector Space: https://arxiv.org/abs/1301.3781
- Learning the meaning behind words: https://opensource.googleblog.com/2013/08/learning-meaning-behind-words.html
- Word2vec: https://web.archive.org/web/20210115000000/https://en.wikipedia.org/wiki/Word2vec
