SIGMOD'23-Efficient Approximate Nearest Neighbor Search in Multi-dimensional Databases

编者的总结

  1. 本文最大的贡献在于理论证明。放松裁边规则,相比如RNG裁边,引入适量更多的边,可以降低查询复杂度,这个结论很重要。
  2. 基于强证明的近似提供了一个方法,在1M数据集上也有提升。
  3. 有一个基于余弦定理的优化很有意思,效果很好。

编者的思考

  1. 理论证明还是没有扩展到kNN的情况,另外理论上的那个强图没有任何实验验证其结论。
  2. 最后本质上就是在通过参数\tau调整裁边的松紧程度,相比于理论证明要逊色一些,有点match不上,且实际用起来也会很麻烦,调整\tau的过程引入很多参数。
  3. 方法的动态插入和删除挺麻烦的,而且没有实验。
  4. 最后的提升是不是主要是余弦定理和early stop两个优化点提供的呢?

1 INTRODUCTION

目前图方法对于理论复杂度方面有两个极端的假设:

  • 一方面有些工作假设query在数据库里面,比如MRNG(NSG的精确版),这显然不一定成立;
  • 另一方面有些工作对query和NN的距离完全不做假设,比如DG,HNSW,SSG等,这样要不然没有Error guarantee,要么是个线性复杂度。
  • 作者推荐的是把这个距离的上界预定义一下,基于此做复杂度分析。之前FANNG做过这件事情,但是查询复杂度做的太高了。
image.png
  • query和NN距离上界的合理性,作者用两个预实验来说明。

  • 第一个实验想说明这个距离一般不大;

  • 第二个实验说明NN和其他点的距离差很大。


    image.png
  • FANNG复杂度过大的问题在于greedy routing每一步保证前进的距离太短,仅为数据集中距离最近的两个点的距离。

  • 本文的方法\tau-MG的核心就是一个新的裁边规则

    image.png

  • 这样的裁边规则可以保证,只要query和NN的距离不超过\tau,从任一点出发,每一步的进步不会小于\tau

  • 为了减少构建复杂度,对\tau-MG做了一个近似\tau-MNG;并且在其上使用beam search提升精度,且提供了一个优化方案能做一些剪枝。

3 PRELIMINARIES

3.2 Proximity graph

  • MRNG是月牙形裁边,在月牙内的点可以驱逐月牙边的点,即120度内不能有更短的边。
  • MRNG很好的性质是只要query在数据库内,从任意点出发肯定可以找到NN。
  • 但是如果不再数据库内,比如图b,greedy search就找不到它


    image.png

4 ANALYSIS OF THE INEFFICIENCY OF EXISTING PROXIMITY GRAPHS

本节证明了现有PG greedy routing的期望长度为
E[x] = O(\frac{1}{\Delta}n^{\frac{1}{m}}lnn^{\frac{1}{m}})
\Delta是数据库中两个点的最小距离,可以证明
\Delta \leq O((1/n)^{\frac{1}{m}}) 的概率至少为1-(\frac{1}{e})^{\frac{m}{4}(1-\frac{3}{e^2})}

则可以推导出,greedy routing的期望长度在此概率下,不小于O(n^{\frac{2}{m}}lnn)

当n比较大的时候,\Delta->0,证明普通PG在数据集较大时查询速度会变得很慢。

5 𝜏-MONOTONIC GRAPH (𝜏-MG)

  • 裁边规则:即如上图c所示,uu''无法驱逐uv,灰色环内的点和u连边都可以和uv共存,月牙禁区变小了,裁边弱了一些。
  • 𝜏-MG:有向图,服从两个定义
    1. 任何距离不足3\tau的两个点,必然双向相连;
    2. 如果两点距离大于3\tau且没有相连,那必然是被一条其他的边驱逐了。
      • 反过来说,如果没被驱逐,则一定相连。
  • 单调性:𝜏-MG对于任意一个query,只要其NN和Query的距离不足\tau,一定存在一条单调路径从query到NN,每一步步进超过tau,除了最后一步。

