一种检索的方法、构建索引的方法及相关设备技术

技术编号:31664961 阅读:14 留言:0更新日期:2022-01-01 10:04
本申请实施例公开了一种检索的方法和构建索引的方法,用于降低检索时延。本申请实施例方法包括:采用第一数据表示检索对象的M个特征向量,检索对象的每个特征向量对应检索对象的一种模态,M为大于1的整数;由于在索引中,每组对象信息对应M个特征向量,每组对象信息的M个特征向量以一组第二数据表示,对象信息的每个特征向量对应对象信息的一种模态,所以基于第一数据和索引中的第二数据,获取多组对象信息与检索对象的相关度,并输出检索到的与检索对象的相关度大于第一阈值的至少一组对象信息。象信息。象信息。

【技术实现步骤摘要】
一种检索的方法、构建索引的方法及相关设备


[0001]本申请实施例涉及人工智能
,尤其涉及一种检索的方法、构建索引的方法及相关设备。

技术介绍

[0002]随着人工智能技术的快速发展,搜索引擎从单一的文字检索发展为多模态的(multi-modal)智能检索。多模态的智能检索指通过多种模态进行检索,其中,模态可以是衣服的价格、季节、风格和材料等。
[0003]在进行多模态检索前,需要先构建索引。目前,构建的索引的方法是,针对多组对象信息的每种模态构建一个索引。具体地,假设每组对象信息对应三种模态,则对应每组对象信息的每种模态可以构建一个特征向量,所以对应每组对象信息可以构建三个特征向量。假设对应每组对象信息构建的三个特征向量分别为特征向量A、特征向量B和特征向量C,则针对多组对象信息对应的特征向量A可以构建一个索引A1,针对多组对象信息对应的特征向量B可以构建一个索引B1,针对多组对象信息对应的特征向量C可以构建一个索引C1。
[0004]在检索过程中,同样地,对应检索对象的每种模态构建一个特征向量,假设检索对象也对应三种模态,则对应检索对象可以构建三个特征向量。假设对应检索对象构建的三个特征向量分别为特征向量A2、特征向量B2和特征向量C2,且A2与A对应同一模态,B2与B对应同一模态,C2与C对应同一模态,则在检索时,则会从索引A1中查找与检索对象的特征向量A2相似的对象信息的特征向量A,从索引B1中查找与检索对象的特征向量B2相似的对象信息的特征向量B,索引C1中查找与检索对象的特征向量C2相似的对象信息的特征向量C。最终,根据检索出的对象信息的特征向量A、对象信息的特征向量B和对象信息的特征向量C确定一组对象信息。
[0005]现有的多模态检索方法,需要多次检索不同的索引,导致检索时延较高。

技术实现思路

