一种近似最近邻检索方法、系统、设备及存储介质与流程

文档序号:35005763发布日期:2023-08-04 03:13阅读:54来源:国知局
一种近似最近邻检索方法、系统、设备及存储介质与流程

本发明涉及近似最近邻检索,具体而言,涉及一种近似最近邻检索方法、系统、设备及存储介质。


背景技术:

1、近似最近邻检索(approximate nearest neighbor search,anns)是一类应用广泛的检索技术。不同于传统的精确检索和文本匹配检索,近似最近邻检索问题是对度量空间下的一组向量集合进行索引构建,并在索引中查找与同一空间下的一个查询向量最接近的k个向量。通常,构建索引的向量库规模庞大且维度高,对向量库进行穷尽搜索虽然能保证100%的召回率,但时间和计算开销过高。因此,近似最近邻检索技术的核心是构建召回率高、检索时间短的索引结构,这一技术被广泛应用到图像视频检索、文本语义检索、异常检测等问题中。

2、对于条件过滤的近似最近邻检索问题,要求检索得到的k个近邻向量不仅和查询向量的距离近,并且满足过滤条件。例如,在人脸识别应用中,人脸图像特征库的每个特征向量往往与人的属性相关,比如姓名、性别、年龄、居住地等。在此应用场景中,一般的近似最近邻检索问题只检索待识别人脸图像特征的k个近邻向量,搜索与查询目标最接近的人脸图像特征,而条件过滤的近似最近邻检索可能需要查询性别、详细居住地、实际年龄的记录中与查询向量最近的k个记录,此问题在近似最近邻检索的各种实际应用场景中广泛存在,在学术界和工业界都被认为是一个值得关注和突破的研究方向。然而现有对于条件过滤的近似最近邻检索问题的解决方式主要基于过滤条件对向量库进行筛选,以获取符合条件的向量;然后遍历所有筛选出的库向量一一计算与查询向量的相似性,挑选距离最小的k个库向量;但是当条件过滤的向量过多时,遍历计算与查询向量的相似性会带来过高的运算开销,并且查询效率较低,在数据量较大时不具有可行性。


技术实现思路

1、本发明提供一种近似最近邻检索方法、系统、设备及存储介质,解决现有对于条件过滤的近似最近邻检索问题的解决方式存在运算开销大、查询效率低、不具有可行性的问题。

2、在第一方面,本发明实施例中提供一种近似最近邻检索方法,所述方法包括索引构建过程和检索过程;

3、索引构建过程如下:

4、基于预设的向量库构建k近邻图,并且结合预设的标签库设置过滤导航点,以获得带过滤导航点的k近邻图;

5、检索过程如下:

6、基于带过滤导航点的k近邻图对查询向量进行贪婪搜索,以获得未条件过滤的最近邻列表;

7、基于未条件过滤的最近邻列表对过滤导航点进行广度优先搜索,以获得条件过滤的最近邻列表。

8、于上述实施例中,本发明在常规的基于k近邻图的近似最近邻检索的索引结构的基础上,增加了标签库的信息,进而能够进行条件过滤,具有较好的适应性;并且由于设置了过滤导航点,能够在搜索过程中快速过滤掉一个节点附近不满足标签查询的节点,从而避免局部穷举搜索,提高搜索效率、符合过滤条件的最近邻向量的搜索召回率并降低搜索的预算开销与时间。

9、作为本申请一些可选实施方式,基于预设的向量库构建k近邻图的流程如下:

10、采用k近邻算法构建k近邻图,并且将向量库中每个向量作为一个节点加入到k近邻图;

11、将新加入的节点与k近邻图已存在的邻居节点连接。

12、作为本申请一些可选实施方式,结合预设的标签库设置过滤导航点,以获得带过滤导航点的k近邻图的流程如下:

13、从k近邻图中随机采样若干节点作为过滤导航点;

14、统计每个过滤导航点满足过滤条件且在导航范围内的邻居节点的标签集合,并且将标签集合存入过滤导航点所在的布隆过滤器。

15、作为本申请一些可选实施方式,基于带过滤导航点的k近邻图对查询向量进行贪婪搜索,以获得未条件过滤的最近邻列表的流程如下:

16、获取查询向量和带过滤导航点的k近邻图中所有节点的欧式距离;

17、选取k个欧式距离最小的节点,以形成未条件过滤的最近邻列表;其中,k为预设的最近邻节点数量。

18、作为本申请一些可选实施方式,基于未条件过滤的最近邻列表对过滤导航点进行广度优先搜索,以获得条件过滤的最近邻列表的流程如下:

