Récapitulatif parlé — appuyez sur lecture pour suivre : la ligne lue reste en haut.
Comment fonctionne la « proximité » multidimensionnelle
Le problème avec les chaînes de caractères
Cherchez « voiture » et vous trouverez tous les documents contenant le mot « voiture ». Vous ne trouverez pas « automobile ». Ou « véhicule ». Ou « ma Civic a besoin de nouveaux freins ».
Pendant des décennies, c'est ainsi que fonctionnait la recherche, en retournant des résultats basés sur la similarité des chaînes plutôt que sur le sens. Google a continuellement apporté des améliorations progressives grâce à l'ingénierie : les dictionnaires de synonymes mappaient « voiture » à « automobile », les règles de racinisation connectaient « courir » à « cour », et l'exploitation des modèles de clics montrait que les personnes qui cherchent « appartements NYC » veulent les mêmes résultats que « locations Manhattan ». Les connexions entre les chaînes non correspondantes devaient être mappées plus ou moins manuellement.
Les embeddings ont remis tout cela en question avec l'idée que le sens pouvait être un lieu. En convertissant le texte en coordonnées, les concepts similaires se retrouvent près les uns des autres. Ce mappage de l'espace sémantique n'est pas manuel, mais plutôt émergent des données d'entraînement.
Encodage
Commençons par un exemple simplifié.
Imaginez que vous deviez évaluer chaque document d'un corpus de connaissances selon deux dimensions : à quel point il se rapporte aux dinosaures, et à quel point il se rapporte aux montagnes russes. Les documents sur des sujets similaires se retrouveraient près les uns des autres.
Commençons par seulement trois sources. Placez chacune d'elles où vous pensez qu'elle devrait être.
À quel point cela se rapporte-t-il aux montagnes russes ? →
pas du tout très très cliquez pour placer l'élément sélectionné
À quel point cela se rapporte-t-il aux dinosaures ? →
Sources
🦕
Un livre pour enfants sur les dinosaurescliquez pour sélectionner
🎢
La page web de Velocoastercliquez pour sélectionner
📚
Une encyclopédie entièrecliquez pour sélectionner
Vous venez de mapper le sens dans l'espace 2D, en traçant notre collection d'éléments en fonction de ce dont ils parlent.
Récupération
Maintenant, cherchons dans cet espace.
Tracez une question sur le même graphique avec les mêmes axes. En mappant votre question avec la même logique que celle utilisée pour mapper les sources, vous pouvez être sûr que les éléments les plus proches seront les plus pertinents. Bonus : utilisez le curseur pour contrôler le nombre d'éléments récupérés.
Sources à récupérer (k) : 2
À quel point cela se rapporte-t-il aux montagnes russes ? →
pas du tout très très cliquez pour placer la question
À quel point cela se rapporte-t-il aux dinosaures ? →
Question
❓ « Quelle est la meilleure montagne russe à thème dinosaure ? »
cliquez sur le graphique pour placer
C'est la recherche de similarité en résumé. Nous traçons la question et trouvons les k éléments les plus proches. Au lieu de la correspondance de mots-clés ou de tables de synonymes, nous utilisons la proximité multidimensionnelle.
Deux axes, c'est un début. Mais deux dimensions ne peuvent capturer que deux concepts. Le monde réel a plus de deux sujets, nous avons donc besoin de plus de dimensions.
Plus de dimensions
Et si nous ajoutions un troisième axe ? Utilisons la biologie.
Le livre pour enfants obtient un score élevé (espèces, habitats, régimes alimentaires). L'encyclopédie en couvre une partie. La page Velocicoaster la mentionne à peine.
Faites glisser pour faire pivoter.
Trois dimensions, trois coordonnées par document. La page Velocicoaster est maintenant (0,50, 0,90, 0,05) au lieu de (0,50, 0,90).
Essayez maintenant d'imaginer un quatrième axe.
Puisque je n'existe que dans 3 dimensions, je ne peux personnellement pas 😔 mais cela n'a en fait pas d'importance ! Chaque nouvelle dimension ajoute simplement une autre coordonnée à chaque point et un autre terme au carré à la formule de distance. La représentation spatiale cesse de fonctionner à 4D, mais les mathématiques continuent de fonctionner.
Nous allons devoir aller bien au-delà de 4D, car les vrais modèles d'embedding utilisent environ mille dimensions. Chaque document et chaque requête devient un point dans cet espace à mille dimensions. « Trouver les documents les plus proches » signifie toujours la même chose que sur le graphique 2D. C'est juste un calcul de distance plus long.
Axes sans étiquette
Nous avons choisi les axes : dinosaures, montagnes russes, biologie. Mais qui détermine quels 1 024 sujets font partie d'un vrai modèle d'embedding ?
En réalité, personne ne décide. Le sens de chaque axe est émergent (ce qui signifie qu'il apparaît simplement lors de l'entraînement), et c'est plutôt une boîte noire. Vous ne pouvez pas regarder la dimension 847 et dire « c'est l'axe des dinosaures ». Les dimensions ne correspondent à rien qu'un humain pourrait nommer.
Cela rend l'espace plus difficile à raisonner. Nous ne pouvons pas interroger la dimension 847 pour comprendre pourquoi deux textes se sont retrouvés près l'un de l'autre, ou pourquoi quelque chose que nous nous attendions à être proche s'est retrouvé loin.
Texte comme coordonnées
Alors qui attribue les coordonnées ? Un modèle d'embedding. N'importe quelle chaîne en entrée, une liste de nombres de longueur fixe en sortie.
Texte
« travailler de chez soi »
→
Embedding
[0,23, -0,87, 0,41, ... ]
1 024 valeurs
Texte
« Les employés peuvent travailler à distance jusqu'à deux jours par semaine avec l'approbation du responsable. »
→
Embedding
[0,71, 0,09, -0,33, ... ]
1 024 valeurs
La sortie a toujours la même longueur (1 024 valeurs dans notre cas spécifique, puisque nous utilisons le modèle d'embeddings de VoyageAI) et c'est vrai que l'entrée soit trois mots ou trois paragraphes. Un morceau de texte correspond à un point dans l'espace. Le modèle d'embedding lit le texte et produit un seul vecteur.
Ceux d'entre vous qui ont l'esprit mathématique reconnaîtront que « vecteur » et « ensemble de coordonnées » ne sont pas vraiment interchangeables, mais pour nos besoins, il est approprié de penser au vecteur comme l'adresse où ce texte se trouve par rapport à tout le reste.
Similarité
« Le plus proche » sur notre graphique 2D signifiait la distance en ligne droite. En pratique, la recherche de similarité utilise la similarité cosinus à la place. La similarité cosinus est simplement une autre mesure de la similarité entre deux morceaux de texte, basée sur la direction vers laquelle leurs vecteurs pointent plutôt que sur la distance qui les sépare.
Essayez vous-même ! Choisissez deux sources pour voir leur similarité cosinus.
Source A
❓ 🦕 🎢 📚
❓ Meilleure montagne russe à thème dinosaure ?
Source B
❓ 🦕 🎢 📚
🦕 Livre pour enfants sur les dinosaures
Similarité cosinus 0,2894
-1 opposé 0 sans rapport 1 identique
Essayez de comparer la page Velocicoaster au livre sur les dinosaures — leurs vecteurs pointent dans des directions très différentes. L'encyclopédie se situe quelque part entre tout, ce qui est logique, puisqu'elle est un touche-à-tout mais maître en rien.