Pequeño mundo navegable jerarquizado o estratificadoEl Pequeño mundo navegable jerarquizado o estratificado (Hierarchical navigable small world (HNSW) en inglés) es un algoritmo de tipo grafo basado en la búsqueda aproximativa de los K-vecinos más cercanos (en inglés Approximate k-nearest neighbor search (ANNS)) usada en muchas bases de datos de vectores o almacenes de vectores (Vector databases o vector stores en inglés ).[1][2] La búsqueda aproximativa del vecino más cercano sin utilizar un índice de vectores, implica calcular las distancias entre la consulta (query en inglés) hasta cada punto de la base de datos, lo que para conjuntos de datos muy numerosos es desde el punto de vista computacional prohibitivo.Para datos de múltiples y numerosas dimensiones, las técnicas de búsqueda de vectores exactos basadas en árboles, como el Árbol k-dimensional o Árbol kd (k-d tree en inglés ) y el Árbol-R (R-tree en inglés ), no funcionan suficientemente bien debido a la maldición de la dimensión. Para remediar esto, se han propuesto búsquedas aproximativas de los k-vecinos más cercanos, como el Hashing sensible al entorno (en inglés locality-sensitive hashing (LSH)) y la cuantificación del producto (PQ), que priorizan el rendimiento sobre la precisión.[2] El Pequeño mundo navegable jerarquizado o estratificado ofrece una búsqueda aproximativa de los k-vecinos más cercanos que se escala de forma logarítmica incluso con datos de múltiples y numerosas dimensiones. Es una extensión del trabajo anterior sobre grafos de mundos pequeños navegables presentado en la conferencia Similarity Search and Applications (SISAP) en 2012 con una navegación jerarquizada adicional para encontrar puntos de entrada al grafo principal más rápidos.[3] Las soluciones basadas en este algoritmo se encuentran entre las más eficientes en la búsqueda aproximativa de los k-vecinos más próximos en las pruebas de rendimiento o comparativas (benchmark).[4][5][6] Uso en bases de datos vectorialesEl Pequeño mundo navegable jerarquizado o estratificado es un algoritmo clave para la búsqueda aproximativa del vecino más cercano en bases de datos vectoriales de múltiples dimensiones; en los casos, por ejemplo, de las bases de datos de vectores (en inglés embeddings) en el contexto de los modelos de los lenguajes de gran tamaño (en inglés Large Language Models (LLMs). Las bases de datos de vectores o bases de datos de embeddings (almacén de embeddings) que utiliza el Pequeño mundo navegable jerarquizado o estratificado como índice de vectores de búsqueda incluyen:
Varios de ellos utilizan la biblioteca hnswlib [7] proporcionada por los autores originales. Referencias
|