CN113656373A - 构建检索数据库的方法、装置、设备以及存储介质 - Google Patents
构建检索数据库的方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN113656373A CN113656373A CN202110937110.0A CN202110937110A CN113656373A CN 113656373 A CN113656373 A CN 113656373A CN 202110937110 A CN202110937110 A CN 202110937110A CN 113656373 A CN113656373 A CN 113656373A
- Authority
- CN
- China
- Prior art keywords
- data
- data set
- clustering
- center
- distance
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000012549 training Methods 0.000 claims abstract description 26
- 239000013598 vector Substances 0.000 claims description 69
- 238000004364 calculation method Methods 0.000 claims description 41
- 238000013139 quantization Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013138 pruning Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000010276 construction Methods 0.000 abstract description 2
- 238000013135 deep learning Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000001174 ascending effect Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种构建检索数据库的方法、装置、设备以及存储介质,涉及人工智能技术领域,具体为智能推荐和深度学习技术领域。该方法包括:获取数据集,将数据集分为第一数据集和第二数据集;对第一数据集中的数据进行聚类,得到至少一个一级聚类中心;基于一级聚类中心对第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心;基于第一数据集中的数据与一级聚类中心以及二级聚类中心的残差,得到第一数据集对应的码本;基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。本公开的构建检索数据库的方法,减少了检索数据库的占用内存,提高了检索召回率,提高了建库的速度。
Description
技术领域
本公开涉及人工智能技术领域,具体为智能推荐和深度学习技术领域,尤其涉及构建检索数据库的方法、装置、设备以及存储介质。
背景技术
随着CNN(Convolutional Neural Network,卷积神经网络)的广泛应用,使得应用在CNN特征上的基础检索技术ANN(Approximate Nearest Neighbor,近似最近邻检索)也得到了较快发展。针对大规模数据集,当前业内主流的检索算法有HNSW(HierarchicalNavigable Small World)、IVF(Inverted File System)等。但是HNSW算法的计算量大,内存需求大;IVF算法中的聚类中心数目多,迭代次数多,整体计算量接近指数级增长。
发明内容
本公开提供了一种构建检索数据库的方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种构建检索数据库的方法,包括:获取数据集,将数据集分为第一数据集和第二数据集,其中,第一数据集中的数据量小于第二数据集中的数据量;对第一数据集中的数据进行聚类,得到至少一个一级聚类中心;基于一级聚类中心对第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心;基于第一数据集中的数据与一级聚类中心以及二级聚类中心的残差,得到第一数据集对应的码本;基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。
根据本公开的第二方面,提供了一种检索方法,包括:获取待检索数据;计算待检索数据与检索数据库中的一级聚类中心的距离,得到满足预设条件的第三预设数目个一级聚类中心,其中,检索数据库通过如第一方面中任一实现方式描述的方法得到;计算待检索数据与第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,得到满足预设条件的第四预设数目个二级聚类中心;基于检索数据库中的数据集对应的码本,依次获取第四预设数目个二级聚类中心中的每个二级聚类中心对应的样本数据;计算待检索数据与样本数据的距离,基于计算结果返回第五预设数目个样本数据。
根据本公开的第三方面,提供了一种构建检索数据库的装置,包括:第一获取模块,被配置成获取数据集,将数据集分为第一数据集和第二数据集,其中,第一数据集中的数据量小于第二数据集中的数据量;第一聚类模块,被配置成对第一数据集中的数据进行聚类,得到至少一个一级聚类中心;第二聚类模块,被配置成基于一级聚类中心对第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心;得到模块,被配置成基于第一数据集中的数据与一级聚类中心以及二级聚类中心的残差,得到第一数据集对应的码本;训练模块,被配置成基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。
根据本公开的第四方面,提供了一种检索装置,包括:第二获取模块,被配置成获取待检索数据;第一计算模块,被配置成计算待检索数据与检索数据库中的一级聚类中心的距离,得到满足预设条件的第三预设数目个一级聚类中心,其中,检索数据库通过如第一方面中任一实现方式描述的方法得到;第二计算模块,被配置成计算待检索数据与第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,得到满足预设条件的第四预设数目个二级聚类中心;第三获取模块,被配置成基于检索数据库中的数据集对应的码本,依次获取第四预设数目个二级聚类中心中的每个二级聚类中心对应的样本数据;第三计算模块,被配置成计算待检索数据与样本数据的距离,基于计算结果返回第五预设数目个样本数据。
根据本公开的第五方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器精细执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面或第二方面中任一实现方式描述的方法。
根据本公开的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面或第二方面中任一实现方式描述的方法。
根据本公开的第七方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面或第二方面中任一实现方式描述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开可以应用于其中的示例性系统架构图;
图2是根据本公开的构建检索数据库的方法的一个实施例的流程图;
图3是根据本公开的构建检索数据库的方法的另一个实施例的流程图;
图4是图3所示的构建检索数据库的方法的训练步骤的分解流程图;
图5是根据本公开的检索方法的一个实施例的流程图;
图6是根据本公开的构建检索数据库的装置的一个实施例的结构示意图;
图7是根据本公开的检索装置的一个实施例的结构示意图;
图8是用来实现本公开实施例的构建检索数据库的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的构建检索数据库的方法或构建检索数据库的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送信息等。终端设备101、102、103上可以安装有各种客户端应用。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以提供各种服务。例如,服务器105可以对从终端设备101、102、103获取到的数据集进行分析和处理,并生成处理结果(例如数据集对应的码本)。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开实施例所提供的构建检索数据库的方法一般由服务器105执行,相应地,构建检索数据库的装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本公开的构建检索数据库的方法的一个实施例的流程200。该构建检索数据库的方法包括以下步骤:
步骤201,获取数据集,将数据集分为第一数据集和第二数据集。
在本实施例中,构建检索数据库的方法的执行主体(例如图1所示的服务器105)可以获取数据集。该数据集中可以包括通过各种方式获取的原始数据,原始数据中的数据可以为图像、视频和/或音频等,然后提取每个原始数据的特征,从而得到原始数据集对应的特征集合,也即上述数据集。数据集的数据量一般可以达到千亿甚至万亿级别,且其中的每个数据一般都是多维度的。
上述执行主体在获取到数据集后,会将数据集分为第一数据集和第二数据集,例如,可通过对数据集进行随时抽样,从而得到第一数据集,然后将数据集中除去第一数据集的部分作为第二数据集。需要说明的是,第一数据集中的数据量要远小于第二数据集中的数据量,例如,当数据集中的数据量为1亿时,第一数据集中的数据量可为500万。
步骤202,对第一数据集中的数据进行聚类,得到至少一个一级聚类中心。
在本实施例中,上述执行主体可以利用聚类算法对第一数据集中的数据进行聚类,从而得到至少一个一级聚类中心。聚类算法是指将一堆没有标签的数据自动划分成几类的方法,属于无监督学习方法,其是根据样本之间的距离或者说是相似性(亲疏性),把越相似、差异越小的样本聚成一类(簇),最后形成多个簇,并可以得到每个簇的中心,也即聚类中心,得到的聚类中心与其覆盖范围内的所有数据有关,为所有数据的均值向量。聚类中心向量能全面描述其下的数据分布,且不同聚类中心之间有一定的区分度。
可选地,可使用K-Means(K均值)聚类算法对第一数据集中的数据进行聚类,得到对应的一级子空间以及对应的至少一个一级聚类中心。具体地,先设置K值,也即设置希望得到的簇的个数,然后从第一数据集中随机选择K个数据点作为质心(聚类中心),之后对第一数据集中每一个点,计算其与每一个质心的距离(如欧式距离等),离哪个质心近,就划分到那个质心所属的集合。把所有数据归好集合后,一共有K个集合,然后重新计算每个集合的质心,如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定或收敛),则可以认为聚类已经达到期望的结果,算法终止,但是如果新质心和原质心距离变化很大,需要迭代上述步骤,直至趋于稳定。当然,也可选择其他的聚类算法对第一数据集中的数据进行聚类,本公开对此不做具体限定。
在一级子空间内的数据后续会再次被分组,所以在本步骤中无需对一级子空间内的数据进行精细划分,保证不同一级聚类中心有一定的区分度即可。
步骤203,基于一级聚类中心对第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心。
在本实施例中,上述执行主体可以基于步骤202得到的一级聚类中心对第一数据集中的数据再次进行聚类,从而得到对应的二级子空间以及对应的至少一个二级聚类中心。其中,二级子空间内的数据与一级子空间内的数据分布是相似的,且二级聚类中心中的多个子集能够准确的描述每个子空间。
作为示例,可计算第一数据集中的第一数据与其最接近的一级聚类中心的残差向量,从而得到每个第一数据对应的残差向量,上述每个第一数据对应的残差向量构成残差向量空间,残差向量空间描述了数据与聚类中心的相对位置分布。然后使用K-Means聚类算法对该残差向量空间进行聚类,以描述新的空间内的数据分布,从而得到对应的至少一个二级聚类中心。
需要说明的是,在一级子空间内,属于同一个聚类中心下的数据,在二级子空间可以属于任意一个聚类中心;在二级子空间内属于同一个聚类中心的残差向量,可能来自不同的一级子空间的聚类中心。而在一级子空间与二级子空间内,均属于同一个聚类中心的数据,则认为是高度相似的。
例如,假设在数据量为4亿规模的数据集上,一级子空间A个数为5000时,平均每个子空间下样本总数约为80000,二级子空间B再划分为5000个子空间。对于A中某个子空间Ci,其下所有样本允许属于{Fn,Fm…Ft},{Fn,Fm…Ft}是{F0,F1…Fh}的一个子集;每个样本均可以用聚类中心对标识,即{(Ci,Fn),(Ci,Fm),…,(Ci,Ft)}。此时,训练成本为2*5000个聚类中心,相比成本大幅度降低。另外,通过对聚类中心进行分层,减少了在建库过程中的计算量,从而提高了建库效率和检索的效率。
步骤204,基于第一数据集中的数据与一级聚类中心以及二级聚类中心的残差,得到第一数据集对应的码本。
在本实施例中,上述执行主体可以基于第一数据集中的数据与一级聚类中心以及二级聚类中心的残差,得到第一数据集对应的码本。作为示例,可计算第一数据集中的第一数据所属于的一级聚类中心以及二级聚类中心,然后计算第一数据集中的第一数据与一级聚类中心以及二级聚类中心的残差,从而得到一个新的特征空间(残差向量空间),然后在这个新的特征空间内进行量化,由于新的特征空间中的特征的取值范围大幅度缩小,所以量化损失也可大幅度缩小。
可选地,量化方式可为PQ量化(Product Quantization,乘积量化),PQ量化属于一种经典的ANN算法,PQ量化可减少存储、减少运算量以及减少运算量。对新的特征空间进行PQ量化,可得到第一数据集对应的码本。在使用PQ量化时,一般使用四分之一量化。
步骤205,基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。
在本实施例中,上述执行主体可以基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。也即上述执行主体可以用第一数据集对应的码本中的聚类中心的ID(Identity Document,身份标识号)标识第二数据集中的特征向量,从而在检索过程中,无需加载原始特征向量,降低了检索过程中所需要的内存。
本公开实施例提供的构建检索数据库的方法,首先获取数据集,将数据集分为第一数据集和第二数据集;然后对第一数据集中的数据进行聚类,得到至少一个一级聚类中心;之后基于一级聚类中心对第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心;并基于第一数据集中的数据与一级聚类中心以及二级聚类中心的残差,得到第一数据集对应的码本;最后基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。本实施例中的构建检索数据库的方法属于倒排索引法,该方法通过将特征向量空间进行空间分割,缩短了训练时间,使得到的聚类中心能够更好地描述数据分布;此外,通过对新的特征空间进行量化,降低了量化损失,并且降低了检索过程中所需要的内存;并且,该方法支持多种建库模式,支持实时/日/周/月级别的索引更新,从而提供了高召回、高吞吐、低时延和低内存的基础检索能力。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
继续参考图3,图3示出了根据本公开的构建检索数据库的方法的另一个实施例的流程300。该构建检索数据库的方法包括以下步骤:
步骤301,获取数据集,将数据集分为第一数据集和第二数据集。
步骤302,对第一数据集中的数据进行聚类,得到至少一个一级聚类中心。
步骤301-302与前述实施例的步骤201-202基本一致,具体实现方式可以参考前述对步骤201-202的描述,此处不再赘述。
步骤303,针对第一数据集中的每个第一数据,计算与第一数据最接近的一级聚类中心的残差,得到第一数据集对应的第一残差向量空间。
在本实施例中,针对第一数据集中的每个第一数据,构建检索数据库的方法的执行主体(例如图1所示的服务器105)可以计算与其最接近的一级聚类中心的残差,从而得到第一数据集对应的第一残差向量空间,该残差向量空间描述了数据与聚类中心的相对位置分布。其中,与其最接近的一级聚类中心可通过距离计算结果来确定。
步骤304,对第一残差向量空间进行聚类,得到对应的至少一个二级聚类中心。
在本实施例中,上述执行主体可以对步骤303得到的第一残差向量空间进行聚类,从而得到对应的至少一个二级聚类中心。具体地,可采用K-Means聚类算法对第一残差向量空间进行聚类。一二级聚类中心将整个数据空间分割为多个子空间,且所有一级聚类中心共享二级聚类中心。
通过对第一数据集中的数据进行聚类,得到一级聚类中心以及二级聚类中心,从而对大规模的数据集进行了更精细的空间分割,使得聚类中心向量能更好地代表其下所有数据,进而更好地描述数据的分布情况。
步骤305,针对第一数据集中的每个第一数据,基于与第一数据最接近的一级聚类中心和二级聚类中心的残差,得到第一数据集对应的第二残差向量空间。
在本实施例中,针对第一数据集中的每个第一数据,上述执行主体可以基于与每个第一数据最接近的一级聚类中心和二级聚类中心的残差,得到第一数据集对应的第二残差向量空间。例如,可计算与每个第一数据最接近的一级聚类中心和二级聚类中心的残差,从而得到对应的第二残差向量空间。
步骤306,对第二残差向量空间进行量化,得到第一数据集对应的码本。
在本实施例中,上述执行主体可以对步骤305得到的第二残差向量空间进行量化,从而得到第一数据集对应的码本。可选地,量化方式可为PQ量化,一般使用四分之一量化,PQ量化损失在每个特征维度内表现为特征值与聚类中心的差值,当样本特征在每个维度的取值范围较大时,用固定个聚类中心表示必然导致量化损失增大,故本步骤对第二残差向量空间进行量化,从而缩小特征的取值范围,进而缩小量化损失。PQ量化可减少存储、减少运算量以及减少运算量。
在本实施例的一些可选实施方式中,步骤306包括:将第二残差向量空间分为第一预设数目个子空间;分别对第一预设数目个子空间中的每个子空间进行聚类,得到第二预设数目个空间聚类中心;分别对空间聚类中心的标识号ID进行标记,得到每个子空间的码本;将每个子空间的码本做直积,得到第一数据集对应的码本。其中,第一预设数目与第二预设数目可根据实际情况进行设定,本公开对此不做具体限定。
具体地,假设有N个训练样本,每个样本维度D是64。把每个样本分割为M=8段,对每一段聚类,聚为K=256类,得到M*K个聚类中心,每个聚类中心维度为D/M,这些聚类中心称为码本,训练得到码本,并保存。对于每个子段M,去K个聚类中心中寻找距离最近的聚类中心U(M)。存储每一个类对应子类的标签列表。这样训练完成,对N个样本,最后存下来的仅有K*M个聚类中心和N*M个样本对应聚类中心的标签,从而大幅度地减少了数据的存储内存,减少了运算量和运算量。
步骤307,基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。
步骤307与前述实施例的步骤205基本一致,具体实现方式可以参考前述对步骤205的描述,此处不再赘述。
从图3中可以看出,与图2对应的实施例相比,本实施例中的构建检索数据库的方法突出了得到二级聚类中心以及得到第一数据集对应的码本的过程,从而对数据集进行了更精细的空间分割,减少了检索时延,也提升了检索的召回率,节省了内存。
继续参考图4,图4示出了图3所示的构建检索数据库的方法的训练步骤的分解流程400。该训练步骤分解如下:
步骤401,计算第二数据与一级聚类中心和二级聚类中心的距离。
在本实施例中,针对所述第二数据集中的每个第二数据,计算每个第二数据与各一级聚类中心以及各二级聚类中心的距离,其中,距离可为欧氏距离(L2距离)或余弦距离(COS距离),欧氏距离或余弦距离的计算方式为现有技术,在此不再赘述。
在本实施例的一些可选实施方式中,步骤401包括:计算第二数据与一级聚类中心的第一距离;响应于第一距离以及一级聚类中心与二级聚类中心的第二距离之间不满足三角不等式,进行剪枝操作。
在此实施例中,对于L2/COS距离空间下,任意三点满足三角不等式,在计算了第二数据与一级聚类中心的第一距离后,由于一级聚类中心与二级聚类中心之间的距离为已知,所以可根据三角不等式来进行剪枝操作,也即根据三角不等式,可预判第二数据与每个子空间的上界,按一定规则排序所有子空间,根据距离上界进行剪枝,从而大幅度降低整体计算量。三角不等式可表示为如下形式:
d(Ox,Oy)≤d(Ox,Oz)+d(Oz,Oy);
其中,Ox,Oy,Oz代表空间中的任意三点,即上文中的第二数据、一级聚类中心以及二级聚类中心,d代表任意两点之间的距离。
在一千万SIFT1B数据集上验证,该剪枝可剪掉94%的向量计算,极大地缩短了建库时间。此外,该剪枝方式可复用在训练和检索过程中任何需要计算样本与子空间距离的过程中。
在本实施例的一些可选实施方式中,步骤401还包括:响应于第一距离以及一级聚类中心与二级聚类中心的第二距离之间满足三角不等式,计算第二数据与二级聚类中心的距离。也即在第一距离以及一级聚类中心与二级聚类中心的第二距离之间满足三角不等式的情况下,才计算第二数据与二级聚类中心的距离。通过判断第一距离与第二距离是否满足三角不等式,从而减少了计算量。
步骤402,基于计算结果确定与第二数据最接近的一级聚类中心和二级聚类中心。
在本实施例中,基于步骤401的计算结果确定与第二数据最接近的一级聚类中心和二级聚类中心。步骤401的计算结果越小,表明距离越近,从而确定最接近的一级聚类中心以及二级聚类中心。
步骤403,针对第二数据集中的每个第二数据,基于与第二数据最接近的一级聚类中心和二级聚类中心的残差,得到各第二数据对应的残差向量。
在本实施例中,针对第二数据集中的每个第二数据,在确定了与第二数据最接近的一级聚类中心和二级聚类中心之后,可计算第二数据与其最接近的一级聚类中心和二级聚类中心的残差,从而得到各第二数据对应的残差向量。
步骤404,将残差向量分为第一预设数目个子空间。
在本实施例中,可将步骤403得到的残差向量分为第一预设数目个子空间,其中,第一预设数目可根据实际情况进行设定。
步骤405,针对第一预设数目个子空间中的每个子空间,计算子空间内的残差向量与子空间内的空间聚类中心的距离。
在本实施例中,针对第一预设数目个子空间中的每个子空间,可计算每个子空间内的残差向量与子空间内的空间聚类中心的距离,从而确定与该子空间内的残差向量距离最近的空间聚类中心,并记录该聚类中心的ID。
步骤406,用与子空间内的残差向量最接近的空间聚类中心的ID标记第二数据集中的每个第二数据,得到数据集对应的码本。
在本实施例中,可用步骤405确定的与子空间内的残差向量最接近的空间聚类中心的ID标记第二数据集中的每个第二数据,从而得到数据集对应的码本。
从图4中可以看出,该训练方法可以使用第一数据集中的各聚类中心的标识来标记第二数据集中的第二数据,从而使得在检索过程中,无需加载原始特征向量,极大地降低了检索过程所需的内存。
继续参考图5,其示出了根据本公开的检索方法的一个实施例的流程500。该检索方法包括以下步骤:
步骤501,获取待检索数据。
在本实施例中,检索方法的执行主体(例如图1所示的服务器105)可以获取待检索数据。其中,待检索数据可以为图像、视频和/音频。可选地,上述执行主体在获取到待检索数据后,会提取待检索数据的特征,并对提取的特征进行归一化处理,以便更好地进行检索。
步骤502,计算待检索数据与检索数据库中的一级聚类中心的距离,得到满足预设条件的第三预设数目个一级聚类中心。
在本实施例中,上述执行主体可以计算待检索数据与检索数据库中的各个一级聚类中心的距离,并基于计算结果进行排序,例如进行升序排序,从而得到满足预设条件的第三预设数目个一级聚类中心,其中,第三预设数目可根据实际情况进行设定,例如,将第三预设数目设定为10,也即根据升序排序结果,选取距离最近的10个一级聚类中心,未被选取的子空间在后续检索流程中则不会被访问,从而减少计算量,减少耗时。其中,检索数据库通过如前述实施例中的方法得到。
步骤503,计算待检索数据与第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,得到满足预设条件的第四预设数目个二级聚类中心。
在本实施例中,在确定了与待检索数据距离最近的第三预设数目个一级聚类中心后,上述执行主体可以计算待检索数据与第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,并对计算结果进行排序,例如进行升序排序,从而得到满足预设条件的第四预设数目个二级聚类中心,例如,将第四预设数目设定为20,也即根据升序排序结果,选取距离最近的20个二级聚类中心,那么当一级聚类中心的个数为10时,此时一共得到了10*20=200个二级聚类中心。
步骤504,基于检索数据库中的数据集对应的码本,依次获取第四预设数目个二级聚类中心中的每个二级聚类中心对应的样本数据。
在本实施例中,上述执行主体可以基于构建检索数据库时得到的数据集对应的码本,以优先队列的方式,从最近的二级聚类中心开始,依次取出其对应的样本数据。
步骤505,计算待检索数据与样本数据的距离,基于计算结果返回第五预设数目个样本数据。
在本实施例中,上述执行主体可以计算待检索数据与步骤504取出的样本数据的距离,并将计算结果进行排序,从而返回第五预设数目个样本数据。第五预设数目可根据实际情况进行设定,假设将第五预设数目设置为200,那么上述执行主体会基于排序结果,返回与待检索数据距离最近的前200个样本数据。
本公开实施例提供的检索方法,首先获取待检索数据;然后计算待检索数据与检索数据库中的一级聚类中心的距离,得到满足预设条件的第三预设数目个一级聚类中心;之后计算待检索数据与第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,得到满足预设条件的第四预设数目个二级聚类中心;并基于检索数据库中的数据集对应的码本,依次获取第四预设数目个二级聚类中心中的每个二级聚类中心对应的样本数据;最后计算待检索数据与样本数据的距离,基于计算结果返回第五预设数目个样本数据。本实施例中的检索方法,能够基于预先构建好的检索数据库进行检索,提高了检索召回率,并减少了检所时延,从而提高了检索效率。
进一步参考图6,作为对上述各图所示方法的实现,本公开提供了一种构建检索数据库的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的构建检索数据库的装置600包括:第一获取模块601、第一聚类模块602、第二聚类模块603、得到模块604和训练模块605。其中,第一获取模块601,被配置成获取数据集,将数据集分为第一数据集和第二数据集,其中,第一数据集中的数据量小于第二数据集中的数据量;第一聚类模块602,被配置成对第一数据集中的数据进行聚类,得到至少一个一级聚类中心;第二聚类模块603,被配置成基于一级聚类中心对第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心;得到模块604,被配置成基于第一数据集中的数据与一级聚类中心以及二级聚类中心的残差,得到第一数据集对应的码本;训练模块605,被配置成基于第一数据集对应的码本对第二数据集进行训练,得到数据集对应的码本。
在本实施例中,构建检索数据库的装置600中:第一获取模块601、第一聚类模块602、第二聚类模块603、得到模块604和训练模块605的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-205的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,第二聚类模块包括:第一计算子模块,被配置成针对第一数据集中的每个第一数据,计算与第一数据最接近的一级聚类中心的残差,得到第一数据集对应的第一残差向量空间;聚类子模块,被配置成对第一残差向量空间进行聚类,得到对应的至少一个二级聚类中心。
在本实施例的一些可选的实现方式中,得到模块包括:第一得到子模块,被配置成针对第一数据集中的每个第一数据,基于与第一数据最接近的一级聚类中心和二级聚类中心的残差,得到第一数据集对应的第二残差向量空间;量化子模块,被配置成对第二残差向量空间进行量化,得到第一数据集对应的码本。
在本实施例的一些可选的实现方式中,量化子模块包括:划分单元,被配置成将第二残差向量空间分为第一预设数目个子空间;聚类单元,被配置成分别对第一预设数目个子空间中的每个子空间进行聚类,得到第二预设数目个空间聚类中心;标记单元,被配置成分别对空间聚类中心的标识号ID进行标记,得到每个子空间的码本;直积单元,被配置成将每个子空间的码本做直积,得到第一数据集对应的码本。
在本实施例的一些可选的实现方式中,训练模块包括:第二得到子模块,被配置成针对第二数据集中的每个第二数据,基于与第二数据最接近的一级聚类中心和二级聚类中心的残差,得到各第二数据对应的残差向量;划分子模块,被配置成将残差向量分为第一预设数目个子空间;第二计算子模块,被配置成针对第一预设数目个子空间中的每个子空间,计算子空间内的残差向量与子空间内的空间聚类中心的距离;第三得到子模块,被配置成用与子空间内的残差向量最接近的空间聚类中心的ID标记第二数据集中的每个第二数据,得到数据集对应的码本。
在本实施例的一些可选的实现方式中,训练模块还包括:第三计算子模块,被配置成计算第二数据与一级聚类中心和二级聚类中心的距离;确定子模块,被配置成基于计算结果确定与第二数据最接近的一级聚类中心和二级聚类中心。
在本实施例的一些可选的实现方式中,第三计算子模块包括:第一计算单元,被配置成计算第二数据与一级聚类中心的第一距离;剪枝单元,被配置成响应于第一距离以及一级聚类中心与二级聚类中心的第二距离之间不满足三角不等式,进行剪枝操作。
在本实施例的一些可选的实现方式中,第三计算子模块还包括:第二计算单元,被配置成响应于第一距离以及一级聚类中心与二级聚类中心的第二距离之间满足三角不等式,计算第二数据与二级聚类中心的距离。
进一步参考图7,作为对上述各图所示方法的实现,本公开提供了一种检索装置的一个实施例,该装置实施例与图5所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例的检索装置700包括:第二获取模块701、第一计算模块702、第二计算模块703、第三获取模块704和第三计算模块705。其中,第二获取模块701,被配置成获取待检索数据;第一计算模块702,被配置成计算待检索数据与检索数据库中的一级聚类中心的距离,得到满足预设条件的第三预设数目个一级聚类中心;第二计算模块703,被配置成计算待检索数据与第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,得到满足预设条件的第四预设数目个二级聚类中心;第三获取模块704,被配置成基于检索数据库中的数据集对应的码本,依次获取第四预设数目个二级聚类中心中的每个二级聚类中心对应的样本数据;第三计算模块705,被配置成计算待检索数据与样本数据的距离,基于计算结果返回第五预设数目个样本数据。
在本实施例中,检索装置700中:第二获取模块701、第一计算模块702、第二计算模块703、第三获取模块704和第三计算模块705的具体处理及其所带来的技术效果可分别参考图5对应实施例中的步骤501-505的相关说明,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如构建检索数据库的方法或检索方法。例如,在一些实施例中,构建检索数据库的方法或检索方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的构建检索数据库的方法或检索方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行构建检索数据库的方法或检索方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (21)
1.一种构建检索数据库的方法,包括:
获取数据集,将所述数据集分为第一数据集和第二数据集,其中,所述第一数据集中的数据量小于所述第二数据集中的数据量;
对所述第一数据集中的数据进行聚类,得到至少一个一级聚类中心;
基于所述一级聚类中心对所述第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心;
基于所述第一数据集中的数据与所述一级聚类中心以及所述二级聚类中心的残差,得到所述第一数据集对应的码本;
基于所述第一数据集对应的码本对所述第二数据集进行训练,得到所述数据集对应的码本。
2.根据权利要求1所述的方法,其中,所述基于所述一级聚类中心对所述第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心,包括:
针对所述第一数据集中的每个第一数据,计算与所述第一数据最接近的一级聚类中心的残差,得到所述第一数据集对应的第一残差向量空间;
对所述第一残差向量空间进行聚类,得到对应的至少一个二级聚类中心。
3.根据权利要求1-2中任一项所述的方法,其中,所述基于所述第一数据集中的数据与所述一级聚类中心以及所述二级聚类中心的残差,得到所述第一数据集对应的码本,包括:
针对所述第一数据集中的每个第一数据,基于与所述第一数据最接近的一级聚类中心和二级聚类中心的残差,得到所述第一数据集对应的第二残差向量空间;
对所述第二残差向量空间进行量化,得到所述第一数据集对应的码本。
4.根据权利要求3所述的方法,其中,所述对所述第二残差向量空间进行量化,得到所述第一数据集对应的码本,包括:
将所述第二残差向量空间分为第一预设数目个子空间;
分别对所述第一预设数目个子空间中的每个子空间进行聚类,得到第二预设数目个空间聚类中心;
分别对所述空间聚类中心的标识号ID进行标记,得到每个子空间的码本;
将所述每个子空间的码本做直积,得到所述第一数据集对应的码本。
5.根据权利要求4所述的方法,其中,所述基于所述第一数据集对应的码本对所述第二数据集进行训练,得到所述数据集对应的码本,包括:
针对所述第二数据集中的每个第二数据,基于与所述第二数据最接近的一级聚类中心和二级聚类中心的残差,得到各第二数据对应的残差向量;
将所述残差向量分为第一预设数目个子空间;
针对所述第一预设数目个子空间中的每个子空间,计算所述子空间内的残差向量与所述子空间内的空间聚类中心的距离;
用与所述子空间内的残差向量最接近的空间聚类中心的ID标记所述第二数据集中的每个第二数据,得到所述数据集对应的码本。
6.根据权利要求5所述的方法,其中,在所述基于与所述第二数据最接近的一级聚类中心和二级聚类中心的残差,得到各第二数据对应的残差向量之前,所述方法还包括:
计算所述第二数据与所述一级聚类中心和所述二级聚类中心的距离;
基于计算结果确定与所述第二数据最接近的一级聚类中心和二级聚类中心。
7.根据权利要求6所述的方法,其中,所述计算所述第二数据与所述一级聚类中心和所述二级聚类中心的距离,包括:
计算所述第二数据与所述一级聚类中心的第一距离;
响应于所述第一距离以及所述一级聚类中心与所述二级聚类中心的第二距离之间不满足三角不等式,进行剪枝操作。
8.根据权利要求7所述的方法,其中,所述计算所述第二数据与所述一级聚类中心和所述二级聚类中心的距离,还包括:
响应于所述第一距离以及所述一级聚类中心与所述二级聚类中心的第二距离之间满足三角不等式,计算所述第二数据与所述二级聚类中心的距离。
9.一种检索方法,包括:
获取待检索数据;
计算所述待检索数据与检索数据库中的一级聚类中心的距离,得到满足预设条件的第三预设数目个一级聚类中心,其中,所述检索数据库通过权利要求1-8中任一项所述的方法得到;
计算所述待检索数据与所述第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,得到满足预设条件的第四预设数目个二级聚类中心;
基于所述检索数据库中的数据集对应的码本,依次获取所述第四预设数目个二级聚类中心中的每个二级聚类中心对应的样本数据;
计算所述待检索数据与所述样本数据的距离,基于计算结果返回第五预设数目个样本数据。
10.一种构建检索数据库的装置,包括:
第一获取模块,被配置成获取数据集,将所述数据集分为第一数据集和第二数据集,其中,所述第一数据集中的数据量小于所述第二数据集中的数据量;
第一聚类模块,被配置成对所述第一数据集中的数据进行聚类,得到至少一个一级聚类中心;
第二聚类模块,被配置成基于所述一级聚类中心对所述第一数据集中的数据进行聚类,得到对应的至少一个二级聚类中心;
得到模块,被配置成基于所述第一数据集中的数据与所述一级聚类中心以及所述二级聚类中心的残差,得到所述第一数据集对应的码本;
训练模块,被配置成基于所述第一数据集对应的码本对所述第二数据集进行训练,得到所述数据集对应的码本。
11.根据权利要求10所述的装置,其中,所述第二聚类模块包括:
第一计算子模块,被配置成针对所述第一数据集中的每个第一数据,计算与所述第一数据最接近的一级聚类中心的残差,得到所述第一数据集对应的第一残差向量空间;
聚类子模块,被配置成对所述第一残差向量空间进行聚类,得到对应的至少一个二级聚类中心。
12.根据权利要求10-11中任一项所述的装置,其中,所述得到模块包括:
第一得到子模块,被配置成针对所述第一数据集中的每个第一数据,基于与所述第一数据最接近的一级聚类中心和二级聚类中心的残差,得到所述第一数据集对应的第二残差向量空间;
量化子模块,被配置成对所述第二残差向量空间进行量化,得到所述第一数据集对应的码本。
13.根据权利要求12所述的装置,其中,所述量化子模块包括:
划分单元,被配置成将所述第二残差向量空间分为第一预设数目个子空间;
聚类单元,被配置成分别对所述第一预设数目个子空间中的每个子空间进行聚类,得到第二预设数目个空间聚类中心;
标记单元,被配置成分别对所述空间聚类中心的标识号ID进行标记,得到每个子空间的码本;
直积单元,被配置成将所述每个子空间的码本做直积,得到所述第一数据集对应的码本。
14.根据权利要求13所述的装置,其中,所述训练模块包括:
第二得到子模块,被配置成针对所述第二数据集中的每个第二数据,基于与所述第二数据最接近的一级聚类中心和二级聚类中心的残差,得到各第二数据对应的残差向量;
划分子模块,被配置成将所述残差向量分为第一预设数目个子空间;
第二计算子模块,被配置成针对所述第一预设数目个子空间中的每个子空间,计算所述子空间内的残差向量与所述子空间内的空间聚类中心的距离;
第三得到子模块,被配置成用与所述子空间内的残差向量最接近的空间聚类中心的ID标记所述第二数据集中的每个第二数据,得到所述数据集对应的码本。
15.根据权利要求14所述的装置,其中,所述训练模块还包括:
第三计算子模块,被配置成计算所述第二数据与所述一级聚类中心和所述二级聚类中心的距离;
确定子模块,被配置成基于计算结果确定与所述第二数据最接近的一级聚类中心和二级聚类中心。
16.根据权利要求15所述的装置,其中,所述第三计算子模块包括:
第一计算单元,被配置成计算所述第二数据与所述一级聚类中心的第一距离;
剪枝单元,被配置成响应于所述第一距离以及所述一级聚类中心与所述二级聚类中心的第二距离之间不满足三角不等式,进行剪枝操作。
17.根据权利要求16所述的装置,其中,所述第三计算子模块还包括:
第二计算单元,被配置成响应于所述第一距离以及所述一级聚类中心与所述二级聚类中心的第二距离之间满足三角不等式,计算所述第二数据与所述二级聚类中心的距离。
18.一种检索装置,包括:
第二获取模块,被配置成获取待检索数据;
第一计算模块,被配置成计算所述待检索数据与检索数据库中的一级聚类中心的距离,得到满足预设条件的第三预设数目个一级聚类中心,其中,所述检索数据库通过权利要求1-8中任一项所述的方法得到;
第二计算模块,被配置成计算所述待检索数据与所述第三预设数目个一级聚类中心中的每个一级聚类中心下的二级聚类中心的距离,得到满足预设条件的第四预设数目个二级聚类中心;
第三获取模块,被配置成基于所述检索数据库中的数据集对应的码本,依次获取所述第四预设数目个二级聚类中心中的每个二级聚类中心对应的样本数据;
第三计算模块,被配置成计算所述待检索数据与所述样本数据的距离,基于计算结果返回第五预设数目个样本数据。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110937110.0A CN113656373A (zh) | 2021-08-16 | 2021-08-16 | 构建检索数据库的方法、装置、设备以及存储介质 |
PCT/CN2022/081154 WO2023019933A1 (zh) | 2021-08-16 | 2022-03-16 | 构建检索数据库的方法、装置、设备以及存储介质 |
JP2022567637A JP7558299B2 (ja) | 2021-08-16 | 2022-03-16 | 検索データベースを構築するための方法、装置、デバイス及び記憶媒体 |
EP22786874.2A EP4160434A4 (en) | 2021-08-16 | 2022-03-16 | METHOD AND DEVICE FOR CONSTRUCTING A SEARCH DATABASE AND DEVICE AND STORAGE MEDIUM |
US17/969,369 US11960455B2 (en) | 2021-08-16 | 2022-10-19 | Method and apparatus for building database for retrieval, device and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110937110.0A CN113656373A (zh) | 2021-08-16 | 2021-08-16 | 构建检索数据库的方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113656373A true CN113656373A (zh) | 2021-11-16 |
Family
ID=78491679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110937110.0A Pending CN113656373A (zh) | 2021-08-16 | 2021-08-16 | 构建检索数据库的方法、装置、设备以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113656373A (zh) |
WO (1) | WO2023019933A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114139704A (zh) * | 2021-11-29 | 2022-03-04 | 深圳集智数字科技有限公司 | 神经网络模型的训练方法及装置 |
WO2023019933A1 (zh) * | 2021-08-16 | 2023-02-23 | 百度在线网络技术(北京)有限公司 | 构建检索数据库的方法、装置、设备以及存储介质 |
CN116304253A (zh) * | 2023-02-28 | 2023-06-23 | 北京百度网讯科技有限公司 | 数据存储方法、数据检索方法和识别相似视频的方法 |
US11960455B2 (en) | 2021-08-16 | 2024-04-16 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and apparatus for building database for retrieval, device and storage medium |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076726B (zh) * | 2023-09-14 | 2024-06-07 | 上海交通大学 | 基于光线追踪相交的近似近邻搜索方法、系统、介质及设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011128773A (ja) * | 2009-12-16 | 2011-06-30 | Yahoo Japan Corp | 画像検索装置、画像検索方法及びプログラム |
CN107944046A (zh) * | 2017-12-15 | 2018-04-20 | 清华大学 | 大规模高维数据快速检索方法及系统 |
CN107943938A (zh) * | 2017-11-23 | 2018-04-20 | 清华大学 | 一种基于深度乘积量化的大规模图像相似检索方法及系统 |
CN109446408A (zh) * | 2018-09-19 | 2019-03-08 | 北京京东尚科信息技术有限公司 | 检索相似数据的方法、装置、设备及计算机可读存储介质 |
CN110168525A (zh) * | 2016-10-11 | 2019-08-23 | 谷歌有限责任公司 | 快速数据库搜索系统和方法 |
CN110825894A (zh) * | 2019-09-18 | 2020-02-21 | 平安科技(深圳)有限公司 | 数据索引建立、数据检索方法、装置、设备和存储介质 |
CN111143597A (zh) * | 2019-12-13 | 2020-05-12 | 浙江大华技术股份有限公司 | 图像检索方法、终端及存储装置 |
CN111444363A (zh) * | 2020-03-02 | 2020-07-24 | 高新兴科技集团股份有限公司 | 一种图片检索方法、装置、终端设备及存储介质 |
CN113159095A (zh) * | 2021-01-30 | 2021-07-23 | 华为技术有限公司 | 一种训练模型的方法、图像检索的方法以及装置 |
CN113239225A (zh) * | 2021-06-01 | 2021-08-10 | 平安科技(深圳)有限公司 | 一种图像检索方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134804B (zh) * | 2019-05-20 | 2021-09-17 | 北京达佳互联信息技术有限公司 | 图像检索方法、装置及存储介质 |
CN110609916A (zh) * | 2019-09-25 | 2019-12-24 | 四川东方网力科技有限公司 | 视频图像数据检索方法、装置、设备和存储介质 |
CN113656373A (zh) * | 2021-08-16 | 2021-11-16 | 百度在线网络技术(北京)有限公司 | 构建检索数据库的方法、装置、设备以及存储介质 |
-
2021
- 2021-08-16 CN CN202110937110.0A patent/CN113656373A/zh active Pending
-
2022
- 2022-03-16 WO PCT/CN2022/081154 patent/WO2023019933A1/zh unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011128773A (ja) * | 2009-12-16 | 2011-06-30 | Yahoo Japan Corp | 画像検索装置、画像検索方法及びプログラム |
CN110168525A (zh) * | 2016-10-11 | 2019-08-23 | 谷歌有限责任公司 | 快速数据库搜索系统和方法 |
CN107943938A (zh) * | 2017-11-23 | 2018-04-20 | 清华大学 | 一种基于深度乘积量化的大规模图像相似检索方法及系统 |
CN107944046A (zh) * | 2017-12-15 | 2018-04-20 | 清华大学 | 大规模高维数据快速检索方法及系统 |
CN109446408A (zh) * | 2018-09-19 | 2019-03-08 | 北京京东尚科信息技术有限公司 | 检索相似数据的方法、装置、设备及计算机可读存储介质 |
CN110825894A (zh) * | 2019-09-18 | 2020-02-21 | 平安科技(深圳)有限公司 | 数据索引建立、数据检索方法、装置、设备和存储介质 |
CN111143597A (zh) * | 2019-12-13 | 2020-05-12 | 浙江大华技术股份有限公司 | 图像检索方法、终端及存储装置 |
CN111444363A (zh) * | 2020-03-02 | 2020-07-24 | 高新兴科技集团股份有限公司 | 一种图片检索方法、装置、终端设备及存储介质 |
CN113159095A (zh) * | 2021-01-30 | 2021-07-23 | 华为技术有限公司 | 一种训练模型的方法、图像检索的方法以及装置 |
CN113239225A (zh) * | 2021-06-01 | 2021-08-10 | 平安科技(深圳)有限公司 | 一种图像检索方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
ANQIN, 《HTTPS://MP.WEIXIN.QQ.COM/S?_ BIZ=MZG5MJU0NTI5OQ==&MID=2247491769&IDX=1&SN=4009630E1583D92C37770D59F8E4FFD7&CHKSM=C03ED0C...》, pages 1 - 10 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023019933A1 (zh) * | 2021-08-16 | 2023-02-23 | 百度在线网络技术(北京)有限公司 | 构建检索数据库的方法、装置、设备以及存储介质 |
US11960455B2 (en) | 2021-08-16 | 2024-04-16 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method and apparatus for building database for retrieval, device and storage medium |
CN114139704A (zh) * | 2021-11-29 | 2022-03-04 | 深圳集智数字科技有限公司 | 神经网络模型的训练方法及装置 |
CN116304253A (zh) * | 2023-02-28 | 2023-06-23 | 北京百度网讯科技有限公司 | 数据存储方法、数据检索方法和识别相似视频的方法 |
CN116304253B (zh) * | 2023-02-28 | 2024-05-07 | 北京百度网讯科技有限公司 | 数据存储方法、数据检索方法和识别相似视频的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2023019933A1 (zh) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guo et al. | Accelerating large-scale inference with anisotropic vector quantization | |
CN113656373A (zh) | 构建检索数据库的方法、装置、设备以及存储介质 | |
Guo et al. | Quantization based fast inner product search | |
JP7403605B2 (ja) | マルチターゲット画像テキストマッチングモデルのトレーニング方法、画像テキスト検索方法と装置 | |
JP7076483B2 (ja) | データモデルを構築する方法、装置、デバイス及び媒体 | |
CN108734217A (zh) | 一种基于聚类分析的客户细分方法及装置 | |
US8077994B2 (en) | Compression of MQDF classifier using flexible sub-vector grouping | |
JPWO2013129580A1 (ja) | 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム | |
CN113282756B (zh) | 一种基于混合聚类的文本聚类智能评估方法 | |
US11874866B2 (en) | Multiscale quantization for fast similarity search | |
CN110825894A (zh) | 数据索引建立、数据检索方法、装置、设备和存储介质 | |
CN108229358B (zh) | 索引建立方法和装置、电子设备、计算机存储介质 | |
CN112395487A (zh) | 信息推荐方法、装置、计算机可读存储介质及电子设备 | |
CN111191825A (zh) | 用户违约预测方法、装置及电子设备 | |
CN112925912A (zh) | 文本处理方法、同义文本召回方法及装置 | |
CN114332500A (zh) | 图像处理模型训练方法、装置、计算机设备和存储介质 | |
CN114037059A (zh) | 预训练模型、模型的生成方法、数据处理方法及装置 | |
CN116089586B (zh) | 基于文本的问题生成方法及问题生成模型的训练方法 | |
CN114662607B (zh) | 基于人工智能的数据标注方法、装置、设备以及存储介质 | |
CN114444514B (zh) | 语义匹配模型训练、语义匹配方法及相关装置 | |
CN111046892A (zh) | 异常识别方法和装置 | |
JP7558299B2 (ja) | 検索データベースを構築するための方法、装置、デバイス及び記憶媒体 | |
CN115169489A (zh) | 数据检索方法、装置、设备以及存储介质 | |
CN114610953A (zh) | 一种数据分类方法、装置、设备及存储介质 | |
CN113343047A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211116 |
|
RJ01 | Rejection of invention patent application after publication |