Retour au Journal
4 min de lecture

Comprendre les Plongements Vectoriels et les Mathématiques de Similitude

Un guide accessible expliquant comment l'IA représente le sens sous forme de coordonnées spatiales, le fonctionnement de la similitude cosinus et l'astuce Normalize-then-Dot.

Vector DatabasesRetrieval-Augmented Generation (RAG)LLM Agents
Comprendre les Plongements Vectoriels et les Mathématiques de Similitude

Les moteurs de recherche traditionnels se basaient uniquement sur la correspondance exacte de chaînes de caractères. Si vous cherchiez "automobile", ils manquaient tous les documents contenant uniquement le mot "voiture".

L'intelligence artificielle moderne résout ce problème grâce aux plongements vectoriels (Vector Embeddings). Au lieu de comparer des caractères, les modèles projettent le texte sous forme de coordonnées spatiales capturant son sens sémantique.

Dans ce guide pour débutants, nous expliquerons comment les plongements représentent le sens dans un espace géométrique, comparerons les métriques mathématiques de similitude et analyserons l'optimisation utilisée par les bases de données vectorielles.


1. Qu'est-ce qu'un Plongement Vectoriel ?

Un modèle de plongement est un réseau de neurones qui agit comme un traducteur sémantique. Il transforme un texte en un tableau de nombres à virgule flottante de taille fixe appelé vecteur.

Input Text: "automobile"  ---> Embedding Model ---> [0.024, -0.412, 0.891, ..., 0.105]
Input Text: "car"         ---> Embedding Model ---> [0.021, -0.408, 0.887, ..., 0.112]

Ces nombres représentent des coordonnées dans una carte mathématique à haute dimension. Comme "car" et "automobile" désignent le même concept, leurs coordonnées se situent très proches l'une de l'autre.


2. La Géométrie du Langage : Comprendre la Dimensionnalité

Le nombre total de dimensions d'un vecteur définit sa dimensionnalité (par exemple 768 dimensions pour les modèles standard, ou 1536 pour les modèles plus grands).

Bien qu'il soit impossible de visualiser un espace à 768 dimensions, la géométrie suit les mêmes règles qu'un tracé en 2D :

  1. Chaque vecteur part de l'origine [0, 0, ... 0].
  2. Les valeurs indiquent la distance parcourue le long de chaque axe.
  3. La pointe de la flèche se situe à un point précis dans l'espace sémantique.
2D Vector Space Visualization:

  Y Axis (Concept: Technology)
    ^
    |      * "laptop" [2.1, 4.8]
    |      * "computer" [2.3, 4.5]
    |
    |                         * "banana" [4.9, 0.4]
    +------------------------------------------------> X Axis (Concept: Food)

Règle clé : N'essayez jamais d'isoler une seule coordonnée. Le sens est réparti sur l'ensemble du motif formé par toutes les dimensions combinées.


3. Métriques Mathématiques : Mesurer la Proximité

Pour déterminer si deux textes partagent le même sens, l'ordinateur mesure la proximité de leurs flèches vectorielles :

1. Norme du Vecteur (Norme L2)

Calcule la longueur exacte de la flèche depuis l'origine jusqu'à sa pointe :

a=i=1nai2\|\mathbf{a}\| = \sqrt{\sum_{i=1}^{n} a_i^2}

2. Produit Scalaire (Dot Product)

Multiplie les coordonnées correspondantes de deux vecteurs et additionne les résultats :

ab=i=1naibi\mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^{n} a_i b_i

3. Distance Euclidienne (Distance L2)

Mesure la distance en ligne droite entre les pointes des deux flèches :

d(a,b)=i=1n(aibi)2d(\mathbf{a}, \mathbf{b}) = \sqrt{\sum_{i=1}^{n} (a_i - b_i)^2}

4. Similitude Cosinus (Cosine Similarity)

Mesure l'angle θ\theta entre les deux flèches en ignorant totalement leur longueur :

cos(θ)=abab\cos(\theta) = \frac{\mathbf{a} \cdot \mathbf{b}}{\|\mathbf{a}\| \|\mathbf{b}\|}

  • Le standard ultime pour la recherche textuelle : Si une recherche courte de 3 mots et un article de 500 mots traitent du même sujet, leurs flèches pointent dans la même direction (θ0    cos(θ)1.0\theta \approx 0^\circ \implies \cos(\theta) \approx 1.0).

4. Optimisation en Production : L'astuce "Normalize-Then-Dot"

Calculer la similitud cosinus sur des millions de vecteurs nécessite des divisions coûteuses en calcul.

Les bases de données vectorielles (Pinecone, Milvus, pgvector) utilisent une astuce mathématique :

Étape 1 : Normalisation lors de l'insertion

Chaque vecteur inséré est normalisé pour avoir une longueur égale à 1.01.0 (a^\hat{\mathbf{a}}) :

a^=aa\hat{\mathbf{a}} = \frac{\mathbf{a}}{\|\mathbf{a}\|}

Étape 2 : Requête simplifiée

Lorsque les deux vecteurs ont une norme de 1.01.0 (a^=1\|\hat{\mathbf{a}}\| = 1 et b^=1\|\hat{\mathbf{b}}\| = 1), le dénominateur de la formule du cosinus devient égal à 11 :

cos(θ)=a^b^1×1=a^b^\cos(\theta) = \frac{\hat{\mathbf{a}} \cdot \hat{\mathbf{b}}}{1 \times 1} = \hat{\mathbf{a}} \cdot \hat{\mathbf{b}}

Grâce à cette normalisation préalable, la similitud cosinus devient un simple produit scalaire. La base de données évite les divisions à l'exécution et atteint une vitesse maximale avec une précision identique.

Share this article