type
status
date
slug
summary
tags
category
icon
password
文章标题:DEG: Efficient Hybrid Vector Search Using the Dynamic Edge Navigation Graph
作者:Ziqi Yin, Jianyang Gao, PASQUALE BALSEBRE, Gao Cong, Cheng Long
机构:NTU
背景
随着多模态数据(如图像-文本、视频-文本、地理位置-文本等)的普及,混合向量查询 (Hybrid Vector Search)成为研究热点。这类查询通常涉及两个或多个向量,通过加权和的方式计算相似度。例如,用户在寻找“附近的日料店”时,既关心地理位置,也关心语义匹配程度。
Research Gap & Challenges
现有方法在构建index时假设距离是固定的,然而在混合查询中,权重是可变的,导致一个索引结构在不同下性能表现不同,在某些情况性能严重下降。
Challenges:
- Candidate neighbors难以确定:变化时,距离度量也会变化,每个节点的最近邻也会随之变化。对每个节点来说,要如何构建一个对所有都有效的neighbor候选集?
- 剪枝策略失效:RNG(构建graph-based index常用的剪枝策略)依赖于边长度进行剪枝,而的变化会导致这种策略失效。
- 搜索起点难以选择:图的中心点会随变化,无法对任意都给出很好的start node。
问题定义
Similarity计算
:个物体的数据集。每个object有两个feature vectors,和。给定一个query ,为可调参数,控制对两种feature vector的倾向程度,两个物体的hybrid distance计算如下。
其中以及,计算与两个向量之间的欧式距离,和。做这种归一化是因为当两个向量数值尺度不一样的情况下,直接算距离会导致数值大的模块完全主导hybrid distance,使得失去意义。
Problem Statement
HVQ:给定一个query ,hybrid vector query意图找到与具有最小hybrid distance的个物体。
这篇文章的目标是:构建一个graph-based ANNS index使得在不同的权重上,搜索算法都能表现良好(effective and efficient)。
方法
方法总览
和原始文章的结构不同,我们这里先看看他们方法的总体框架,再讨论每个部分的细节。
我们先初始化这个要构建的graph ,它只包含一个点,其中是通过Edge seed方法选出来的初始点。随后对中的每个点,我们先通过GPS算法选出合适的候选集,随后再通过提出的新剪枝方法DRNGPrune,从候选集中选出真正的neighbor。随后,对于的每个邻居,再应用一次DRNGPrune剪枝掉多余的边。最后更新下一轮的start node。
接下来我们详细讲GPS(即确定candidate set)和DRNGPrune(确定最终neighbor,精简graph)算法。


Candidate Neighbor Acquisition
对于candidate set的构建,我们希望对任意,最近的点都会被包含在这个候选集中。为此,我们先介绍帕累托前沿的概念:
帕累托前沿(Pareto Frontier):给定数据集,和两个要最小化的目标函数和,对于来说,当且仅当以下两个条件满足时,我们称 dominate了:
- 且()
- 或 ()
当中没有任何一个点能dominate 时,我们称为帕累托最优(pareto optimal)。PF包含中所有帕累托最优的点。
Main theorem:给定某点,两目标函数和,对任意来说,的最近邻一定包含在中。
然而,对一个特定来说,它的PF可能只包含几个点,但一般ANNS index构建都需要上百个候选点,所以在找到了一个PF后,其中的点会被remove掉,然后再找一轮PF,直到candidate数量足够,最终得到的结果被称为multi-layer PF。
Greedy Pareto Frontier Search (GPS) Algorithm:
Main idea: 把要插入的点尽可能连到它在中对应的PF上。个人理解就是,从起始点找PF,遍历PF点的邻居,然后在这个更大的候选集里继续找PF。

Dynamic Edge Pruning
RNG pruning: 剪枝掉三角形里最长的边。
and ,prune 。但是这些条件可能只对某些成立。有四种情况,对应四个ranges。
计算对每个点不等式成立的 range,考虑每个点在哪些range下面会被prune掉,如果它在足够大的范围内并不会被prune掉(即),我们将它保留为最后的neighbor。
算法细节上,对每个候选的点,遍历已经加入NS的点,找到该候选点不会被剪枝掉的 range,如果这个range足够大,就保留它,加入NS,否则剪枝掉。
line 6-9:任意一个neighbor满足条件,说明可以被剪枝掉,于是的补集即为所有neighbor都不满足条件的范围(记作),意味着这条边会被保留。

Edge Seed Acquisition
Main idea: 选离center最远的点
计算一个centroid ,其中以及。维护的inverse PF,包含在两种距离上不会dominate任何点的点(也就是说对任意来说这些点都很远)。
Experiments
F: set as 0.5
M: 两种度量下分别构建index,找个点,虽然union起来按照hybrid distance做rerank。
O: Overlay,在0.1、0.3、0.5、0.7、0.9下分别构建index,随后merge成一个overlaid graph index,每条边伴随着一个数值,表示它是在哪个值下构建的。在query的时候,我们只遍历离最近的那个值对应的边。
Or:Oracle,模拟ideal情况,假设有对应的index。0.1、0.3、0.5、0.7、0.9分别构建index,用于展示performance gap。

Performance Gap

Scalability
On Twitter-US,其余方法构建index超过两天,DEG需要12 h。作者们认为HNSW的construction cost会随着dataset size指数增长,所以虽然DEG和HNSW-based的方法在下面的实验里展示的构造时间差不多,但是这里没有办法运行。

Index Cost

Sensitivity

Ablation Study
None: no pruning
Static: no active range
greedy: no GPS, index with
centroid / random: different seed selection


- 作者:Xiaolong CHEN
- 链接:https://tangly1024.com/article/2ab79587-da3a-805c-a267-f50dd87130c5
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。




