Analyse d'un article de référence sur les structures d'index pour l'ANNS moderne, en lien avec notre comparaison HNSW / IVFPQ / LSH.
Trouver les éléments les plus similaires à une requête dans un grand ensemble — avec de légères approximations pour gagner en vitesse.
Des milliards de vecteurs, des milliers de dimensions, des millisecondes pour répondre.
Notre projet consiste à comparer empiriquement trois grandes familles d'index ANNS sur des données réelles haute dimension :
Graph-based — étudié en détail dans cet article. Hiérarchie de graphes navigables, règle RNG, connexions longue distance.
Partitionnement + Quantification — clustering IVF des centroïdes, puis quantification par produit (PQ) pour compresser les résidus.
Hachage probabiliste — projections aléatoires qui placent les vecteurs similaires dans les mêmes buckets avec haute probabilité.
L'article fournit le cadre théorique et expérimental de HNSW — notre index de référence — ainsi qu'une analyse comparative de ses limites face aux arbres. Cela nous permet de positionner IVFPQ et LSH sur l'axe vitesse / mémoire / recall par rapport à HNSW.
Dans HNSW (l'index de référence), le calcul des distances représente
du temps total de traitement d'une requête
C'est le défi central que résolvent les index graphes et arbres étudiés dans cet article.
Optimiser les structures d'index — graphes (HNSW) et arbres (iSAX, ELPIS) — pour réduire drastiquement le nombre de distances calculées lors d'une requête.
HNSW, IVFPQ et LSH attaquent ce goulot par des stratégies radicalement différentes — c'est précisément ce que nous comparons.
Chaque vecteur = un sommet. Les arêtes connectent des vecteurs proches. La recherche gloutonne navigue le graphe en se rapprochant de la requête.
Supprime les arêtes redondantes → libère des slots pour des connexions longue distance. Résultat : seulement ~30% des arêtes de K-Graph conservées, corrélation hub/connexion divisée par 3.
HVS / LSH-APG : index auxiliaire pour de meilleurs points d'entrée → jusqu'à 3× plus rapide que HNSW.
Partitionnement hiérarchique de l'espace. Traversée racine → feuilles. 3 familles :
ELPIS : arbre pour partitionner + graphe dans chaque feuille → 3–8× moins de temps d'indexation, −40% de mémoire.
| Critère | Graphes (HNSW…) | Arbres (iSAX, ELPIS…) |
|---|---|---|
| Élagage garanti | Non | Oui (bornes inférieures) |
| Localité des données | Non | Oui (données groupées) |
| Index sur disque | Difficile | Naturel |
| Scalabilité / Distribué | Limitée, peu exploré | Excellente (Odyssey, TARDIS) |
| Performance en mémoire | ★★★★★ Meilleure | ★★★☆☆ Correcte |
Graphes pour la précision en mémoire, arbres pour la scalabilité et le disque. Les combinaisons (ELPIS, SPANN) donnent le meilleur des deux. Défi ouvert : performances variant jusqu'à 90× selon les datasets.
Comment structurer les données pour minimiser le nombre de distances calculées ?
Graphes (HNSW) pour la précision maximale en mémoire, arbres pour la scalabilité et le stockage sur disque, combinaisons (ELPIS, SPANN) pour le meilleur des deux mondes.