[0006]本申请实施例提供了一种检索的方法和构建索引的方法,能够降低检索时延。
[0007]本申请实施例第一方面提供了一种检索的方法,包括:
[0008]获取检索对象对应的第一数据,第一数据用于表示检索对象的M个特征向量,检索对象的每个特征向量对应检索对象的一种模态,M为大于1的整数。第一数据的类型可以有多种,例如可以为编码、文字或符号;获取第一数据的方法可以与第一数据的类型相关。
[0009]基于第一数据和索引中的多组第二数据,获取多组对象信息与检索对象的相关度,以输出检索到的至少一组对象信息,至少一组对象信息中的每组对象信息与检索对象的相关度都大于第一阈值,在索引中,每组对象信息对应M个特征向量,每组对象信息对应的M个特征向量以一组第二数据表示,对象信息的每个特征向量对应对象信息的一种模态。其中,相关度的表示方法可以有多种,例如,可以采用向量间的距离表示,也可以采用分值
表示。
[0010]由于在索引中,采用第二数据表示对象信息对应的M个特征向量,对象信息的每个特征向量对应一种模态,所以仅访问一个索引便可以完成对检索对象的多模态的检索,相比于对应每个模态访问一个索引,本申请实施例能够降低检索时延。
[0011]在一种实现方式下,第一数据由N个编码组成,组成第一数据的每个编码用于表示检索对象的至少一个特征向量,N为正整数;第二数据由N个编码组成,组成第二数据的每个编码用于表示对象信息的至少一个特征向量。
[0012]采用N个编码作为第一数据,相比于直接将检索对象的M个特征向量作为第一数据,能够节省存储开销;同样地,采用第二编码作为第二数据,相比于直接将对象信息的M个特征向量作为第二数据,也能够节省存储开销。
[0013]在一种实现方式下,组成第一数据的N个编码与组成第二数据的N个编码一一对应,且在对应的两个编码中,一个编码表示的检索对象的特征向量所对应的模态与另一个编码表示的对象信息的特征向量所对应的模态相同。
[0014]组成第一数据的N个编码与组成第二数据的N个编码一一对应,使得可以直接根据成第一数据的N个编码与组成第二数据的N个编码,计算多组对象信息与检索对象的相关度。
[0015]在一种实现方式下,组成第一数据的N个编码中的每个编码均表示检索对象的一个特征向量,获取检索对象对应的第一数据包括:对检索对象的M个特征向量分别进行编码,得到M个编码,以组成第一数据,其中,M等于N。对检索对象的特征向量进行编码的方法有多种,例如可以采用乘积量化(Product Quantization,PQ)算法对元素类型为数值型的检索对象的特征向量进行编码。
[0016]在该实施方式中,直接对检索对象的M个特征向量分别进行编码,而不需在编码前对检索对象的M个特征向量进行处理,能够简化编码过程。
[0017]在一种实现方式下,获取检索对象对应的第一数据包括:将检索对象的M个特征向量中,元素类型相同的多个特征向量组合为一个特征向量,以将检索对象的M个特征向量转换为N个特征向量,其中,N小于M。具体地,可以将检索对象的元素类型都为枚举型或布尔型的多个特征向量组合为一个特征向量;也可以将元素类型都为整数型,都为长整数型,都为浮点数型或都为双精度浮点数型的多个检索对象的特征向量组合为一个检索对象的特征向量。
[0018]假设检索对象的M个特征向量中存在元素类型相同的P个特征向量,P为大于1的整数,则将检索对象的M个特征向量中元素类型相同的多个检索对象的特征向量组合为一个检索对象的特征向量包括:将检索对象的P个特征向量组合为检索对象的一个特征向量,或将检索对象的P个特征向量中的一部分特征向量组合为检索对象的一个特征向量。其中,将检索对象的元素类型相同的多个特征向量组合为一个检索对象的特征向量的方法有多种,例如可以直接将检索对象的元素类型相同的多个特征向量中的元素进行排列组合,得到一个检索对象的特征向量。
[0019]对检索对象的N个特征向量分别进行编码,得到N个编码,以组成第一数据。对检索对象的特征向量进行编码的方法有多种,例如可以采用PQ算法对元素类型为数值型的检索对象的特征向量进行编码。
[0020]将元素类型相同的多个特征向量组合为检索对象的一个特征向量,然后进行编码,能够一次性完成对检索对象的多个特征向量的编码,从而提高编码效率。
[0021]在一种实现方式下,将M个检索对象的特征向量中,元素类型相同的多个检索对象的特征向量组合为一个检索对象的特征向量包括:
[0022]对检索对象的M个特征向量中,元素类型相同的多个检索对象的特征向量进行归一化处理;将归一化处理后的检索对象的元素类型相同的多个特征向量组合为一个特征向量。
[0023]在将检索对象的元素类型相同的多个特征向量组合前,对检索对象的元素类型相同的多个特征向量进行归一化处理,能够保证检索对象的元素类型相同的多个特征向量的元素值处于同一数量级。
[0024]在一种实现方式下,组成第一数据的N个编码包括第一编码;第一编码表示的检索对象的特征向量的元素类型为枚举型或布尔型,且第一编码为第一编码所表示检索对象本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种检索的方法,其特征在于,包括:获取检索对象对应的第一数据,所述第一数据用于表示所述检索对象的M个特征向量,所述检索对象的每个特征向量对应所述检索对象的一种模态,M为大于1的整数;基于所述第一数据和索引中的多组第二数据,获取多组对象信息与所述检索对象的相关度,以输出检索到的至少一组对象信息,所述至少一组对象信息中的每组对象信息与所述检索对象的相关度都大于第一阈值,在所述索引中,每组对象信息对应M个特征向量,每组对象信息对应的M个特征向量以一组第二数据表示,对象信息的每个特征向量对应对象信息的一种模态。2.根据权利要求1所述的方法,其特征在于,所述第一数据由N个编码组成,组成所述第一数据的每个编码用于表示所述检索对象的至少一个特征向量,N为正整数;所述第二数据由N个编码组成,组成所述第二数据的每个编码用于表示对象信息的至少一个特征向量。3.根据权利要求2所述的方法,其特征在于,组成所述第一数据的N个编码与组成所述第二数据的N个编码一一对应,且在对应的两个编码中,一个编码表示的所述检索对象的特征向量所对应的模态与另一个编码表示的对象信息的特征向量所对应的模态相同。4.根据权利要求2或3所述的方法,其特征在于,所述获取检索对象对应的第一数据包括:将所述检索对象的M个特征向量中,元素类型相同的多个特征向量组合为一个特征向量,以将所述检索对象的所述M个特征向量转换为N个特征向量,其中,N小于M;对所述检索对象的N个特征向量分别进行编码,以得到由N个编码组成的第一数据。5.根据权利要求2至4中任意一项所述的方法,其特征在于,组成所述第一数据的N个编码包括第一编码;所述第一编码表示的检索对象的特征向量的元素类型为枚举型或布尔型,且所述第一编码为所述第一编码所表示的检索对象的特征向量中元素值。6.根据权利要求2至5中任意一项所述的方法,其特征在于,组成所述第一数据的N个编码中包括第一编码,所述第一编码表示的检索对象的特征向量的元素类型为枚举型或布尔型;组成所述第二数据的N个编码中包括第二编码,所述第二编码与所述第一编码对应;若所述第一编码与第一组对象信息对应的第二编码不同,则所述第一组对象信息不包括在所述检索到的至少一组对象信息中,所述第一组对象信息属于所述多组对象信息。7.根据权利要求2至6中任意一项所述的方法,其特征在于,N大于1,组成所述第一数据的N个编码中包括第一编码,所述第一编码表示的检索对象的特征向量的元素类型为枚举型或布尔型;组成所述第二数据的N个编码中包括第二编码,所述第二编码与所述第一编码对应;所述基于所述第一数据和索引中的第二数据,获取多组对象信息与所述检索对象的相关度包括:若所述第一编码与第一组对象信息对应的第二编码相同,则根据组成所述第一数据的N个编码中除所述第一编码外的其他编码,以及组成所述第二数据的N个编码中除所述第二编码外的其他编码,计算所述第一组对象信息与所述检索对象的相关度,所述第一组对象
信息属于所述多组对象信息。8.根据权利要求2至7中任意一项所述的方法,其特征在于,组成所述第一数据的N个编码中包括第三编码,所述第三编码表示的检索对象的特征向量的元素类型为数值型;组成所述第二数据的N个编码中包括第四编码,所述第四编码和所述第三编码对应;所述基于所述第一数据和索引中的第二数据,获取多组对象信息与所述检索对象的相关度包括:基于所述第三编码和所述第四编码计算第一相似度,所述第一相似度为所述第三编码表示的检索对象的特征向量与所述第四编码表示的对象信息的特征向量之间的相似度,所述第二组对象信息为所述多组对象信息中的一组。9.根据权利要求8所述的方法,其特征在于,所述第四编码表示的对象信息的特征向量由X个第二子向量构成,所述第四编码由所述X个第二子向量各自的第二子码构成,每个第二码对应一个码本,X为正整数;所述索引中还包括所述第四编码表示的对象信息的特征向量对应的码本,所述第四编码表示的对象信息的特征向量对应的码本由所述X个第二子码各自的码本构成;所述第三编码表示的检索对象的特征向量由X个第一子向量构成,所述第三编码由所述X个第一子向量各自的第一子码构成;所述X个第一子码与所述X个第二子码各自的码本一一对应;基于所述第三编码和所述第四编码计算第一相似度包括:基于所述X个第一子码、所述X个第二子码及所述X个第二子码各自的码本计算第一相似度。10.根据权利要求8或9所述的方法,其特征在于,组成所述第一数据的N个编码还包括第五编码,所述第五编码表示的检索对象的特征向量的元素类型为数值型;组成所述第二数据的N个编码还包括第六编码,所述第六编码和所述第五编码对应;所述基于所述第一数据和索引中的第二数据,获...

【专利技术属性】
技术研发人员:金钊冀元祎李兰馨
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1