Les embeddings (traduits par plongements ou incorporation en français, mais on va préférer utilise ici le terme anglais) sont une pierre angulaire du traitement automatique du langage naturel (TALN), permettant de représenter des mots, des phrases ou même des documents sous forme de vecteurs dans un espace continu. Leur développement repose sur l’hypothèse distributionnelle, qui stipule que « le sens d’un mot se trouve dans son usage ». Cette idée a donné naissance à différentes méthodes de représentation vectorielle, allant des approches classiques comme TF-IDF et PMI aux modèles avancés tels que Word2Vec, GloVe et BERT.
De manière générale, penser à des embeddings revient à penser de manière matricielle. Certes un embedding est un vecteur, mais il s’inscrit d’abord dans une vision matricielle où un vecteur est une « tranche » de matrice, imposant une constance dans les dimensions.
L’hypothèse distributionnelle
L’hypothèse distributionnelle, proposée par Zellig Harris en 1954, affirme que « les mots qui apparaissent dans des contextes similaires ont des significations similaires ». Cette idée est cruciale pour la construction des embeddings, car elle implique que nous pouvons inférer le sens des mots en observant les contextes dans lesquels ils apparaissent. On retrouve l’idée dans une citation de Firth quelques années plus tard : « You shall know a word by the company it keeps » (Firth, J. R. 1957:11)
Cette idée mérite d’être creusée et traduite concrètement. En effet, le contexte peut être très variable, s’agit-il du mot précédent, des mots de la phrase, du paragraphe, du document ? Est-ce qu’on « capture » la même sémantique quel que soit le contexte ?
Une autre question se pose : comment représente-t-on le contexte ? La manière la plus simple de faire est, pour un linguiste un peu hors-sol, d’associer mentalement des mots communément trouvés autour d’un terme à caractériser. On pourrait donc créer une caractérisation de chien et chat de la manière suivante : intuitivement, chat est associé à { miauler, manger, boire, dormir, chasser, caresser, ronronner } tandis que chien serait associé à { grogner, aboyer, manger, boire, dormir, chasser, caresser }. On voit que sur cette représentation « expérience mentale », les mots sont librement associés, et que les ensembles de mots associés à chat et chien ont des points communs, qu’on va retrouver d’ailleurs chez pas mal d’animaux domestiques, ainsi que des différences. On peut par contre noter que d’autres termes plus spécialisés que chien et chat, comme épagneul, caniche, angora, etc. seront probablement associés fortement avec les mêmes termes, mais on peut aussi supposer qu’ils seront associés à d’autres mots, comme race, reproduction, poil, caractérisant plus spécifiquement ces termes spécialisés.
Si, plutôt que de se baser sur une expérience de pensée personnelle pour donner les mots qui sont évoqués par un terme, on s’appuie sur une analyse de corpus, on pourra décrire plus précisément les mots voisins, en les associant avec un nombre : le nombre de fois que ce mot aura été rencontré dans le contexte du terme à caractériser. On se retrouve alors avec des ensembles de couple (mot, compte), et de là il n’y a qu’un pas pour représenter les termes par un vecteur épars (i.e. non dense) sur lequel on peut définir une distance, par exemple :
chat : {(miauler, 14),(manger, 24),….}
Représentations vectorielles basées sur la fréquence : TF-IDF et PMI
TF-IDF (Term Frequency – Inverse Document Frequency)
L’un des premiers modèles de représentation vectorielle vraiment exploitable est le TF-IDF, introduit par Karen Spärck-Jones en 1972 et relancé en 1984 par Gerard Salton. La méthode TF-IDF, utilisée d’abord dans la recherche d’information, donne un poids aux mots selon leur fréquence d’apparition dans un document tout en réduisant l’importance des mots courants apparaissant dans de nombreux documents.
- TF (Term Frequency) : Fréquence d’un mot dans un document.
- IDF (Inverse Document Frequency) : Inverse du nombre de documents contenant ce mot, permettant de diminuer l’importance des mots fréquents dans l’ensemble du corpus.
L’un des points clefs de la méthode est que la formule de l’IDF introduit une non-linéarité :