5.1 Construction of 𝜏-MG

  • 基本思路是先建MRNG,再补边。毕竟𝜏-MG是MRNG的裁边放松版本。
  • 具体算法也很粗暴,建好MRNG之后,遍历所有其它的点,如果距离不足3\tau,直接补边,否则看目前是否有边能驱逐该边,没有的话也补进来。
  • 边的出度期望可以证明是O(lnn)的,注意MRNG的边的度数期望是常量的。
    • 这个O(lnn)的来源是一个点的密度是O(lnn)的假设
  • 最终构建的复杂度仍然是O(n^2lnn),和构建MRNG的复杂度一样,但是常量倍数肯定不一样了。

5.2 ANN search on 𝜏-MG

  • greedy search算法有修改,每次先尝试找3\tau距离以上的和query最近的邻居,如果这些邻居都更加远离query,那么再找3\tau距离以内的邻居。
    image.png
  • 这样的搜索方法基于一个定理,就是如果3\tau以外的邻居如果都更加远离query,那么最近邻就在3\tau以内了。
    • 换句话说,𝜏-MG的greedy routing保证能搜到NN,但Qurey和NN的距离不能超过\tau

5.3 Update of 𝜏-MG

对于𝜏-MG似乎支持起来比较困难,每次插入需要计算和所有点的距离。

6 𝜏-MONOTONIC NEIGHBORHOOD GRAPH (𝜏-MNG)

6.1 Construction of 𝜏-MNG

𝜏-MNG是𝜏-MG的近似,目的是加速构建。
构建方式和𝜏-MG也是类似的,但有以下几个区别:

  1. 从空图开始构建,并非从MRNG再refine补边;
  2. 需要建一个HNSW或者NSG辅助构建;
  3. candidate neighbor list从HNSW获得近似h-NN,而并非全部数据集。
image.png

这种近似方式构建复杂度肯定是降低了,但是error guarantee也没了。

6.2 ANN search on 𝜏-MNG

之前𝜏-MG的搜索算法没法再用了,因为不保证有单调性了。只能再把经典的search算法拿出来。


image.png

作者为经典beam search在𝜏-MNG的Error guarantee给了一个弱保证,即如果beam size足够大,beam serach找到NN的概率不低于进入neighborhood的概率。
进入neighborhood即beam search访问过query的近似h-NN,也是一个模糊定义。
总之最终是要调beam size的。

6.2.1 Optimization for the search algorithm

  • 这是一个启发式的idea,离得比较远的点,它的邻居普遍也离得比较远,因此可以少算点。如下图,如果当前点不在candidate list的前p%中,那么我们首先给它的邻居算一个下界距离排个序,然后只对前p'%的邻居算真实距离,后面的不算了。
  • 这不是一个精确的剪枝方法,只是一个启发式优化。
image.png
  • 下界距离的定义也很简单,欧氏距离只算一部分,但会把占比较大的维度提前放置,具体来说就是先离线做下SVD,用SVD的前几维来计算。


    image.png

6.2.2 Implementation details

两个优化技术:

  • Partial distance-based pruning (PDP):距离算一半如果可以提前剪枝掉就不要再计算了;
  • Prefix inner product index (PII):用余弦定理计算距离,可以减少一半计算量,但需要为数据库中每个点提前计算模长并存储。
    • 为了和第一条优化技术相结合,可以分段计算,但也会加大存储量。

6.3 Update of 𝜏-MNG

插入支持的比精确图要好一些。先近似搜索candidate neighbor list,然后裁边。但是需要周期性重建。

7 EXPERIMENTAL EVALUATION

image.png

7.1 Comparision with the baseline methods

  • 小数据集上还不错,提升比较稳定


    image.png

7.2 Effect of 𝜏

\tau这个参数是个trade-off,首先\tau越大,对RNG裁边的放松越多,就意味着边越多。先放松一些,补充一些边,可以提高连通性,降低复杂度;再多补边,每一步查询代价就变大了。

image.png

7.3 Performance of QEO

这个下界剪枝提升一般,且不稳定,参数也不大好调;

image.png

7.4 Performance of PDP and PII

early abandon 和 余弦定理看起来很管用。


image.png

7.5 Comparison of index size

index size还是变大了一些的,毕竟放松了裁边规则。

image.png

7.6 Performance against dataset size

分成若干份10million的数据集,然后顺序查找,最终汇总。可以看到是一个线性的复杂度。而且为了提高到0.98所需要的代价则更高。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容