Qu'est-ce que la recherche de similarité ? Le guide ultime

Jeffrey Erickson | Senior Writer | 14 novembre 2025

« Plus vous travaillez dur, plus il semble facile » est une citation du grand hockey Jonathan Toews, mais cela pourrait aussi être la devise de la recherche de similarité. Bien sûr, il semble facile d'apporter des réponses et des recommandations en quelques secondes. Mais les flux de données complexes, les systèmes d'IA et la puissance de calcul regroupés derrière cette technique de recherche sont formidables. En repérant rapidement les correspondances, même dans de grands ensembles de données, la recherche de similarité est devenue un acteur essentiel du traitement du langage naturel, des systèmes de recommandation, de la détection des fraudes et des moteurs de recherche, ainsi que d'un nombre croissant de cas d'usage dans l'industrie, y compris la découverte de médicaments. Mais comment cette technologie agile fonctionne-t-elle si rapidement grâce à tant de données non structurées ? Et en quoi est-ce différent ou complémentaire des recherches de mots-clés chevronnés ? Chaussez vos crampons et explorons les tenants et aboutissants de la recherche de similarité.

La recherche de similarité expliquée

La recherche de similarité est une technique de data science et de machine learning qui cherche à trouver rapidement des éléments dans un ensemble de données qui ressemblent le plus à un élément de requête. Comment ces systèmes savent-ils que les éléments d'un ensemble de données, tels qu'une image, un morceau de texte ou un fichier audio, sont identiques ? Le système exécute ces données via un modèle d'IA sophistiqué qui quantifie les caractéristiques du monde réel de chaque élément afin qu'elles puissent être évaluées mathématiquement. Les nombres qui décrivent un élément sont appelés son vecteur d'intégration. Les intégrations vectorielles fournissent aux ordinateurs des nombres avec lesquels ils peuvent travailler et qui représentent les idées et les objets présents dans les données non structurées. Une base de données vectorielle stocke, indexe et permet la recherche d'un grand nombre de vecteurs, chacun représentant un élément individuel dans l'espace haute dimension. Cela permet de déterminer mathématiquement à quel point deux éléments sont proches l'un de l'autre.

Le système identifie ensuite les correspondances les plus proches en fonction d'une mesure de distance bien connue, telle que la distance euclidienne, la similarité cosinus ou la similarité de Jaccard. Les analystes de données qui développent un système de recherche de similarité choisissent les mesures et les algorithmes de recherche en fonction du type de données recherché et du type de travail effectué par le système, tel que la détection d'anomalies, la recommandation de produit ou le traitement du langage naturel. Par exemple, un algorithme tel que le voisin le plus proche approximatif (ANN) est conçu pour accélérer le processus de recherche de similarité en fournissant un compromis entre précision et vitesse, en particulier dans les jeux de données qui peuvent contenir des milliards d'éléments. Les méthodes ANN populaires comprennent Annoy, une bibliothèque open source qui fournit une structure arborescente pour une recherche efficace, et Faiss, qui utilise des techniques d'indexation avancées pour gérer des milliards de vecteurs.

Comment fonctionne la recherche de similarité ?

La recherche de similarité permet d'identifier les fonctions qui se ressemblent entre une requête et les éléments du jeu de données recherché. Cela se fait le plus souvent par le biais de techniques telles que l'intégration de vecteurs, l'indexation et la recherche de voisin le plus proche. Voici un aperçu des étapes à suivre :

  • Génération d'intégrations de vecteurs : les intégrations de vecteurs sont des représentations numériques des fonctions trouvées dans des données non structurées ou semi-structurées. La création des incorporations implique la conversion de données brutes, telles que du texte, des images ou de l'audio, en chaînes de nombres appelées vecteurs, qui capturent les caractéristiques et le contexte essentiels des données. Un grand nombre de modèles d'IA sont utilisés pour générer ces intégrations. Par exemple, dans le texte, le modèle Embed de Cohere crée des vecteurs qui reflètent les relations sémantiques et syntaxiques entre les mots, permettant aux mots similaires d'être proches les uns des autres dans l'espace vectoriel. Notez que le domaine de l'intégration de vecteurs évolue rapidement et que de nombreux modèles open source innovants sont disponibles dans Open Neural Network Exchange.
  • Indexation et requête : l'indexation est le processus qui consiste à organiser et à stocker les incorporations vectorielles de manière à permettre une recherche et une extraction efficaces. Dans une base de données vectorielle, chaque élément de l'ensemble de données reçoit une intégration vectorielle qui le décrit, et les vecteurs sont disposés dans l'index pour permettre au système de trouver rapidement des vecteurs similaires. Un vecteur est également calculé pour chaque requête de recherche. Cela permet à la base de données de rechercher rapidement son index pour déterminer les éléments qui ressemblent le plus à la requête.
  • Effectuer la recherche : la recherche commence par la conversion de la requête en vecteur à l'aide de la même technique appliquée aux éléments du jeu de données. L'algorithme de recherche utilise alors son vecteur pour trouver les voisins les plus proches de ce vecteur de requête. Ces voisins sont les plus semblables à la requête. Les résultats sont souvent classés en fonction de leurs scores de similarité, et les meilleures correspondances sont renvoyées à l'utilisateur ou traitées ultérieurement pour trouver les meilleurs résultats pour la requête.

