【技术实现步骤摘要】
一种结合VP树和导向近邻图的近似最近邻搜索方法
[0001]本专利技术涉及近似最近邻搜索领域,具体涉及一种结合VP树和导向近邻图的近似最近邻搜索方法。
技术介绍
[0002]近似最近邻搜索是数据挖掘、机器学习、机器视觉和信息检索等邻域的一个关键技术,在过去的几十年中,人们一直致力于提高近似最近邻搜索的性能。目前近似最近邻搜索包括以下四类方法:基于树、基于哈希、基于量化和基于近邻图的方法,相比于其他的方法,基于近邻图的方法因其精度更高且速度更快的特点,成为近几年的研究热点。
[0003]目前已经有分层可导航小世界图(HNSW)、可导航卫星系图(NSSG)、可导航伸展图(NSG)等优秀的方法被提出,他们在实际生产环境中得到了广泛的应用,但是包括上述的大部分基于近邻图的近似最近邻搜索方法都存在一个问题:基于近邻图的方法的图搜索策略都仅仅使用单一的贪婪搜索算法,这会导致搜索的低效率问题,由于贪婪搜索算法在搜索过程中需要遍历当前访问点的所有邻居点并与查询点进行相似度计算,这在远离查询点的搜索区域是完全没有必要的,并且会严重降低搜索效率,尤其是针对大规模高维数据的情况下,搜索效率的优化更是面临的一个主要挑战。
技术实现思路
[0004]本专利技术针对现有技术的不足,提出了一种结合VP树和导向近邻图的近似最近邻搜索方法,这种方法包括两个过程:索引构建过程和搜索过程。
[0005]索引构建过程包含三个步骤:(1)针对高维向量数据构建用于搜索入口点的VP树;(2)使用可导航伸展图(NSG)将高维向量数据
【技术保护点】
【技术特征摘要】
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树的深度达到预设深度...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。