论文题目
Multiattribute Approximate Nearest Neighbor Search Based on Navigable Small World Graph
相关信息
作者与单位
Xiaoliang Xu | Chang Li | Yuxiang Wang | Yixing Xia; Hangzhou Dianzi University
出处与时间
Concurrency and Computation: Practice and Experience; 2020
作者拟解决的主要问题
本文主要研究有属性过滤的要求情况下,基于图的近似最近邻搜索(ANNS)问题。当前现存的大部分ANNS方法都是仅采用距离度量来建立索引,不能支持多属性的ANNS。当前的ANNS方法主要针对大规模的、时间敏感的搜索,还没有能很好的支持多属性的工作。下面是一个多属性搜索的例子。
$m_1$是查询,现在要找与其最接近且属性一致的两个点,传统的基于图的ANNS算法是先根据贪婪搜索获取一定量(比如4个,分别是:$m_3$, $m_9$, $m_7$, $m_4$)最近的点,然后从这4个元素里面过滤出属性与$m_1$一致的两个点。传统的方案过滤的结果是:$m_3$。我们想要两个与$m_1$接近的结果,为了保证搜索效率,返回的点不能太多(4个),但对这4个点筛选后,最终仅剩一个点符合要求。为了实现最初需求,我们需要增加返回结果的量(比如6个),这样会显著增加搜索延迟,影响效率。这便是传统的方法在应对有属性约束的查询时存在的弊端。
论文主要研究内容
有属性(或标签)约束的ANNS
论文使用的方法
本文提出了一种基于导航小世界图的多属性近似最近邻搜索(MA-NSW)方法。具体如下:
- 对每一个多属性组合建立一个近邻子图,整合所有的子图为一个层次索引结构(类似HNSW)。
- 使用一个导航树来获取相关的子图,剪枝不相关的子图。
- 在相关的子图上通过贪婪搜索获取最近邻结果。
论文的创新点
在近邻图实现了有属性约束的ANNS。具体地,根据属性组合构建子图,并通过导航树(属性组合映射)组织子图。查询时,根据查询点的属性约束并通过属性映射表获取与查询属性组合相同的子图,在该子图上执行贪婪搜索。
论文的结论
与在HNSW上一边搜索一边属性筛选的传统方案相比,MA-NSW有以下优势:
- 在不同数据集上普遍更好的搜索性能;
- 在目标属性组合不同的比例下更好的稳定性;
缺陷:索引尺寸随属性的个数呈指数级增长,而且随属性个数的增加索引构建时间也会增加。
其它内容
为了测试有属性约束的ANNS,我们可以在一些公用数据集上添加属性来执行实验。论文中的属性组合生成主要有两种方式:一种是平衡的,即每个属性取值的概率相同;一种是不平衡的,即每个属性取值的概率不同。
我的观点或思考
- 每个属性组合都要建立子图,造成很大的索引尺寸,内存占用,以及低的索引构建效率。
- 如果有n个属性,构建时,每个元素要插入$2^n$个子图中。
- 图2中的例子感觉有问题,一般而言,数据库里面的点(同一类型的点)每个属性都是有的,只是不同的取值而已,这么多带NULL属性的点感觉是不现实的。