Qu'est-ce que la recherche de similarité et comment fonctionne-t-elle ?

Conçu pour la vitesse : latence d'environ 10 ms, même en cas de charge
Une méthode incroyablement rapide pour créer, suivre et déployer vos modèles !
- Gère plus de 350 RPS sur un seul processeur virtuel, aucun réglage n'est nécessaire
- Prêt pour la production avec un support complet pour les entreprises
Dans le monde actuel axé sur les données, la recherche dans de grandes quantités de données pour trouver des éléments similaires est une opération fondamentale utilisée dans diverses applications, des bases de données aux moteurs de recherche et aux systèmes de recommandation. Ce processus, connu sous le nom de recherche de similarité, consiste à identifier des éléments similaires en fonction de certains critères.
Alors que les recherches traditionnelles dans les bases de données basées sur des critères numériques fixes (comme la recherche d'employés dans une fourchette salariale spécifique) sont simples, la recherche de similarité permet de répondre à des requêtes plus complexes. Par exemple, un utilisateur peut rechercher « chaussures », « chaussures noires » ou un modèle spécifique tel que « Nike AF-1 LV8 ». Ces questions peuvent être vagues et variées, obligeant le système à comprendre et à différencier des concepts tels que les différents types de chaussures.
Importance et applications
La recherche de similarité est cruciale dans de nombreux domaines, notamment :
- Commerce électronique : Recommander des produits similaires à ceux qu'un utilisateur a consultés ou achetés.
- Recherche d'images et de vidéos : Recherche d'images ou de vidéos visuellement similaires dans de grandes bases de données.
- Traitement du langage naturel : Correspondance de documents texte, d'e-mails ou d'articles similaires.
- Soins de santé : Identifier des cas médicaux ou des séquences génétiques similaires.
Le principal défi de la recherche de similarité est de traiter des données à grande échelle tout en comprenant avec précision les significations conceptuelles plus profondes des éléments recherchés. Les bases de données traditionnelles, qui reposent sur des représentations d'objets symboliques, sont insuffisantes dans de tels scénarios. Nous avons plutôt besoin de techniques plus avancées capables de gérer les représentations sémantiques des données et d'effectuer des recherches efficacement, même à grande échelle. Représentations, mesures de distance et différents algorithmes de recherche.
En tirant parti de la recherche de similarités, nous pouvons transformer des requêtes complexes et abstraites en informations exploitables, ce qui en fait un outil puissant dans divers domaines. Dans les sections suivantes, nous verrons comment fonctionne la recherche de similarité, en nous concentrant sur le rôle des représentations vectorielles, des métriques de distance et des différents algorithmes de recherche.
.webp)
Représentations vectorielles
Que sont les intégrations vectorielles ?
Dans l'apprentissage automatique, nous représentons des objets et des concepts du monde réel sous forme de vecteurs, qui sont des ensembles de nombres continus appelés intégrations. Cette approche nous permet de saisir les significations sémantiques plus profondes des éléments. Lorsque des objets tels que des images ou du texte sont convertis en intégrations vectorielles, leur similitude peut être évaluée en mesurant la distance entre ces vecteurs dans un espace de grande dimension.
Par exemple, dans un espace vectoriel, des images similaires auront des vecteurs proches les uns des autres, tandis que des images différentes seront plus éloignées. Cela permet d'effectuer des opérations mathématiques pour trouver et comparer efficacement des éléments similaires.
.webp)
Exemples de modèles d'intégration
Plusieurs modèles sont utilisés pour générer ces intégrations vectorielles :
- Word2Vec : Transforme les mots en vecteurs, capturant leurs relations sémantiques.
- GloVE (vecteurs globaux pour la représentation des mots) : Un autre modèle de conversion de texte en forme vectorielle, axé sur le contexte global des mots.
- Encodeur de phrases universel (USE) : Crée des intégrations pour des phrases entières, capturant le sens au-delà des mots individuels.
- Réseaux de neurones convolutifs (CNN) tels que VGG : Utilisé pour générer des intégrations pour les images, en capturant les similitudes visuelles.
Ces modèles sont entraînés sur de grands ensembles de données et de tâches, ce qui leur permet de produire des intégrations qui représentent efficacement le contenu sémantique des éléments.
Mesurer la similarité : mesures de distance
Vue d'ensemble des mesures de distance
Pour déterminer dans quelle mesure deux intégrations vectorielles sont similaires, nous utilisons des métriques de distance. Ces métriques calculent la « distance » entre les vecteurs dans l'espace vectoriel, les distances plus petites indiquant une plus grande similitude.
Distance euclidienne
La distance euclidienne mesure la distance en ligne droite entre deux points dans un espace de grande dimension. C'est la méthode la plus intuitive pour mesurer la distance, tout comme la distance géométrique que vous pouvez mesurer avec une règle. C'est utile lorsque les données sont denses et que le concept de distance physique est pertinent.
Formule :
.webp)
Distance de Manhattan
Également connue sous le nom de distance L1, la distance de Manhattan fait la somme des différences absolues de leurs coordonnées. Cette métrique convient aux structures de données de type grille et peut être visualisée comme la distance totale « d'un pâté de maisons » que l'on parcourrait entre les points d'une grille.
Formule :
.webp)
Similarité en cosinus
La similarité des cosinus mesure le cosinus de l'angle entre deux vecteurs, en se concentrant sur leur direction plutôt que sur leur amplitude. Cela est particulièrement utile pour les données textuelles, où l'amplitude du vecteur (fréquence des mots) peut varier, mais la direction (modèle d'utilisation des mots) est plus importante.
.webp)
Distance de Chebyshev
La distance de Chebyshev mesure la distance maximale entre les coordonnées d'une paire de vecteurs. Il est souvent utilisé dans des scénarios de grille semblables à des échecs où vous pouvez vous déplacer dans n'importe quelle direction, y compris en diagonale.
.webp)
Choisir la bonne métrique
Le choix de la bonne métrique de distance dépend des caractéristiques et des exigences spécifiques de l'application. Voici quelques conseils pour sélectionner la métrique appropriée :
Distance euclidienne
- Cas d'utilisation : Idéal pour les données denses et continues où le concept de distance géométrique est pertinent.
- Avantages : Simple à calculer et à interpréter ; fonctionne bien dans les espaces de faible dimension.
- Inconvénients : Peut être moins efficace dans les espaces de grande dimension en raison de la malédiction de la dimensionnalité.
- Exemples : Similarité des images, calculs de distance physique.
Distance de Manhattan
- Cas d'utilisation : Convient aux structures de données de type grille et aux scénarios où le mouvement est limité aux directions orthogonales.
- Avantages : Plus résistant aux valeurs aberrantes que la distance euclidienne dans certains cas.
- Inconvénients : Moins intuitif pour les données hors réseau ; peut être sensible à la mise à l'échelle des caractéristiques.
- Exemples : Algorithmes de recherche de trajectoire (comme A* dans les grilles), planification urbaine.
Similarité en cosinus
- Cas d'utilisation : Idéal pour les données textuelles et les données éparses de grande dimension où la direction est plus importante que la magnitude.
- Avantages : Efficace pour capturer l'orientation des vecteurs ; non affecté par la magnitude des vecteurs.
- Inconvénients : Peut ne pas fonctionner correctement si les vecteurs ne sont pas normalisés.
- Exemples : Similarité des documents, systèmes de recommandation pour les données textuelles.
Distance de Chebyshev
- Cas d'utilisation : Utile dans les scénarios où la différence de coordonnées maximale est critique, comme dans certains jeux de société.
- Avantages : Simple à calculer ; peut être utilisé pour la recherche de trajectoire basée sur une grille où le mouvement diagonal est autorisé.
- Inconvénients : Moins courant dans les ensembles de données naturels ; peut être moins intuitif pour les données continues.
- Exemples : Algorithmes d'échecs, navigation robotique dans des environnements de grille.