L’utilisation du logarithme a été justifié à posteriori par la distribution naturelle des mots qui suit une loi de Zipf.
Si TF-IDF permet une représentation efficace des documents, il ne capture pas directement la sémantique des mots ni les relations entre eux. Les vecteurs résultants sont souvent très clairsemés et de grande dimension. Pour pouvoir être comparable, des vecteurs de poids TF-IDF liés à un document doivent utiliser le même vocabulaire et le même « dictionnaire » associant un mot à une position dans la matrice.
Il faut garder à l’esprit que TF-IDF a du sens principalement au niveau document, la matrice document x mots peut certes être vue aussi sous l’axe des mots, mais la distribution des documents au sein d’un corpus particulier va biaiser de manière importante le vecteur qu’on peut associer à un mot. Par ailleurs, les documents selon leur taille vont avoir un poids plus ou moins grand.
En bref, TF-IDF est une méthode limitée de régularisation des poids, mais elle commence à donner des résultats intéressants, notamment en utilisant une distance cosinus entre les vecteurs de documents, distance qui « naturellement » régularise la norme des vecteurs et donc annule le poids des documents.
PMI (Pointwise Mutual Information)
Le PMI est une autre approche statistique qui mesure la co-occurrence entre deux mots x et y:

Il permet de détecter les associations fortes entre mots. Contrairement aux matrices TF-IDF utilisées pour représenter des documents, les matrices PMI sont symétriques et permettent exclusivement de caractériser des mots. La distance cosinus utilisée sur les ligne ou les colonnes de ces matrices donne des résultats intéressants sur la proximité des mots et permet de trouver des mots similaires. Selon la fenêtre de co-occurence utilisée, on va obtenir des effets de similarité plus ou moins grammaticaux (même rôle), sémantique (même sens) ou thématiques (relatifs au même sujet).
Que ce soit avec TF-IDF ou PMI, on obtient pour l’instant de grand vecteurs creux qui ressemblent à ceci :
chat : {(miauler, 0.85), (manger, 0.21), (ronronner, 0.66),…}
On ne peut pas réellement parler d’embeddings, car on reste dans l’espace « naturel » de description, chaque dimension peut être totalement expliquée. Presque par définition, un embeddings doit exprimer une réalité plongée dans un autre repère. Ces grands vecteurs creux permettant de représenter les documents ou les mots, s’ils permettent d’exprimer des distances, ne permettent en revanche pas de manipuler ces vecteurs aisément.
LSA/LSI : Réduction de dimension et analyse sémantique
L’analyse sémantique latente (LSA ou LSI pour Latent Semantic Indexing) repose sur la décomposition en valeurs singulières (SVD) d’une matrice de co-occurrence. Elle permet de réduire la dimensionnalité et d’extraire des structures latentes, capturant ainsi certaines relations sémantiques.
Le principe général de la SVD est de trouver une factorisation de matrice complète, plus particulièrement une forme spécifique de factorisation dans laquelle une matrice (presque quelconque, les mathématiciens me pardonneront l’approximation) est factorisée sous la forme UΣVT, où U et V sont des « rotations » (i.e. des matrices avec des colonnes orthogonales) et Σ est une matrice de rescaling.
La LSA, en réalité, s’intéresse le plus souvent uniquement à la composante U ou V, où parfois la composante UΣ, mais surtout à une petite partie de U ou V, coupée selon les principales valeurs de Σ. On parle aussi de SVD partielle, ou de « Low-rank approximation ». Autrement dit, on ne veut pas une factorisation totale et parfaite, mais une approximation, qui a l’avantage de nettoyer le bruit.
Dit autrement, la SVD permet, assez facilement, de sélectionner les dimensions « intrinsèques » des données qui expriment un maximum de variance, et elle permet aussi facilement de régulariser cette variance, ce qui a pour effet d’automatiquement régulariser le résultat.
Les vecteurs issus de la LSA sont de beaucoup plus faible dimension que les représentations classiques comme TF-IDF et permettent de mieux capter les similarités entre mots. Ces vecteurs peuvent être utilisés pour la recherche d’informations ou la classification de documents.
La LSA/LSI a connu un début de succès avant d’être assez massivement rejetée à la fois par la communauté Machine Learning et par la communauté linguistique. On peut émettre l’hypothèse que le brevet déposé en 1988 par Scott Deerwester, Susan Dumais, George Furnas, Richard Harshman, Thomas Landauer, ou encore l’orientation « information retrieval » de l’idée, à moins que ça ne soit la forte composante « science psychologique » n’ont pas aidé à sa popularité. Pour autant, on peut considérer que c’est la première méthode à avoir produit des embeddings. A l’époque on parlait de vecteurs sémantiques et d’espace vectoriels sémantique.
Pour autant, la notion de « factorisation de matrice » a été poursuivie par différents biais. En 2006, le Netflix Prize fut l’occasion de braquer les projecteurs sur une méthode de factorisation de matrice biaisée, la SVD++ (en réalité une variante de descente de gradient), qui était dans sa version non biaisée, déjà utilisée pour effectuer une SVD partielle sans passer par une approche algébrique. En effet la SVD est une approche algébrique dont le résultat est de minimiser l’erreur de reconstruction (aussi appelée RMSE) tandis que la descente de gradient est une approche d’optimisation qui minimise la même erreur. La principale différence entre les deux étant la possibilité dans le cas de la descente de gradient de l’appliquer à des problèmes non linéaire avec quelques modifications.
En tout état de cause, on obtient in fine des vecteurs denses (chaque dimension est utilisée pour tous les mots), de taille fixe et réduite (on parle typiquement de quelques dizaines à quelques centaines, voire milliers de dimensions). Le plus souvent on va par ailleurs normaliser les vecteurs, afin de simplifier le calcul des distances cosinus qui peuvent alors s’implémenter comme un simple produit scalaire.
chat : [0.0452219, -0.1109330, 0.201193, ….]
Il faut noter au passage que sans même faire de factorisation, il est tout à fait possible de transformer un vecteur creux en vecteur dense de petite taille par une projection aléatoire. Cependant une projection aléatoire ne va rien ajouter comme « qualité », et plutôt que d’enlever du bruit, elle va en rajouter.
Word2Vec : Capturer les relations sémantiques
Développé par Google en 2013, Word2Vec repose sur des réseaux de neurones peu profonds pour apprendre des embeddings de mots. Il propose deux architectures :
- CBOW (Continuous Bag-of-Words) : Prédit un mot cible à partir de son contexte.
- Skip-gram : Prédit le contexte d’un mot cible donné.
Les vecteurs Word2Vec sont généralement denses et de taille fixe (par ex. 300 dimensions). Ils permettent d’effectuer des opérations comme la recherche des plus proches voisins (ex. identifier les synonymes) ou l’analogie entre mots (« roi – homme + femme ≈ reine »).
Il faut garder à l’esprit que dès le début des années 2000, l’algèbre sémantique était évoqué pour l’information retrieval dans le cadre de la LSI, l’idée étant de pouvoir exprimer une négation dans la recherche de plus proches voisins des vecteurs sémantiques de la LSI. Le succès exceptionnel des embeddings Word2Vec dans l’algèbre sémantique a joué grandement dans son succès, proposant à la fois une illustration pédagogiquement frappante et des performances bien au dessus de la concurrence. Choisir une tâche où la méthode excelle est toujours une bonne stratégie dans la communication scientifique, pour autant Word2Vec n’a pas eu directement de déclinaison très intéressante dans la caractérisation de document ou même de phrase, la faute principalement à la méthode de combinaison des embeddings de mots et à leur norme proportionnelle à leur fréquence.
Autoencodeurs : Apprentissage non supervisé des représentations
Les autoencodeurs sont des réseaux neuronaux conçus pour encoder une entrée dans un espace latent de faible dimension avant de la reconstruire. En TALN, ils permettent de générer des embeddings en apprenant une compression efficace des données textuelles, facilitant des tâches comme la réduction de dimension et l’apprentissage de représentations sémantiques. Ils sont un peu passé de mode, pourtant ils ont été à l’origine d’avancées très significative dans le domaine de l’apprentissage non supervisé.
Pour résumer l’idée de base de manière peut-être plus mémorable, un auto-encoder est un réseau de neurones dans lequel la cible d’apprentissage est la même que la source, mais pour lequel on force l’apprentissage d’une couche intermédiaire plus petite. Autrement dit, on entraîne un réseau de neurone à oublier puis retrouver un objectif. Ce faisant, le comportement du réseau de neurone l’oblige à créer une représentation plus compacte et plus « synthétique » de ses entrées.
Les vecteurs obtenus peuvent être utilisés pour la détection d’anomalies ou la classification de textes, comme tous les embeddings.
GloVe : Une approche basée sur les matrices de co-occurrence
GloVe (Global Vectors for Word Representation) combine les avantages de Word2Vec et des matrices de co-occurrence :
- Il utilise une matrice de co-occurrence des mots sur un large corpus.
- Il optimise une fonction d’objectif basée sur les relations de co-occurrence en log-probabilité.
- Il produit des embeddings capturant des relations analogiques et des structures sémantiques.
En réalité, hormis les fondations probabilistes de GloVe et l’apprentissage par descente de gradient davantage ancrée dans une justification théorique bien formée, l’approche ressemble à s’y méprendre à la LSA sur des matrices de cooccurences, ou à sa version « probabiliste » la pLSI (Probabilistic LSI).
Les vecteurs GloVe sont fixes et pré-entraînés sur de grands corpus, ce qui permet de les utiliser directement pour des tâches comme la classification de texte ou la similarité lexicale.
BERT et les Transformers : Le renouveau des embeddings
L’arrivée des modèles basés sur les Transformers, notamment BERT (Bidirectional Encoder Representations from Transformers), a révolutionné la représentation des mots.
Le mécanisme des Transformers
Introduits dans l’article Attention is All You Need (Vaswani et al., 2017), les Transformers reposent sur le mécanisme d’attention, qui permet à chaque mot de se focaliser sur d’autres mots pertinents dans la phrase. Contrairement à Word2Vec, les Transformers tiennent compte du contexte bidirectionnel, offrant ainsi des représentations plus riches et contextualisées.
BERT : Une représentation contextuelle des mots
BERT est pré-entraîné sur de grandes quantités de textes en utilisant deux tâches :
- Masked Language Model (MLM) : Prédire des mots masqués dans une phrase.
- Next Sentence Prediction (NSP) : Déterminer si une phrase suit une autre.
Ce modèle produit des embeddings dépendant du contexte, ce qui améliore considérablement les performances sur de nombreuses tâches en NLP. Les vecteurs générés par BERT sont utilisés dans diverses applications comme l’analyse de sentiments, la classification de texte et la réponse aux questions.
Si l’on met de côté les éléments disruptifs des transformers (mécanisme d’attention, encodage positionnel), les embeddings en eux-mêmes ne sont que modérément meilleurs que ceux des approches comme GloVe ou même certaines variantes de la LSA. En effet pour extraire un embedding de texte des transformers, on voit d’abord s’intéresser 1/ au mécanisme de tokenisation et 2/ au mécanisme d’interception des embeddings.
En effet, si dans la LSA ou GloVe, les tokens sont des mots et les contextes sont des fenêtres de cooccurence, dans BERT ou dans les transformers, la « tâche » pour lesquels sont optimisés les embeddings consiste quasiment uniquement à prédire le prochain token. L’information embarquée dans une phrase est donc très riche et mélange beaucoup d’aspects pas forcément intéressant pour les tâches de classification ou de recherche de plus proche voisins. Littéralement, deux embeddings de transformers peuvent être identique si la suite du texte qu’on peut attendre est la même, et ce même si le début du texte est différent. Les embeddings de mots tirés des LLMs sont ainsi peu intéressants car ils encodent à la fois des informations sur la graphie, sur la grammaire, sur la sémantique, sur la thématique, etc. Or très souvent les embeddings peuvent être utilisés avec seulement un de ces aspects en ligne de mire.
Que faire avec des embeddings ?
Tout d’abord les embeddings peuvent être utilisés pour trouver des éléments similaires. Un exemple avec une comparaison faite il y a quelques années entre les voisins selon la LSA, Word2Vec et NCISC (l’algorithme maison de Babbar).
LSA | Word2Vec | NCISC | ||||||
Distance | Word | Word frequency | Distance | Word | Word frequency | Distance | Word | Word frequency |
1.000 | iffy | 279 | 1.000 | iffy | 279 | 1.000 | iffy | 279 |
0.809 | nitpicky | 125 | 0.971 | nitpicky | 125 | 0.840 | debatable | 711 |
0.807 | miffed | 69 | 0.969 | bitey | 265 | 0.835 | keepable | 67 |
0.805 | shaky | 934 | 0.968 | rediculous | 104 | 0.830 | disputable | 179 |
0.804 | sketchy | 527 | 0.967 | far-fetched | 262 | 0.822 | sketchy | 527 |
0.798 | clunky | 372 | 0.965 | counter-intuitive | 185 | 0.814 | unsatisfactory | 1176 |
0.795 | dodgy | 797 | 0.964 | presumptuous | 126 | 0.812 | unclear | 4445 |
0.792 | fishy | 494 | 0.964 | disputable | 179 | 0.805 | nitpicky | 125 |
0.788 | listy | 211 | 0.964 | usefull | 183 | 0.804 | us-centric | 170 |
0.787 | picky | 397 | 0.962 | clunky | 372 | 0.802 | dodgy | 797 |
0.785 | underexposed | 73 | 0.962 | counterintuitive | 203 | 0.798 | salvagable | 118 |
0.784 | unsharp | 130 | 0.962 | un-encyclopedic | 101 | 0.798 | shaky | 934 |
0.775 | choppy | 691 | 0.961 | worrisome | 213 | 0.797 | counter-intuitive | 185 |
0.770 | nit-picky | 90 | 0.961 | self-explanatory | 156 | 0.796 | ambigious | 41 |
0.763 | fiddly | 43 | 0.961 | unecessary | 143 | 0.791 | offputting | 33 |
0.762 | muddled | 369 | 0.960 | nit-picky | 80 | 0.790 | questionable | 6541 |
0.762 | wonky | 196 | 0.959 | wordy | 413 | 0.790 | notible | 78 |
0.762 | disconcerting | 226 | 0.958 | disconcerting | 226 | 0.786 | unconvincing | 567 |
0.760 | neater | 121 | 0.958 | disingenuous | 534 | 0.781 | wrong | 12041 |
0.760 | dissapointed | 32 | 0.958 | off-putting | 104 | 0.780 | clunky | 372 |
Cette comparaison avait pour objectif de mesurer à quel point les différents algorithmes encodaient la fréquence des mots dans leur embeddings, on y constatait que la LSA proposait des mots avec une fréquence variant de 0.1 fois à 3 fois la fréquence du mot requêté (iffy dans ce cas), que Word2Vec donnait des voisins avec une fréquence entre 0.3 fois et 2 fois la fréquence requêtée, et que NCISC, lui donnait des voisins avec une fréquence entre 0.1 fois et 43 fois la fréquence du mot requêté. Ces résultats démontrait donc que les embeddings de LSA et de Word2Vec encodait autre chose que le sens des mots, notamment leur fréquence, et que c’était d’autant plus vrai pour Word2Vec.
Par ailleurs, les embeddings permettent de faire de la classification, du clustering (qui consiste à regrouper des éléments similaires ensemble), et bien sûr de créer des embeddings d’éléments combinés, par exemple des phrases, des documents, etc. La création d’embeddings d’éléments combinés reste un problème particulier, l’approche « bag of words » consistant à faire une somme pondérée des embeddings des mots d’une phrase ou d’un document ayant certaines limites, même si elle marche extrêmement bien pour les documents d’une certaine taille.
Conclusion
Les embeddings ont évolué d’approches statistiques simples à des modèles neuronaux complexes exploitant des milliards de paramètres. Avec l’essor des modèles de type GPT et BERT, les représentations vectorielles de mots n’ont jamais été aussi puissantes, rendant les tâches NLP plus performantes et sophistiquées que jamais. Les vecteurs obtenus à partir de ces modèles permettent des applications avancées telles que la détection des entités nommées, la génération de texte et le résumé automatique.