一种结合VP树和导向近邻图的近似最近邻搜索方法技术

技术编号:27208170 阅读:25 留言:0更新日期:2021-01-31 12:37
本发明专利技术提出的一种结合VP树和导向近邻图的近似最近邻搜索方法,该方法包括两个过程:索引构建过程和搜索过程。索引构建过程包含:(1)针对高维向量数据构建存放入口点的VP树;(2)使用可导航伸展图将高维向量数据构建成K近邻图;(3)将K近邻图中的每个点的邻居集均匀地划分来得到可导向近邻图。搜索过程包含:(1)查找入口点阶段,通过搜索VP树快速得到大致接近查询点的入口点;(2)导向搜索阶段,从入口点开始,得到查询点的局部最近点;(3)穷尽搜索阶段,利用范围搜索算法穷尽搜索查询点附近的点并返回查询点的top

【技术实现步骤摘要】
一种结合VP树和导向近邻图的近似最近邻搜索方法


[0001]本专利技术涉及近似最近邻搜索领域,具体涉及一种结合VP树和导向近邻图的近似最近邻搜索方法。

技术介绍

[0002]近似最近邻搜索是数据挖掘、机器学习、机器视觉和信息检索等邻域的一个关键技术,在过去的几十年中,人们一直致力于提高近似最近邻搜索的性能。目前近似最近邻搜索包括以下四类方法:基于树、基于哈希、基于量化和基于近邻图的方法,相比于其他的方法,基于近邻图的方法因其精度更高且速度更快的特点,成为近几年的研究热点。
[0003]目前已经有分层可导航小世界图(HNSW)、可导航卫星系图(NSSG)、可导航伸展图(NSG)等优秀的方法被提出,他们在实际生产环境中得到了广泛的应用,但是包括上述的大部分基于近邻图的近似最近邻搜索方法都存在一个问题:基于近邻图的方法的图搜索策略都仅仅使用单一的贪婪搜索算法,这会导致搜索的低效率问题,由于贪婪搜索算法在搜索过程中需要遍历当前访问点的所有邻居点并与查询点进行相似度计算,这在远离查询点的搜索区域是完全没有必要的,并且会严重降低搜索效率,尤其是针对大规模高维数据的情况下,搜索效率的优化更是面临的一个主要挑战。

技术实现思路

[0004]本专利技术针对现有技术的不足,提出了一种结合VP树和导向近邻图的近似最近邻搜索方法,这种方法包括两个过程:索引构建过程和搜索过程。
[0005]索引构建过程包含三个步骤:(1)针对高维向量数据构建用于搜索入口点的VP树;(2)使用可导航伸展图(NSG)将高维向量数据构建成K近邻图;(3)基于VP树将K近邻图中的每个点的邻居集均匀地划分为子邻居集left和子邻居集right得到可导向近邻图。
[0006]搜索过程包含三个阶段:查找入口点阶段、导向搜索阶段和穷尽搜索阶段。在查找入口点阶段,通过搜索VP树,快速得到大致接近查询点的入口点。在导向搜索阶段,从入口点开始,利用基于VP树的导向搜索算法高效的收敛并得到查询点的局部最近点。在穷尽搜索阶段,从查询点的局部最近点开始,利用范围搜索算法穷尽的搜索查询点附近的点,最后将返回的点作为搜索结果。
[0007]这种结合VP树和导向近邻图的近似最近邻搜索方法避免了在远离查询点的搜索区域穷尽的遍历所有的邻居点带来的低效问题,从而达到了快速收敛的目的,并且通过对查询点附近的搜索区域进行穷尽的搜索来保证最终结果的精度。
[0008]本专利技术所提出的一种结合VP树和导向近邻图的近似最近邻搜索方法包含索引构建过程和搜索过程,具体内容如下:
[0009](1)索引构建过程:首先构建存放入口点的VP树,然后将高维向量数据构建成K近邻图,最后基于VP树和K近邻图生成可导向K近邻图;
[0010](1-1)针对高维向量数据构建存放入口点的VP树;
[0011](1-2)使用可导航伸展图(NSG)将高维向量数据构建成K近邻图;
[0012](1-3)基于VP树将K近邻图中的每个点的邻居集均匀地划分为子邻居集left和子邻居集right得到可导向近邻图。
[0013](2)执行搜索过程,搜索过程包括三个阶段:查找入口点阶段、导向搜索阶段和穷尽搜索阶段;
[0014](2-1)查找入口点阶段:通过搜索存放入口点的VP树,快速得到大致接近查询点的入口点;
[0015](2-2)导向搜索阶段:从入口点开始,利用基于VP树的导向搜索算法高效的收敛并得到查询点的局部最近点;
[0016](2-3)穷尽搜索阶段:从查询点的局部最近点开始,利用范围搜索算法穷尽的搜索查询点附近的点并返回查询点的top-K个最近点。
[0017]其中,步骤(1-1)所述的针对高维向量数据构建存放入口点的VP树的形式化描述是,对于高维数据集S,将其抽象表示为
[0018]S={v
i
|i=1,2,

,N}
[0019]其中,v
i
为第i个向量数据,N为数据集的大小。VP树的0到dep-1层的非叶子节点将高维数据集S划分成规模较小的2
dep-1个子集,dep表示VP树的深度,更深的VP树节点对应规模更小的子集,VP树的dep层的叶子节点将对应子集的质心作为入口点保存。每个VP树节点对应集合表示为
[0020][0021]其中x表示VP树节点对应的序号,对于VP树的每一个非叶子节点,从每一个非叶子节点对应的集合S
x
中随机选出一个点作为优势点t
x
,t
x
满足
[0022]t
x
={t
x
∈S
x
|0≤x≤2
dep-1-2}
[0023]计算优势点t
x
和集合S
x
中所有点之间的距离并选择能够将集合S
x
均匀地划分为两个子集S
2x+1
和S
2x+2
的中间距离作为中间值μ
x
,S
2x+1
和S
2x+2
满足
[0024]S
2x+1
={s∈S
x
|dist(s,t
x
)≤μ
x
,2x+1<2
dep-2}
[0025]S
2x+2
={s∈S
x
|dist(s,t
x
)>μ
x
,2x+2≤2
dep-2}
[0026]dist表示两个点之间的欧式距离,S
2x+1
和S
2x+2
分别用于构建序号为x的VP树节点的左子树和右子树,以此类推直到VP树的深度达到预设深度dep时终止,对于每个叶子节点,将每个叶子节点对应的集合S
x
的质心e
i
作为入口点,e
i
满足
[0027]e
i
={e
i
∈S
x
|1≤i≤2
dep-1
,2
dep-1-1≤x≤2
dep-2}
[0028]最终能使2
dep-1
个入口点均匀地分布在近邻图中。VP树索引结构的非叶子节点只保存对应的优势点t
x
和中间值μ
x
,叶子节点只需要保存对应的入口点e
i
即可,VP树能够将10
dep-1
个入口点均匀地分布在近邻图中。
[0029]步骤(1-2)中,使用可导航伸展图(NSG)将高维向量数据构建成K近邻图G;
[0030]G=(V,E)
[0031]其中,V表示点集,满足V=S,E表示用于连接V中点的边集,v
i
,v
j
∈V,有向边v
i
v
j
∈E表示点v...

