Comprendre la recherche sémantique
Examinons les principes fondamentaux de la recherche sémantique :
- La façon dont elle diffère de la recherche lexicale standard.
- Qu’est-ce que l’incorporation de vecteurs ?
- Que font les bases de données vectorielles ?
Qu’est-ce que la recherche sémantique ?
Recherche lexicale standard ou recherche par mots clés, interroge des documents en faisant correspondre les caractères. Par exemple, la requête « light » correspond au texte « lumineux » car le caractère light apparaît dans le document.
La recherche lexicale peut être augmentée avec des correspondances approximatives. Par exemple, la requête « lumières » peut toujours correspondre au texte « lumière vive » ou à lihgts mal orthographié en raison d’un caractère désactivé (un caractère s, manquant ou la permutation de g et h). Bien que les correspondances approximatives et d'autres techniques telles que le lemmatisation soient utiles, cette technique doit correspondre aux synonymes ou au langage sémantiquement similaire : formulations différentes, argot, vocabulaire technique, etc. Pour fournir les résultats de recherche les plus pertinents avec la recherche lexicale, les auteurs doivent incorporer des mots clés dans des métadonnées ou le texte lui-même, ce qui peut offrir une expérience utilisateur maladroite.
Découvrez la recherche sémantique. La recherche sémantique n’utilise pas de similarité de caractères. Au lieu de cela, il utilise des représentations numériques des concepts en mots et expressions. Ces représentations numériques sont appelées vecteurs d’incorporation ou simplement incorporations.
Si deux incorporations sont numériques similaires, elles sont également sémantiquement similaires. Cette similarité est plus générale que le test du chevauchement des mots clés, car il est moins sensible à la sélection ou à la formulation précise des mots clés.
Pour effectuer une recherche sémantique, commencez par générer le vecteur d’incorporation de la requête. Ensuite, comparez ce vecteur à une base de données de vecteurs. Les incorporations les plus proches de l’incorporation de la requête sont les documents les plus semblables sur le plan sémantique à la requête.
La plupart des cas d’usage de base de données relationnelle n’impliquent pas de stockage de vecteurs ndimensionnels et de calcul de la distance numérique entre eux. La recherche sémantique efficace nécessite la fonctionnalité de base de données vectorielle .

Incorporations
Une incorporation est une représentation numérique de la sémantique. Les intégrations sont représentées sous forme de vecteurs n-dimensionnels : tableaux de n nombres. Chaque dimension représente une qualité sémantique telle que déterminée par le modèle d’incorporation.

Si deux vecteurs incorporés pointent dans des directions similaires, ils représentent des concepts similaires, tels que « lumineux » et « ensoleillés ». S’ils s’éloignent les uns des autres, ils représentent des concepts opposés, tels que « triste » et « heureux ». La structure de modèle incorporée et les données d’apprentissage déterminent ce qui est considéré comme similaire et différent.
Les incorporations peuvent être appliquées au texte et à n’importe quel type de données, comme les images ou l’audio. La partie critique transforme les données en vecteurs d’incorporation ndimensionnels en fonction d’un modèle ou d’une fonction. La similarité numérique des incorporations substitue la similarité sémantique de leurs données correspondantes.
La similarité numérique de deux vecteurs n-dimensionnels v1 et v2 est donnée par leur produit scalaire, écrit v1·v2. Pour calculer le produit point, multipliez la paire de valeurs de chaque dimension, puis additionnez le résultat :
dot_product(v1, v2) = SUM(
v1[0] * v2[0],
v1[1] * v2[1],
...,
v1[n-1] * v2[n-1],
v1[n] * v2[n]
)
Étant donné que les incorporations sont des vecteurs unitaires (vecteurs de longueur 1), le produit point est égal à la similarité cosinus des vecteurs, une valeur entre -1 (directions exactement opposées) et 1 (exactement la même direction). Les vecteurs avec une similarité cosinus de zéro sont orthogonaux : sémantiquement non liés.
Vous pouvez visualiser des espaces ndimensionnels en les projetant dans un espace 3 dimensions à l’aide de l’analyse des composants principaux (PCA). PCA est une technique standard pour réduire les dimensions vectorielles. Le résultat est une projection simplifiée mais visualisable de l’espace ndimensionnel. Le rendu de vos incorporations de documents de cette façon montre que d’autres documents similaires sont regroupés dans des clusters, tandis que d’autres documents différents sont éloignés.
Étant donné ces définitions, l’exécution d’une recherche sémantique d’une requête sur une collection d’incorporations de documents est simple mathématiquement :
- Générez l’incorporation de requête à l’aide d’un modèle de langage.
- Prenez le produit scalaire de l’incorporation de la requête par rapport à l’incorporation précalculée de chaque document.
- Triez les produits scalaires, les nombres compris entre -1 et 1.
- Les documents les plus pertinents (sémantiquement similaires) ont les scores les plus élevés, et les documents les moins pertinents (sémantiquement différents) ont les scores les plus bas.
Bien que simple mathématiquement, il ne s’agit pas d’une requête simple ou performante dans une base de données relationnelle. Pour stocker et traiter ce type de requête de similarité vectorielle, utilisez une base de données vectorielle.
Bases de données vectorielles
Une base de données vectorielle optimise le stockage et le calcul de vecteurs multidimensionnels, tels que les incorporations. Les bases de données vectorielles fournissent en particulier des calculs rapides et précis de produit scalaire pour exécuter une requête de similarité vectorielle.
Les recherches de similarité vectorielle ont plusieurs cas d’usage :
- rechercher des images similaires à l’incorporation de l’image de requête
- rechercher des documents sémantiquement similaires au texte de la requête
- rechercher des produits avec des fonctionnalités et des évaluations similaires pour un système de recommandation
La recherche sémantique interroge la base de données vectorielle pour la similarité de l’incorporation de requête à chaque incorporation stockée. Les applications peuvent ensuite extraire les données correspondant aux incorporations.
Il existe de nombreuses bases de données vectorielles natives et extensions de base de données à choisir. Les services Azure suivants peuvent vous aider à répondre aux besoins de votre base de données vectorielle :