HVS: Hierarchical Graph Structure Based on Voronoi Diagrams for Solving Approximate Nearest Neighbor Search(VLDB2021)
近似最近邻搜索(ANNS)是信息检索和数据挖掘中的一个基本问题,有着广泛的应用。在最先进的内存ANNS方法中,基于图的方法因其卓越的效率和查询准确性而引起了特别的兴趣。这些方法大多侧重于选择边缘来缩短搜索路径,而不太关注每一跳的计算量。为了降低成本,我们提出了一种新的图结构HVS。HVS具有多层的层次结构,对应着一系列由粗到细的子空间划分。此外,我们在每个层中使用虚拟Voronoi图来加速搜索。通过遍历Voronoi单元,HVS可以有效地到达给定查询的最近邻居,从而降低了总搜索成本。实验证明,HVS优于其他最先进的基于图的方法。
方法:
在本文中,我们以这样一种方式构造Voronoi单元,即每个数据点只包含在一个单元中。当两个数据点属于同一个Voronoi单元时,称它们接近。多个Voronoi图构成了一个层次结构,其中上层中的种子点(用于生成Voronoi图的点)也是下层的种子点。我们假设这样的Voronoi图,尽管在实践中我们只使用它们的种子点,因此这些图是虚拟存在的。我们将这种索引结构称为层次Voronoi结构(HVS)(见图1中的由粗到细的Voronoi图)。
我们还将HVS视为一个图,或更准确地说,是由多个图组成的超图。在单个层中,Voronoi单元或等效的种子点对应于该层中的图的节点。在确定所有层中所有的Voronoi单元后,丢弃不含数据点的单元,然后连接剩余的单元。两者之间的距离将同一层中的任意单元格之间的距离定义为它们的种子点。边是在一些紧密的对之间形成的cell。可见,种子点的选择起着至关重要的作用在这个过程中。在下一节中,我们将详细演示选种过程。
在查询阶段,从最顶层(最粗)开始,从一层粗粒度单元移动到下一层细粒度单元。通过量化技术,我们找到最接近查询的单元格(节点),该单元格(节点)成为下一层的进入点。然后,向下一层并从该进入点开始,我们找到该层中近似最近的节点。我们重复这个过程,直到达到基础层。在基础层中,由于每个原始数据点都是图中的一个节点,因此我们进行标准的基于图的搜索以获得最终结果
3 THE CONSTRUCTION OF HVS
HVS相对于现有的基于图的方法的优势源于以下两个事实。(1)两个Voronoi单元的距离计算比两个原始向量的距离计算效率高得多。(2) HVS可以从上层返回的多个Voronoi单元中搜索基础层,以保证较高的查询精度,而NSG和HNSW由于索引的限制只能从单个数据点搜索基础层。
3.2 HVS model
3.3 Multi-level quantization technique
3.4 Density-based data allocation strategy
我们关注的是{𝐷𝑡}的确定。由于空间划分随着层的加深而变得更细,很自然地会问以下问题:我们如何判断某个层中𝑥落在哪个点的Voronoi细胞已经足够确准地将𝑥与其他点区分开来?如果是这样,为了节省空间,𝑥不需要出现在较低的层中。为了回答这个问题,我们根据以下两个因素对每个点𝑥做出判断:(1)𝑥周围的数据密度,(2)𝑥对其图像的量化误差。在这里,第一个因素至关重要,因为在数据密度高的区域搜索是困难的,这需要粗粒度的Voronoi单元来区分内部的点。在3.4.2节中,我们将提出一个将这两个因素都考虑在内的标准
6 EXPERIMENTS
阅读者总结:文中创新点:1)Voronoi cells实现了graph-based的空间层次划分,