Avantages et limites de la recherche de similarité

La recherche de similarité est un outil puissant et avantageux pour certaines applications, en particulier celles impliquant des données non structurées. Cependant, il est crucial d'être conscient de ses limites et de choisir des techniques et des mesures appropriées pour le problème spécifique en question.

Avantages :

  • Efficacité : la recherche de similarité permet d'extraire rapidement et précisément les résultats en indexant les éléments de manière logique à l'aide d'algorithmes capables de localiser rapidement les éléments les plus similaires dans un ensemble de données volumineux, sans avoir à effectuer de comparaisons exhaustives.
  • Personnalisation : Grâce à la recherche de similarité, les applications peuvent personnaliser les suggestions pour les utilisateurs. L'application le fait en analysant le comportement et les préférences des utilisateurs et en générant des incorporations vectorielles qui capturent les goûts et les intérêts de l'utilisateur. Une recherche de similarité peut alors identifier et suggérer rapidement des produits, des articles ou des médias.
  • Versatilité/évolutivité : la possibilité de rechercher efficacement des types de données divers et complexes, tels que le texte, la vidéo et l'audio, permet au système d'être adapté à différents cas d'usage : filtrage basé sur le contenu, détection des fraudes, etc.
  • Rendement des coûts : l'efficacité de la recherche de similarité peut se traduire par une réduction des coûts opérationnels et de meilleures performances. Les techniques d'indexation efficaces et les algorithmes ciblés de la méthode de recherche réduisent le temps et les ressources de calcul nécessaires pour trouver des éléments similaires. Cela peut être extrêmement bénéfique pour les ensembles de données très volumineux.

Les limites comprennent :

  • Complexité : la génération d'intégrations vectorielles, le choix de mesures de similarité appropriées et l'implémentation d'algorithmes d'indexation et d'interrogation efficaces sont des tâches qui nécessitent un haut niveau d'expertise en informatique et en gestion des données. Cela peut être un obstacle pour les organisations qui veulent construire leurs propres systèmes mais qui ne disposent pas des compétences techniques nécessaires.
  • Intensivité des ressources : bien que la recherche de similarité puisse être un moyen rentable de rechercher des ensembles de données volumineux, il reste des coûts à prendre en compte pour votre cas d'usage. Par exemple, le processus de génération d'intégrations, de création d'index et d'exécution de requêtes peut nécessiter beaucoup de temps et de puissance de calcul. Cela peut entraîner des coûts plus élevés et des exigences d'infrastructure plus strictes.
  • Condition de préparation des données : pour offrir les résultats les plus pertinents, la recherche de similarité nécessite des données de haute qualité et un prétraitement complet. Par exemple, les données brutes doivent souvent être nettoyées, normalisées et transformées dans un format approprié pour que le système puisse générer des incorporations. Cette étape de préparation peut prendre du temps.
  • Problèmes de confidentialité : La confidentialité des données et le respect des réglementations en vigueur sont des éléments importants de tout système de recherche de similarité, en particulier lorsqu'il traite des workloads de production. Cela peut ajouter de la complexité et de la surcharge à l'implémentation.

Concepts de base de la recherche de similarité

Une compréhension des concepts de base de la recherche de similarité est essentielle pour implémenter et utiliser efficacement la technologie dans vos applications. Les techniques et technologies ci-dessous fonctionnent ensemble pour fournir les résultats souhaités.

Représentations vectorielles