【技术保护点】

【技术特征摘要】
1.一种结合VP树和导向近邻图的近似最近邻搜索方法,其特征在于该方法包含两个过程:索引构建过程和三阶段搜索过程;具体包含以下步骤:(1)索引构建过程:首先构建存放入口点的VP树,然后将高维向量数据构建成K近邻图,最后基于VP树和K近邻图生成可导向K近邻图;(1-1)针对高维向量数据构建存放入口点的VP树;(1-2)使用可导航伸展图将高维向量数据构建成K近邻图;(1-3)基于VP树将K近邻图中的每个点的邻居集均匀地划分为子邻居集left和子邻居集right得到可导向近邻图;(2)执行搜索过程,搜索过程包括三个阶段:查找入口点阶段、导向搜索阶段和穷尽搜索阶段;(2-1)查找入口点阶段:通过搜索VP树,快速得到大致接近查询点的入口点;(2-2)导向搜索阶段:从入口点开始,利用基于VP树的导向搜索算法高效的收敛并得到查询点的局部最近点;(2-3)穷尽搜索阶段:从查询点的局部最近点开始,利用范围搜索算法穷尽搜索查询点附近的点并返回查询点的top-K个最近点。2.根据权利要求1所述的一种结合VP树和导向近邻图的近似最近邻搜索方法,其特征在于,步骤(1-1)所述的针对高维向量数据构建存放入口点的VP树的形式化描述是,对于高维数据集S,将其抽象表示为S={v
i
|i=1,2,

,N}其中,v
i
为第i个向量数据,N为数据集的大小;VP树的0到dep-1层的非叶子节点将高维数据集S划分成规模较小的2
dep-1个子集,dep表示VP树的深度,VP树的dep层的叶子节点将对应子集的质心作为入口点保存;每个VP树节点对应集合表示为其中x表示VP树节点对应的序号,对于VP树的每一个非叶子节点,从每一个非叶子节点对应的集合S
x
中随机选出一个点作为优势点t
x
,t
x
满足t
x
={t
x
∈S
x
|0≤x≤2
dep-1-2}计算优势点t
x
和集合S
x
中所有点之间的距离并选择能够将集合S
x
均匀地划分为两个子集S
2x+1
和S
2x+2
的中间距离作为中间值μ
x
,S
2x+1
和S
2x+2
满足S
2x+1
={s∈S
x
|dist(s,t
x
)≤μ
x
,2x+1<2
dep-2}S
2x+2
={s∈S
x
|dist(s,t
x
)>μ
x
,2x+2≤2
dep-2}S
2x+1
和S
2x+2
分别用于构建序号为x的VP树节点的左子树和右子树,以此类推直到VP树的深度达到预设深度...

【专利技术属性】
技术研发人员:徐小良马丁程王宇翔
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1