Approximate Nearest Neighbor Search on High Dimensional Data — Experiments, Analyses, and Improvement
近似最近邻搜索(Approximate Nearest neighbor search, ANNS)是数据库、机器学习、多媒体和计算机视觉等许多领域的基本操作。尽管上述领域的文献每年都不断地提出许多算法,但目前还没有对它们的性能进行全面的评价和分析。本文对许多最新的近似最近邻搜索方法进行了全面的实验评估。研究(1)是跨学科的(包括不同领域和从业人员的16种算法),评估了各种设置,包括20个数据集、几种评估指标和不同的查询工作负载。详细地报告和分析了实验结果,以了解性能结果。提出了一种新的方法,在广泛的设置下,在大多数数据集上都实现了高查询效率和高召回率。
范围:
将常用的kNN算法分为三类:基于lsh的、基于空间划分的和基于邻域的。
1. LSH-BASED METHODS
通过一组适当选择的随机投影函数,将高维点映射到低维点。这类方法在最坏情况下,在查询结果质量、效率和索引大小上都具有可靠的概率理论保证。 我们评估了两种最新的基于lsh的方法:SRS[39]和QALSH[25]。
2. ENCODING-BASED METHODS
从数据分布中学习哈希函数,使哈希编码空间中的最近邻搜索结果尽可能接近原始空间中的搜索结果。我们在这类中评估的一些示例方法包括近邻敏感的哈希[35],选择性哈希[19],锚图哈希[30],可扩展的图哈希[28],邻域近似索引[34]和最优乘积量化[20]。
3TREE-BASED SPACE PARTITION METHODS
一般来说,空间的分区是分层的,主要有两种分区方案:pivoting and compact partitioning schemes.
1)pivoting 方法根据数据点到枢轴的距离对向量空间进行划分,而compact partitioning划分方法可以将数据点划分为簇、近似Voronoi划分或随机划分空间:Annoy [7] and FLANN [33].
FLANN: FLANN是一种选择最合适算法的自动最近邻算法配置方法. 包括randomized kd-tree [38], hierarchical k-means tree [17] and linear scan methods for a particular data set.
VP-tree : vp -树是一种经典的空间分解树,它递归地根据随机选择的圆轴π划分空间。
4. NEIGHBORHOOD-BASEDMETHODS
介绍了具有代表性的基于邻域的方法,即分层可导航小世界(HNSW[32])和KGraph[16]。此外,还对Small World (SW[31])和Rank Cover Tree (RCT[23])两种具有代表性的方法进行了评价。
5 DIVERSIFIED PROXIMITY GRAPH
基于该研究获得的经验和见解,设计了一种新的方法,多样化邻近图(diversity Proximity Graph, DPG),通过构建不同的邻域图来实现更好、更鲁棒的搜索性能