La représentation vectorielle est le processus où les caractéristiques et les caractéristiques du contenu stocké sont converties en vecteurs numériques dans un espace multidimensionnel. Ces vecteurs capturent l'essentiel de l'élément de données, comme la signification des mots dans le texte, les éléments visuels dans les images ou les modèles dans l'audio. Le vecteur résultant qui décrit un élément est son intégration vectorielle. En créant des vecteurs pour les données et les requêtes, une base de données vectorielle peut utiliser des représentations pour mesurer et comparer efficacement la proximité de différents éléments et requêtes.

Mesures de distance

Les mesures de distance sont essentielles dans la recherche de similarité car elles quantifient la similarité ou la dissimilarité entre les vecteurs. Le choix de la mesure de distance dépend de la nature des données et des exigences spécifiques de l'application. Les mesures de distance courantes comprennent la distance euclidienne, qui mesure la distance linéaire entre deux points ; la similarité cosinus, qui évalue le cosinus de l'angle entre deux vecteurs pour déterminer leur orientation ; et la similarité de Jaccard, qui est utile pour comparer des ensembles de caractéristiques représentés dans les vecteurs même s'ils sont de tailles différentes.

Techniques et algorithmes de recherche de similarité

Une entreprise choisira une technique de recherche de similarité en fonction de l'objectif final de son application. Par exemple, construit-elle un système de détection d'anomalies, de recherche d'images ou de traitement du langage naturel ? Ces techniques intègrent les mesures de distance mentionnées ci-dessus pour accomplir leur tâche. Deux techniques populaires sont KNN et ANN, décrites ci-dessous :

K voisins les plus proches, ou KNN : dans une recherche de similarité basée sur la technique KNN, un vecteur de requêtes est comparé à un ensemble de vecteurs de données, et l'algorithme identifie les points de données « k » les plus proches de la requête en fonction d'une mesure de distance choisie, telle que la distance euclidienne ou la similarité cosinus. KNN prédit la catégorie ou la valeur d'une nouvelle donnée ou requête en la comparant à des voisins proches dans l'ensemble de données, en supposant que des données similaires seront situées les unes près des autres dans l'espace vectoriel.

KNN calcule les distances entre la requête et toutes les données de l'ensemble, ce qui le rend coûteux en calcul, en particulier lorsqu'il s'agit de jeux de données volumineux. Malgré cela, KNN peut être efficace pour de nombreuses applications, y compris les systèmes de recommandations, la reconnaissance d'images et la détection d'anomalies.

Voisin le plus proche approximatif, ou ANN : ANN est une technique utilisée dans la recherche de similarité pour trouver efficacement des éléments dans un ensemble de données extrêmement proches du vecteur représentant une requête, mais sans avoir à calculer des distances exactes à chaque point unique. Cette méthode est utile pour les ensembles de données à grande échelle où la recherche du voisin le plus proche nécessiterait trop de puissance de calcul pour être utile. Les algorithmes ANN, tels que le hachage sensible à la localité (LSH) et les méthodes basées sur des arbres, effectuent une recherche approximative en réduisant la dimensionnalité des données ou en utilisant des structures d'indexation pour réduire rapidement les candidats potentiels. Les résultats peuvent ne pas être parfaitement précis, mais ils sont souvent suffisamment proches à des fins pratiques. L'ANN est couramment utilisé dans des applications telles que la recherche d'images et le traitement du langage naturel.

Applications de la recherche de similarité

