Aller au contenu

Similarité Cosinus : La boussole de l'IA pour trouver du sens

Imaginez que vous êtes dans une bibliothèque infinie. Vous cherchez un livre sur les “félins”. Si le bibliothécaire fonctionnait comme un vieil ordinateur, il chercherait uniquement le mot exact “félins”. Résultat ? Il passerait à côté de tous les ouvrages parlant de “chats”, “tigres” ou “lions”, car ces mots ne s’écrivent pas pareil.

Mais aujourd’hui, l’Intelligence Artificielle (IA) agit comme un bibliothécaire surdoué. Vous demandez “félins”, et elle vous sort un livre sur les “chats”. Comment fait-elle le lien ? Elle ne regarde pas l’orthographe, elle regarde la direction du sens.

C’est ici qu’intervient la Similarité Cosinus. C’est l’outil mathématique qui permet à l’IA de comprendre que deux concepts pointent vers la même idée, même s’ils sont exprimés différemment ou avec des longueurs de texte très variées. Sans elle, ChatGPT ne pourrait pas suivre une conversation et Google ne comprendrait pas vos requêtes approximatives.

Le Problème : Pourquoi la distance classique échoue

Pour comprendre l’utilité de la similarité cosinus, il faut d’abord comprendre pourquoi nos méthodes habituelles de mesure ne fonctionnent pas avec le langage.

Dans le monde physique, si vous voulez savoir si deux villes sont proches, vous mesurez la distance à vol d’oiseau (distance euclidienne). Plus la distance est courte, plus c’est proche. Simple.

Mais dans le monde des données textuelles, cette logique s’effondre à cause de deux facteurs :

  1. La richesse du vocabulaire : Les données évoluent dans des espaces à des milliers de dimensions (chaque dimension représentant une caractéristique sémantique).
  2. La longueur du texte (Magnitude) : Un tweet disant “J’adore l’IA” et une thèse de 500 pages sur “Les avancées du Machine Learning” parlent du même sujet. Pourtant, si on les transforme en nombres, la thèse aura une “taille” (magnitude) gigantesque par rapport au tweet.

Si vous utilisez une règle classique (distance euclidienne), le tweet sera mathématiquement “très loin” de la thèse, simplement parce qu’il contient moins de mots. L’IA conclurait à tort qu’ils ne parlent pas de la même chose.

Comment ça Marche

La similarité cosinus est une métrique qui quantifie l’alignement entre deux vecteurs dans un espace multidimensionnel. Elle ne se demande pas “à quelle distance sont ces points ?”, mais “quel est l’angle entre ces deux flèches ?”.

Le Mécanisme en 3 Niveaux

Pour bien saisir le fonctionnement, montons progressivement en complexité.

Niveau 1 : L’Intuition Géométrique Tout texte est transformé par l’IA en une flèche (un vecteur) qui part d’un point zéro et pointe vers une direction dans un espace imaginaire.

  • Si deux flèches sont superposées (angle de 0°), le cosinus est de 1. Les textes sont identiques ou synonymes parfaits.
  • Si deux flèches forment un angle droit (90°), le cosinus est de 0. Les textes n’ont aucun rapport (ex: “Salade” et “Moteur V8”).
  • Si deux flèches sont opposées (180°), le cosinus est de -1. Les sens sont contraires (rare en NLP, mais possible mathématiquement).

Niveau 2 : La Cuisine Vectorielle (Embeddings) Avant de calculer cet angle, le texte passe par un modèle de langage (comme BERT ou GPT) qui le transforme en une liste de nombres, appelée Embedding. Par exemple, le mot “Roi” pourrait être le vecteur [0.9, 0.1] et “Reine” [0.8, 0.2]. Ces vecteurs capturent le sens. La similarité cosinus va comparer ces listes de nombres pour voir si elles “varient ensemble”.

Niveau 3 : La Formule Mathématique Pour les praticiens, voici ce qui se passe sous le capot. La similarité cosinus (SCS_C) entre deux vecteurs AA et BB est le produit scalaire des vecteurs divisé par le produit de leurs normes (longueurs).

