CN113360546A - 一种基于超立方体均衡划分的近似近邻元素检索方法及系统 - Google Patents
一种基于超立方体均衡划分的近似近邻元素检索方法及系统 Download PDFInfo
- Publication number
- CN113360546A CN113360546A CN202110721219.0A CN202110721219A CN113360546A CN 113360546 A CN113360546 A CN 113360546A CN 202110721219 A CN202110721219 A CN 202110721219A CN 113360546 A CN113360546 A CN 113360546A
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- hypercube
- query
- hash function
- 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 81
- 238000005457 optimization Methods 0.000 claims abstract description 24
- 238000000638 solvent extraction Methods 0.000 claims abstract description 20
- 238000010276 construction Methods 0.000 claims abstract description 10
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000005192 partition Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 14
- 238000000513 principal component analysis Methods 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 11
- 230000001131 transforming effect Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 52
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000009826 distribution Methods 0.000 description 25
- 101000833181 Schizosaccharomyces pombe (strain 972 / ATCC 24843) Glycerol dehydrogenase 1 Proteins 0.000 description 18
- 201000011243 gastrointestinal stromal tumor Diseases 0.000 description 18
- 238000002474 experimental method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000007418 data mining Methods 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012847 principal component analysis method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002123 temporal 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于超立方体均衡划分的近似近邻元素检索方法及系统,把哈希函数簇构造问题转化为最优化问题,通过最优化问题的求解为所选维度上的哈希函数设置不同的分割平面间隔r,以确保哈希函数簇能够对数据空间进行均衡分割,且每一个超立方体具有接近的体积大小和近似大小的边长。该方法输入为期望哈希桶数,因此生成哈希桶数量可控,且不会生成过多无用的哈希桶,有利于提高哈希结构的利用率,减少哈希编码的长度;数据空间的均匀划分可以提供更灵活、高效的查询。最后,实验结果表明,本文所提出的HVBLSH算法具有很高的索引编码效率,哈希码计算效率,能同时兼顾效率、精度和召回率,能够避免F1陷阱,在多个领域的数据集中表现出优秀的性能。
Description
技术领域
本发明涉及机器学习和数据挖掘领域,尤其涉及一种基于超立方体均衡划分的近似近邻元素检索方法及系统。
背景技术
最近邻检索(NNS:Nearest Neighbors Search)是指,在d维欧几里得空间Rd中,给定 N个点的数据集P,通过对数据集P进行预处理,以支持最近邻元素的快速检索。在高维海量数据集上的最近邻查找是一项意义重大且具有高度挑战性的工作,它被广泛应用于机器学习和数据挖掘的相关领域,例如分类技术、推荐系统和信息检索等。由于在高维大规模数据上检索最近邻元素需要花费大量的时间,退而求其次,常常以检索近似最近邻元素替代最近邻元素检索。
在低维数据空间中,研究人员陆续提出K-D树、R树、SR树等方法,为近邻数据检索提供了有效的解决方案。但是在高维海量数据空间中,最近邻查找会导致查询时间和空间消耗呈指数式增长,也就使现有一些低维度数据检索方法无法满足数据检索要求。针对该问题, Indyk和Gionis等研究人员提出一种基于局部敏感哈希(LSH:Locality SensitiveHashing) 的近似近邻元素检索方法,众多研究人员基于该方法进行改进,但是,他们仍旧存在如下问题:
(1)空间划分依据问题。研究人员常基于一些经验和直觉启发,从而提出基于LSH的哈希函数构造,但是到底是什么因素最终影响了K-NN检索的精度却仍然未知。例如,DSH和 Neural LSH认为对空间的均匀分割有利于提高算法的精度;而GLDH则认为在低密度区域进行平面分割能够获得更好的效果。这些方法并没有真正说明这些划分依据在K-NNS中的影响。
(2)编码长度确定问题。在具体的基于LSH的NNS算法应用中需要进行编码长度的设置,而数据分布的多样性常会导致大量空哈希桶的出现,以及哈希桶数据分布的不均匀等问题,而编码长度和哈希桶数量之间并没有确定的数值关系,因此也就导致在应用中的编码长度设置困难。虽然,研究人员在论文的实验中都设置了一定范围的码长进行精度的对比,但是,如何设置合理的码长却仍是一个未解之谜。
(3)方法优劣对比问题。当前,大多数研究在对比算法优劣时采用相同编码长度情况下 F1值对比的方式,然而本发明研究却发现F1陷阱(即哈希桶数据分布极不均衡从而导致高精度、高F1的情况)的存在;因此,在进行不同算法对比时,需从多个维度关系上考虑算法的优劣对比,更进一步还需要针对具体实验数据集的特征进行有针对性的分析。
发明内容
本发明的目的在于提供一种基于超立方体均衡划分的近似近邻元素检索方法及系统。
本发明采用的技术方案是:
一种基于超立方体均衡划分的近似近邻元素检索方法,其包括以下步骤:
步骤1,哈希函数簇构造:分析数据并最终生成每一个哈希函数参数;具体步骤如下:
步骤1-1,对数据进行采样,得到采样数据;
步骤1-2,对采样数据进行主成分分析,得到特征向量组成的变换矩阵Md×d;
步骤1-3,利用矩阵对样本数据进行变换得到变换后的样本数据;
步骤1-4,分析变换后数据每个维度上的下界和上界(LB(lower bound),UB(upperbound)),以期望子空间数量为输入利用最优化算法求每个主成分方向的分割超平面数得到哈希函数的参数;
步骤2;利用设置了参数的哈希函数簇对新获取的数据进行哈希编码;对所要存储数据利用Md×d进行变换,再用构造的哈希函数簇对变换结果计算哈希编码并把数据ID存入对应编码的哈希桶;
步骤3,数据查询时先对查询对象利用Md×d进行变换,再利用哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,最后逐个计算候选数据集与查询对象的实际距离,排序并返回查询结果。
进一步地,步骤1-3中变换后的数据X′n×d=Xn×d·Md×d,其中x=[x(1),…,x(i),…,x(d)] 是数据集X’中的一个数据。
进一步地,步骤1-4中哈希函数的定义如下式:
其中LBj=min{x(j)|x∈X′}表示X’中第j维值的下界,UBj=max{x(j)|x∈X′}表示X’中第j维值的上界,表示把变换后的数据X′的第j维分为mj等份,其中每一份宽度为wj,据此,可以把该维度上的数据设置不同的哈希编码。
具体地,哈希函数簇H={h1,…,hj,…,hk},包含k个哈希函数,k≤d,k由最优化算法确定。假定hj(x):x→[1..mj]表示一个哈希函数,则最后形成的哈希编码为H(x)= [h1(x),h2(x),…,hk(x)],哈希函数实现从变换后数据到整数的映射,其结果范围为[1..mj]。直观上理解为:变换后数据的第j维上,哈希函数hj(x)利用mj-1个平行的平面把数据分为mj份。
进一步地,步骤1-4最优化问题的目标函数如下:
具体地,通过设定子空间划分数量期望为常数C。假设mj表示第j个维度方向上划分的区间数,且该维度方向上的区间具有相同的间隔,最终,本发明把哈希函数中参数mj的设置抽象为最优化问题,采用超立方体各维长度的方差最小为目标函数,同时可以注意到,在对各个维度数据进行划分时,要确保每次划分相同个数的超立方体的限制较大,特别是要准确的设定C值是非常困难的。为此,本发明把对C的约束加入到最优化公式中,并对与C的偏离值增加一定的惩罚,从而可以得到最优化问题的目标函数。
进一步地,通过设置的初始估计值来代替实际值;再利用预估求解出一组m[.]后,再计算此时的并以该替代预估值再进行一遍m值求取,从而期望[m1,m2,…,md]更加准确;反复迭代,直至不再变化或者达到最大迭代次数。
L(j,C,t)表示通过设置合理的[m1,m2,…,mj],使得在维度为j,划分目标超立方体数量为C,已经划分得到超立方体数量t情况下的最小代价/损失。式(6)中j表示当前正在处理的维度,C表示划分期望的超立方体积数量,t表示已经划分得到超立方体数量;Kj是第j维度可取的最大值,可设置其值为:其中常数a为1.5。
一种基于超立方体均衡划分的近似近邻元素检索系统,其包括哈希函数构造单元、数据存储单元和数据查询单元,哈希函数构造单元用于分析数据并最终生成每一个哈希函数参数;数据存储单元用于对所要存储数据利用Md×d进行变换再用构造的哈希函数簇对变换结果计算哈希编码,并把数据ID存入对应编码的哈希桶;数据查询单元用于数据查询阶段对查询数据利用Md×d进行变换,再利用哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,最后逐个计算候选数据集与查询对象的实际距离,排序并返回查询结果。
本发明采用以上技术方案,把哈希函数参数设置转化为最优化问题;通过输入期望有效哈希桶数,利用最优化求解确保划分超立方体的均衡性,以提升查询精度;哈希函数对数据的各正交方向采用不同的参数设置,从而避免产生过量的哈希桶,使数据被过度划分。理论上证明了分割空间保持各维度边相近的必要性,并通过实验验证了定理的正确性,为利用最优化算法获取高维数据空间均衡分割提供了理论依据;理论上证明了划分位置与K近邻检索精度的关系,通过实验验证了定理的正确性,并分析了精度、召回率和效率之间的平衡关系,为本发明高维数据空间划分方法提供了理论依据。本发明的HVBLSH方法可自动进行参数设置,特别适用于各维度上分布范围有显著差异的数据,能够同时取得高精度、良好召回率和效率的平衡;对照实验数据和理论证明,分析了现有一些方法获得较高K-NN检索精度的根本原因,为进一步算法对比,以及新方法的提出指明了方向。
附图说明
以下结合附图和具体实施方式对本发明做进一步详细说明;
图1为HVBLSH大规模高维数据检索总体框架示意图;
图2为近似数量的有效哈希桶情况下不同数据集中哈希桶数据分布情况对比示意图;
图3为在MNIST、FMA、SIFT和GIST四个数据集上的实验对比图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图对本申请实施例中的技术方案进行清楚、完整地描述。
如图1至图3之一所示,如图1所示,本发明所采用的HVBLSH检索系统的总体框架,该系统一共包含三个部分:哈希函数构造、数据存储和数据查询,其中:(1)哈希函数构造过程是指分析数据,并最终生成哈希函数参数的过程,其步骤包含:(a)对数据进行采样,得到样本数据;(b)对采样数据进行主成分分析,得到特征向量组成的变换矩阵Md×d;(c)利用矩阵对样本数据进行变换,得到变换后的样本数据;(d)分析变换后数据每个维度上的LB(lower bound),UB(upper bound),以期望子空间数量为输入,利用最优化算法求每个主成分方向的分割超平面数m;(d)最终得到哈希函数的参数;
(2)数据存储过程中,首先对所要存储数据利用Md×d进行变换,再用构造的哈希函数簇对变换结果计算哈希编码,并把数据ID存入对应编码的哈希桶;
(3)数据查询阶段,首先对查询数据利用Md×d进行变换,再利用哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,最后逐个计算候选数据集与查询对象的实际距离,排序并返回查询结果。
下面就本发明的具体原理做详细的说明:
主成分分析(Principal Component Analysis:PCA)是一种降低数据维度的方法,该方法把大规模高维数据集降维为仍旧包含绝大部分数据信息的低维度数据,从而使数据集更加精简。这个过程虽然会有部分精度上的损失,但是更精简的数据集更容易探索和可视化,并且对于机器学习算法来说,分析数据更容易和更快速。本发明采用主成分分析法对初始数据进行分析,从而得到不相关的主成分。
设数据集为通过PCA过程中生成的协方差矩阵可以计算得到特征值[λ1,…,λd],特征值对应的特征向量可组成矩阵Md×d,其中那么变换后的数据X′n×d=Xn×d·Md×d。x=[x(1),…,x(i),…,x(d)]是数据集X’中的一个数据,哈希函数簇 H={h1,…,hj,…,hk},包含k个哈希函数,k≤d,k由最优化算法确定。
假定hj(x):x→[1..mj]表示一个哈希函数,则最后形成的哈希编码为H(x)= [h1(x),h2(x),…,hk(x)],哈希函数实现从变换后数据到整数的映射,其结果范围为[1..mj]。直观上理解为:变换后数据的第j维上,哈希函数hj(x)利用mj-1个平行的平面把数据分为mj份。哈希函数的定义如下式:
其中LBj=min{x(j)|x∈X′}表示X’中第j维值的下界,UBj=max{x(j)|x∈X′}表示X’中第j维值的上界,表示在X′中第j维上把变换后的数据分为mi等份,其中每一份宽度为wj,据此,可以把该维度上的数据设置不同的哈希编码。
利用哈希函数公式(1)计算哈希编码的过程可以分为两步:
(1)利用矩阵Md×d进行数据变换。在通常情况下利用PCA得到的特征向量形成的矩阵是 d*d的,但是从算法1(最优化算法)中可知,最优化算法得到的数据划分方法通常只有前面部分特征值较大的少数方向被利用,并且划分数量大于2,这就使得实际需要划分的数据维度数量k远远小于d,所以在进行数据向量变换时,可以只关注矩阵的前k列,即Md×k,因此,步骤(1)的数据变换运算的时间复杂度为O(kd);
(2)利用哈希函数计算哈希编码。由于每位哈希编码计算只需对一个主成分上的数据进行计算,其时间复杂度为O(1),k位哈希编码计算时间为O(k)。
把变换和哈希编码计算时间相加可以知道,一个向量计算哈希编码的时间复杂度为 O(kd),与经典哈希函数计算哈希编码的时间复杂度为相当。由此可以看出,本发明哈希编码的计算并不会引起计算量的增加;在实际应用中,达到相同划分效果的情况下,本发明方法需要的编码长度更是远远小于基于超平面划分的方法。
参数设置的目标函数构建:从上述哈希函数的描述中可以看出,哈希函数最多为d个,其中d是数据的维度,哈希函数需要进一步确定的参数是[m1,…,mj,…,mk],mj≥1。一种高维超平面的划分,若其划分得到的超立方体各个维度上的边长尽可能接近,那么该划分将具有更高的检索精度。为此,本发明把该划分问题建模为一个在高维空间划分超立方体,且要求超立方体各维度边长近似,体积均衡的最优化问题,求解划分的过程也就是求解最优化问题。
为了使空间划分得到的超立方体各维度边长,各立方体体积均衡,且避免产生太多的子空间划分,因此,通过设定子空间划分数量期望为常数C。假设mj表示第j个维度方向上划分的区间数,且该维度方向上的区间具有相同的间隔,最终,本发明把哈希函数中参数mj的设置抽象为最优化问题,采用超立方体各维长度的方差最小为目标函数,同时可以注意到,在对各个维度数据进行划分时,要确保每次划分相同个数的超立方体的限制较大,特别是要准确的设定C值是非常困难的。为此,本发明把对C的约束加入到最优化公式中,并对与C 的偏离值增加一定的惩罚,从而可以得到最优化问题的目标函数如下:
利用动态规划实现参数设置:从上式(2)可以看出,[m1,m2,…,md]与形成了相互依赖的关系,需确定[m1,m2,…,md]才能确定反过来又会影响到损失函数的计算,从而影响 [m1,m2,…,md]值。为此,本发明先以估计的方式设置的初始值,通过估计值来代替实际值(如下公式);再利用预估求解出一组m[.]后,再计算此时的并以该替代预估值再进行一遍m值求取,从而期望[m1,m2,…,md]更加准确;反复迭代,直至不再变化或者达到最大迭代次数。预估以及根据前一轮迭代求公式如下。
L(j,C,t)表示通过设置合理的[m1,m2,…,mj],使得在维度为j,划分目标超立方体数量为C,已经划分得到超立方体数量t情况下的最小代价/损失。
为了避免划分空间数量超过C导致出现负数,设置划分空间最大可以达到期望空间的两倍,C2初始等于2*C,并且消除公式中的第三个维度t,设计得到算法1。Lj,2*C数组存储的每个元素包含{loss,k}两个部分,分别存储当期状态下的loss,以及此时j维度划分区间数量;该数组在应用前需要把所有值初始化为-1。
算法1:最小损失minLoss
输出:已经处理完d-j维度后,还可以划分C2情形下的最小损失。
算法2:构造维度划分CreatePartition
输入:期望划分超立方体数C,各组成份的上下界LB[],UB[]
输出:当前各维度的划分数m[..]
算法3:构造维度划分CreateMArray
输入:最小损失数组L,当前维度j,当前剩余可用划分C2
输出:当前各维度的划分数m[..]
CreateMArray(L[][],j,C2,m[])
if(j<0)return
m[j-1]=L[j,C2,t].k
CreateKArray(L,j-1,ceil(C/m[j-1]))
本发明使用动态规划方法实现算法1(minLoss),其本质是填写数组L,L共有d*2C个元素,每个元素进行赋值需要K[m]次计算,从而找到最小值,所以其时间复杂度为 O(d*C*max(K[.]))。算法3(CreateKArray)根据L进行m的构造,其时间复杂度为O(d)。
算法2(CreatePartition)首先进行w以及相关数据的初始化,时间复杂度为O(d*2C),之后进行迭代,每次迭代内设置K的时间复杂度为O(d),调用算法1和算法3的时间复杂度为O(d*C*max(K[.])+d),最后重新计算w的时间复杂度为O(d);最终可以得到算法2的时间复杂度为O(20*(d*C*max(K[.])+d)))=O(d*C*max(K[.]))。由于算法2中的可用分割空间数量C2是按照倍数进行缩小的,所以数组中大部分空间都是不需要填写的,实际的时间复杂度会远远低于理论上的时间复杂度。例如C2取100,K[j]为3,那么只需要求L(j-1,100)、 L(j-1,50)以及L(j-1,34),以此类推,这中间大量的数组元素是无需进行计算的。
在空间上,则需要一个二维数组进行数据的存储,所以其空间复杂度为O(d*2C)。由于该数组所存储的是稀疏矩阵,所以可以利用哈希表进行数据的存储,从而节省空间上的开销,但是,时间复杂度却会有少量的增加。
下面就本发明算法与现有技术其他算法的对比实验进行详细说明;
在实验部分,本发明把HVBLSH与其他算法在数据空间划分的均衡性上加以对比,说明了 HVBLSH能够实现有效的空间划分;之后,在K-NN检索效率和检索精度两方面与其他算法进行了对比,说明了HVBLSH算法具有较高的效率,并且能够同时兼顾精度和召回率。
实验设置:对于K-NN检索而言,K设置为100,表示要进行100最近邻元素的检索。本发明对每个数据集设置0.2%N次查询,在数据分析阶段则利用随机采样10%的数据进行数据特征分析,以提高效率。
求数据集各维度上数据值的最大值(UB)、最小值(LB)时,为了避免少量异常点严重偏离整体数据范围对算法的影响,所以本发明分别设置UB和LB为对应维度所有元素值的第2%分位值与98%分位值,这两个值的些微变化不会对实验结果造成明显的影响。这样设置也能够符合大多数数据集的边缘元素都较为稀疏的事实,能够更进一步确保分割各超立方体包含元素的均衡性。
本发明挑选了不同领域中的4个大规模高维数据集进行对比实验,数据集如表1所示:
表1实验数据集
本发明挑选PCAH、DSH、KLSH、GLDH和E2LSH等5种相关算法进行对比.
为了对比各类方法对数据的划分效果,本发明首先分析数据划分的均衡性。对均衡性分析中,本发明采用有效哈希桶数量作为参照NVB,其原因包含两个方面:首先,对于不同算法,其哈希编码的各数据位含义不同,例如E2LSH的每一位哈希编码是整数,PCAH的每一位编码是0/1,相同编码长度对应的哈希桶数量相差巨大;其次,即便都是以超平面分割为基础的算法,在相同编码长度情况下,其生成的有效哈希桶数量也常差别巨大。本发明对PCAH、DSH、 GLDH和E2LSH设置不同的编码长度,利用哈希函数把数据存入哈希结构,之后,统计哈希结构中有效哈希桶数量,并对所有有效哈希桶中包含的元素数量进行分析。
通过设置期望超立方体数量C,本发明算法将会计算不同划分方法和编码长度,利用构造的哈希函数把数据投入哈希结构的桶中。对比时,通过找到各种方法有效哈希桶数量最接近的哈希结构,再进行哈希桶包含元素数量分析对比。如图2中不同曲线反映的是桶中元素数量小于x的桶中包含元素个数之和占所有元素的比例,其定义如下式所示:
相关曲线越平滑,则说明哈希结构中的有效哈希桶中元素数量分布范围越广,曲线越陡,则说明哈希结构的有效哈希桶中包含的元素数量分布越接近。例如,在MNIST数据集中,当 PCAH、E2LSH、DSH、GLDH、KLSH和HVBLSH的NVB分别为65,56,65,65,65和65时,E2LSH中存在一个包含元素数量最多的桶,其所包含的元素数为30196,占了所有元素的50%以上,而PCAH、DSH、GLDH、KLSH、HVBLSH形成哈希结构的桶中包含最多元素个数分别为2371,5338, 5037,4279,2833,明显体现了这PCAH、HVBLSH具有更加均匀分割数据的能力。同样在MNIST 数据集中,当E2LSH的NVB为383时,E2LSH超过一半的数据集中在容量超过2500的哈希桶中,其中最大的一个哈希桶中包含了全部数据的近20%。其他几个数据集上的实验也揭示了同样的问题,这充分说明了E2LSH方法在进行数据空间分割时的随机性,从而导致分割的超立方体中包含数据严重不均衡。
DSH方法对数据空间的分割随着数据集不同而产生巨大的差异。例如,在MNIST中,DSH 方法对数据空间划分得到哈希桶中元素数量分布空间虽然比PCAH和HVBLSH方法更大,但总体上优于E2LSH方法。在FMA、SIFT和GIST三个数据集中,DSH方法对数据空间划分导致数据集在各个子空间的分布极不均匀,例如在SIFT中,当DSH的NVB分别为33时,DSH的哈希结构中存在一个包含元素数量最多的桶,其所包含的元素数为241852,约占所有元素的四分之一。在GIST中,当DSHNVB为736时,DSH中存在一个包含元素数量最多的桶,其所包含的元素数为148132,占比约为所有元素的15%,在736个哈希桶中,最大2%的哈希桶(15个哈希桶)所包含的元素为646121,占所有元素的64.6%。与之对应,HVBLSH方法在相同状况下,最大容量的2%哈希桶仅占所有数据元素的22%,约为DSH的三分之一。
GLDH方法对数据的划分则显示出极大的不稳定性。例如,在MNIST中,NVB分别为65,494时,其最大哈希桶中的元素数量分别为5037,3247,而当NVB为1433时,最大桶元素数量6487。在取更大编码长度时,GLDH的有效哈希桶数量不再随之有效增长,所以Fig.7(d) 中没有显示GLDH的曲线,相同的情况也出现在FMA数据集种。在SIFT数据集中,当GLDH的 NVB为56,483,3242和21409时,其对应最大哈希桶元素数量占所有元素比例分别为27.8%,13%,7.7%和2.4%。在同样数据集中,HVBLSH算法在NVB为65,513,4003和28413时,其对应最大哈希桶元素数量占所有元素数量的比例仅为7.8%,2.4%,0.8%和0.4%。从中可以很明显的看出HVBLSH具有更加均衡划分数据空间的能力。
KLSH方法对数据空间的划分因数据集而异,他在MNIST、SIFT和GIST上展现出较好的均衡分割数据空间的能力,而在FMA上则未能很好的实现数据的均衡划分。例如,在GIST数据集上,NVB为65时,KLSH展现出良好的均衡划分数据的能力,其最大的10%哈希桶(6个哈希桶)元素占比为21.4%,而相同条件下,HVBLSH最大的10%哈希桶元素占比为30.2%。同样在GIST数据集上,NVB为32445时,KLSH展现出良好的均衡划分数据的能力,其最大的10%哈希桶(6个哈希桶)元素占比为20.8%,而相同条件下,HVBLSH的NVB为33883时,最大的10%哈希桶元素占比为14.9%。二者都展现出良好的划分均衡性,但是随着NVB的增长,HVBLSH更加能够保持均衡的划分。在FMA数据集上,KLSH对其划分则较为不均衡,在四种情况的对比下,其最大哈希桶元素数量为22397,20191,7667,4398,而HVBLSH的最大哈希桶元素数量为11811,4121,1209,385。从以上分析可以看出,HVBLSH具有更加均衡划分数据空间的能力。
在四种方法中,PCAH和HVBLSH展现了最好的数据空间划分均衡性。例如在GIST数据集中,当GLDH、PCAH、KLSH、E2LSH、DSH和HVBLSH的NVB分别为4295,4097,4097,3879, 3134和3758时,其最大哈希桶包含数据分别为80671,1978,14368,123744,72617,6508, PCAH和HVBLSH明显优于其他两种方法。从总体上看,PCAH方法在数据空间划分的均衡性上体现更好,其主要原因在于,PCAH方法对中心位置的各正交方向设置分割超平面,从而形成对数据空间的分割,只要待分割数据空间具有较好的对称性,那么其方法便能实现对数据空间的较均匀划分。但是PCAH方法并没有考虑到某一方向上数据区间大,需要多次划分增加划分空间各维度上的均衡性,所以,PCAH方法尽管得到了最均匀的数据空间划分,却无法体现出近似近邻查询精度的最优性。
对于哈希函数而言,若其对数据空间的分割无法做到尽量均衡,则容易导致查询方法由于数据分布的极不均衡而表面上展示出很高的查询精度和召回率,但是其查询效率却与暴力搜索无异,本发明称这为F1陷阱。例如GIST数据集上,E2LSH在NVB为61时,其最大哈希桶包含元素为619809,从而导致查询时间的消耗巨大,完全丧失了基于LSH进行数据检索的高效性。同样的实例可以从图2中列举出许多,充分说明了一些基于LSH的查询方法虽然获得了表面上的高精度和召回率,但其本质上却退化为了暴力搜索,丧失了基于LSH数据检索方法应用的初衷。
检索效率与精度实验对比:HVBLSH算法直接输入数据空间分割的期望子空间数C,之后利用算法进行合理的参数选择,并进行划分数据空间的构造。为了检验本发明算法的有效性,所以C设置间隔较为密集,在实验中也展示出本发明算法更多的数据散点。考虑到各种算法划分空间方法的多样性,所以不采用基于相同编码长度对比的方式,而是基于有效哈希桶数或查询比较元素数量的对比,并用散点的方式把相关数据展示到图中进行简单对比。为此,本发明为每个数据集上的查询结果构建三个关系图,以反映不同算法的效率、精度、和数据空间分割的有效性。
有效桶数量与查询比较元素数量关系:查询比较元素数量是指通过M次K-NN查询,统计查询匹配的哈希桶中包含元素数量的均值,关系NVBVS AgvB(M,K) 反映了哈希结构的桶中元素分布的均匀性,以及查询的效率。在同一有效桶数量的情况下,其查询比较元素数量越小,则说明了在M次查询中,对应哈希桶中的元素数量均值更少,则查询效率更高。
若用单独使用有效桶数量与F1值关系考察一个算法的好坏,又容易落入F1值陷阱,即在相同有效哈希桶数量情况下,数据分布越不均匀,则越可能得到较大的F1值。为此,本发明还将利用查询比较元素数量与F1值之间的关系作算法的进一步比较。
查询比较元素数量与F1值之间的关系:查询最终定位到某个哈希桶后,需要对哈希桶中所有元素进行距离计算并排序,再返回K个最近邻元素作为K-NN的查询结果,查询比较元素数量即为桶内元素数量,关系AgvQ(M,K)VSF1反映了在相同查询比较元素数量情况下,算法的F1的情况,若F1值越高,则说明哈希桶中含有近邻数据比例越高,算法对数据空间的划分越有效。
本发明希望一个好的算法,不但要求其能够实现数据空间的均衡划分,以实现查询效率的提高,避免部分查询退化为暴力搜索。若划分的子空间各维度更加均衡,那么也就能够获得更加高的检索精度,说明划分的有效性。
本发明在MNIST、FMA、SIFT和GIST四个数据集上进行实验,并分别构建了HVBLSH、DSH、 PCAHE2LSH、KLSH和GLDH六种方法在各个数据集上的结果对比,具体如图3所示。
算法在MNIST、FMA、SIFT和GIST四个数据集上的实验对比图。(a)NBBVS AgvB(M,K)on MNIST;…
首先看关系NVBVS AgvB(M,K),MNIST、FMA、SIFT和GIST四个数据集上的实验结果如图3(a,d,g,j)所示,从图中可以看出PCAH和HVBLSH方法在具有相同有效桶数量的情况下,其M次查询桶中平均包含元素数量更少。由于PCAH是从数据中心点进行各方向的划分,所以具有比HVBLSH更好的效果;而E2LSH采用随机划分的方法,其数据分布更加不均匀,也导致了其查询更加低效。,在MNIST、FMA和SIFT数据集上,在相同有效哈希桶数量情况下,HVBLSH的平均查询元素数量最少只有DSH和E2LSH的10%;而在GIST数据集上,HVBLSH的平均查询元素数量最少只有E2LSH的5%;在SIFT和GIST数据集上,HVBLSH的平均查询元素数量大都只有GLDH的10%,在其他两个数据集上,HVBLSH也明显具有更小的平均查找元素;在MNIST和GIST数据集上,KLSH与HVBLSH具有相近的平均查找元素,但是在另外两个数据集上,HVBLSH 则具有明显更小的平均查找元素。总体上看,在相同有效桶数量情况下,查询效率关系为: PCAH>=HVBLSH>=(KLSH,DSH,GLDH,E2LSH)。
其次,本发明观察MNIST、FMA、SIFT和GIST四个数据集上展示NVBVS F1之间的关系,如图3(b,e,h,k)所示。在MNIST,SIFT和GIST数据集中,KLSH的分布较为均衡,但是其F1 明显小于具有相近分布情况的PCAH和HVBLSH。在有效桶数较小时,E2LSH具有较好的F1,然而当有效桶数量较大时,E2LSH反而展示了最低的F1值。FMA、SIFT和GIST数据集中,在相同有效桶数量情况下,PCAH的F1值明显差于其他方法,其主要原因在于FMA数据特征,其前三主成分占比达90%,说明其数据呈长条形分布,PCAH方法的数据分割导致了分割得到的超立方体均呈现长条形分布,这也导致其查询精度的降低;而HVBLSH虽然也利用了PCA,但是避免了长条形超立方体的产生。E2LSH、DHS和GLDH虽然展示了更优的F1值,但是在相同有效哈希桶情况下F1值的高低基本上与哈希桶数据分布均衡性相反,哈希桶数据分布越均衡,F1值越低。NVBVS F1关系没有考虑到数据分布的不均衡性,F1值的表现更多源于其不均衡的哈希桶元素分布,这也再次说明了F1陷阱的存在。从这里也可以看出,由于F1陷阱的存在,现有一些研究论文中对比相同编码长度下的F1值并不合理,容易误导一些方法的评价。综上所述分析,该关系还从多个方面印证了本发明的三个定理。
最后,本发明观察实验展示的AgvQ(M,K)VS F1关系,MNIST、FMA、SIFT和GIST四个数据集分别对应图3(c,f,i,l)。从图中可以看出,在查询比较元素数量相同的情况下,本发明算法HVBLSH是所有对比算法中最好的,而E2LSH则表现最差。在MNIST数据集中,HVBLSH的F1值是E2LSH方法的2到3倍;HVBLSH的F1明显优于PCAH,在相同AgvQ(M,K)时,例如HVBLSH的AgvQ(M,K)=28时,其F1=13.6%,明显优于PCAH的AgvQ(M,K)=30时,F1=7.9%,随着比较元素数量越大,他们的F1绝对值提高越多;与DSH相比,HVBLSH总体上F1值比DSH高0.02左右,提高约20%;与KLSH相比,当AgvQ(M,K)=70时,HVBLSH的F1=14.79%明显高于KLSH的5.3%;GLDH划分得到的空间数量较少,集中于AgvQ(M,K)值较大的区域,其F1 也不如本发明算法。对于FMA数据集,FMA的数据特点展示了其数据最明显长条形分布;而PCAH方法分割得到的长条形超立方体导致其在相同比较元素情况下的F1值最小;相比DSH、E2LSH、KLSH和GLDH,HVBLSH的F1值有明显的提高,其值随着查询比较元素数量从200到30000,其F1值比DSH、E2LSH、KLSH和GLDH提高值介于0.12到0.02之间。在SIFT和GIST 数据集中,HVBLSH和PCA方法的结果最为接近,这进一步说明了PCA方法受数据分布的显著影响;同时,DSH、E2LSH、KLSH和GLDH明显不如HVBLSH,HVBLSH的F1值比DSH的F1值普遍高0.08到0.01之间,最高提高了50%;而HVBLSH的F1值比E2LSH的F1值普遍高0.2到 0.04之间,最高提高了200%以上,且随着查询元素数量越大,F1提高越大,KLSH和GLDH的效果则介于E2LSH和DSH之间。AgvQ(M,K)VS F1关系的实验结果充分说明了HVBLSH方法构造的超立方体具有最高的质量,在哈希桶包含相同数量元素的情况下,其含有K-NN元素比例最高。
从上述分析可以看出,HVBLSH可以让数据集划分的超立方体具有更加均匀的数据分布,从而确保算法在相同有效哈希桶情况下具有更好的检索效率。从有效哈希桶数量与F1之间的关系可以看出,该指标容易受到哈希桶数据分布均衡性的影响,从而导致算法衡量F1陷阱,若能够结合哈希桶数据分布一起查看,则可以在一定程度上反映出算法的查询精度。最后,查询比较元素数量与F1的关系则能够比较全面的反映各种方法的优劣,可以确保在具有相同查询效率的情况下算法的检索效果,从这一方面看,HVBLSH方法则很好的实现了效率和精度的综合考虑,展现出良好的可用性。
在当前5G通讯技术快速发展的大环境下,云计算、物联网、大数据技术等诸多领域都会对大规模的高维数据的快速、准确检索提出更高的要求。构建一个性能良好的大规模高维数据索引结构将对具有高维度、多分布特性、海量数据的领域应用是非常重要的工作。本发明首先从理论上探索研究影响K-NN检索精度的基本因素,以及精度与检索效率之间的关系,然后提出一种基于超立方体均衡划分的近似近邻元素检索系统(HVBLSH)。该算法利用最优化方法求解各维度方向边长均衡的超立方体问题,实现构造哈希函数参数设置,以确保划分的超立方体具有相似空间大小,更好保证数据的均匀划分。实验从有效桶数量与查询比较元素、有效桶数量与F1、查询比较元素数量与F1等三个方面分别展示了本发明方法能够兼顾检索精度和效率,也为后继基于LSH进行NNS检索提供了算法比较的有效依据。
显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
Claims (10)
1.一种基于超立方体均衡划分的近似近邻元素检索方法,其特征在于:其其包括以下步骤:
步骤1,哈希函数簇构造:分析数据并最终生成每一个哈希函数参数;具体步骤如下:
步骤1-1,对数据进行采样,得到采样数据;
步骤1-2,对采样数据进行主成分分析,得到特征向量组成的变换矩阵Md×d;
步骤1-3,利用矩阵对样本数据进行变换得到变换后的样本数据;
步骤1-4,分析变换后数据每个维度上的上界和下界,以期望子空间数量为输入利用最优化算法求每个主成分方向的分割超平面数得到哈希函数的参数;
步骤2;利用设置了参数的哈希函数簇对新获取的数据进行哈希编码;对所要存储数据利用变换矩阵Md×d进行变换,再用构造的哈希函数簇对变换结果计算哈希编码并把数据ID存入对应编码的哈希桶;
步骤3,数据查询时先对查询对象利用变换矩阵Md×d进行变换,再利用哈希函数簇计算变换后查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,最后逐个计算候选数据集与查询对象的实际距离,排序并返回查询结果。
3.根据权利要求1所述的一种基于超立方体均衡划分的近似近邻元素检索方法,其特征在于:步骤1-3中变换后的数据X′n×d=Xn×d·Md×d,其中x=[x(1),…,x(i),…,x(d)]是数据集X’中的一个数据。
10.一种基于超立方体均衡划分的近似近邻元素检索系统,采用了权利要求1至8任一所述的一种基于超立方体均衡划分的近似近邻元素检索方法,其特征在于:系统包括哈希函数构造单元、数据存储单元和数据查询单元,哈希函数构造单元用于分析数据并最终生成每个哈希函数参数;数据存储单元用于对所要存储数据利用Md×d进行变换再用构造的哈希函数簇对变换结果计算哈希编码,并把数据ID存入对应编码的哈希桶;数据查询单元用于数据查询阶段对查询数据利用Md×d进行变换,再利用哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,最后逐个计算候选数据集与查询对象的实际距离,排序并返回查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721219.0A CN113360546A (zh) | 2021-06-28 | 2021-06-28 | 一种基于超立方体均衡划分的近似近邻元素检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721219.0A CN113360546A (zh) | 2021-06-28 | 2021-06-28 | 一种基于超立方体均衡划分的近似近邻元素检索方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360546A true CN113360546A (zh) | 2021-09-07 |
Family
ID=77536759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110721219.0A Pending CN113360546A (zh) | 2021-06-28 | 2021-06-28 | 一种基于超立方体均衡划分的近似近邻元素检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360546A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020754A (zh) * | 2021-09-18 | 2022-02-08 | 中国人民解放军国防科技大学 | 一种数据立方体的非层次数据结构摘要方法 |
-
2021
- 2021-06-28 CN CN202110721219.0A patent/CN113360546A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020754A (zh) * | 2021-09-18 | 2022-02-08 | 中国人民解放军国防科技大学 | 一种数据立方体的非层次数据结构摘要方法 |
CN114020754B (zh) * | 2021-09-18 | 2024-02-02 | 中国人民解放军国防科技大学 | 一种数据立方体的非层次数据结构摘要方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hetland et al. | Ptolemaic access methods: Challenging the reign of the metric space model | |
Ribeiro et al. | Efficient parallel subgraph counting using g-tries | |
Novak et al. | PPP-codes for large-scale similarity searching | |
Yan et al. | Scalable load balancing for mapreduce-based record linkage | |
Lu et al. | HVS: hierarchical graph structure based on voronoi diagrams for solving approximate nearest neighbor search | |
Novak et al. | Rank aggregation of candidate sets for efficient similarity search | |
WO2015001416A1 (en) | Multi-dimensional data clustering | |
CN113128618A (zh) | 基于kd树和混沌蜉蝣优化算法的并行谱聚类方法 | |
Yang et al. | DBSCAN-MS: distributed density-based clustering in metric spaces | |
CN113204559B (zh) | 一种gpu上的多维kd树优化方法 | |
CN113360546A (zh) | 一种基于超立方体均衡划分的近似近邻元素检索方法及系统 | |
Lee et al. | MRDataCube: Data cube computation using MapReduce | |
Yin et al. | Finding the informative and concise set through approximate skyline queries | |
Engström et al. | PageRank for networks, graphs, and Markov chains | |
Kumari et al. | Scalable parallel algorithms for shared nearest neighbor clustering | |
Elmeiligy et al. | An efficient parallel indexing structure for multi-dimensional big data using spark | |
Yaşar et al. | On symmetric rectilinear matrix partitioning | |
Barger et al. | k-means for streaming and distributed big sparse data | |
Chormunge et al. | Efficiency and effectiveness of clustering algorithms for high dimensional data | |
Gowanlock et al. | GPU accelerated self-join for the distance similarity metric | |
Tokoro et al. | Improvements of TLAESA nearest neighbour search algorithm and extension to approximation search | |
CN112052879B (zh) | 一种利用gpu加速密度峰聚类的方法 | |
Han et al. | Ranking the big sky: efficient top-k skyline computation on massive data | |
Novak et al. | Performance study of independent anchor spaces for similarity searching | |
Han et al. | Dynamic skyline computation on massive data |
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: 20210907 |
|
RJ01 | Rejection of invention patent application after publication |