19、以未条件过滤的最近邻列表所对应的节点为起点,广度优先搜索符合过滤条件的节点;

20、在查询过程中,如果存在过滤导航点,则利用过滤导航点的布隆过滤器判断过滤导航点在导航范围内的邻居节点是否符合过滤条件,如果符合,则继续执行广度优先搜索,反之,则将过滤导航点对应导航范围内的邻居节点排除出搜索范围,最终保留k个符合过滤条件的节点,以形成条件过滤的最近邻列表,其中,k为预设的最近邻数量。

21、于上述实施例中,与一般的广度优先搜索不同的是,在搜索过程中,利用索引构建过程中设置的过滤导航点来排除掉不满足过滤条件的节点,从而提高搜索效率。

22、作为本申请一些可选实施方式,所述过滤导航点导航范围设置为:

23、

24、其中,r代表过滤导航点的邻居节点阶数,m代表k近邻图中定义的已存在的邻居节点数量,ρ代表k近邻图中采样的过滤导航点比例,n代表k近邻图中所有节点总数。

25、作为本申请一些可选实施方式,所述过滤导航点的数量为ρn,其中,ρ为区间[0,1]内的小数。

26、于上述实施例中,在第二方面,本发明提供一种近似最近邻检索系统,所述系统包括:

27、索引构建单元,所述索引构建元基于预设的向量库构建k近邻图,并且结合预设的标签库设置过滤导航点,以获得带过滤导航点的k近邻图;

28、检索单元,所述查询单元首先基于带过滤导航点的k近邻图对查询向量进行贪婪搜索,以获得未条件过滤的最近邻列表;然后基于基于未条件过滤的最近邻列表对过滤导航点进行广度优先搜索,以获得条件过滤的最近邻列表。

29、在第三方面,本发明提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行计算机程序时实现所述一种近似最近邻检索方法。

30、在第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述一种近似最近邻检索方法。

31、本发明的有益效果如下:本发明在常规的基于k近邻图的近似最近邻检索的索引结构的基础上,增加了标签库的信息,进而能够进行条件过滤,具有较好的适应性;并且由于设置了过滤导航点,能够在搜索过程中快速过滤掉一个节点附近不满足标签查询的节点,从而避免局部穷举搜索,提高搜索效率、符合过滤条件的最近邻向量的搜索召回率并降低搜索的预算开销与时间。



技术特征:

1.一种近似最近邻检索方法,其特征在于,所述方法包括索引构建过程和检索过程;

2.根据权利要求1所述的一种近似最近邻检索方法,其特征在于,基于预设的向量库构建k近邻图的流程如下:

3.根据权利要求2所述的一种近似最近邻检索方法,其特征在于,结合预设的标签库设置过滤导航点,以获得带过滤导航点的k近邻图的流程如下:

4.根据权利要求1所述的一种近似最近邻检索方法,其特征在于,基于带过滤导航点的k近邻图对查询向量进行贪婪搜索,以获得未条件过滤的最近邻列表的流程如下:

5.根据权利要求3所述的一种近似最近邻检索方法,其特征在于,基于未条件过滤的最近邻列表对过滤导航点进行广度优先搜索,以获得条件过滤的最近邻列表的流程如下:

6.根据权利要求5所述的一种近似最近邻检索方法,其特征在于,所述过滤导航点导航范围设置为:

7.根据权利要求6所述的一种近似最近邻检索方法,其特征在于,所述过滤导航点的数量为ρn,其中,ρ为区间[0,1]内的小数。

8.一种近似最近邻检索系统,其特征在于,所述系统包括:

9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行计算机程序时实现权利要求1-7中任一项所述一种近似最近邻检索方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述一种近似最近邻检索方法。


技术总结
本发明提供一种近似最近邻检索方法、系统、设备及存储介质,涉及近似最近邻检索技术领域,所述方法包括索引构建过程和检索过程;索引构建过程是基于预设的向量库构建K近邻图,并且结合预设的标签库设置过滤导航点,以获得带过滤导航点的K近邻图;检索过程首先基于带过滤导航点的K近邻图对查询向量进行贪婪搜索,以获得未条件过滤的最近邻列表;然后基于未条件过滤的最近邻列表对过滤导航点进行广度优先搜索,以获得条件过滤的最近邻列表。本发明解决现有对于条件过滤的近似最近邻检索问题的解决方式存在运算开销大、查询效率低、不具有可行性的问题。

技术研发人员:请求不公布姓名
受保护的技术使用者:成都数之联科技股份有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1