La recherche de similarité est populaire pour plusieurs types d'applications. Une recherche de similarité peut se produire lorsqu'elle est présentée avec des recommandations d'un service de streaming ou des réponses d'un moteur de recherche. Mais cette technique de recherche peut également figurer en arrière-plan dans la finance et la sécurité des données. Voici un aperçu d'autres applications populaires de recherche de similarité :

  • Recherche d'images : lorsque vous demandez à une application d'IA de rechercher des images en fonction de votre requête ou de votre exemple d'image, il est fort probable que celle-ci utilise une recherche de similarité pour localiser ces images. Le système convertit les images en vecteurs de caractéristiques afin que les algorithmes puissent comparer ces vecteurs à ceux stockés pour chaque élément de son ensemble de données et identifier les images présentant des caractéristiques similaires. Le système extrait ensuite efficacement les images les plus similaires d'une base de données volumineuse. Cela est utile dans les applications telles que la recherche d'images inversées, où les utilisateurs peuvent télécharger une image pour en trouver des similaires ou identiques, et dans les systèmes de récupération d'images basés sur le contenu qui extraient des images en fonction de descriptions écrites. Dans un autre exemple, le contrôle de la qualité de fabrication compare les images de pièces nouvellement créées avec des échantillons connus bons et mauvais pour identifier les pièces à examiner plus avant.
  • Systèmes de recommandations : lorsque vous arrivez à l'application d'un détaillant ou d'un service de streaming et que vous trouvez des recommandations, vous savez que leurs systèmes ont effectué une recherche de similarité en fonction de vos préférences et de vos comportements passés. Ces systèmes convertissent les préférences utilisateur et les attributs d'élément en vecteurs et les indexent dans un espace à haute dimension où les vecteurs de produit sont également indexés. Ensuite, ils calculent la similarité entre ces vecteurs à l'aide de métriques telles que la similarité cosinus ou la distance euclidienne, ce qui entraîne une courte liste d'éléments les plus susceptibles de vous intéresser. Par exemple, un système de recommandation de film peut capturer vos choix et préférences passés en tant que vecteurs, ce qui permet au système de recommander des films similaires à ceux que vous avez déjà appréciés. La possibilité d'une personnalisation rapide et précise de Similarity Search en a fait une pierre angulaire du commerce électronique, des services de streaming et des plateformes de réseaux sociaux.
  • Détection de la fraude : lorsque votre détaillant ou votre institution financière recherche des transactions frauduleuses, ils utilisent souvent la recherche de similarité. Elle les aide à identifier des modèles inhabituels ou des anomalies dans les données qui peuvent indiquer une activité frauduleuse. En représentant les transactions ou les comportements des utilisateurs en tant que vecteurs, ces systèmes peuvent comparer de nouveaux points de données aux données historiques pour trouver les correspondances les plus proches. Si une nouvelle transaction ou un nouveau comportement est suffisamment différent de ses voisins les plus proches, il peut être signalé comme suspect. En aidant à détecter les valeurs aberrantes et les anomalies, la recherche de similarité est devenue cruciale dans les services financiers et les autres entreprises qui cherchent à endiguer les pertes ou à atténuer les menaces de sécurité.
  • Exploration des données d'entreprise : la recherche de similarité peut, par exemple, aider un homme d'affaires à explorer les données d'entreprise avec des prompts en langage naturel au lieu d'écrire des instructions SQL. Avec la recherche de similarité et la RAG, l'exploration et la visualisation des données peuvent prendre la forme d'une conversation entre un homme d'affaires et un jeu de données tabulaires ou un magasin de documents semi-structuré.
  • Santé et découverte de médicaments : les secteurs de la santé et de la biotechnologie mettent la recherche de similarité au travail de plusieurs façons. En vectorisant de grands volumes de données de l'industrie, une recherche de similarité peut révéler des études, des composés ou des mécanismes contextuellement pertinents qui ont pu être négligés par les méthodes de recherche traditionnelles basées sur des mots clés, aidant les personnes de ces industries à connecter les points de manière nouvelle. Dans les bases de données chimiques et les bibliothèques de composés, la recherche de similarité a le potentiel d'identifier des correspondances basées sur les propriétés pharmacologiques pour accélérer la découverte de médicaments tout en réduisant les coûts. Ces mêmes capacités de correspondance de modèles peuvent aider à découvrir de nouvelles relations dans les données d'expression des gènes, le séquençage des protéines et d'autres grands ensembles de données biologiques ou chimiques.

Outils et bibliothèques

