Leçon 3 — Les plongements : quand le sens devient de la géométrie
Le point de départ : compter les mots
La première façon de représenter un texte numériquement s'appelle le sac de mots. On fixe un vocabulaire, et chaque document devient un vecteur donnant le nombre d'occurrences de chaque mot. Une pondération classique, TF-IDF, augmente le poids des mots rares dans le corpus et diminue celui des mots omniprésents.
Cette approche a des mérites réels : elle est rapide, transparente, et elle reste compétitive sur des tâches de classification de documents longs. Elle a aussi une limite fatale.
Deux mots différents sont, pour elle, totalement étrangers l'un à l'autre. « Voiture » et « automobile » occupent deux colonnes distinctes, aussi éloignées que « voiture » et « brocoli ». Un système de recherche fondé sur le sac de mots ne trouvera jamais un document parlant d'automobiles si l'utilisateur a tapé « voiture ».
L'idée : représenter un mot par sa position dans un espace
En 2013, l'équipe de Tomáš Mikolov publie Word2Vec, et le NLP change de nature.
L'idée est la suivante : au lieu d'une colonne par mot, on attribue à chaque mot un vecteur dense de quelques centaines de nombres — 300 typiquement. Ces nombres ne sont pas choisis : ils sont appris, en entraînant un petit réseau sur une tâche prétexte.
La tâche prétexte est presque triviale : prédire les mots voisins. On prend une fenêtre de quelques mots, on masque le mot central, et on demande au réseau de le deviner à partir de son entourage. Le réseau lui-même n'a aucun intérêt ; ce qui compte, ce sont les vecteurs qu'il a été obligé de construire pour réussir.
Or pour réussir cette tâche, le réseau n'a pas le choix : il doit donner des vecteurs proches aux mots qui apparaissent dans des contextes semblables. « Voiture » et « automobile » se retrouvent entourés des mêmes mots — route, conduire, moteur, garage — donc leurs vecteurs convergent.
Ce que la géométrie permet
Une fois les mots placés dans un espace, des opérations que rien ne laissait prévoir deviennent possibles.
La similarité se calcule. L'angle entre deux vecteurs, mesuré par la similarité cosinus, donne un nombre entre −1 et 1 qui reflète la proximité de sens. « Roi » et « reine » obtiennent un score élevé, « roi » et « bicyclette » un score faible. C'est une multiplication, donc c'est instantané, même sur des millions de mots.
Les relations deviennent des directions. L'exemple devenu célèbre : le vecteur de « roi » moins celui de « homme » plus celui de « femme » tombe très près de « reine ». Une direction de l'espace encode le genre grammatical, une autre le pluriel, une autre la relation pays-capitale. Personne n'a programmé ces axes ; ils ont émergé de l'usage.
Modérément. Ces analogies fonctionnent bien sur les relations très régulières et bien représentées, beaucoup moins ailleurs. C'est une propriété réelle et une démonstration frappante, pas un mécanisme de raisonnement.
La limite décisive de Word2Vec
Un plongement Word2Vec est fixe : un mot, un vecteur, pour toujours.
Reprenons « avocat ». Dans « l'avocat a plaidé deux heures » et dans « une salade d'avocat », le mot reçoit exactement le même vecteur. Ce vecteur est nécessairement un compromis médiocre entre deux sens sans rapport, et il est faux dans les deux phrases.
Le problème est général : les mots polysémiques sont fréquents, et ce sont souvent les plus importants.
Les plongements contextuels
La réponse arrive avec les modèles à transformeurs, ELMo en 2018 puis BERT la même année : au lieu de stocker un vecteur par mot, on calcule un vecteur par mot dans son contexte.
Le mécanisme est celui de l'attention, décrit dans la leçon sur les transformeurs. Chaque token commence avec une représentation générique, puis regarde tous les autres tokens de la phrase et ajuste sa représentation en fonction de ce qu'il y trouve. Après quelques couches, « avocat » entouré de « plaidé » et « tribunal » a dérivé vers une zone de l'espace, et « avocat » entouré de « salade » et « mûr » vers une autre.
| Plongement fixe | Plongement contextuel | |
|---|---|---|
| Vecteur par mot | un seul, définitif | un par occurrence |
| Polysémie | non gérée | résolue |
| Calcul | consultation d'une table | passage dans le modèle |
| Coût | négligeable | significatif |
| Exemples | Word2Vec, GloVe, fastText | BERT, RoBERTa, modèles modernes |
C'est le saut technique qui explique en grande partie pourquoi le NLP fonctionne si bien depuis 2019.
Les plongements de phrases, et pourquoi tout le monde en parle
On peut représenter non plus un mot mais un texte entier par un vecteur unique : c'est un plongement de phrase ou de document. Les modèles dédiés — famille sentence-transformers, ou les API d'embeddings des grands fournisseurs — sont entraînés spécifiquement pour que deux textes de sens proche donnent des vecteurs proches.
Cela ouvre la recherche sémantique. Vous plongez tous vos documents une fois, vous les stockez dans une base vectorielle, puis vous plongez la question de l'utilisateur et vous récupérez les documents dont les vecteurs sont les plus proches. La requête « comment annuler mon abonnement » retrouve un document intitulé « procédure de résiliation », alors qu'aucun mot n'est commun.
C'est exactement la brique de récupération du RAG, détaillé dans le cours sur les grands modèles de langage. Comprendre les plongements, c'est comprendre pourquoi le RAG fonctionne — et pourquoi il échoue quand la récupération ramène les mauvais documents.
Trois pièges en pratique
Les plongements héritent des biais du corpus. Si les textes d'entraînement associent statistiquement certains métiers à un genre, la géométrie le reflète, et un système de tri de candidatures construit dessus reproduira l'association. Le cours sur l'éthique traite ce point en détail.
On ne mélange pas deux modèles de plongement. Les vecteurs de deux modèles différents vivent dans des espaces sans rapport. Comparer un vecteur produit par un modèle avec un vecteur produit par un autre ne donne rien d'exploitable, même si les dimensions coïncident.
La similarité n'est pas la pertinence. Deux textes peuvent être géométriquement proches et sans intérêt l'un pour l'autre — « le contrat est valide » et « le contrat est invalide » sont très proches. Dans un système de recherche sérieux, on combine la recherche vectorielle avec une recherche par mots-clés et un réordonnancement.
À retenir
- Le sac de mots traite les synonymes comme des mots étrangers ; c'est sa limite structurelle.
- Un plongement est un vecteur dense appris, positionné selon les contextes d'usage du mot.
- La géométrie rend la similarité calculable et fait apparaître des relations comme des directions.
- Les plongements fixes échouent sur la polysémie ; les plongements contextuels calculent un vecteur par occurrence et résolvent le problème.
- Les plongements de phrases fondent la recherche sémantique et la récupération du RAG.
- Attention aux biais hérités, à l'incompatibilité entre modèles, et à la confusion entre similarité et pertinence.
Leçon suivante — Les tâches : à quoi sert vraiment le NLP →