System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及检索,尤其涉及一种向量检索方法及装置。
技术介绍
1、向量检索在信息检索领域发挥着重要作用。向量检索的过程为,首先构造向量底库,向量底库中包含对大量数据进行特征提取后得到的大量向量,数据可以为图片、视频、音频、文本等形式;然后将用户输入的待查询向量与向量底库中的所有向量分别计算相似度,将相似度由高到低进行排序的前w个相似度对应的向量作为待查询向量的查询结果返回。
2、这种方法针对包含亿级乃至十亿级规模的向量的向量底库进行全局的搜索比对,检索吞吐量(query per second,速度)较低,检索速度较低。
技术实现思路
1、本申请提供一种向量检索方法及装置,用于解决现有的向量检索方法存在的检索速度低的问题。
2、第一方面,本申请提供一种向量检索方法,该方法具体可以由计算设备执行或者由计算设备内部的芯片执行,或者由计算设备中的处理器执行。该方法包括:获取待查询向量;
3、将所述待查询向量分别与m个聚类分区的分区中心向量做相似度计算,得到m个第一相似度;所述m个聚类分区为对向量底库中的各向量按照向量之间的相似度进行聚类得到的;任一所述聚类分区的分区中心向量是根据任一所述聚类分区中包含的多个向量确定的,所述m为大于1的整数;在所述m个第一相似度中,选择所述第一相似度由高到低排序在前的k个第一相似度,并将所述k个第一相似度分别对应的聚类分区确定为k个检索分区,所述k为大于等于1的整数、且k小于所述m;
4、循环执行如下操作,直至确
5、在所述k个检索分区中选择未被选择过的检索分区作为目标检索分区;计算所述待查询向量分别与所述目标检索分区中包含的各向量之间的第二相似度;根据各所述第二相似度,确定所述目标检索分区中包含目标向量的概率值;
6、基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果。
7、上述技术方案中,无需将待查询向量与向量底库中的所有向量计算相似度,从而得到查询结果,而是先将向量底库中的各向量进行聚类得到m个聚类分区,每个聚类分区对应有一个分区中心向量;通过计算待查询向量与m个聚类分区的分区中心向量的第一相似度,通过m个第一相似度的大小关系在m个聚类分区中挑选出k个检索分区;在k个检索分区中依次选择目标检索分区,针对选择的每个目标检索分区确定与待查询向量相同或相似的向量落在选择的目标检索分区中的概率值,直至选择到概率值大于第一预设阈值的目标检索分区为止。然后在已选择的至少一个目标检索分区中确定待查询向量的查询结果。如此,可以降低计算量,提高查询速度。
8、在一种可能的实现方式中,基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果,包括:将已经选择的至少一个检索分区中所述概率值大于所述第一预设阈值的检索分区中包含的各向量,作为查询结果输出;或者,根据已经选择的至少一个检索分区中所述概率值大于所述第一预设阈值的检索分区中包含的各向量分别与所述待查询向量之间的所述第二相似度由高到低的顺序,将排序在前的w个所述第二相似度分别对应的向量,作为查询结果输出,所述w为正整数。
9、上述技术方案中,由于选择出的概率值大于第一预设阈值的检索分区只有一个,那么将概率值大于第一预设阈值的检索分区包含的所有向量输出作为查询结果,能够有效降低计算量,提高检索速度。或者将概率值大于第一预设阈值的检索分区包含的所有向量分别与所述待查询向量之间的第二相似度由高到低的顺序排序在前的w个第二相似度分别对应的向量,作为查询结果输出,可以进一步精简输出结果。
10、在一种可能的实现方式中,基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果,包括:将已经选择的至少一个检索分区分别包含的各向量,作为查询结果输出;或者根据已经选择的至少一个检索分区中分别包含的各向量与所述待查询向量之间的所述第二相似度由高到低的顺序,将排序在前的w个所述第二相似度分别对应的向量,作为查询结果输出,所述w为正整数。
11、上述技术方案中,基于已经选择的至少一个检索分区输出查询结果,而不是基于概率值大于第一预设阈值的检索分区输出查询结果。由于与待查询向量相同或相似的向量落在选择的分区中的概率值不大于第一预设阈值的检索分区中可能也存在与待查询向量相似度较高的向量,因此上述方案可以提高向量检索的精度。
12、在一种可能的实现方式中,在所述k个检索分区中选择未被选择过的检索分区作为目标检索分区,可以为按照所述k个第一相似度由高到低的顺序在所述k个检索分区中选择未被选择过的检索分区作为目标检索分区。
13、这样,按照k个第一相似度的大小顺序选择目标检索分区,能够尽早地确定出概率值大于第一预设阈值的目标检索分区,尽量减少再选择目标检索分区的可能,也就无需计算待查询向量与再次选择的目标检索分区中的向量之间的相似度,因此可以降低计算量,提高检索速度。
14、在一种可能的实现方式中,在所述k个检索分区中选择未被选择过的检索分区作为目标检索分区,还可以为:针对所述k个检索分区中的任一检索分区,将所述检索分区中的各向量按照向量之间的相似度进行聚类得到多个检索子分区;根据任一检索子分区中包含的多个向量确定任一所述检索子分区的子分区中心向量;计算所述待查询向量分别与所述多个检索子分区的子分区中心向量的第三相似度;根据所述待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度,对所述k个检索分区进行排序;在排序后的k个检索分区中选择未被选择过的检索分区作为所述目标检索分区。
15、这样,通过在对检索分区内的向量进一步聚类,得到多个检索子分区,每个检索子分区对应子分区中心向量。由于进行了更加细致的划分,划分得到的子分区中心向量更能准确地代表该检索子分区中的向量。基于待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度,对所述k个检索分区进行排序,可以提高排序的准确度。如此,能够尽早地确定出概率值大于第一预设阈值的目标检索分区,尽量减少再选择目标检索分区的可能,也就无需计算待查询向量与再次选择的目标检索分区中的向量之间的相似度,因此也可以降低计算量,提高检索速度。
16、在一种可能的实现方式中,根据所述待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度,对所述k个检索分区进行排序,包括:根据所述待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度中超出第二预设阈值的所述第三相似度的数量,对所述k个检索分区进行排序;或者,根据所述待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度中的最大相似度,对所述k个检索分区进行排序。
17、通过多个第三相似度中超出第二预设阈值的所述第三相似度的数量或者通过多个第三相似度中的最大相似度对k个检索分区进行排序,都可以降低排序难度,提高本文档来自技高网...
【技术保护点】
1.一种向量检索方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果,包括:
3.如权利要求1所述的方法,其特征在于,基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果,包括:
4.如权利要求1所述的方法,其特征在于,在所述K个检索分区中选择未被选择过的检索分区作为目标检索分区,包括:
5.如权利要求1所述的方法,其特征在于,在所述K个检索分区中选择未被选择过的检索分区作为目标检索分区,包括:
6.如权利要求5所述的方法,其特征在于,根据所述待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度,对所述K个检索分区进行排序,包括:
7.如权利要求1所述的方法,其特征在于,根据各所述第二相似度,确定所述目标检索分区中包含目标向量的概率值,包括:
8.如权利要求7所述的方法,其特征在于,所述待查询向量为N个,所述N为大于1的正整数;
9.一种向量检索装置,其特征在于,包括:
10.如权利
11.如权利要求9所述的装置,其特征在于,在所述处理单元基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果时,具体用于:
12.如权利要求9所述的装置,其特征在于,在所述处理单元在所述K个检索分区中选择未被选择过的检索分区作为目标检索分区时,具体用于:
13.如权利要求9所述的装置,其特征在于,在所述处理单元在所述K个检索分区中选择未被选择过的检索分区作为目标检索分区时,具体用于:
14.如权利要求9所述的装置,其特征在于,在所述处理单元根据所述待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度,对所述K个检索分区进行排序时,具体用于:
15.如权利要求9所述的装置,其特征在于,在所述处理单元根据各所述第二相似度,确定所述目标检索分区中包含目标向量的概率值时,具体用于:
16.如权利要求15所述的装置,其特征在于,所述待查询向量为N个,所述N为大于1的正整数;
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被向量检索装置执行时,实现如权利要求1至8中任一项所述的方法。
18.一种芯片,其特征在于,包括至少一个处理器和接口;所述接口,用于为所述至少一个处理器提供程序指令或者数据;所述至少一个处理器用于执行所述程序行指令,以实现如权利要求1至8中任一项所述的方法。
...【技术特征摘要】
1.一种向量检索方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果,包括:
3.如权利要求1所述的方法,其特征在于,基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果,包括:
4.如权利要求1所述的方法,其特征在于,在所述k个检索分区中选择未被选择过的检索分区作为目标检索分区,包括:
5.如权利要求1所述的方法,其特征在于,在所述k个检索分区中选择未被选择过的检索分区作为目标检索分区,包括:
6.如权利要求5所述的方法,其特征在于,根据所述待查询向量与每个检索分区中的多个子分区中心向量的多个第三相似度,对所述k个检索分区进行排序,包括:
7.如权利要求1所述的方法,其特征在于,根据各所述第二相似度,确定所述目标检索分区中包含目标向量的概率值,包括:
8.如权利要求7所述的方法,其特征在于,所述待查询向量为n个,所述n为大于1的正整数;
9.一种向量检索装置,其特征在于,包括:
10.如权利要求9所述的装置,其特征在于,在所述处理单元基于已经选择的至少一个检索分区和所述待查询向量,输出查询结果时,具体用于:
11.如权利要求9所述的装置,其特征在于,在所述处理单元基于已...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。