Il existe plusieurs outils et bibliothèques conçus pour aider les entreprises à mettre en œuvre efficacement la recherche de similarité, mais ils diffèrent dans leurs approches et leurs fonctionnalités. Voici quelques exemples:

  • Annoy, abréviation de Approximate Nearest Neighbors Oh Yeah, est une bibliothèque légère et efficace pour une recherche approximative de voisin le plus proche développée par Spotify. Elle est particulièrement utile pour les applications où la vitesse et l'efficacité de la mémoire sont des critères clés. Annoy construit une structure arborescente pour indexer les vecteurs, permettant une récupération rapide des voisins les plus proches. Annoy peut être intégré dans une variété d'environnements de programmation, y compris Python et C++.
  • Faiss, abréviation de Facebook AI Similarity Search, est une bibliothèque open source développée par Facebook AI Research qui est désormais largement utilisée dans les applications telles que les systèmes de recommandations, la reconnaissance d'images et le traitement du langage naturel. Faiss est optimisé pour la recherche de similarité haute performance et peut gérer des milliards de vecteurs sur une seule machine. Il prend en charge plusieurs mesures de distance et méthodes d'indexation, notamment les graphiques de type fichier plat inversé (IVF) et Hierarchical Navigable Small World (HNSW).
  • Milvus est une base de données vectorielle native du cloud open source conçue pour la recherche de similarité dans divers éléments, notamment des images, des vidéos et du texte. Milvus prend en charge plusieurs algorithmes d'indexation et mesures de distance, et peut être déployé dans le cloud ou dans une version light sur un appareil. Elle est connue pour sa flexibilité et sa facilité d'intégration avec d'autres structures de traitement de données et de machine learning, ce qui en fait un choix populaire pour une grande variété d'applications de recherche de similarité.
  • Pinecone est une base de données vectorielle basée sur le cloud conçue pour la recherche de similarité dans les applications à grande échelle. Elle offre une solution qui simplifie le processus de stockage, d'indexation et d'interrogation des vecteurs haute dimension, ce qui la rend populaire pour les tâches telles que les systèmes de recommandations, la recherche d'images et le traitement du langage naturel. Elle prend en charge une variété de mesures de distance et fournit des API pour des intégrations rapides avec les systèmes existants.
  • Oracle AI Database est une base de données multimodale qui offre une recherche vectorielle d'IA native sur les banques de données stratégiques des grandes entreprises. Elle permet aux développeurs d'apporter facilement une recherche de similarité basée sur l'IA aux données d'entreprise sans gérer et intégrer plusieurs bases de données ni compromettre les fonctionnalités, la sécurité et la cohérence. Les entreprises, y compris les grandes entreprises et les start-ups en évolution rapide, l'utilisent pour activer des applications de recherche par IA ultrasophistiquées.

Améliorez la recherche de similarité avec Oracle AI Vector Search

Faites-vous ou prévoyez-vous une recherche de similarité dans vos applications ? Si oui, ne fournissez pas vos données à l'IA. Laissez Oracle apporter l'IA et la recherche de similarité directement aux données de votre entreprise dans une architecture simplifiée et adaptée à votre entreprise.

La recherche vectorielle d'IA native dans Oracle AI Database facilite la conception, la création et l'exécution de la recherche de similarité avec d'autres types de données pour améliorer vos applications. Il s'agit notamment des types de données relationnelles, textuelles, JSON, spatiales et graphiques, le tout dans une seule base de données que vous pouvez essayer gratuitement.

Oracle AI Vector Search : ses fonctionnalités incluent le chargement de documents, la transformation, le découpage, l'intégration, la recherche de similarité et la RAG avec les LLM de votre choix. Elles sont disponibles de manière native ou via des API au sein de la base de données.

Créez des fonctionnalités de recherche de similarité sur Oracle Cloud Infrastructure et vous obtiendrez une IA conçue pour l'entreprise, avec évolutivité, performances, haute disponibilité et sécurité intégrées à la plateforme de gestion des données prenant en charge votre application d'IA.

Votre infrastructure de données est-elle configurée pour gérer la recherche de similarité et d'autres initiatives d'IA ? Notre e-book présente un plan pour construire une base de données suffisamment solide pour soutenir le succès de l'IA.

FAQ sur la recherche de similarité

Comment la recherche de similarité peut-elle bénéficier à mon entreprise ?

Un système de recherche vectorielle d'IA dans votre entreprise peut faciliter l'exploration des banques de données et des documents à l'aide de prompts en langue native. Il peut également aider votre entreprise à personnaliser les services que vous fournissez à vos clients, tels qu'un moteur de recommandations pour la vente en ligne.

Quels types de données peuvent être utilisés dans la recherche de similarité ?

La recherche de similarité peut être utilisée avec toutes les données ayant une intégration vectorielle, mais elle est le plus souvent utilisée avec des données non structurées ou semi-structurées, telles que du texte, des images, des vidéos et des fichiers audio.

Comment la recherche de similarité améliore-t-elle l'expérience client ?

La recherche de similarité peut améliorer l'expérience client en personnalisant et en suggérant du contenu pour les clients en fonction de leurs préférences et de leurs choix passés.

Quelle est l'évolutivité de la recherche de similarité pour les jeux de données volumineux ?

La recherche de similarité est une méthode de recherche très flexible et évolutive. Elle gère les grands ensembles de données en indexant les données vectorielles de manière à faciliter la localisation et le renvoi d'éléments similaires à une requête.