Effectuer une recherche de similarité
K-Voisins les plus proches (K-nn)
K-Nearest Nearest Neighbors (K-nN) est un algorithme populaire utilisé pour trouver les vecteurs les plus proches d'un vecteur de requête donné. Voici comment cela fonctionne, ses avantages et ses inconvénients :
- Comment ça fonctionne : L'algorithme calcule la distance entre le vecteur de requête et tous les vecteurs du jeu de données. Il sélectionne ensuite les « k » vecteurs les plus proches (voisins) en fonction de la métrique de distance spécifiée (Euclidien, Manhattan, etc.).
- Avantages : Simple à mettre en œuvre et à comprendre ; aucune phase de formation sur un modèle n'est nécessaire.
- Inconvénients : Coûteux en termes de calcul pour les grands ensembles de données car cela implique de calculer la distance à chaque vecteur.
- Cas d'utilisation : Convient aux petits ensembles de données nécessitant des voisins exacts les plus proches, par exemple dans les systèmes de recommandation pour les petites bases d'utilisateurs.
.webp)
Voisin le plus proche approximatif (ANN)
Pour remédier à l'inefficacité de k-NN avec de grands ensembles de données, les méthodes du voisin approximatif le plus proche (ANN) fournissent une alternative plus rapide, quoique moins précise. Les algorithmes ANN visent à trouver une « bonne estimation » des voisins les plus proches, en échangeant une certaine précision contre une certaine vitesse.
- Techniques d'indexation : Les algorithmes ANN utilisent des structures d'indexation telles que KD-Trees, Ball Trees et VP-Trees pour partitionner l'espace vectoriel et affiner la zone de recherche.
- Méthodes de hachage : Des algorithmes tels que le hachage sensible à la localisation (LSH) mappent des vecteurs similaires aux mêmes compartiments, réduisant ainsi l'espace de recherche.
- Regroupement : Des méthodes telles que les vecteurs de groupes de clustering k-means, qui permettent d'effectuer la recherche au sein d'un cluster plutôt que dans l'ensemble de données.
- Avantages : Nettement plus rapide que le k-NN exact pour les grands ensembles de données ; évolutif pour des milliards de vecteurs.
- Inconvénients : Peut ne pas toujours trouver les voisins les plus proches exacts ; cela dépend du compromis entre vitesse et précision.
- Cas d'utilisation : Moteurs de recherche Web, systèmes de recommandation à grande échelle, applications de recherche de similarité en temps réel.

