CN113449132B - 一种向量检索方法及装置 - Google Patents

一种向量检索方法及装置 Download PDF

Info

Publication number
CN113449132B
CN113449132B CN202110991057.2A CN202110991057A CN113449132B CN 113449132 B CN113449132 B CN 113449132B CN 202110991057 A CN202110991057 A CN 202110991057A CN 113449132 B CN113449132 B CN 113449132B
Authority
CN
China
Prior art keywords
retrieval
partition
vector
probability
distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110991057.2A
Other languages
English (en)
Other versions
CN113449132A (zh
Inventor
陆元飞
魏闯先
楼仁杰
吴斌
姚斌
张鹏程
高超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd, Alibaba Cloud Computing Ltd filed Critical Alibaba China Co Ltd
Priority to CN202110991057.2A priority Critical patent/CN113449132B/zh
Publication of CN113449132A publication Critical patent/CN113449132A/zh
Application granted granted Critical
Publication of CN113449132B publication Critical patent/CN113449132B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/55Clustering; Classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例提供一种向量检索方法及装置,在获取到目标向量后,根据预先训练的分布预测模型,得到了反映相似向量在每个聚类分区中的分布概率的预测分布,根据预测分布,将表征概率较大的若干个聚类分区作为检索分区,并根据预测分布确定了检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关,然后在确定的检索分区内,根据检索参数来检索目标向量的相似向量。通过获得的预测分布,确定了检索分区和检索参数,实现了查询感知的参数设置,这样相似向量少的检索分区检索复杂度降低,提升了检索效率;根据预测分布确定检索分区,使得确定的检索分区更为准确,提升了检索精度。

Description

一种向量检索方法及装置
技术领域
本说明书一个或多个实施例涉及计算机应用技术领域,尤其涉及一种向量检索方法及装置。
背景技术
高维向量最近邻检索方法一般用在以图搜图、声纹匹配和文件去重等领域,用于在已有的向量库中,针对图像、声音、文件等非结构化数据转换得到的高维向量,检索出与该高维向量最为相似的若干个高维向量。
在向量库中向量数目较多的情况下,为了提高检索效率,可以将向量库中的向量按照向量之间的相似度,将向量库分为多个聚类分区。在通过高维向量最近邻检索方法检索时,一般是根据输入的高维向量与各个聚类分区的聚类中心之间的相似度,确定若干个需要检索的聚类分区,并根据预先设置的检索参数,在确定的若干个需要检索的聚类分区中查找最为相似的高维向量,这样不用检索所有的聚类分区,提高了检索效率。
上述方法存在一些问题:对于不同的待检索的高维向量而言,在每个聚类分区内检索时,每个聚类分区对应的检索参数的大小是相同的,而检索参数的大小会影响检索复杂度,不同的聚类分区使用相同大小的检索参数可能会造成冗余的计算;此外,上述方法虽然提高了检索效率,但是检索精度不足。因此相关技术中缺少一种检索效率较高且检索精度较高的高维向量最近邻检索方法。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种向量检索方法及装置。
根据本说明书一个或多个实施例的第一方面,提出了一种向量检索方法,用于在包括多个聚类分区的向量库中,检索出目标向量的相似向量;所述方法包括:
获取目标向量;
将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率;
根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关;
根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
根据本说明书一个或多个实施例的第二方面,提出了一种向量检索装置,用于在包括多个聚类分区的向量库中,检索出目标向量的相似向量;所述装置包括:
目标向量获取模块,用于获取目标向量;
预测分布获得模块,用于将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率;
检索分区确定模块,用于根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关;
相似向量检索模块,用于根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的向量检索方法。
根据本说明书实施例的第四方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器通过运行所述可执行指令以实现上述的向量检索方法。
根据本说明书实施例的第五方面,提供一种计算机程序,所述计算机程序被运行时实现如本说明书实施例第一方面所述的向量检索方法。
根据本说明书实施例的第六方面,提供一种向量检索系统,包括:
向量库,所述向量库包括多个聚类分区;
向量检索装置,所述装置包括:
目标向量获取模块,用于获取目标向量;
预测分布获得模块,用于将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率;
检索分区确定模块,用于根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关;
相似向量检索模块,用于根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
本说明书一个或多个实施例中,在获取到目标向量后,根据预先训练的分布预测模型,得到了反映相似向量在每个聚类分区中的分布概率的预测分布,根据预测分布,将表征概率较大的若干个聚类分区作为检索分区,并根据预测分布确定了检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关,然后在确定的检索分区内,根据检索参数来检索目标向量的相似向量。通过获得的预测分布,确定了检索分区和检索参数,实现了查询感知的参数设置,使得检索分区的检索复杂度和该检索分区对应的表征概率正相关,这样相似向量少的检索分区检索复杂度降低,提升了检索效率;根据预测分布确定检索分区,使得确定的检索分区更为准确,提升了检索精度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种向量检索方法的流程图。
图2是本说明书根据一具体实施例示出的一种向量检索方法的流程图。
图3是本说明书根据一示例性实施例示出的一种向量检索装置的框图。
图4是本说明书根据一示例性实施例示出的一种向量检索装置所在计算机设备的一种硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
目前,以图搜图、声纹匹配和文件去重等的需求日益增长,由于图像、声音、文件等均为非结构化数据,对于非结构化数据而言,直接在大量非结构化数据(图像库、声音库、文件库)中检索与其相似的数据是较为困难的,相关技术中,一般先将这些非结构化数据先转化为向量,再来检索相似的向量,以实现以图搜图、声纹匹配和文件去重等的目的。通常,为了保留图像更多特征以提高检索精度,需要将非结构化数据转化成高维向量(高维向量一般指的是维度超过10的向量),然后再利用向量的近似最邻近检索(Approximate NearestNeighbor Search,ANN)方法,通过预先构建的向量索引,快速检索高维空间中的最近的N个相邻向量。
下面以以图搜图为例来说明相关技术中的向量检索方法存在的问题。利用ANN来实现以图搜图的方法,具体而言,一般先将图像库(包括多个图像转化成的高维向量)分为多个聚类分区,每个聚类分区中包括在高维空间中的最近的若干个向量(也就是若干个相似的图像转化成的高维向量),然后在每个聚类分区中构建向量索引;需要在图像库中检索某一特定图片的相似图片时,先根据每个聚类分区的聚类中心与特定图片转换成的向量在高维空间中的距离,确定和特定图片转换成的向量最为相近的若干个聚类分区,然后在确定的若干个聚类分区中,根据预设的检索参数和向量索引来检索相似向量。
而上述方法中会存在一些问题:首先,聚类中心并不能反映该聚类分区内所有向量的特征,换言之,通过聚类中心来确定聚类分区的方法,可能并不能确定出真正包含相似向量的聚类分区,使得检索精度下降;其次,相关技术中,对于不同的特定向量,确定出的聚类分区的数目是相同的,这样会造成冗余计算,降低检索效率,举例而言,如果向量Q1和各个聚类分区的距离分别是1、99、100、101、500,在需要确定的聚类分区数量是3的情况下,将确定出距离为1、99和100的聚类分区,但是实际上大部分的相似向量都在第一个聚类分区(距离为1的聚类分区),在确定出的另外两个聚类分区中检索将造成冗余计算;此外,相关技术中对于确定出的不同聚类分区,使用的检索参数是相同的,而检索参数会影响检索复杂度,一般而言,检索参数越大,检索复杂度越大,如果相似向量多的聚类分区和相似向量少的聚类分区都使用较大的检索参数,将造成冗余计算,降低检索效率。
基于此,为了提高检索效率和检索精度,考虑采用查询感知的搜索配置,根据相似向量的分布(检索结果),来选择检索分区,并确定检索参数。具体而言,在获取到目标向量后,根据预先训练的分布预测模型,得到了反映相似向量在每个聚类分区中的分布概率的预测分布,根据预测分布,将表征概率较大的若干个聚类分区作为检索分区,并根据预测分布确定了检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关,然后在确定的检索分区内,根据检索参数来检索目标向量的相似向量。通过获得的预测分布,确定了检索分区和检索参数,实现了查询感知的参数设置,使得检索分区的检索复杂度和该检索分区对应的表征概率正相关,这样相似向量少的检索分区检索复杂度降低,提升了检索效率;根据预测分布确定检索分区,使得确定的检索分区更为准确,提升了检索精度。
接下来将对本说明书提供的一种向量检索方法及装置进行详细说明。
本说明书提供一种向量检索方法,用于在包括多个聚类分区的向量库中,检索出目标向量的相似向量。如图1所示,图1是本说明书根据一示例性实施例示出的一种向量检索方法的流程图,包括以下步骤:
步骤101,获取目标向量。
其中,本方法可以应用于任何有计算和存储能力的设备,或者是由有计算能力的若干个设备和有存储能力的若干个设备组成的设备系统。考虑到将该方法应用于以图搜图、声纹匹配等领域时,图像库或声音库(向量库)中的数据量可能较大,如果向量库全部存储在一台设备上,将对该设备的存储能力有一定要求;此外,如果只通过一台设备来计算检索相似向量,那么检索速度将较慢,因此本说明书提供的向量检索方法可以应用于分布式系统,分布式系统中包括多台具有计算和存储能力的节点设备,不同的节点设备上存储有不同的向量,例如每个存储节点中存储一个聚类分区的向量,这样可以在多台设备上同时进行检索,提高检索效率。进一步地,当本说明书提供的方法应用于分布式系统中时,获取目标向量可以是分布式系统的中心节点获取的。此外,本申请中,用户可以输入目标向量,也可以输入相应的图片/声音/文本等非结构化数据,执行本方法的系统或设备在接收到非结构化数据后,将非结构化数据转换成向量。
其中,目标向量可以是根据人工智能模型转化成的高维向量,人工智能模型可以是特征提取模型,将输入的非结构化数据(图片、声音、文本或者文件等数据)转化成向量,通过向量来表征这些数据的特征。此外,考虑到实际应用中,为了尽可能的多的体现非结构化的特征,向量维度一般较高;且对于低维向量而言,由于维度较低,检索较为容易,暴力检索也能较为快速的检索到相似向量,因此本申请对于检索高维向量的相似向量更有意义。
其中多个聚类分区可以是通过Kmeans聚类方法得到的,Kmeans聚类是源于信号处理中的一种向量量化方法,是数据挖掘领域中经典的聚类分析方法。在生成多个聚类分区时,为了提升后续检索速度,还可以针对不同向量,生成不同的向量索引,向量索引和向量之间可以是一对一的关系,也可以是一对多的关系。
步骤103,将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率。
其中,分布预测模型可以是用人工神经网络算法训练得到的,具体而言,分布预测模型的训练方法,包括:从历史检索记录中获取训练数据集,每条训练数据包括目标向量、及该目标向量对应的实际分布;其中所述实际分布为:每个聚类分区内,所述目标向量对应的相似向量的个数,与相似向量的总数的比值;根据获取的训练数据集,生成分布预测模型训练样本;利用人工神经网络训练得到分布预测模型;所述分布预测模型以预测分布作为输出,以目标向量作为输入。当然分部预测模型也可以是通过其他算法训练得到的,这里只是以人工神经网络算法为例,本说明书在此不做限定。其中,人工神经网络算法可以是多层感知机(Multilayer perceptron,MLP)。
通过人工神经网络算法训练模型时,从历史检索记录中获取的训练数据集,可以是从历史检索记录中随机获取若干个采样点,然后根据历史检索记录的检索结果,确定目标向量对应的实际分布;也可以是从历史检索记录中获取距离当前时间最近的若干个检索记录,作为训练数据集。其中,训练数据集中可能会包含与分布预测无关的数据,比如每条训练数据对应的检索时间等,因此,需要将无关数据剔除,生成训练样本。进一步地,考虑在训练分布预测模型时,并未输入向量库中的向量索引或向量库的其他信息,换言之,该分布预测模型仅是针对当前向量库的分布预测模型,因此,如果向量库中新增了大量数据,或者减少了大量数据,又或者数据发生变化,应该重新训练该分布预测模型;在此基础上,在向量库会发生变化的情况下,可以每隔预设周期,重新训练分布预测模型,也可以是不断根据新的检索记录,对分布预测模型进行修改正,还可以是在向量库中的向量变化数目(向量增加、减少的数目,增加一个新向量或减少一个向量,向量变化数目+1)达到预设阈值或者聚类分区发生变化(聚类分区数量增加或减少)的情况下,重新训练分布预测模型本说明书在此不做限制。
下面将通过举例来说明分布预测模型的训练过程,假设向量库中有3个分区,历史检索记录中有10000条数据,现在要从历史检索记录中随机抽取5000条(这里的5000条10000条等只是为了方便举例说明,实际应用中可以抽取5000条以上的检索记录)检索记录作为训练数据集,其中每条检索记录中包括检索的目标向量,检索出的相似向量及其所属的聚类分区,每条检索记录的形式可以是:
目标向量A,
相似向量1聚类分区3,
相似向量2聚类分区3,
相似向量3聚类分区3,
相似向量4聚类分区1,
相似向量5聚类分区1,
其中,目标向量A代表的是目标向量A的具体值,相似向量1聚类分区3表示检索出的第1个相似向量在第3个聚类分区,此外检索记录中相似向量的数量可以不是5个,同一训练数据集中的多条检索记录中,相似向量的数目可以不同。在获取到训练数据集后,需要将训练数据集进行处理,得到训练样本,训练样本的输入为目标向量,输出为实际分布;具体而言,需要先确定每条检索记录中,相似向量在每个聚类分区中的数目,再将确定的数目归一化到0-1之间,对于上述例子中的检索记录而言,先确定出相似向量在三个分区中的数目分别是2、0和3,然后确定出实际分布为(0.4,0.0,0.6),那么,上述例子中的检索记录转换成的训练样本为:目标向量A,(0.4,0.0,0.6),目标向量A为输入,(0.4,0.0,0.6)为输出,代表实际分布,也就是代表目标向量A的相似向量位于第1个聚类分区的概率为0.4,位于第二个聚类分区的概率为0.0,位于第三个聚类分区的概率为0.6。然后根据MLP算法,根据获取到的训练样本,训练得到分布预测模型。
其中,预测分布代表相似向量在每个聚类分区的分布数目,也可以称之为TDF(Top-k Distribution Function)。预测分布可以是以下形式:预测分布包括N个概率值的预测值,N为聚类分区的数量,每个概率值为:该聚类分区中相似向量的数目与所有相似向量的数目的比值。预测分布也可以是以下形式:预测分布中包括聚类分区的排序结果以及相似向量位于每个聚类分区中的概率的大小,排序为根据相似向量位于不同聚类分区的概率大小进行的排序,概率越大,排序结果越靠前;概率的大小按照若干个等级进行表征,比如可以包括大中小三个概率的大小的等级。当然预测分布也可以是其他形式,本说明书在此不做限制。
其中,当本说明书的向量检索方法应用于分布式系统中时,该步骤和步骤105可以是中心节点执行,也可以是由中心节点指定其他设备来执行。
步骤105,根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关。
其中,在下述情况下:预测分布包括N个概率值的预测值,N为聚类分区的数量,每个概率值为:该聚类分区中相似向量的数目与所有相似向量的数目的比值,这种情况下,表征概率为概率值的预测值;检索分区的确定方法,可以是根据预设的召回率要求值,确定若干个概率值的预测值,其中,概率值的预测值的数目为M,确定的概率值的预测值为N个概率值的预测值中最大的M个概率值的预测值;M满足预设条件,或M为预设值;将M个概率值的预测值对应的聚类分区作为检索分区。其中,召回率要求值可以是用户设置的,也可以是在配置该方法时预先配置的,召回率要求值用来约束检索时间,用于表征检索结果中,真实的相似向量的数量与检索出的所有相似向量的数目的比值,通过设置召回率要求值,可以在一定程度保证检索精度的情况下,节省检索时间。其中,所述预设条件可以为:M个概率值的预测值的和不小于所述召回率要求值,M个概率值的预测值中任意M-1个概率值的预测值的和小于所述召回率要求值;预设条件还可以是:M个概率值的预测值的和大于所述召回率要求值,M个概率值的预测值中任意M-1个概率值的预测值的和不大于所述召回率要求值。此外,在上述情况下,检索分区的确定方法也可以是,选取概率值的预测值大于预设阈值的几个聚类分区,作为检索分区。
在预测分布为上述的第二种形式的情况下,检索分区的确定方法,可以是确定排序最靠前的若干个概率为大的聚类分区。当然这里只是举例,确定检索分区的方法不限于此,也可以是其他的方法。
其中,检索参数指的是检索算法中会影响检索复杂度的参数。为了使得表征概率大的检索区间的检索复杂度更大,需要根据表征概率来设置检索参数,以使得检索复杂度和表征概率成正比。具体的设置检索参数的方法,可以是根据预设的预测分布和检索参数的对应关系,来计算得到各个检索分区的检索参数。其中,检索参数影响检索复杂度,可以是通过影响检索的粒度来影响检索复杂度的;比如在存在向量索引,且向量索引是多级索引的情况下,检索参数越大,需要检索的向量索引的级数越低;具体而言,检索参数为0.8的情况下,检索相似向量需要检索三级索引,检索参数为0.2的情况下,检索相似向量只检索一级索引,在一级索引达到预设阈值的情况下,再检索下一级索引。检索参数影响检索复杂度,还可以是通过影响检索的范围来影响检索复杂度的;比如,在检索参数越大的情况下,检索的范围越大;具体而言,在一个检索分区有1000个向量的情况下,检索参数为0.8的情况下,检索相似向量需要检索最靠近聚类中心的800个向量,检索参数为0.2的情况下,检索相似向量可以检索最靠近聚类中心的200个向量。检索参数和检索复杂度可以是成正比的,也可以是成反比的。
此外,除了检索分区和检索参数之外,还可以根据预测分布确定检索结果数量需求,以使得检索出的相似向量更加准确。具体来说,在预测分布为下述形式的情况下:所述预测分布包括N个概率值的预测值,N为聚类分区的数量,每个概率值用于表征该聚类分区中相似向量的数目,和所有相似向量的数目的比值;所述方法还包括:针对每个检索分区,根据预先设置的数目计算公式,将每个检索分区对应的概率的预测值作为输入,计算该检索分区的检索结果需求数目,其中,每个检索分区的检索结果需求数目与该检索分区对应的概率值的预测值正相关。
在此基础上,所述根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量对应相似向量(步骤107),包括:在每个检索分区内,根据确定的每个检索分区对应的检索参数,分别检索出分区相似向量,其中,每个检索分区内,检索出的分区相似向量的数量,为该检索分区的检索结果需求数目;针对检索出的每个分区相似向量,计算该分区相似向量与所述目标向量的相似度;确定需要输出的相似向量数目Q,从检索出的所有分区相似向量中,筛选出相似度最大的Q个向量,将筛选出的Q个相似向量作为所述目标向量对应的相似向量。此外,步骤107还可以是将每个检索分区中检索出的分区相似向量都作为相似向量。
步骤107,根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
其中,在本方法应用于分布式系统中时,在步骤107中,还需要将目标向量从中心节点发送到各个节点设备,以使得各个节点设备可以检索出目标向量的相似向量。
其中,在各个检索分区中检索出目标向量的相似向量,可以是在每个检索分区检索出分区相似向量,将所有分区相似向量均作为相似向量;也可以是在每个检索分区检索出分区相似向量,在检索出的分区相似向量中筛选出相似度最大的Q个向量,将筛选出的Q个向量作为目标向量对应的相似向量。其中,Q可以是用户输入设置的,在用户未设置的情况下,Q可以是预设值。相似度可以是通过两个向量之间的欧式距离来表示,筛选出相似度最大的Q个向量,可以是筛选出与目标向量欧式距离最小的Q个向量;也可以通过计算两个向量的余弦相似度,来筛选出相似度最大的Q个向量。
此外,在聚类分区中预先配置了向量索引的情况下,可以是根据向量索引,在每个检索分区中检索分区相似向量。具体的检索方法依据向量索引的形式而定,本说明书在此不做限制。
通过上述方法,根据分布预测模型,得到了预测分布,进而根据预测分布,确定了检索参数和检索分区的数目,实现了查询感知的检索配置,不同的目标向量的检索分区的数目不同,不同检索分区的检索参数不同,减少了冗余计算,提升了检索吞吐量;此外,根据预测分布也能更准确的确定检索分区,也提升了检索精度。
接下来将通过一具体实施例来对本说明书提供的向量检索方法进行说明:
假设需要在一个存储在分布式系统的图像库中,检索用户输入的图片的相似图片,图像库中包含若干个由图像转换成的向量,预先根据Kmeans聚类方法,将这个图像库分为了5个聚类分区。
如图2所示,图2是本说明书根据一具体实施例示出的一种向量检索方法的流程图,所述方法包括:
步骤201,获取用户输入的图片,并将用户输入的图片转换成向量。
假设用户输入了两张图片,中心节点在获取到用户输入的两张图片后,将两张图片分别转换成了向量Q1和向量Q2。
步骤203,将转换得到的目标向量输入分布预测模型,获得预测分布。
分布预测模型的训练方法见上述实施例中的说明,在此不再赘述。预测分布的表征形式是对于与聚类分区的概率值的预测值,概率值的预测值的具体含义见上述实施例,在此不再赘述。对于向量Q1来说,预测分布为(0.5,0.3,0.2,0.2,0.0),0.5代表目标向量的相似向量有50%在第一个聚类分区。对于向量Q2来说,预测分布为(0.1,0.3,0.3,0.2,0.1)。
步骤205,根据预测分布及输入的召回率要求值,确定检索分区、检索参数及检索结果需求数目。
假设预设的召回率要求值为0.8,对于Q1来说,第一个聚类分区和第二个聚类分区为概率值的预测值最大的两个聚类分区,且第一个聚类分区和第二个聚类分区的概率值的预测值的和为0.8,刚好达到了召回率要求值,因此确定的检索分区为第一个聚类分区和第二个聚类分区。同理,对于Q2来说,确定的检索分区为第二个聚类分区、第三个聚类分区和第四个聚类分区。
检索参数可以根据预设的对应关系,将该概率值的预测值转换成检索参数,比如对于Q1来说,第一个聚类分区的检索参数可以是0.5*0.8,第二个聚类分区的检索参数可以是0.3*0.8;对于Q2来说,检索参数的设置方法与Q1类似,在此不再赘述。
对于检索结果需求数目来说,可以根据预测分布和最终需要输出的相似向量数目综合来决定,假设需要输出的相似向量的数目为10,为了保证一定的准确度,可以筛选出20个分区相似向量来,也就是说,每个检索分区的检索结果数量需求为20乘该检索分区的概率值的预测值。那么对于Q1来说,第一个聚类分区的检索结果数量需求为20*0.5=10,第二个人聚类分区的检索结果数量需求为20*0.3=6;对于Q2来说,第二个聚类分区的检索结果数量需求为20*0.3=6,第三个聚类分区的检索结果数量需求为20*0.3=6,第四个聚类分区的检索结果数量需求为20*0.2=4。
这样就通过预测分布,确定了向量检索所需要的基本参数。
步骤207,根据确定的检索参数及检索结果需求数目,在检索分区内检索出相似向量。
该步骤的具体实现见上一实施例,在此不再赘述。最终经过上述方法,确定出了两张图片的相似图片。
与前述向量检索方法的实施例相对应,本说明书还提供了向量检索装置及其所应用的终端的实施例。
如图3所示,图3是本说明书根据一示例性实施例示出的一种向量检索装置的框图,所述装置用于在包括多个聚类分区的向量库中,检索出目标向量的相似向量;所述装置包括:
目标向量获取模块310,用于获取目标向量。
预测分布获得模块320,用于将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率。
检索分区确定模块330,用于根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关。
相似向量检索模块340,用于根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
其中,所述预测分布包括N个概率值的预测值,N为聚类分区的数量,每个概率值为:该聚类分区中相似向量的数目与所有相似向量的数目的比值;检索分区确定模块330,具体用于根据预设的召回率要求值,确定若干个概率值的预测值,其中,概率值的预测值的数目为M,确定的概率值的预测值为N个概率值的预测值中最大的M个概率值的预测值;M满足预设条件,或M为预设值;将M个概率值的预测值对应的聚类分区作为检索分区。此外,所述预设条件可以为:M个概率值的预测值的和不小于所述召回率要求值,M个概率值的预测值中任意M-1个概率值的预测值的和小于所述召回率要求值。
其中,所述预测分布包括N个概率值的预测值,N为聚类分区的数量,每个概率值用于表征该聚类分区中相似向量的数目,和所有相似向量的数目的比值;所述装置还包括:检索结果需求数目确定模块350,用于针对每个检索分区,根据预先设置的数目计算公式,将每个检索分区对应的概率的预测值作为输入,计算该检索分区的检索结果需求数目,其中,每个检索分区的检索结果需求数目与该检索分区对应的概率值的预测值正相关。在此基础上,相似向量检索模块340具体用于:在每个检索分区内,根据确定的每个检索分区对应的检索参数,分别检索出分区相似向量,其中,每个检索分区内,检索出的分区相似向量的数量,为该检索分区的检索结果需求数目;针对检索出的每个分区相似向量,计算该分区相似向量与所述目标向量的相似度;确定需要输出的相似向量数目Q,从检索出的所有分区相似向量中,筛选出相似度最大的Q个向量,将筛选出的Q个相似向量作为所述目标向量对应的相似向量。
其中,所述装置还包括,分布预测模型训练模块300:从历史检索记录中获取训练数据集,每条训练数据包括目标向量、及该目标向量对应的实际分布;其中所述实际分布为:每个聚类分区内,所述目标向量对应的相似向量的个数,与相似向量的总数的比值;根据获取的训练数据集,生成分布预测模型训练样本;利用人工神经网络训练得到分布预测模型;所述分布预测模型以预测分布作为输出,以目标向量作为输入。
上述向量检索装置中各个模块的功能和作用的实现过程具体详见上述向量检索方法中对应步骤的实现过程,在此不再赘述。
对于向量检索装置实施例而言,由于其基本对应于向量检索方法实施例,所以相关之处参见向量检索方法实施例的部分说明即可。以上所描述的向量检索装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图4所示,图4示出了实施例向量检索装置所在计算机设备的一种硬件结构图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的向量检索方法。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的向量检索方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书实施例还提供一种计算机程序,所述计算机程序被运行时实现上述的向量检索方法。
此外,本说明书实施例还提供一种向量检索系统,包括:
向量库,所述向量库包括多个聚类分区。
向量检索装置,所述装置包括:
目标向量获取模块,用于获取目标向量。
预测分布获得模块,用于将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率。
检索分区确定模块,用于根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关。
相似向量检索模块,用于根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
其中,向量库和向量检索装置可以位于不同的电子设备上,也可以位于同一电子设备上。向量检索装置各个模块的作用如上文所述,在此不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

Claims (10)

1.一种向量检索方法,用于在包括多个聚类分区的向量库中,检索出目标向量的相似向量;所述方法包括:
获取目标向量;
将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率;
根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;
根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关;所述检索参数为检索算法中影响检索复杂度的参数,所述检索参数通过影响检索的粒度,或者通过影响检索的范围来影响检索的复杂度;
根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
2.根据权利要求1所述方法,所述预测分布包括N个概率值的预测值,N为聚类分区的数量,每个概率值为:该聚类分区中相似向量的数目与所有相似向量的数目的比值;
所述根据得到的预测分布,从所述向量库的多个聚类分区中,确定检索分区,包括:
根据预设的召回率要求值,确定若干个概率值的预测值,其中,概率值的预测值的数目为M,确定的概率值的预测值为N个概率值的预测值中最大的M个概率值的预测值;M满足预设条件,或M为预设值;
将M个概率值的预测值对应的聚类分区作为检索分区。
3.根据权利要求2所述方法,所述预设条件为:M个概率值的预测值的和不小于所述召回率要求值,M个概率值的预测值中任意M-1个概率值的预测值的和小于所述召回率要求值。
4.根据权利要求1所述方法,所述预测分布包括N个概率值的预测值,N为聚类分区的数量,每个概率值用于表征该聚类分区中相似向量的数目,和所有相似向量的数目的比值;
所述方法还包括:
针对每个检索分区,根据预先设置的数目计算公式,将每个检索分区对应的概率的预测值作为输入,计算该检索分区的检索结果需求数目,其中,每个检索分区的检索结果需求数目与该检索分区对应的概率值的预测值正相关。
5.根据权利要求4所述方法,所述根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量对应相似向量,包括:
在每个检索分区内,根据确定的每个检索分区对应的检索参数,分别检索出分区相似向量,其中,每个检索分区内,检索出的分区相似向量的数量,为该检索分区的检索结果需求数目;
针对检索出的每个分区相似向量,计算该分区相似向量与所述目标向量的相似度;
确定需要输出的相似向量数目Q,从检索出的所有分区相似向量中,筛选出相似度最大的Q个向量,将筛选出的Q个相似向量作为所述目标向量对应的相似向量。
6.根据权利要求1所述方法,分布预测模型的训练方法,包括:
从历史检索记录中获取训练数据集,每条训练数据包括目标向量、及该目标向量对应的实际分布;其中所述实际分布为:每个聚类分区内,所述目标向量对应的相似向量的个数,与相似向量的总数的比值;
根据获取的训练数据集,生成分布预测模型训练样本;
利用人工神经网络训练得到分布预测模型;所述分布预测模型以预测分布作为输出,以目标向量作为输入。
7.一种向量检索装置,用于在包括多个聚类分区的向量库中,检索出目标向量的相似向量;所述装置包括:
目标向量获取模块,用于获取目标向量;
预测分布获得模块,用于将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率;
检索分区确定模块,用于根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关;所述检索参数为检索算法中影响检索复杂度的参数,所述检索参数通过影响检索的粒度,或者通过影响检索的范围来影响检索的复杂度;
相似向量检索模块,用于根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
8.一种向量检索系统,包括:
向量库,所述向量库包括多个聚类分区;
向量检索装置,所述装置包括:
目标向量获取模块,用于获取目标向量;
预测分布获得模块,用于将所述目标向量输入预先训练的分布预测模型,得到所述目标向量对应的预测分布,所述预测分布用于表征:所述目标向量对应的相似向量位于所述向量库的各个聚类分区的概率;
检索分区确定模块,用于根据得到的预测分布,将所述向量库中表征概率最大的若干个聚类分区确定为检索分区,所述聚类分区的表征概率为:预测分布表征的目标向量对应的相似向量位于该聚类分区的概率;根据预设的预测分布和检索参数的对应关系,确定每个检索分区的检索参数,使得每个检索分区的检索复杂度和该检索分区对应的表征概率正相关;所述检索参数为检索算法中影响检索复杂度的参数,所述检索参数通过影响检索的粒度,或者通过影响检索的范围来影响检索的复杂度;
相似向量检索模块,用于根据确定的检索分区的检索参数,在确定的检索分区中检索出所述目标向量的相似向量。
9.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-6中任一项所述的向量检索方法。
10.一种计算机可读存储介质,存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-6中任一项所述的向量检索方法。
CN202110991057.2A 2021-08-26 2021-08-26 一种向量检索方法及装置 Active CN113449132B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110991057.2A CN113449132B (zh) 2021-08-26 2021-08-26 一种向量检索方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110991057.2A CN113449132B (zh) 2021-08-26 2021-08-26 一种向量检索方法及装置

Publications (2)

Publication Number Publication Date
CN113449132A CN113449132A (zh) 2021-09-28
CN113449132B true CN113449132B (zh) 2022-02-25

Family

ID=77818820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110991057.2A Active CN113449132B (zh) 2021-08-26 2021-08-26 一种向量检索方法及装置

Country Status (1)

Country Link
CN (1) CN113449132B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022076949A (ja) * 2020-11-10 2022-05-20 富士通株式会社 推論プログラム及び推論方法
CN117828131A (zh) * 2022-09-28 2024-04-05 华为技术有限公司 一种向量检索方法及装置
CN116010669B (zh) * 2023-01-18 2023-12-08 深存科技(无锡)有限公司 向量库重训练的触发方法、装置、检索服务器及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597430A (zh) * 2019-02-21 2020-08-28 北京京东尚科信息技术有限公司 数据处理方法及装置、电子设备、存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605765B (zh) * 2013-11-26 2016-11-16 电子科技大学 一种基于聚类紧凑特征的海量图像检索系统
CN108241745B (zh) * 2018-01-08 2020-04-28 阿里巴巴集团控股有限公司 样本集的处理方法及装置、样本的查询方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597430A (zh) * 2019-02-21 2020-08-28 北京京东尚科信息技术有限公司 数据处理方法及装置、电子设备、存储介质

Also Published As

Publication number Publication date
CN113449132A (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
CN113449132B (zh) 一种向量检索方法及装置
CN111444967B (zh) 生成对抗网络的训练方法、生成方法、装置、设备及介质
JP2018129033A (ja) 人工ニューラルネットワークのクラスに基づく枝刈り
CN110858062B (zh) 目标优化参数的获取方法及模型训练方法、装置
CN111357051B (zh) 语音情感识别方法、智能装置和计算机可读存储介质
CN110825894B (zh) 数据索引建立、数据检索方法、装置、设备和存储介质
EP3239905A1 (en) Methods and apparatus for use in predicting non-stationary time-series data
CN116611546B (zh) 基于知识图谱的目标研究区域滑坡预测方法及系统
US20210064634A1 (en) Systems and Methods for Weighted Quantization
CN112070550A (zh) 基于搜索平台的关键词确定方法、装置、设备及存储介质
CN115238855A (zh) 基于图神经网络的时序知识图谱的补全方法及相关设备
CN111291867A (zh) 数据预测模型生成方法、装置及数据预测方法、装置
CN112766288A (zh) 图像处理模型构建方法、装置、电子设备和可读存储介质
CN116307236A (zh) 故障预测方法、装置、设备及存储介质
CN115545151A (zh) 训练用于时间序列数据预测的预测模型的方法及相关设备
CN116610840A (zh) 一种相似数据搜索方法、系统及电子设备
CN113064930A (zh) 数据仓库的冷热数据识别方法、装置及电子设备
US20180173726A1 (en) Generation device, generation method, and non-transitory computer-readable recording medium
CN110083732B (zh) 图片检索方法、装置及计算机存储介质
US11295229B1 (en) Scalable generation of multidimensional features for machine learning
CN115408449B (zh) 一种用户行为的处理方法、装置及设备
CN113761365B (zh) 用于确定目标信息的数据处理系统
CN115391489A (zh) 基于知识图谱的话题推荐方法
CN109656737A (zh) 异常信息的统计方法及装置
CN114691940A (zh) 索引构建方法、装置、向量搜索方法及检索系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40059933

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240430

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province, 310030

Patentee after: Aliyun Computing Co.,Ltd.

Country or region after: China

Address before: No.12 Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Patentee before: Aliyun Computing Co.,Ltd.

Country or region before: China

Patentee before: Alibaba (China) Co.,Ltd.