{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/efanna-an-extremely-fast-approximate-nearest","title":"EFANNA : An Extremely Fast Approximate Nearest Neighbor Search Algorithm Based on kNN Graph","arxiv_id":"1609.07228","date":"2016-09-23","proceeding":null,"authors":["Cong Fu","Deng Cai"],"abstract":"Approximate nearest neighbor (ANN) search is a fundamental problem in many\nareas of data mining, machine learning and computer vision. The performance of\ntraditional hierarchical structure (tree) based methods decreases as the\ndimensionality of data grows, while hashing based methods usually lack\nefficiency in practice. Recently, the graph based methods have drawn\nconsiderable attention. The main idea is that \\emph{a neighbor of a neighbor is\nalso likely to be a neighbor}, which we refer as \\emph{NN-expansion}. These\nmethods construct a $k$-nearest neighbor ($k$NN) graph offline. And at online\nsearch stage, these methods find candidate neighbors of a query point in some\nway (\\eg, random selection), and then check the neighbors of these candidate\nneighbors for closer ones iteratively. Despite some promising results, there\nare mainly two problems with these approaches: 1) These approaches tend to\nconverge to local optima. 2) Constructing a $k$NN graph is time consuming. We\nfind that these two problems can be nicely solved when we provide a good\ninitialization for NN-expansion. In this paper, we propose EFANNA, an extremely\nfast approximate nearest neighbor search algorithm based on $k$NN Graph. Efanna\nnicely combines the advantages of hierarchical structure based methods and\nnearest-neighbor-graph based methods. Extensive experiments have shown that\nEFANNA outperforms the state-of-art algorithms both on approximate nearest\nneighbor search and approximate nearest neighbor graph construction. To the\nbest of our knowledge, EFANNA is the fastest algorithm so far both on\napproximate nearest neighbor graph construction and approximate nearest\nneighbor search. A library EFANNA based on this research is released on Github.","url_abs":"http://arxiv.org/abs/1609.07228v3","url_pdf":"http://arxiv.org/pdf/1609.07228v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"efanna-an-extremely-fast-approximate-nearest","repo_url":"https://github.com/fc731097343/efanna","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"efanna-an-extremely-fast-approximate-nearest","repo_url":"https://github.com/Lsyhprum/WEAVESS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"efanna-an-extremely-fast-approximate-nearest","repo_url":"https://github.com/ZJULearning/efanna","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"efanna-an-extremely-fast-approximate-nearest","repo_url":"https://github.com/ZJULearning/nsg","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"efanna-an-extremely-fast-approximate-nearest","repo_url":"https://github.com/zjulearning/efanna_graph","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"graph-construction","task_name":"graph construction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1609.07228","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}