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é, également appelée recherche du plus proche voisin le plus proche, est une technique utilisée dans l'extraction d'informations et l'analyse de données qui trouve des éléments dans un ensemble de données qui ressemblent le plus à un élément de requête. Cela est utile dans les applications où l'objectif est d'identifier des objets, des documents, des images ou d'autres points de données qui partagent des caractéristiques communes à une requête donnée. Vous pouvez voir la recherche de similarité à l'œuvre dans des applications telles qu'un moteur de recherche d'images ou dans les recommandations de contenus d'un service de streaming.
Un système de recherche de similarité crée un ensemble de nombres, appelé vecteur, pour chaque élément d'un ensemble de données ; le vecteur représente numériquement les caractéristiques de l'élément. Cela donne à un ordinateur un moyen numérique de comprendre les idées et les objets du monde réel, que les éléments d'un ensemble de données soient des images, du texte, de l'audio, de la vidéo ou d'autres types de données.
Les vecteurs représentant de nombreuses données différentes sont ensuite stockés dans une base de données vectorielle et un index vectoriel est créé, ce qui permet de rechercher rapidement les données. Lorsque l'ensemble de données est interrogé, une intégration de vecteurs est créée pour les fonctions et les idées représentées par les termes de requêtes, à l'aide du même algorithme utilisé à l'origine pour créer les vecteurs stockés dans la base de données. La base de données utilise ensuite des algorithmes pour localiser les correspondances les plus proches de la requête dans l'ensemble de données.
Dans certains cas, ce type de recherche est appelé « recherche sémantique » car il met en correspondance des éléments par les propriétés des objets et des idées conceptuelles représentées par un élément, et non par des mots-clés dans un document ou des pixels dans une image. La capacité de la recherche de similarité à fournir des résultats rapides et précis, même avec des ensembles de données très volumineux, la rend indispensable aux systèmes basés sur l'IA, tels que le traitement du langage naturel, la reconnaissance d'images et le filtrage basé sur le contenu.
Il n'est pas rare de trouver des applications métier qui intègrent le meilleur de la recherche de similarité et des méthodes de recherche par mot clé traditionnelles. Pensez à un système de recommandations qui inclut des informations commerciales à jour, telles que la tarification et la disponibilité. Ces types de fonctions peuvent être accomplies en déplaçant des données entre une base de données vectorielle spécialisée et des banques de données établies, ou avec une base de données multimodale qui gère nativement les données vectorielles et les données relationnelles.
Dit simplement, la recherche traditionnelle consiste à trouver ce que vous demandez explicitement, tandis que la recherche de similarité consiste à trouver ce qui ressemble le plus à ce que vous avez ou demandez.
La recherche traditionnelle est souvent utilisée dans les requêtes de bases de données pour trouver des correspondances exactes ou des éléments hautement pertinents dans des données structurées en fonction de mots-clés ou de critères spécifiques. Par exemple, si vous recherchez « meilleur ramen à San Francisco », un moteur de recherche traditionnel renvoie des pages Web contenant ces mots clés exacts, des termes étroitement liés prédéfinis et peut-être un classement numérique. L'objectif est de s'assurer que les résultats soient exacts et répondent directement aux termes de la requête.
La recherche de similarité vise à rechercher des éléments conceptuellement ou structurellement proches des correspondances avec votre requête. Elle est utile lorsque les données sont non structurées ou semi-structurées, telles que des images, du texte ou des points de données complexes. Si vous recherchez des images comme votre photo, la recherche de similarité recherchera des images qui partagent des caractéristiques ou des motifs visuels, tels que l'herbe, les gratte-ciel, les couleurs ou les émotions représentées, même si elles ne sont pas identiques. Un système de récupération de documents peut renvoyer des articles qui traitent de sujets similaires ou utilisent un langage similaire, même si les mots-clés exacts ne sont pas présents. Dans le cas de l'exemple du ramen, les vecteurs de texte contenus dans les critiques pourraient constituer la base de la recherche de similarité.
Différences clés
Nous pouvons penser aux différences clés entre la recherche traditionnelle et la recherche de similarité de plusieurs façons, y compris l'objectif de la méthode de recherche, les types de données utilisés, les techniques mathématiques utilisées et les cas d'usage où elles sont le mieux déployées. Comme nous l'avons mentionné ci-dessus, la recherche traditionnelle vise à trouver des correspondances exactes ou des éléments très pertinents en fonction de mots-clés ou de critères spécifiques, tandis que la recherche de similarité se concentre sur la recherche d'éléments conceptuellement ou structurellement similaires à une requête.
La recherche traditionnelle est basée sur des données de table structurée courantes dans les applications d'entreprise (pensez aux lignes et aux colonnes utilisées pour organiser les enregistrements d'inventaires ou de personnel), tandis que la recherche de similarité est préférable pour gérer les données non structurées ou semi-structurées, telles que les images, l'audio et les points de données complexes, souvent au format JSON.
Il existe des calculs mathématiques différents derrière ces deux types de recherche. D'une part, la recherche traditionnelle s'appuie sur la logique booléenne, la correspondance de mots-clés et les algorithmes de classement pour déterminer la pertinence d'un élément dans un jeu de données. En revanche, la recherche de similarité utilise des mesures de distance vectorielle telles que la similarité cosinus, la distance euclidienne et la similarité de Jaccard, pour quantifier le degré de similarité entre les éléments indexés. Nous aborderons ces mesures plus en détail plus loin dans cet article. Comme vous pouvez le deviner, la recherche traditionnelle est plus couramment utilisée lorsque les résultats exacts des requêtes de bases de données des systèmes de récupération d'informations métier sont requis, tandis que la recherche de similarité est utilisée dans les systèmes de recommandations, la reconnaissance d'images et le filtrage basé sur le contenu.
Dans de nombreux cas d'usage métier, un système équipé de génération augmentée par récupération (RAG) utilisera les deux techniques de requêtes avec un LLM pour associer des résultats de recherche sémantique à des données d'entreprise à jour pour obtenir les résultats les plus précis et les plus utiles à des fins commerciales. Par exemple, un moteur de recommandations met en correspondance un élément en fonction d'une recherche de similarité avec un prix et une disponibilité tirés d'une requête SQL traditionnelle et fournit ces informations à un LLM pour générer une réponse facile à comprendre en langage naturel.
Points à retenir
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.
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 :
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.
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.
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.
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.
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.
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é :
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:
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.
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.