近似最近邻检索

  随着数据科学和人工智能的应用普及,我们对高维向量数据的管理与使用需求越来越大。尤其是更多ML算法的提出,everything to embedding的思想也被人熟知,大量的结构化或非结构化数据的涌入就意味着大量的高维度向量的生成。在这样的背景下,一个优雅的ANNS(近似最近邻搜索)算法就是很多AI应用产品落地过程中所必需的。下面我们将会从几个问题入手,逐渐地了解ANNS算法。

1 什么是近似最近邻搜索

  顾名思义,ANNS算法的输入是目标节点,返回与目标节点最近的k个近邻节点。如下图所示,把蓝色小球作为目标节点,而我们期望做一次top 2近邻的检索,那么算法应当为我们返回两个红色小球。值得一提的是,目前距离度量函数通常选择L2或Inner-Product。

f9efbf2491fba8e7a043db363974f4c4.png

2 为什么需要近似最近邻搜索

  我们将任何格式的数据映射到向量空间后,近邻检索可以用来快速比对每个向量节点。对于用户来说,这意味着给定一个查询后,ANNS算法会快速返回相关结果。下面举两个例子,描述一下我们身边常见的近邻搜索场景。

419fb411c1b1f87750e57f87e9658859.png

 当我们在购物网站浏览某款篮球时,根据近邻检索算法返回的其他几类近似产品可能会出现在相关商品推荐板块。

c16de4c19875d27aca0ec47e42b0b4b8.png

 当节点之间的关系代表一定的语义特征时,我们可以通过相似搜索的方法学习到相对于woman来说,具有类似man-king关系的词是queen。

  总结来说,在搜索、推荐等场景下,我们并不需要绝对准确的结果。而是可以选择牺牲一定的精度,更为快速的从海量节点中获取到返回结果。

3 ANNS算法分类

138150c2d2d3da33b46bea03ab7daa6d.png

摘自杭州电子科技大学王梦召同学的分享

        目前,所有的ANNS算法可以分为基于树、基于哈希、基于量化、基于图四种方法。基于树和基于哈希的方法思路比较类似,都是通过查询一个子集去降低比较计算的次数。基于量化的方法与之不同,通过压缩编码的方式,降低距离计算的复杂度,以此来增加查找的效率。以上三种方法均存在一些瓶颈问题。例如,基于树的算法在标量和低维度的向量数据中表现较好。在百位或者千位维度的向量中,效率会急剧退化,甚至退化成暴力搜索。基于量化和基于哈希的方法均会在一些情况下存在精度天花板。

  而在过去的十年间,基于图的ANNS算法一直是该领域的领先算法。此类算法的提出就是针对近邻检索提供有效、高效的解决方案。基于图做近邻搜索的主要思路是,通过一个entry point,不断访问邻居节点进行迭代,逐渐向目标节点进行收敛。这个过程既保证了减少比较的次数,又没有过多的精度损失。

4 基于图的ANNS算法

  在了解了基于图的ANNS算法的优势和搜索过程后,我们比较关心的是图是如何形成的?那么,下面简单介绍下四种基图结构,大多数的图索引算法都是基于这四种基图演化而来。

ca04bea37c1fd5a3cb82852d7820b916.png

Delaunay Graph:德劳内图是由德劳内三角剖分算法而来,该算法通过最大化最小角保证了三角形结构的唯一性。每个三角形三个节点的外接圆上和圆内不允许出现其他节点。

Relative Neighborhood Graph:RNG图是德劳内图的子图结构,相比于德劳内图,不同的是它需要保证每两个点形成的lune区域内不出现其他节点。

K-Nearest Neighbor Graph:K近邻图是有向图结构,每个节点与其K个距离最近的节点相连。

Minimum Spanning Graph:最小生成树保证了图连通的最小边个数。

  每种基图都有其代表性的算法,基于不同的图结构,每种算法在近邻召回这一任务上的表现也各不相同。在后面的文章中,我们会更详细地为大家介绍每种基图的特点和一些有代表性的算法。

5 总结与展望

  本篇是ANNS算法系列的第一篇文章,主要与大家分享算法中基本的概念。后续的文章将会分为以下几个方向:

  • ANNS算法: 这部分主要介绍基于图的向量检索算法

  • 产品: 以TensorDB、Milvus、Vearch等向量检索类产品为例,分享产品细节

  • Paper Reading: 为大家分享向量检索领域经典or最新论文

  感兴趣的同学可以持续关注这个公众号(帮正在努力创业的好朋友推一波),会在向量检索领域与大家共同学习、共同成长!

9f560dfc35439e7c21a8dbdda7e6501c.jpeg


猜你喜欢

转载自blog.csdn.net/qq_33431368/article/details/126964321