Fast Approximate Nearest Neighbor Search With Navigating Spreading-out
Graphs
- GNN
Approximate nearest neighbor search (ANNS) is a fundamental problem in many tasks of machine learning and computer vision. An ANNS algorithm is required to be efficient on both memory and search performance. Recently, several graph based methods have achieved revolutionary performance on public data sets, but their indices are usually complicated and of large size. In this paper, we present a novel search algorithm based on a Navigating Spreading-out Graph (NSG). All the search begins with the navigating vertex and iteratively examines the neighbors' neighbors for closer neighbors on NSG. An NSG contains only a navigating vertex and a spreading-out graph, in which the angles among any two connected edges are ensured to be no smaller than . We propose an efficient algorithm to build the NSG, and the max degree of resulting NSG is very small, thus it's quite memory-efficient. Extensive experiments on public datasets show that our approach outperforms the state-of-art algorithms significantly on both index size and search performance.
View on arXiv