Mise en œuvre pratique
Lors de la mise en œuvre de la recherche de similarité dans la pratique, plusieurs bibliothèques et frameworks peuvent vous aider :
- FAISS (recherche de similarité avec l'IA sur Facebook) : Une bibliothèque optimisée pour une recherche de similarité rapide et efficace sur de grands ensembles de données. (Lien)
- Ennuyé (voisins les plus proches approximatifs Oh oui) : Une bibliothèque C++ avec des liaisons Python, conçue pour une recherche rapide et économe en mémoire. (Lien)
- HNSW (Petit monde navigable hiérarchique) : Algorithme et bibliothèque pour la recherche ANN qui créent un graphe hiérarchique pour naviguer efficacement dans l'espace vectoriel. (Lien)
Applications de la recherche de similarité
La recherche de similarité a un large éventail d'applications dans divers domaines, tirant parti de la capacité de trouver et de comparer des éléments similaires rapidement et avec précision. Voici quelques applications clés :
1. Systèmes de recommandation
Les systèmes de recommandation utilisent la recherche de similarité pour suggérer des produits, du contenu ou des services en fonction des préférences et du comportement des utilisateurs.
- Commerce électronique : Recommander des produits similaires à ceux qu'un utilisateur a consultés ou achetés.
- Services de diffusion en continu : Suggérer des films, des émissions de télévision ou des morceaux de musique en fonction de l'historique de visionnage ou d'écoute.
- Publicité en ligne : Afficher des publicités correspondant aux intérêts d'un utilisateur en fonction de son activité de navigation.
2. Récupération d'images et de vidéos
La recherche de similarité est cruciale pour récupérer des images ou des vidéos visuellement similaires à partir de grandes bases de données.
- Récupération d'images basée sur le contenu (CBIR) : Recherche d'images correspondant à une image de requête en fonction de la similitude visuelle.
- Recommandation vidéo : Suggérer des vidéos similaires à celles qu'un utilisateur a regardées sur la base d'une analyse du contenu visuel.
3. Traitement du langage naturel (NLP)
En PNL, la recherche de similarité est utile dans diverses applications textuelles en trouvant des documents ou des phrases sémantiquement similaires.
- Regroupement de documents : Regroupement de documents similaires à des fins de modélisation thématique ou de catégorisation.
- Recherche sémantique : Améliorer les résultats des moteurs de recherche en comprenant le contexte et la signification des requêtes.
- Détection du plagiat : Identifier le texte dupliqué ou très similaire dans tous les documents.
4. Détection des fraudes
Détecter les activités frauduleuses en identifiant des modèles et des anomalies qui s'écartent du comportement normal.
- Transactions financières : Identifier les transactions inhabituelles qui ressemblent à des modèles frauduleux connus.
- Usurpation d'identité : Détecter les tentatives de connexion ou les activités de compte qui correspondent à des modèles de fraude antérieurs.
5. Santé et génomique
La recherche de similarité facilite le diagnostic médical et la recherche génétique en comparant les données des patients et les séquences génétiques.
- Imagerie médicale : Comparer les scans des patients pour identifier des cas similaires et faciliter le diagnostic.
- Recherche en génomique : Trouver des séquences génétiques similaires pour étudier les variations génétiques et leurs implications.
Défis liés à la recherche de similarité
Gestion de requêtes vagues et variées
L'un des principaux défis de la recherche de similarité est la nature des requêtes des utilisateurs. Les requêtes peuvent aller de termes très génériques tels que « chaussures » à des articles très spécifiques tels que « Nike AF-1 LV8 ». Le système doit être capable de discerner ces nuances et de comprendre comment les différents éléments sont liés les uns aux autres. Cela nécessite une compréhension approfondie de la signification sémantique des requêtes, qui va au-delà de la simple correspondance de mots clés.
Problèmes d'évolutivité
L'évolutivité constitue un autre défi majeur. Dans les applications du monde réel, nous avons souvent affaire à des ensembles de données volumineux pouvant inclure des milliards d'éléments. La recherche efficace dans de tels volumes de données nécessite des techniques avancées et de puissantes ressources de calcul. Les systèmes de base de données traditionnels, conçus pour des correspondances exactes et des représentations symboliques, ont du mal à fonctionner correctement dans ces scénarios.
Conclusion
La recherche de similarité, également connue sous le nom de recherche vectorielle, joue un rôle central dans diverses applications modernes. En utilisant des intégrations vectorielles et des mesures de distance sophistiquées, la recherche de similarité nous permet de trouver et de comparer des éléments en fonction de leur signification sémantique. Voici les principaux points à retenir :
- Comprendre les représentations vectorielles : La transformation d'objets du monde réel en intégrations vectorielles permet de saisir leur signification la plus profonde, ce qui permet de comparer efficacement les similarités.
- Choisir la bonne métrique : La sélection de la métrique de distance appropriée (Euclidean, Manhattan, Cosine, Chebyshev) dépend du cas d'utilisation spécifique et des caractéristiques des données.
- Exécution d'une recherche de similarité : Des techniques telles que K-nN (K-Nearest Neighbors) et Approximative Nearest Neighbor (ANN) permettent de trouver efficacement des éléments similaires dans de grands ensembles de données.
- Applications diverses : La recherche de similarité fait partie intégrante des systèmes de recommandation, de la récupération d'images et de vidéos, de la PNL, de la détection des fraudes et des soins de santé, entre autres domaines.
Pour exploiter pleinement la puissance de la recherche de similarités, il est essentiel de comprendre les principes sous-jacents et de choisir les outils et les techniques adaptés à vos besoins spécifiques. Que vous développiez un moteur de recommandation, un système de récupération basé sur le contenu ou un mécanisme de détection des fraudes, la recherche de similarité peut améliorer considérablement la précision et l'efficacité de vos solutions.
Questions fréquemment posées
Qu'est-ce qu'une recherche de similarité ?
La recherche de similarité est une technique qui permet de trouver des éléments similaires dans de vastes ensembles de données. Il repose sur des intégrations vectorielles qui capturent la signification conceptuelle des données, en utilisant souvent des représentations vectorielles et des mesures de distance. Ce processus est crucial pour des applications telles que les recommandations de produits et la correspondance de texte, car il permet aux systèmes d'identifier les informations pertinentes de manière efficace et précise.
Comment effectuer une recherche de similarité ?
Pour effectuer une recherche de similarité, des objets tels que du texte ou des images sont d'abord convertis en intégrations vectorielles à l'aide de modèles spécialisés. Ensuite, les métriques de distance, telles que la distance euclidienne ou la distance cosinus, mesurent la « distance » entre ces vecteurs dans un espace de grande dimension. Des distances plus petites indiquent une plus grande similitude. Par ailleurs, les indicateurs de similarité, tels que la similarité des cosinus, évaluent directement la proximité, alors qu'un score plus élevé (plus proche de 1) signifie plus similaire.
Quel est un exemple de recherche similaire ?
Un excellent exemple de recherche de similarité est une plateforme de commerce électronique qui recommande des produits similaires à ceux qu'un utilisateur a consultés ou achetés. Cela permet aux acheteurs de découvrir des articles pertinents sans effort. La recherche d'images, qui permet de trouver des images visuellement similaires à partir de vastes bases de données, est une autre application clé utilisant la technologie de recherche de similarité.
Qu'est-ce que la recherche de similarité dans LLM ?
Dans les systèmes alimentés par LLM, en particulier les pipelines RAG (Retrieval-Augmented Generation), la recherche de similarité fonctionne parallèlement au modèle en convertissant le texte en intégrations vectorielles qui capturent le sens sémantique. Une couche de récupération recherche ces vecteurs pour trouver le contenu le plus proche d'une requête, puis transmet les résultats au LLM en mesurant la distance entre ces vecteurs. Il est essentiel pour récupérer des informations pertinentes et générer des réponses contextuelles, améliorant ainsi considérablement la compréhension et l'utilité du modèle pour les utilisateurs.
Quels sont les cas d'utilisation de la recherche de similarité ?
La recherche de similarité est cruciale dans de nombreuses applications. Il améliore les recommandations de produits de commerce électronique, facilite la recherche d'images et de vidéos et améliore le traitement du langage naturel pour la correspondance de texte. Dans le secteur de la santé, il permet d'identifier des cas médicaux similaires et de transformer des données complexes en informations exploitables dans tous les secteurs.
La recherche sémantique est-elle la même chose que la recherche de similarité ?
La recherche sémantique repose sur la recherche de similarité pour trouver des éléments en fonction de leur signification, et pas seulement des mots clés. Il utilise des intégrations vectorielles pour représenter les données de manière sémantique. Alors que la recherche de similarité est la technique permettant de comparer ces vecteurs, la recherche sémantique est l'application qui l'exploite pour une compréhension contextuelle plus approfondie.
TrueFoundry AI Gateway offre une latence d'environ 3 à 4 ms, gère plus de 350 RPS sur 1 processeur virtuel, évolue horizontalement facilement et est prête pour la production, tandis que LiteLM souffre d'une latence élevée, peine à dépasser un RPS modéré, ne dispose pas d'une mise à l'échelle intégrée et convient parfaitement aux charges de travail légères ou aux prototypes.
Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA














.webp)


.png)


.webp)




.webp)







