图近似最近邻搜索效率提升新方法

更高效的近似最近邻搜索

当今许多机器学习应用都涉及最近邻搜索:数据被表示为高维空间中的点;查询(如图片或文本字符串)被嵌入该空间;检索与查询最接近的数据点作为候选解决方案。然而,计算查询与数据集中每个点之间的距离通常耗时过长,因此模型构建者转而使用近似最近邻搜索技术。其中最流行的是基于图的近似方法,即将数据点组织成图结构,搜索算法遍历图并持续更新遇到的最近邻点列表。

在今年的网络会议上发表的一篇论文中,提出了一种新技术,使基于图的最近邻搜索更加高效。该技术基于以下观察:当计算查询与当前候选列表中所有点更远的点之间的距离时,近似距离测量通常已足够。因此,提出了一种高效计算近似距离的方法,显示可将近似最近邻搜索所需时间减少20%至60%。

基于图的搜索

大致来说,近似k最近邻搜索算法(寻找最接近查询向量的k个邻居)分为三类:量化方法、空间分区方法和基于图的方法。在多个基准数据集上,基于图的方法目前表现最佳。

给定查询q的嵌入,基于图的搜索选择图中的一个点c,并探索其所有邻居(即与其共享边的节点)。算法计算这些节点与查询的距离,并将最接近的节点添加到候选列表中。然后从这些候选中选择最接近查询的点,探索其邻居,必要时更新列表。此过程持续进行,直到未探索的图节点与查询向量之间的距离开始增加——表明算法正在离开真实最近邻的邻域。

过去关于基于图近似的研究集中于构建底层图的方法。例如,有些方法在给定节点和远处节点之间添加连接,以确保搜索不会陷入局部最小值;有些方法专注于修剪高度连接的节点,防止同一节点被重复访问。每种方法各有优势,但没有一种在所有情况下都明显胜出。

转而专注于一种适用于所有图构建方法的技术,因为它提高了搜索过程本身的效率。该技术称为FINGER(基于图的近似最近邻搜索的快速推理)。

近似距离计算

考虑查询向量q、正在探索其邻居的节点c,以及c的一个邻居d(我们希望计算其与q的距离)。

q和d都可以表示为沿c的投影和垂直于c的“残差向量”之和。这本质上是将c视为空间的基向量。如果算法正在探索c的邻居,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值