Comprendre l'algorithme du plus proche voisin approximatif (ANN)

Si vous avez grandi avant l'avènement d'Internet, vous vous souvenez qu'il n'était pas toujours facile de trouver de nouvelles choses à aimer. On découvrait de nouveaux groupes en les entendant par hasard à la radio, on tombait sur une nouvelle série télévisée par accident parce qu'on avait oublié de changer de chaîne, et on trouvait un nouveau jeu vidéo préféré presque uniquement en raison de l'image de sa jaquette.
Aujourd'hui, les choses sont très différentes. Spotify m'indique les artistes qui correspondent à mes goûts, Netflix met en avant les films et les émissions de télévision qu'il sait que nous aimerons, et Xbox sait à quoi nous voudrons probablement jouer ensuite. Ces systèmes de recommandation nous permettent de trouver plus facilement ce que nous recherchons, et ils sont basés sur les algorithmes du plus proche voisin (NN). Le NN examine l'océan d'informations dont il dispose et identifie ce qui se rapproche le plus de ce que vous aimez ou de ce que vous recherchez.
Cependant, les algorithmes NN ont un défaut inhérent. Il leur faut énormément de temps pour passer en revue chaque option si la quantité de données qu'ils analysent est trop importante. C'est un problème, lorsque l'on sait que ces sources de données ne cessent de croître d'année en année. C'est là que la méthode de recherche du plus proche voisin approximatif (ANN) prend le relai de la méthode NN et change la donne.
Dans cet article, nous allons aborder les principaux thèmes suivants concernant la méthode des ANN (réseaux de neurones artificiels) :
Définition d'un ANN
Fonctionnement d'un ANN
Utilisation de la recherche ANN
Importance des ANN pour les recherches vectorielles
Les différents types d'algorithmes ANN
Présentation de la méthode de recherche du plus proche voisin approximatif
L'algorithme du plus proche voisin approximatif (ANN) trouve dans un ensemble de données un point de données très proche du point de requête donné, mais pas nécessairement le plus proche absolu. Un algorithme NN parcourt exhaustivement toutes les données pour trouver la correspondance parfaite, tandis qu'un algorithme ANN se contente d'une correspondance suffisamment proche.
Cette méthode peut paraître moins efficace, mais c'est en réalité la clé d'une recherche de similarité rapide et performante. Les ANN utilisent des raccourcis et des structures de données intelligents pour explorer efficacement l'espace de recherche. Ainsi, au lieu de mobiliser d'énormes quantités de temps et de ressources, ils peuvent identifier, avec beaucoup moins d'efforts, des points de données suffisamment proches pour être utiles dans la plupart des situations pratiques.
Il s'agit là essentiellement d'un compromis. Si vous devez absolument trouver la meilleure correspondance, vous pouvez opter pour un réseau de neurones, même au détriment de la vitesse et des performances. Mais si vous pouvez tolérer une légère baisse de précision, un ANN est presque toujours la meilleure solution.
Fonctionnement des algorithmes du plus proche voisin approximatif
La première partie du fonctionnement d'un algorithme ANN consiste à réduire la dimensionnalité d'un ensemble de données de grande dimension en un ensemble de plus faible dimension. L'objectif est de simplifier et d'optimiser la modélisation prédictive en évitant d'avoir à analyser l'ensemble des données.
Ces algorithmes reposent sur le concept mathématique des espaces métriques, au sein desquels se trouvent des points de données et où des distances entre ces points sont définies. Ces distances doivent respecter des règles précises (non-négativité, identité, symétrie, inégalité triangulaire) et sont calculées à l'aide de fonctions courantes telles que la distance euclidienne ou la similarité cosinus.
Pour mieux comprendre ce concept, imaginez que vous êtes en vacances et que vous cherchez la villa que vous avez louée. Plutôt que de vérifier chaque bâtiment un par un (dimensionnalité plus grande), vous utiliseriez une carte, ce qui réduit le problème à deux dimensions (dimensionnalité plus petite). (Ceci est un exemple délibérément simpliste. Les algorithmes ANN emploient d'autres méthodes que la réduction de la dimensionnalité pour améliorer leur efficacité.)
Les algorithmes ANN exploitent également des structures de données ingénieuses appelées index pour améliorer leur efficacité. En prétraitant les données dans ces index, les ANN peuvent explorer l'espace de recherche beaucoup plus rapidement. Imaginez-les comme des panneaux de signalisation qui vous aident à vous repérer sur une carte pour rejoindre plus rapidement votre villa de vacances.
Utilisation de la recherche du plus proche voisin approximatif
Dans le monde trépidant de la science des données, l'efficacité est primordiale. Si la recherche du plus proche voisin exact est précieuse, elle a souvent un coût de calcul important, comme nous l'avons déjà évoqué. C'est là que la recherche par réseaux de neurones artificiels (ANN) excelle, offrant un compromis intéressant : une vitesse fulgurante et une précision élevée, bien que non absolue.
Cela dit, quand faut-il opter pour la recherche ANN plutôt que pour les autres méthodes de recherche ?
La recherche exacte du plus proche voisin peut être lente, mais c'est la meilleure option lorsque la précision est votre priorité ou que vous utilisez de petits ensembles de données. La méthode de recherche des k plus proches voisins (kNN) se situe entre les méthodes NN et ANN : elle offre des résultats plus rapides tout en conservant une précision élevée. Cependant, le choix de la valeur de k peut s'avérer complexe, et cette méthode rencontre des difficultés avec les données de grande dimension.
De par sa vitesse et son efficacité associées à sa précision élevée (mais pas absolue), la recherche ANN est idéale dans de nombreuses situations :
Grands ensembles de données : lorsqu'on traite des millions, voire des milliards de points de données, la nature exhaustive du NN exact devient lente. Les ANN excellent dans l'exploration de vastes ensembles de données et fournissent des résultats rapidement.
Données de grande dimension : à mesure que les dimensions augmentent, les calculs NN exacts explosent. Les techniques de réduction de dimensionnalité des ANN réduisent efficacement l'espace de recherche et améliorent l'efficacité des données complexes telles que des images ou du texte.
Applications en temps réel : Besoin de résultats instantanés ? Les systèmes de recommandation, la détection de la fraude et la détection des anomalies reposent sur des informations en temps réel. Grâce à leur vitesse, les ANN sont parfaits pour ces scénarios.
Approximation acceptable : si votre application tolère de légères imprécisions dans les résultats, la rapidité des ANN est un atout précieux. Par exemple, ils sont suffisants pour rechercher des images ou trouver des images visuellement similaires, plutôt que l'image la plus proche.
Importance de la méthode ANN pour les recherches vectorielles
La recherche vectorielle traite des données encodées sous forme de vecteurs denses, capturant des relations complexes et des significations implicites. Elle est donc idéale pour la recherche de contenus tels que des images, du texte et les préférences des utilisateurs, là où la recherche traditionnelle par mots-clés s'avère souvent insuffisante. Cependant, le problème de la dimensionnalité s'applique également ici. En effet, plus le nombre de dimensions représentant ces vecteurs augmente, plus les méthodes de recherche traditionnelles peinent, devenant lentes et inefficaces.
Les ANN résolvent ce problème en privilégiant les correspondances "suffisamment proches" plutôt que la recherche d'une correspondance exacte. Ceci accélère la recherche, car votre outil de recherche vectorielle est capable de trouver des vecteurs similaires dans d'immenses ensembles de données en un temps record. De plus, il offre une scalabilité intégrée, vous permettant d'accroître votre ensemble de données autant que vous le souhaitez sans sacrifier la vitesse.
En misant sur ces réponses en temps réel ainsi que sur une pertinence et une efficacité accrues, les ANN jouent souvent un rôle clé dans la pleine exploitation du véritable potentiel de vos recherches vectorielles.
Types d'algorithmes du plus proche voisin approximatif
Si le concept d'ANN offre un avantage indéniable en termes de vitesse de recherche, ce terme englobe en réalité de nombreux types d'algorithmes. Ils ont tous leurs propres atouts et compromis, et comprendre ces nuances est essentiel pour choisir l'outil adapté à vos besoins de données et de recherche spécifiques.
Arbres kd
Les arbres kd organisent les points de données dans une structure d'arborescence hiérarchique, divisant en partitions l'espace selon des dimensions spécifiques. Cela permet des recherches rapides et efficaces dans les espaces à faible dimensionnalité et les requêtes basées sur la distance euclidienne.
Mais si les arbres kd excellent dans la recherche des plus proches voisins dans de petites dimensions, ils souffrent de la "malédiction de la dimensionnalité". En effet, lorsque le nombre de dimensions augmente, l'espace entre les points explose. Dans ces hautes dimensions, la stratégie de division des arbres kd basée sur un seul axe devient inefficace. La recherche examine alors la majeure partie des données, perdant ainsi son gain d'efficacité et se rapprochant de la lenteur d'un simple parcours linéaire de tous les points.
Locality-sensitive hashing (LSH)
Le LSH (locality-sensitive hashing) est une technique puissante d'ANN qui fonctionne en "hachant" les points de données dans des espaces de dimension inférieure, tout en préservant astucieusement leurs relations de similarité. Ce regroupement facilite leur recherche et permet au LSH d'exceller dans la recherche de données massives et multidimensionnelles, comme des images ou du texte, avec rapidité et scalabilité. De plus, il fournit des correspondances suffisamment proches avec une bonne précision. Cependant, il est important de noter que le LSH peut occasionnellement produire des faux positifs (identifiant des points non similaires comme similaires) et que son efficacité peut varier selon la métrique de distance et le type de données. Différentes familles LSH sont conçues pour fonctionner avec diverses métriques (par exemple, la distance euclidienne, la similarité de Jaccard), ce qui confère au LSH sa polyvalence.
Annoy
Annoy (Approximate Nearest Neighbors Oh Yeah) n'est pas un algorithme unique, mais une bibliothèque C++ open source qui utilise ses propres algorithmes pour construire et interroger des arborescences, sans implémenter directement les arbres LSH ou KD. Conçue pour une recherche rapide et économe en mémoire dans des espaces de grande dimension, elle est idéale pour les requêtes en temps réel. Son interface conviviale offre une grande flexibilité pour différents types de données et scénarios de recherche. La force d'Annoy réside dans l'intégration de plusieurs approches d'ANN, vous permettant de choisir celle qui correspond le mieux à vos besoins. Bien que cela simplifie le processus, il est important de noter que le choix de l'algorithme interne approprié au sein d'Annoy est crucial pour des performances optimales, et son efficacité dépend de facteurs tels que vos données et vos exigences en matière de précision.
Algorithme de balayage linéaire
Bien qu'elle ne soit généralement pas considérée comme une technique ANN, il convient de mentionner l'analyse linéaire, car il s'agit d'une approche brute qui donne des résultats similaires à ceux des autres algorithmes ANN. Elle parcourt chaque point de données de manière séquentielle, en calculant les distances entre les enregistrements et en conservant la trace des meilleures correspondances. En raison de la nature simpliste de l'algorithme, elle est facile à mettre en œuvre et idéale pour les petits ensembles de données. L'inconvénient de cette approche plus basique est son inefficacité pour les grands ensembles de données, sa lenteur lorsqu'elle est utilisée avec des données à haute dimension et peu pratique pour les applications en temps réel.
Choisir l'ANN qui vous convient
Voici quelques éléments à prendre en compte avant de choisir un ANN :
Taille et dimensionnalité de l'ensemble de données : Envisagez d'utiliser le hachage LSH (locality-sensitive hashing) pour les données volumineuses et de grande dimension, ainsi que les arbres kd pour les données plus petites et de dimension inférieure.
Niveau de précision souhaité : si la précision absolue est vitale, le balayage linéaire est probablement la meilleure option. Sinon, envisagez le LSH ou Annoy pour un bon compromis entre précision et rapidité.
Ressources de calcul : Annoy offre de la flexibilité, mais tenez compte des limitations de mémoire et de traitement avant de choisir un algorithme au sein de celui-ci.
N'oubliez pas : il n'existe pas de solution universelle. Expérimentez différents algorithmes ANN et évaluez leurs performances sur vos données spécifiques afin de trouver celui qui correspond parfaitement à vos besoins de recherche vectorielle. Par ailleurs, le domaine des algorithmes ANN est en constante évolution ; il est donc important de rester informé des dernières avancées pour ne manquer aucune nouveauté susceptible d'améliorer votre recherche.
Les ANN, vos alliés secrets pour de meilleures recherches
Le monde vaste et complexe des données exige des outils efficaces pour cheminer dans ses labyrinthes. C'est là que les ANN peuvent être la recette secrète qui fera passer votre recherche de similarités de bonne à excellente. Ils offrent rapidité et scalabilité, au prix d'un léger compromis en termes de précision. Des recherches sont en cours et des développements sont réalisés chaque semaine, ce qui contribuera à la nature dynamique de l'espace ANN. Par exemple, les progrès de l'informatique quantique et du machine learning pourraient déboucher sur de nouveaux types d'algorithmes ANN encore plus rapides et plus efficaces.
Nous avons étudié différents algorithmes ANN, chacun ayant ses propres forces et faiblesses. Mais en fin de compte, le choix optimal dépend de vos besoins spécifiques. Prenez en compte des facteurs tels que la taille et la dimensionnalité des données, les exigences en matière de précision et les ressources. Expérimentez, explorez et choisissez le bon algorithme pour tirer le meilleur parti des ANN. De la recherche d'images à la détection des fraudes, ces algorithmes peuvent faire une énorme différence, en révélant des connexions cachées et en permettant d'obtenir rapidement des informations fondées sur des données.
Donc, la prochaine fois que vous recherchez une nouvelle chanson à écouter, un nouveau film à regarder ou un nouveau jeu vidéo auquel jouer, pensez aux algorithmes ANN, sans lesquels tout ceci serait impossible.
Prochaines étapes conseillées
Lorsque vous serez prêt, voici quatre méthodes qui vous aideront à révéler des informations exploitables à partir des données de votre entreprise :
Démarrez un essai gratuit et découvrez l'aide qu'Elastic peut apporter à votre entreprise.
Explorez nos produits. Découvrez le fonctionnement d'Elasticsearch Platform et comment nos solutions s'adaptent à vos besoins.
Découvrez comment intégrer l'IA générative dans votre entreprise.
Partagez cet article avec une personne de votre réseau qui pourrait être intéressée par son contenu. Partagez cet article par e-mail, sur LinkedIn, sur X ou sur Facebook.
La publication et la date de publication de toute fonctionnalité ou fonction décrite dans le présent article restent à la seule discrétion d'Elastic. Toute fonctionnalité ou fonction qui n'est actuellement pas disponible peut ne pas être livrée à temps ou ne pas être livrée du tout.
Dans cet article, nous sommes susceptibles d'avoir utilisé ou mentionné des outils d'IA générative tiers appartenant à leurs propriétaires respectifs qui en assurent le fonctionnement. Elastic n'a aucun contrôle sur les outils tiers et n'est en aucun cas responsable de leur contenu, de leur fonctionnement, de leur utilisation, ni de toute perte ou de tout dommage susceptible de survenir à cause de l'utilisation de tels outils. Veuillez faire preuve de prudence lorsque vous utilisez des outils d'IA avec des informations personnelles, sensibles ou confidentielles. Toute donnée que vous soumettez peut être utilisée pour entrainer l'IA ou à d'autres fins. Vous n'avez aucune garantie que la sécurisation ou la confidentialité des informations renseignées sera assurée. Vous devriez vous familiariser avec les pratiques en matière de protection des données personnelles et les conditions d'utilisation de tout outil d'intelligence artificielle générative avant de l'utiliser.
Elastic, Elasticsearch, ESRE, Elasticsearch Relevance Engine et les marques associées sont des marques commerciales, des logos ou des marques déposées d'Elasticsearch N.V. aux États-Unis et dans d'autres pays. Tous les autres noms de produits et d'entreprises sont des marques commerciales, des logos ou des marques déposées appartenant à leurs propriétaires respectifs.