SC(A,B)=ABA×B=AiBiAi2Bi2S_C(A, B) = \frac{A \cdot B}{||A|| \times ||B||} = \frac{\sum A_i B_i}{\sqrt{\sum A_i^2} \sqrt{\sum B_i^2}}

  • Numérateur (ABA \cdot B) : Mesure à quel point les vecteurs pointent dans la même direction.
  • Dénominateur (A×B||A|| \times ||B||) : C’est l’étape de normalisation. Elle divise le résultat par la longueur des vecteurs pour annuler l’effet de la “taille” du texte. C’est ce qui rend la mesure invariante à l’échelle.

Visualisation du Processus

Voici comment un système moderne traite votre recherche grâce à cette métrique :

graph LR
    A[Requête Utilisateur<br/>'Voiture rapide'] -->|Transformation| B(Embedding Vectoriel A)
    C[Document en Base<br/>'Bolide de course'] -->|Transformation| D(Embedding Vectoriel B)
    B & D --> E{Calcul Similarité Cosinus}
    E -->|Score: 0.89| F[Forte Pertinence<br/>Document Retrouvé]
    
    style E fill:#f9f,stroke:#333,stroke-width:2px
    style F fill:#bbf,stroke:#333,stroke-width:2px

Applications Concrètes

La similarité cosinus n’est pas juste une formule de laboratoire, c’est le moteur invisible de la plupart des applications d’IA générative et de recherche actuelles.

Le problème : Un utilisateur tape “Avocat” dans un moteur de recherche juridique.

Sans Cosinus : Le moteur cherche le mot-clé exact. Il risque de remonter des recettes de cuisine (le fruit) si le contexte n’est pas géré, ou rater des documents pertinents qui utilisent le terme “Juriste” ou “Défenseur”.

Avec Cosinus :

  1. La requête “Avocat” est vectorisée. Dans le contexte juridique, son vecteur pointe vers la direction “Droit/Justice”.
  2. Les documents contenant “Juriste”, “Barreau”, “Plaidoirie” ont des vecteurs pointant dans la même direction.
  3. Le calcul de similarité cosinus donne un score élevé (~0.85) entre “Avocat” et “Juriste”, même sans mot commun. Le moteur affiche les bons résultats.

Pourquoi c’est une révolution cognitive ?

L’efficacité de la similarité cosinus ne relève pas du hasard. Les sciences cognitives suggèrent qu’elle modélise assez fidèlement le fonctionnement du cerveau humain.

Selon la théorie des prototypes (Rosch), nous ne classons pas les objets par des règles strictes, mais par leur “distance” par rapport à un concept central. Un moineau est “plus” un oiseau qu’une autruche, car il est plus proche du prototype mental de l’oiseau.

La similarité cosinus capture cette nuance. Dans l’espace vectoriel :

  • Le vecteur “Moineau” est très aligné avec le vecteur “Oiseau” (Score 0.9).
  • Le vecteur “Autruche” est un peu plus désaxé (Score 0.7), tout en restant dans la même zone sémantique.
  • Le vecteur “Chaise” est orthogonal (Score 0.0).

Cette capacité à gérer le degré de ressemblance plutôt que des catégories binaires (Vrai/Faux) est ce qui donne à l’IA moderne sa “souplesse” de compréhension.

Les Pièges à Éviter

Même si la similarité cosinus est l’outil standard, elle n’est pas magique. Son utilisation demande de la rigueur.

Un autre piège subtil est la concentration de la mesure. Dans des espaces à très haute dimension (plus de 1000 dimensions), tous les points tendent à devenir équidistants. Bien que le cosinus résiste mieux à ce phénomène que la distance euclidienne, il peut perdre en discrimination si les embeddings sont mal entraînés ou trop compressés.

À Retenir

Pour intégrer la similarité cosinus dans votre boîte à outils mentale, gardez ces 5 points en tête :

  1. Direction > Distance : Elle mesure l’orientation de l’information (le sens), pas la distance physique ou la quantité de mots.
  2. Invariance d’échelle : Elle permet de comparer efficacement un mot seul avec un paragraphe entier.
  3. Score intuitif : Le résultat est toujours compris entre -1 (opposé) et 1 (identique), avec 0 pour l’indépendance totale.
  4. Rapidité : Avec des vecteurs pré-normalisés, le calcul est instantané, même sur des milliards de données (grâce aux opérations matricielles).
  5. Standard de l’industrie : C’est la métrique par défaut pour le RAG, la recherche sémantique et le clustering de documents.

Notions Liées

Pour approfondir votre compréhension de l’écosystème vectoriel :