L'idée derrière l'espace vectoriel
L'idée est simple : si deux mots ont un sens proche, ils doivent être proches physiquement dans cet espace mathématique. Prenez les mots "roi" et "reine". Dans un système d'embeddings, leurs coordonnées numériques seront très similaires. C'est ce qu'on appelle la proximité sémantique. Mais ce n'est pas juste une question de proximité, c'est aussi une question de direction et de distance. L'exemple le plus célèbre, souvent cité par des experts comme Andrew Ng, est l'arithmétique vectorielle. Si vous prenez le vecteur du mot "Madrid", que vous soustrayez celui de "Espagne" et que vous ajoutez celui de "France", vous tomberez presque exactement sur le vecteur de "Paris". Le modèle a donc compris le concept de "capitale d'un pays" sans qu'on lui ait jamais donné de dictionnaire de géographie.De Word2Vec aux Transformers : l'évolution du sens
Au début, on utilisait des embeddings dits "statiques". Le modèle Word2Vec, lancé par Google en 2013, était révolutionnaire. Il créait un vecteur unique pour chaque mot. Le problème ? Le mot "avocat" a le même vecteur, que vous parliez du fruit ou du juriste. C'est ce qu'on appelle la polysémie, et les modèles statiques étaient totalement aveugles à ce détail. Tout a changé avec l'arrivée de BERT (Bidirectional Encoder Representations from Transformers) en 2018. Contrairement à ses prédécesseurs, BERT crée des embeddings contextualisés. Il regarde les mots autour pour décider de la valeur numérique du mot cible. Ainsi, "avocat" n'aura pas la même représentation s'il est entouré de "tribunal" ou de "salade". Voici un aperçu des différences majeures entre ces approches :| Caractéristique | Embeddings Statiques (Word2Vec, GloVe) | Embeddings Contextuels (BERT, GPT) |
|---|---|---|
| Représentation | Un mot = Un vecteur fixe | Un mot = Vecteur variable selon le contexte |
| Gestion de la polysémie | Faible (confusion entre sens) | Excellente |
| Complexité calcul | Légère et rapide | Élevée (nécessite des GPU) |
| Dimensions types | 300 dimensions | 768 à 1 024 dimensions |
Comment ça marche concrètement ?
Un embedding se présente comme une liste de nombres, par exemple : `[0.12, -0.59, 0.88, ...]`. Chaque nombre correspond à une dimension. On ne sait pas exactement ce que représente la dimension n°42, mais collectivement, ces dimensions capturent des traits comme le genre, le temps, la valence émotionnelle ou la catégorie grammaticale. Pour mesurer la ressemblance entre deux vecteurs, on n'utilise pas une règle graduée classique (distance euclidienne), mais on calcule l'angle entre eux : la similarité cosinus. Si l'angle est proche de zéro, les mots sont presque synonymes. C'est cette mesure qui permet aux moteurs de recherche modernes de comprendre que si vous cherchez "astuces pour dormir", un article sur la "méthode pour s'endormir plus vite" est pertinent, même si les mots exacts diffèrent. C'est aussi le moteur du RAG (Retrieval-Augmented Generation). Au lieu de demander à un LLM de se souvenir de tout, on stocke des millions d'embeddings de documents dans une base de données vectorielle. Quand vous posez une question, le système transforme votre question en vecteur, trouve les documents les plus proches dans l'espace, et les donne au LLM comme contexte. C'est ce qui réduit drastiquement les hallucinations de l'IA.
Les limites et les pièges
Tout n'est pas parfait. Les embeddings ont tendance à peiner avec les termes très techniques ou rares. Par exemple, dans le domaine médical ou juridique, la précision peut chuter de 15 à 20 % car les modèles généraux n'ont pas assez vu ces termes pour les placer correctement dans l'espace. Un autre point critique concerne les biais. Puisque les embeddings apprennent à partir de textes humains, ils absorbent nos préjugés. Des tests comme le WEAT ont montré que certains modèles associent plus fortement les hommes aux carrières de science et les femmes aux tâches ménagères. C'est un miroir numérique de nos propres clichés sociétaux. Enfin, la négation reste un défi. Pour un vecteur, "pas bon" est souvent très proche de "bon" car ils apparaissent dans les mêmes contextes. L'IA peut donc parfois confondre un compliment et une critique acerbe si elle ne maîtrise pas assez la structure logique de la phrase.Le futur : vers des espaces plus intelligents
On s'éloigne aujourd'hui des vecteurs massifs et coûteux. La recherche s'oriente vers les "sparse embeddings" (embeddings clairsemés) qui réduisent la taille des données de 75 % sans perdre en précision. On voit aussi l'émergence d'embeddings multimodaux, comme le modèle ImageBind de Meta, capable de placer un son, une image et un texte dans le même espace vectoriel. Imaginez : le vecteur du mot "chien" serait alors proche du vecteur d'une photo de golden retriever et du vecteur d'un aboiement. Pour ceux qui implémentent ces systèmes, la règle d'or est de choisir la bonne dimensionnalité. Trop peu, et vous perdez en nuance ; trop, et vos requêtes deviennent lentes et gourmandes en mémoire. En général, 768 dimensions sont le "sweet spot" pour la plupart des applications sémantiques.C'est quoi exactement la différence entre un token et un embedding ?
Le token est l'unité de base, comme un mot ou un morceau de mot, identifié par un numéro unique (ID). L'embedding est la représentation mathématique de ce token. Le token est l'étiquette, l'embedding est le sens.
Pourquoi utiliser la similarité cosinus plutôt que la distance euclidienne ?
La distance euclidienne mesure la distance directe entre deux points, ce qui peut être trompeur si les vecteurs ont des longueurs différentes. La similarité cosinus mesure l'angle, se concentrant sur la direction du sens plutôt que sur la magnitude, ce qui est bien plus efficace pour le langage naturel.
Est-ce que je peux visualiser un espace vectoriel ?
On ne peut pas visualiser 768 dimensions, mais on peut utiliser des techniques de réduction de dimensionnalité comme le PCA ou le t-SNE pour projeter ces vecteurs en 2D ou 3D et voir des "clusters" de mots se former.
Qu'est-ce qu'une base de données vectorielle ?
C'est un système de stockage optimisé pour indexer des vecteurs. Au lieu de chercher par mot-clé, elle utilise des algorithmes comme HNSW pour trouver ultra-rapidement les vecteurs les plus proches d'une requête, même parmi des millions d'entrées.
Comment réduire les biais dans les embeddings ?
Cela passe par le nettoyage des données d'entraînement ou l'application de techniques de "débiaisage" mathématique qui consistent à identifier la dimension du biais (ex: genre) et à l'annuler dans l'espace vectoriel.