CN107944046A - 大规模高维数据快速检索方法及系统 - Google Patents
大规模高维数据快速检索方法及系统 Download PDFInfo
- Publication number
- CN107944046A CN107944046A CN201711350995.4A CN201711350995A CN107944046A CN 107944046 A CN107944046 A CN 107944046A CN 201711350995 A CN201711350995 A CN 201711350995A CN 107944046 A CN107944046 A CN 107944046A
- Authority
- CN
- China
- Prior art keywords
- data
- retrieved
- quantization unit
- product quantization
- binary code
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012549 training Methods 0.000 claims abstract description 51
- 238000013139 quantization Methods 0.000 claims description 111
- 239000011159 matrix material Substances 0.000 claims description 17
- 238000013138 pruning Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 11
- 239000013598 vector Substances 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于乘积量化与多重倒排索引的大规模高维数据近似近邻检索方法及系统,包括基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。本发明通过提供一种基于高维数据的大规模相似性检索方法及系统,可以大大提高检索的准确度和时间效率。
Description
技术领域
本发明涉及计算机数据管理技术领域,更具体地,涉及大规模高维数据快速检索方法及系统。
背景技术
随着互联网的飞速发展,大规模高维度数据在搜索引擎和社会网络中越来越普遍,也吸引了越来越多的关注。随着互联网上多媒体资源的不断增加,如何从大规模高维数据中快速、有效的查找到相关的数据,无论是在时间上还是空间上都是一个极大的考验。
现有技术中,通常采用如下方法实现大规模高纬度数据的查找和检索,即步骤1,采用初始化检索方法对高维数据库点集,建立初始化索引,并建立所述高维数据库点集的最近邻表;步骤2,根据初始化索引,获得待检索数据点在所述高维数据库点集中的若干个最邻近点,若干个最邻近点构成初始候选点集;步骤3,构造临时点集,针对初始候选点集中的每个数据点,在最近邻表中查询该数据点的若干个近邻点,并将查到的各近邻点以及初始候选点添加至临时点集中;步骤4,计算临时点集中所有数据点与待检索数据点的距离,将距离最小的若干个数据点作为新的候选点集;步骤5,将新的候选点集作为初始候选点集;步骤6,重复步骤3~步骤5,直至候选点集中的数据点不再更新或者迭代次数达到预定值,输出候选点集中距离待检索数据点最近的若干数据点作为近似最近邻数据点进行。
但是,在现有的大规模高纬度数据的查找和检索方法中,仅能在一定程度上对高维数据进行压缩,却不能进行有效剪枝,使得检索实现的检索精度与效率均不高。
发明内容
为克服上述问题或者至少部分地解决上述问题,本发明提供了一种大规模高维数据快速检索方法及系统。
一方面,本发明提供了一种大规模高维数据快速检索方法,包括:
S1,基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;
S2,将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;
S3,根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。
优选地,所述方法还包括:
将训练样本集输入至乘积量化单元,基于乘积量化损失函数对所述乘积量化单元进行训练,以得到与所述训练样本集中每一训练样本对应的二进制码。
优选地,所述方法还包括:基于训练后的乘积量化单元,获取所述乘积量化单元中的聚类中心矩阵;相应地,所述将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中之前,还包括:
获取所述预设数据库中的所有数据并分别输入至所述训练后的乘积量化单元,得到每一数据对应的二进制码;
基于得到的每一数据对应的二进制码,分别获取所述预设数据库中与所述聚类中心矩阵中每一聚类中心距离最小的数据;
基于获取到的所有数据及对应的二进制码,构建与所述乘积量化单元匹配的多重倒排索引单元。
优选地,所述乘积量化损失函数具体通过如下公式计算:
其中,所述Q为乘积量化损失函数,zi为所述训练样本集中第i个训练样本,N为所述训练样本集中训练样本的数量,C为所述聚类中心矩阵,hi为与zi对应的二进制码。
优选地,S1具体包括:
将所述待检索数据输入至所述训练后的乘积量化单元,所述训练后的乘积量化单元基于乘积量化算法,将所述待检索数据在每一低维子空间中的所有分量量化至所述每一低维子空间对应的聚类中心中;
确定与所述待检索数据的每一分量距离最近的聚类中心,并采用二进制码进行标记。
优选地,每一聚类中心对应一数据桶,所述数据桶中包含有与所述数据桶对应的聚类中心距离最小的所有数据;相应地,S2中所述获取预设数据库中与所述待检索数据距离最小的数据构成的集合,具体包括:
S21,基于所述预设数据库中与所述待检索数据的每一低维子空间对应的聚类中心距离最小的聚类中心,确定预设数量个聚类中心组;
S22,获取所述预设数量个聚类中心组中每一聚类中心对应的数据桶,并提取所有数据桶中的数据,以获取所述预设数据库中与所述待检索数据距离最小的数据构成的集合。
优选地,S21具体包括:
S211,将所述待检索数据所属的聚类中心组成首个聚类中心组;
S212,将与所述待检索数据的每一低维子空间对应的聚类中心距离最小的聚类中心均放入优先队列中;
S213,从所述优先队列中的所有聚类中心中选取一对应最小距离的聚类中心,若判断获知选取的聚类中心对应于低维子空间m,则将所述首个聚类中心组中低维子空间m对应的聚类中心替换为所述选取的聚类中心,并将替换后的所述首个聚类中心组作为第二聚类中心组;
S214,将低维子空间m中对应的、且未放入所述优先队列的、与所述聚类中心距离最小的聚类中心放入优先队列中,重复执行S213,直至得到的聚类中心组达到预设数量。
另一方面,本发明还提供了一种大规模高维数据快速检索系统,包括:
量化模块,用于基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;
剪枝模块,用于将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;
检索模块,用于根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所述数据作为检索结果。
优选地,所述系统还包括:训练模块,用于将训练样本集输入至乘积量化单元,基于乘积量化损失函数对所述乘积量化单元进行训练,以得到与所述训练样本集中每一训练样本对应的二进制码。
另一方面,本发明还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述的方法。
本发明提供了一种基于乘积量化与多重倒排索引的大规模高维数据近似近邻检索方法及系统,包括基于训练后的乘积量化单元,获取待检索数据对应的二进制码;将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。本发明通过提供一种基于高维数据的大规模相似性检索方法,可以大大提高检索的准确度和时间效率。本发明提供的基于非结构化数据的大规模近似近邻检索系统,通过在深度表征学习基础上将乘积量化误差最小化,显著提高了待检索数据的可量化性,从而大大提高检索的准确度和时间效率。
附图说明
图1为本发明一实施例提供的一种大规模高维数据快速检索方法的流程示意图;
图2为本发明一实施例提供的一种大规模高维数据快速检索方法的总体架构示意图;
图3为本发明一实施例提供的一种大规模高维数据快速检索方法的总体流程示意图;
图4为本发明一实施例提供的一种大规模高维数据快速检索系统的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明一实施例提供了一种大规模高维数据快速检索方法,包括:
S1,基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;
S2,将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;
S3,根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。
具体地,由于现有技术中,对高维数据进行检索时一般采用基于二值嵌入的方法,但基于二值嵌入的方法是在汉明空间中计算高维数据与预设数据库中各数据之间的距离,对该方法的优化是一个多项式复杂程度的非确定性问题(Non-deterministic PolynomialHard,NP难问题),导致该方法只能产生次优的哈希编码,而不是最优的哈希编码,进而导致该方法对高维数据的压缩效率不高,得到的检索结果的准确性也难以保证,而且此类方法无法对预设数据库中的所有数据进行排除,即没有剪枝的过程,此时直接从预设数据库中检索高维数据将会导致检索效率很低。
针对上述现有技术中存在的问题,本发明实施例中提出了基于乘积量化算法以及与其匹配的多重倒排索引单元的近似近邻检索系统,并且解决了现有技术中检索效率低下的问题。
在S1中,本实施例中的预设数据库是指需要在该预设数据库中对待检索数据进行检索,在预设数据库中包含了大量的高维数据,这些高维数据在空间中的表现形式为数据点,例如,预设数据库中的所有高维数据可以看做一个数据集合z,其中z=[z1,z2,…,zi,…],zi为z中的第i个高维数据,即为z中的第i个数据点。
乘积量化单元用于实现乘积量化算法(Product Quantization,PQ),即乘积量化单元基于乘积量化算法对输入数据进行乘积量化,将输入数据所处空间分解为M个低维子空间的笛卡尔乘积的形式,并通过K均值(K-means)聚类算法将每一低维子空间划分为K个簇,每个簇对应一个聚类中心,即通过乘积量化单元可以得到与输入数据距离最近的聚类中心。对于乘积量化单元,本发明中采用乘积量化算法,构建与输入数据对应的紧凑二进制码。当需要大量的聚类中心来准确地重构输入数据时,乘积量化是对数据量化的一个有效的解决方案。这里所说的与输入数据距离最近的聚类中心并不止一个,这是由于乘积量化单元将输入数据所处空间分解为M个低维子空间,每一低维子空间均对应K个聚类中心,所以输入数据所在空间中具有M*K个聚类中心,这些聚类中心构成一个聚类中心矩阵。
聚类中心矩阵C∈RR×MK的具体形式为一个分块对角阵,如公式(1)所示。
其中表示第m个低维子空间中的K个聚类中心的码本,即K个聚类中心的集合,Cm用于近似表示第i个数据点zi。
S1中所述的数据之间的距离或者聚类中心距离均指欧氏距离,即欧几里得距离,表示预设数据库中两个数据点之间的真实距离。由于聚类中心是指某一类中所有数据点的平均值,所以聚类中心可以是空间中真实存在的数据点,也可以是空间中没有真实存在的虚拟数据点。
对乘积量化单元进行训练得到训练后的乘积量化单元,训练后的乘积量化单元的各项参数均已确定,所以此时将待检索数据输入至训练后的乘积量化单元后,所述训练后的乘积量化单元基于乘积量化算法,将所述待检索数据在每一低维子空间中的所有分量量化至所述每一低维子空间对应的聚类中心中,此时可直接确定与待检索数据距离最近的聚类中心,即确定与所述待检索数据的每一分量距离最近的聚类中心,并采用二进制码进行标记。本发明中采用二进制码表示与待检索数据距离最近的聚类中心。
在S2中,与所述训练后的乘积量化单元匹配的多重倒排索引单元用于根据训练后的乘积量化单元得到的聚类中心矩阵,获取预设数据库中与聚类中心矩阵中每一聚类中心距离最小的数据构成的集合。这一过程实际上是缩小检索范围的过程,即剪枝过程。在后面,只需要从得到的集合中对待检索数据进行检索即可。
在S3中,根据S2得到的集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。具体地,将集合中的所有数据按照与待检索数据的距离有小到大的顺序进行排序,排序后得到排序列表,即将此排序列表作为检索结果。
本实施例中,通过训练后的乘积量化单元实现对待检索数据的乘积量化,得到待检索数据对应的二进制码,并将二进制码输入至多重倒排索引单元中,以缩小待检索数据的检索范围,最后在经过多重倒排索引单元后得到的集合中搜索待检索数据。本发明提供的基于高维数据的大规模相似性检索方法,可以大大提高检索的准确度和时间效率,节约了时间成本。
在上述实施例的基础上,本发明提供的基于高维数据的大规模相似性检索方法还包括:
将训练样本集输入至乘积量化单元,基于乘积量化损失函数对所述乘积量化单元进行训练,以得到所述乘积量化单元中的聚类中心矩阵,以及与所述训练样本集中每一训练样本对应的二进制码,完成训练。
具体地,基于乘积量化损失函数,对所述乘积量化单元进行训练,之后再使用预设数据库中的所有数据以及对应的二进制码构建多重倒排索引单元。设训练样本集中共有N个训练样本,即具有N个数据点,对于每一数据点zi,与每个数据点zi对应的二进制码表示与数据点zi距离最近的聚类中心。例如,二进制码H=[h1,h2,…,hi,…,hN],其中hi=[hi1,...,him,…,hiM]∈RMK为数据点zi对应的二进制码。him是一个k维向量,向量中的每一分量均为指示码,k维向量的性质为1-of-k,即k维向量中有且仅有一个指示码取值为1,其余指示码取值全为0,him用于指示数据点zi在第m个码本中对应的聚类中心。
乘积量化单元将输入数据所处空间分解为M个低维子空间,使每个数据点在每个低维子空间内均存在分量,即zi=[zi1,...,zim,...,ziM],其中zim∈RR/M是与第m个低维子空间相关联的数据点zi的子向量。然后,再通过K-means独立地量化每个低维子空间中的所有子向量到K个簇。乘积量化误差Q定义如下:
||him||0=1,him∈{0,1}K (3)
由于每个him都能被压缩到log2K位,故hi可被压缩到Mlog2K位。由此,我们亦可以将乘积量化误差重写为如下紧凑的矩阵形式:
其中,Q为乘积量化损失函数,zi为所述训练样本集中第i个训练样本,N为所述训练样本集中训练样本的数量,C为所述聚类中心矩阵,hi为与zi对应的二进制码。
将训练样本集输入到乘积量化单元中,使用M个独立的K-means算法求解目标函数,得到满足目标函数的聚类中心矩阵C=diag(C1,C2,...CM)和N个训练样本对应的二进制码H=[h1,...hN],所述目标函数为:
在上述实施例的基础上,在得到所述训练后的乘积量化单元后,还包括:
获取所述预设数据库中的所有数据并分别输入至所述训练后的乘积量化单元,得到每一数据对应的二进制码;
基于得到的每一数据对应的二进制码,分别获取所述预设数据库中与所述聚类中心矩阵中每一聚类中心距离最近的数据;
基于获取到的所有数据及对应的二进制码,构建与所述乘积量化单元匹配的多重倒排索引单元。
具体地,本实施例中提供的是一种构建多重倒排索引单元的方法,此方法是基于预设数据库中的所有数据,将预设数据库中的所有数据输入至训练后的乘积量化单元,得到每一数据对应的二进制码,然后基于二进制码,获取预设数据库中与每一聚类中心距离最近的数据,这实际上是基于训练后的乘积量化单元得到的所有聚类中心,对预设数据库中的所有数据进行分类,并从所有数据中选取与每一聚类中心最近的数据。根据选取出的所有数据和对应的二进制码,构建得到与乘积量化单元匹配的多重倒排索引单元。
在上述实施例的基础上,每一聚类中心对应一数据桶,所述数据桶中包含有与所述数据桶对应的聚类中心距离最近的所有数据。
具体地,每一聚类中心对应的数据桶包含的数据是与所述数据桶对应的聚类中心距离最近的所有数据,这里所说的与所述数据桶对应的聚类中心距离最近是相对于其他聚类中心而言的。
对于训练过程得到的聚类中心矩阵,共对应着M个低维子空间,对于每个低维子空间,有K个聚类中心,其中每个聚类中心均需要设定一个数据桶,这个数据桶与倒排索引的数据桶类似,这个数据桶中索引了所有在此低维子空间中与当前聚类中心最近的数据点,换句话说,这个聚类中心即为数据桶中所有数据点的近似。在对高维数据进行检索的过程中,若需返回此聚类中心,则可返回此聚类中心对应的数据桶及数据桶中包含所有的数据点,达到高效剪枝的效果。
在这里对使用多重倒排索引单元进行剪枝的过程进行详细说明。首先,对于待检索数据而言,在S1中,已将其输入到经训练后的乘积量化单元中,获取了对应的二进制码,即获取了在每个低维子空间m中,与待检索数据的数据点距离最小的聚类中心。
在上述实施例的基础上,S2中所述获取预设数据库中与所述待检索数据距离最小的数据构成的集合,具体包括:
S21,基于所述预设数据库中与所述待检索数据的每一低维子空间对应的聚类中心距离最小的聚类中心,确定预设数量个聚类中心组;
S22,获取所述预设数量个聚类中心组中每一聚类中心对应的数据桶,并提取所有数据桶中的数据,以获取所述预设数据库中与所述待检索数据距离最小的数据构成的集合。
其中,S21具体包括:
S211,将所述待检索数据所属的聚类中心组成首个聚类中心组;
S212,将每一低维子空间对应的所述聚类中心距离最小的聚类中心均放入优先队列中;
S213,从所述优先队列中的所有聚类中心中选取一对应最小的所述聚类中心距离的聚类中心,若判断获知选取的聚类中心对应于低维子空间m,则将所述首个聚类中心组中低维子空间m对应的聚类中心替换为所述选取的聚类中心,并将替换后的所述首个聚类中心组作为第二聚类中心组;
S214,将低维子空间m中对应的、且未放入所述优先队列的、所述聚类中心距离最小的聚类中心放入优先队列中,重复执行S213,直至得到的聚类中心组达到预设数量。
这里所述的预设数量可根据需要进行设定,与每一聚类中心对应的数据桶的容量大小有关,还与检索者期待的结果有关,若检索者想要进一步提高检索速度,则可将预设数量设置的较少,若检索者想要获得更准确的检索结果,则可将预设数量设置的较大。本发明在此对预设数量不做进一步限定。
这里需要说明的是,要确定与待检索数据最相近的预设数量个聚类中心组,要分为以下几个步骤:
S211,将待检索数据所属的聚类中心组成首个聚类中心组,首个聚类中心组即为与待检索数据最为相近的聚类中心组。
S2111,对每个低维子空间,让每个低维子空间中的所有聚类中心按照与待检索数据所属的聚类中心距离从小到大排序。
S212,将每个低维子空间中与待检索数据所属聚类中心距离最小的聚类中心放入优先队列中。
S213,从优先队列中取出一个距离最小的聚类中心,若此聚类中心属于m子空间,那么将m子空间中的未放入优先队列的距离最小的聚类中心再放入优先队列中,之后将待检索数据的第m个子空间中的聚类中心替换为此次取出的聚类中心,组成本次取出的聚类中心组,若取出的聚类中心组的数量达到预设数量,则结束,否则,继续执行S213。
执行完上述步骤后,可以得到多个聚类中心组,对于每个聚类中心组而言,取聚类中心拥有的桶中所有数据点的交集,得到该聚类中心组返回的数据点。最终,所有聚类中心组返回数据点的集合为此次使用多重倒排索引单元剪枝后得到的数据点集合。
图2是本发明提供的一种基于高维数据的大规模快速检索方法的总体架构图,如图2所示,将待检索数据输入至乘积量化单元后,量化后得到每一低维子空间中的K个聚类中心的码本,并获取得到对应的二进制码。将二进制码输入至多重倒排索引单元后,得到预设数据库中与所述待检索数据距离最小的数据构成的集合,也就是多个聚类中心对应的数据桶及数据桶中的数据。根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。图中最后得到的各向量即为所述集合中的所有数据,各向量对应的位置为排序的结果。
图3是本发明提出的一种基于高维数据的大规模快速检索方法的总体流程图,如图3所示,当用户请求进行高维数据检索时,根据乘积量化单元是否执行过训练过程,完成后续检索流程,训练过程及后续操作如图3流程图中内容所示。在确认乘积量化单元执行过训练过程后,获取待检索高维数据q,将q对应的二进制码输入至乘积量化单元得到二进制码,并将q对应的二进制码输入至多重倒排索引单元中,返回与q最近的若干个桶。将返回的若干个桶及桶中的数据进行重排序,将排序列表作为检索结果,返回给用户,结束检索。当用户未请求进行高维数据检索时,直接结束检索。
如图4所示,本发明另一实施例中提供了一种高维数据检索系统,包括:量化模块1、剪枝模块2和检索模块3。其中,
量化模块1用于基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;
剪枝模块2用于将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;
检索模块3用于根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所述数据作为检索结果。
具体地,在本发明实施例中,对于大规模高维数据的相似检索,首先对乘积量化单元进行训练,得到训练后的乘积量化单元,并根据训练后的乘积量化单元得到与训练后的乘积量化单元匹配的多重倒排索引单元。在对待检索数据进行检索时,量化模块1基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;利用剪枝模块2将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;最后利用检索模块3根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所述数据作为检索结果,从而得到质量更好的排序列表。
在上述实施例的基础上,所述系统还包括训练模块,用于将训练样本集输入至乘积量化单元,基于乘积量化损失函数对所述乘积量化单元进行训练,以得到与所述训练样本集中每一训练样本对应的二进制码。
具体地,本实施例中各模块的作用与处理流程与上述方法类实施例是一一对应的,本实施例在此不再赘述。
本发明提供的基于高维数据的大规模近似近邻检索系统,通过联合乘积量化与多重倒排索引,联合使用剪枝和压缩技术,从而大大提高检索的准确度和时间效率。
本发明实施例提供一种基于高维数据的大规模快速检索系统,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令以执行上述各方法实施例所提供的方法,例如包括:S1,基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;S2,将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;S3,根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:S1,基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;S2,将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;S3,根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:S1,基于训练后的乘积量化单元,获取待检索数据对应的二进制码,所述二进制码用于确定与所述待检索数据距离最近的聚类中心;S2,将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;S3,根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种高维数据检索方法,其特征在于,包括:
S1,基于训练后的乘积量化单元,获取待检索数据对应的二进制码;
S2,将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;
S3,根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所有数据作为检索结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
将训练样本集输入至乘积量化单元,基于乘积量化损失函数对所述乘积量化单元进行训练,以得到与所述训练样本集中每一训练样本对应的二进制码。
3.根据权利要求1所述的方法,其特征在于,还包括:基于训练后的乘积量化单元,获取所述乘积量化单元中的聚类中心矩阵;相应地,所述将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中之前,还包括:
获取所述预设数据库中的所有数据并分别输入至所述训练后的乘积量化单元,得到每一数据对应的二进制码;
基于得到的每一数据对应的二进制码,分别获取所述预设数据库中与所述聚类中心矩阵中每一聚类中心距离最小的数据;
基于获取到的所有数据及对应的二进制码,构建与所述乘积量化单元匹配的多重倒排索引单元。
4.根据权利要求2所述的方法,其特征在于,所述乘积量化损失函数具体通过如下公式计算:
<mrow>
<mi>Q</mi>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>N</mi>
</munderover>
<mo>|</mo>
<mo>|</mo>
<msub>
<mi>z</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>Ch</mi>
<mi>i</mi>
</msub>
<mo>|</mo>
<msubsup>
<mo>|</mo>
<mn>2</mn>
<mn>2</mn>
</msubsup>
<mo>,</mo>
</mrow>
其中,所述Q为乘积量化损失函数,zi为所述训练样本集中第i个训练样本,N为所述训练样本集中训练样本的数量,C为所述聚类中心矩阵,hi为与zi对应的二进制码。
5.根据权利要求3所述的方法,其特征在于,每一聚类中心对应一数据桶,所述数据桶中包含有与所述数据桶对应的聚类中心距离最小的所有数据;相应地,S2中所述获取预设数据库中与所述待检索数据距离最小的数据构成的集合,具体包括:
S21,基于所述预设数据库中与所述待检索数据的每一低维子空间对应的聚类中心距离最小的聚类中心,确定预设数量个聚类中心组;
S22,获取所述预设数量个聚类中心组中每一聚类中心对应的数据桶,并提取所有数据桶中的数据,以获取所述预设数据库中与所述待检索数据距离最小的数据构成的集合。
6.根据权利要求5所述的方法,其特征在于,S21具体包括:
S211,将所述待检索数据所属的聚类中心组成首个聚类中心组;
S212,将与所述待检索数据的每一低维子空间对应的聚类中心距离最小的聚类中心均放入优先队列中;
S213,从所述优先队列中的所有聚类中心中选取一对应最小距离的聚类中心,若判断获知选取的聚类中心对应于低维子空间m,则将所述首个聚类中心组中低维子空间m对应的聚类中心替换为所述选取的聚类中心,并将替换后的所述首个聚类中心组作为第二聚类中心组;
S214,将低维子空间m中对应的、且未放入所述优先队列的、与所述聚类中心距离最小的聚类中心放入优先队列中,重复执行S213,直至得到的聚类中心组达到预设数量。
7.一种高维数据检索系统,其特征在于,包括:
量化模块,用于基于训练后的乘积量化单元,获取待检索数据对应的二进制码;
剪枝模块,用于将所述二进制码输入至与所述训练后的乘积量化单元匹配的多重倒排索引单元中,获取预设数据库中与所述待检索数据距离最小的数据构成的集合;
检索模块,用于根据所述集合中每一数据与所述待检索数据的距离大小,对所述集合中的所有数据进行排序,并将排序后的所述数据作为检索结果。
8.根据权利要求7所述的系统,其特征在于,还包括:
训练模块,用于将训练样本集输入至乘积量化单元,基于乘积量化损失函数对所述乘积量化单元进行训练,以得到与所述训练样本集中每一训练样本对应的二进制码。
9.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如权利要求1至6任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711350995.4A CN107944046B (zh) | 2017-12-15 | 2017-12-15 | 大规模高维数据快速检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711350995.4A CN107944046B (zh) | 2017-12-15 | 2017-12-15 | 大规模高维数据快速检索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107944046A true CN107944046A (zh) | 2018-04-20 |
CN107944046B CN107944046B (zh) | 2019-02-05 |
Family
ID=61944348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711350995.4A Active CN107944046B (zh) | 2017-12-15 | 2017-12-15 | 大规模高维数据快速检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107944046B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256058A (zh) * | 2018-01-16 | 2018-07-06 | 山东理工大学 | 一种基于微型计算平台的实时响应大媒体近邻检索方法 |
CN109446408A (zh) * | 2018-09-19 | 2019-03-08 | 北京京东尚科信息技术有限公司 | 检索相似数据的方法、装置、设备及计算机可读存储介质 |
CN109740660A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 图像处理方法及装置 |
CN110825902A (zh) * | 2019-09-20 | 2020-02-21 | 深圳云天励飞技术有限公司 | 特征相似性搜索的实现方法、装置、电子设备及存储介质 |
CN110874385A (zh) * | 2018-08-10 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和系统 |
CN110909197A (zh) * | 2019-11-04 | 2020-03-24 | 深圳力维智联技术有限公司 | 一种高维特征的处理方法和装置 |
CN111753111A (zh) * | 2019-04-10 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 图片搜索方法和装置 |
CN113656373A (zh) * | 2021-08-16 | 2021-11-16 | 百度在线网络技术(北京)有限公司 | 构建检索数据库的方法、装置、设备以及存储介质 |
US11593412B2 (en) | 2019-07-22 | 2023-02-28 | International Business Machines Corporation | Providing approximate top-k nearest neighbours using an inverted list |
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 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100070509A1 (en) * | 2008-08-15 | 2010-03-18 | Kai Li | System And Method For High-Dimensional Similarity Search |
US20140037224A1 (en) * | 2007-08-07 | 2014-02-06 | Texas Instruments Incorporated | Quantization method and apparatus |
CN103902704A (zh) * | 2014-03-31 | 2014-07-02 | 华中科技大学 | 面向大规模图像视觉特征的多维倒排索引与快速检索算法 |
CN104765764A (zh) * | 2015-02-06 | 2015-07-08 | 南京理工大学 | 一种基于大规模图像检索方法 |
CN105117407A (zh) * | 2015-07-27 | 2015-12-02 | 电子科技大学 | 一种基于聚类的距离方向直方图的图像检索方法 |
CN107085607A (zh) * | 2017-04-19 | 2017-08-22 | 电子科技大学 | 一种图像特征点匹配方法 |
CN107315765A (zh) * | 2017-05-12 | 2017-11-03 | 南京邮电大学 | 一种大规模图片集分布式近似搜索的方法 |
CN107341178A (zh) * | 2017-05-24 | 2017-11-10 | 北京航空航天大学 | 一种自适应的二进制量化哈希编码方法及装置 |
-
2017
- 2017-12-15 CN CN201711350995.4A patent/CN107944046B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140037224A1 (en) * | 2007-08-07 | 2014-02-06 | Texas Instruments Incorporated | Quantization method and apparatus |
US20100070509A1 (en) * | 2008-08-15 | 2010-03-18 | Kai Li | System And Method For High-Dimensional Similarity Search |
CN103902704A (zh) * | 2014-03-31 | 2014-07-02 | 华中科技大学 | 面向大规模图像视觉特征的多维倒排索引与快速检索算法 |
CN104765764A (zh) * | 2015-02-06 | 2015-07-08 | 南京理工大学 | 一种基于大规模图像检索方法 |
CN105117407A (zh) * | 2015-07-27 | 2015-12-02 | 电子科技大学 | 一种基于聚类的距离方向直方图的图像检索方法 |
CN107085607A (zh) * | 2017-04-19 | 2017-08-22 | 电子科技大学 | 一种图像特征点匹配方法 |
CN107315765A (zh) * | 2017-05-12 | 2017-11-03 | 南京邮电大学 | 一种大规模图片集分布式近似搜索的方法 |
CN107341178A (zh) * | 2017-05-24 | 2017-11-10 | 北京航空航天大学 | 一种自适应的二进制量化哈希编码方法及装置 |
Non-Patent Citations (1)
Title |
---|
杜丹蕾 等: "面向图像检索的累加乘积量化方法研究", 《计算机工程》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256058A (zh) * | 2018-01-16 | 2018-07-06 | 山东理工大学 | 一种基于微型计算平台的实时响应大媒体近邻检索方法 |
CN108256058B (zh) * | 2018-01-16 | 2021-05-07 | 山东理工大学 | 一种基于微型计算平台的实时响应大媒体近邻检索方法 |
CN110874385A (zh) * | 2018-08-10 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和系统 |
CN110874385B (zh) * | 2018-08-10 | 2023-11-14 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和系统 |
CN109446408A (zh) * | 2018-09-19 | 2019-03-08 | 北京京东尚科信息技术有限公司 | 检索相似数据的方法、装置、设备及计算机可读存储介质 |
CN109446408B (zh) * | 2018-09-19 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 检索相似数据的方法、装置、设备及计算机可读存储介质 |
CN109740660A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 图像处理方法及装置 |
CN111753111A (zh) * | 2019-04-10 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 图片搜索方法和装置 |
US11593412B2 (en) | 2019-07-22 | 2023-02-28 | International Business Machines Corporation | Providing approximate top-k nearest neighbours using an inverted list |
CN110825902A (zh) * | 2019-09-20 | 2020-02-21 | 深圳云天励飞技术有限公司 | 特征相似性搜索的实现方法、装置、电子设备及存储介质 |
CN110909197A (zh) * | 2019-11-04 | 2020-03-24 | 深圳力维智联技术有限公司 | 一种高维特征的处理方法和装置 |
CN113656373A (zh) * | 2021-08-16 | 2021-11-16 | 百度在线网络技术(北京)有限公司 | 构建检索数据库的方法、装置、设备以及存储介质 |
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 |
Also Published As
Publication number | Publication date |
---|---|
CN107944046B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107944046B (zh) | 大规模高维数据快速检索方法及系统 | |
JP7055187B2 (ja) | ディープバイナリハッシュおよび量子化を介した効率的なクロスモーダル検索 | |
Wu et al. | Multiscale quantization for fast similarity search | |
Jegou et al. | Product quantization for nearest neighbor search | |
Zhou et al. | Towards codebook-free: Scalable cascaded hashing for mobile image search | |
US11023473B2 (en) | Recurrent binary embedding for information retrieval | |
Xu et al. | Online product quantization | |
CN109508374B (zh) | 基于遗传算法的文本数据半监督聚类方法 | |
US10990626B2 (en) | Data storage and retrieval system using online supervised hashing | |
CN103902704A (zh) | 面向大规模图像视觉特征的多维倒排索引与快速检索算法 | |
CN109740660A (zh) | 图像处理方法及装置 | |
CN109145143A (zh) | 图像检索中的序列约束哈希算法 | |
Jiang et al. | xLightFM: Extremely memory-efficient factorization machine | |
US11874866B2 (en) | Multiscale quantization for fast similarity search | |
CN111177435A (zh) | 一种基于改进pq算法的cbir方法 | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
CN117494815A (zh) | 面向档案的可信大语言模型训练、推理方法和装置 | |
CN107944045B (zh) | 基于t分布哈希的图像检索方法及系统 | |
Xiang et al. | GAIPS: Accelerating maximum inner product search with GPU | |
CN110175287B (zh) | 一种基于Flink的矩阵分解隐式反馈推荐方法和系统 | |
CN109446408B (zh) | 检索相似数据的方法、装置、设备及计算机可读存储介质 | |
Liu et al. | Generalized residual vector quantization and aggregating tree for large scale search | |
CN107577690B (zh) | 海量信息数据的推荐方法及推荐装置 | |
Thonglek et al. | Automated quantization and retraining for neural network models without labeled data | |
Zhao et al. | MapReduce-based clustering for near-duplicate image identification |
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 |