554

Fast Approximate Nearest Neighbor Search With Navigating Spreading-out Graphs

Abstract

Approximate nearest neighbor search (ANNS) is a fundamental problem in machine learning and computer vision. An ANNS algorithm is required to be efficient on both memory use and search performance. Recently, graph based methods have achieved revolutionary performance on public datasets. The earliest approach GNNS is a greedy algorithm and based on a kk-nearest-neighbor graph (kkNN graph). The improvements of GNNS mainly focus on two aspects: (1) Some provide better initial search position to prevent the search from being stuck in local optima. (2) Others try to construct better graphs for faster traversing and neighbor locating. However, we find there exists three problems with these works, the unconnected cluster problem, the detouring problem and the large index problem (memory-inefficient for large scale search). In this paper, we present a novel graph structure named Navigating Spreading-out Graph (NSG) to tackle above three problems simultaneously, without introducing any other index structures. Extensive experiments show that our algorithm outperforms all the existing algorithms significantly. What's more, our algorithm outperforms the existing approach of Taobao (Alibaba Group), and has been integrated into their search engine for billion scale search.

View on arXiv
Comments on this paper