基于Laplacian算子和LSH技术的检索方法及其系统

文档序号:27033431发布日期:2021-10-24 06:06阅读:239来源:国知局
基于Laplacian算子和LSH技术的检索方法及其系统
基于laplacian算子和lsh技术的检索方法及其系统
技术领域
1.本发明涉及机器学习和大规模高维数据检索应用领域,尤其涉及基于laplacian算子和lsh技术的检索方法及其系统。


背景技术:

2.随着数据采集及网络技术的发展,各行各业每时每刻都产生着海量数据,这些数据的来源、意义各不相同,具有高维、多样性特征。例如,环境监测无线传感器网络(environment wireless sensor networks:ewsn)在环境监测中被广泛应用,其同时采集的数据种类多样,各种数据的值域范围、变化规律各不相同,从而形成具有不同分布特性的高维海量数据环境。要充分利用这些数据,并为决策提供支持,也就对高维、海量数据的快速、准确检索提出了更高的要求。因此,构建一个性能良好的大规模高维数据索引结构将对具有高维、不同分布特性、海量数据应用有非常重要的意义。在高维海量数据集上的最近邻查找(nearest neighbor search:nns)是一项意义重大且具有高度挑战性的工作,它被广泛应用于机器学习和数据挖掘的相关领域,例如分类技术、推荐系统和信息检索等。
3.在低维空间中,最近邻查询问题已经得到了较好的解决,如k

d树、r树、sr树等方法提供了一些有效的解决方案。但是在高维海量数据空间中,最近邻查找会导致查询时间和空间消耗呈指数式增长,也就使现有一些低维度数据检索方法无法满足数据检索要求。针对高维海量数据,麻省理工的indyk等学者开创性地提出基于局部敏感哈希(locality

sensitive hashing:lsh)的近似最近邻数据检索方法。该方法利用哈希函数把高维数据转换为二进制序列,实现近似最近邻数据的快速检索。此后,许多学者进行了进一步的完善,如charikar提出的基于随机超平面投影的lsh检索方法rhplsh;datar和indyk提出的e2lsh增强了方法的可用性,并对后来的研究工作产生了巨大的影响。这些工作中最具有代表性的有:pcah、klsh、sblsh、itq、dsh、och、gldh等。随着深度学习的兴起,近年来又出现了大量结合深度学习和lsh的检索方法。但是,纵观当前基于局部敏感哈希的搜索解决方案,仍然存在如下四方面的问题制约着其进一步应用。
4.(1)算法参数设置困难:大多数方法需要根据具体的数据进行参数的设置,而这些参数通常都需要人工干预,例如dsh中的聚类数量、e2lsh中的w、gldh中的σ等;
5.(2)难以适应数据的分布多样性:多数lsh相关算法只适用于具有特定分布特性的数据,适应性弱,从而制约了基于局部敏感哈希检索方法的应用;
6.(3)性能需进一步提高才可实用:基于深度学习的lsh检索算法提高了近邻数据查询精度,但是,预处理时间的消耗极大限制了其应用;传统的基于lsh的检索算法虽然在性能上占优,但其效率仍旧参差不齐,有待于进一步提高;
7.(4)空间划分难以全局考虑:部分算法在空间划分上的有较大的误差,例如pcah沿着主成分方向对数据进行切分,rhplsh对数据进行随机的切分,这两种方法造成了大的切分误差,dsh在一定程度上减少了切分误差,但其解决方案是局部的,缺少全局角度的考虑。


技术实现要素:

8.本发明的目的在于提供基于laplacian算子和lsh技术的检索方法及其系统。
9.本发明采用的技术方案是:
10.基于laplacian算子和lsh技术的检索方法,其包括以下步骤:
11.步骤1,生成k个哈希函数组成的哈希函数簇,每个哈希函数构造时,把数据投影到符合高斯分布的随机向量上,根据投影的高斯核概率密度分布和高斯核laplacian算子求得的投影二阶导数确定偏移量,由随机向量和偏移量共同确定一个哈希函数;
12.步骤2,数据存储过程中利用哈希函数簇逐个计算所要存储数据的哈希编码,并把数据id存入对应编码的哈希桶;
13.步骤3,数据查询阶段,用相同的哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,再逐个计算出候选数据集与查询对象的实际距离,排序并返回查询结果。
14.进

步地,作为一种优选实施方式,步骤1的哈希函数构造步骤如下:
15.步骤1

1,从数据集x中随机获取n

=n*sr个样本,n=|x|;其中sr为采样率,0<sr<=1;n=|x|为原数据集元素个数。
16.步骤1

2,生成每个维度取值范围,每个维度取值范围依次叠加形成数组cutpos;
[0017][0018]
步骤1

3,逐个生成k个投影平面(w[i],b),k为编码长度;每个投影平面先生成d

个符合正态分布的随机向量,利用cutpos[.]确定选中概率为投影平面的w[i]中的d

个具体元素赋值,其余赋值为0,同时计算每个投影平面的偏移量b。
[0019]
进一步地,作为一种优选实施方式,步骤1

3中偏移量b的计算步骤如下:
[0020]
步骤1
‑3‑
1,样本数据集x

在w
i
所表示的平面法向量上进行投影;
[0021]
步骤1
‑3‑
2,计算高斯核带宽h,计算公式为:h=1.06an

1/5
ꢀꢀ
(13);
[0022]
其中a=min(标准差σ,四分位数/1.34)。
[0023]
步骤1
‑3‑
3,利用高斯核函数进行概率密度估计得到高斯核密度概率分布函数;
[0024]
步骤1
‑3‑
4,利用高斯核laplacian算子求概率密度二阶导数;
[0025]
步骤1
‑3‑
5,基于概率密度的二阶导数值及概率密度分布函数确定超平面的偏移值b。
[0026]
进一步地,作为一种优选实施方式,步骤1
‑3‑
3的具体步骤如下:
[0027]
步骤1
‑3‑3‑
1,采用一维高斯函数作为概率密度估计的核,表达式如下:
[0028][0029]
步骤1
‑3‑3‑
2,得到高斯核密度函数
[0030]
步骤1
‑3‑3‑
3,投影区间[proj
min
=min(x
proj

),proj
max
=max(x
proj

)]分为m等份,每等份宽度为step;第k个位置的高斯核密度值计算如下:
[0031]
[0032]
步骤1
‑3‑3‑
4,计算高斯核密度概率分布函数:
[0033][0034]
进一步地,作为一种优选实施方式,步骤1
‑3‑
4的具体步骤如下:
[0035]
步骤1
‑3‑4‑
1,高斯核laplacian算子计算高斯核概率密度二阶导数如下:
[0036][0037]
步骤1
‑3‑4‑
2,按步长step求m个位置的概率密度函数的二阶导数,具体公式如下:
[0038][0039]
基于laplacian算子和lsh技术的检索系统,采用了所述的基于laplacian算子和lsh技术的检索方法,系统包括哈希函数构造单元、数据存储单元和数据查询单元,哈希函数构造单元用于分析数据并最终生成k个哈希函数参数,形成哈希函数簇;哈希函数构造单元通过把数据投影到符合高斯分布的随机向量上,根据投影的高斯核概率密度分布和高斯核laplacian算子求得的投影二阶导数和确定偏移量作为哈希函数参数;数据存储单元用于对所要存储数据利用对应的哈希函数簇逐个计算所要存储数据的哈希编码,并把数据id存入对应编码的哈希桶;数据查询单元用于数据查询阶段对查询数据采用相同的哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,再逐个计算出候选数据集与查询对象的实际距离,排序并返回查询结果。
[0040]
本发明采用以上技术方案,利用laplacian算子具有对数据急剧变化敏感的特性,提出一种基于laplacian算子的局部敏感哈希的数据检索方法(lplsh),该方法能针对数据分布特性进行有效的哈希函数构造,确保快速、准确的近似近邻查询。本发明能有效利用laplacian算子对数据变化的敏感性发现数据分布的边缘,以确定随机超平面的偏移量,从而形成有效的分割;本发明)理论证明了精简维度能够保证哈希函数的局部敏感性及低投影密度区间分割的有效性,分析了利用laplacian算子求得二阶导数对超平面偏移量设置的指导意义;通过实验对比,验证了本发明方法的实用性:本发明的lplsh方法无需调整参数,能在具有不同分布特性的数据集上取得高精度和良好召回率的平衡,在效率上展现出明显优势;通过对实验数据的分布特征分析,结合实验结果说明了lplsh能够适用于不同数据分布特征的数据,特别显著提高了各维度上分布形式单一,没有明显分类特性数据的检索效果。
附图说明
[0041]
以下结合附图和具体实施方式对本发明做进一步详细说明;
[0042]
图1为本发明基于laplacian算子和lsh技术的检索系统的架构示意图;
[0043]
图2为本发明与pcah、dsh、rhp、sblsh、itq的实验结果的比较示意图。
具体实施方式
[0044]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
中的附图对本技术实施例中的技术方案进行清楚、完整地描述
[0045]
如图1所示,本发明基于laplacian算子和lsh技术的检索方法,其包括以下步骤:
[0046]
步骤1,生成k个哈希函数,形成哈希函数簇,每个哈希函数生成过程为把数据投影到符合高斯分布的随机向量上,根据投影的高斯核概率密度分布和高斯核laplacian算子求得的投影二阶导数确定偏移量;
[0047]
步骤2,数据存储过程利用哈希函数簇逐个计算所要存储数据的哈希编码,并把数据id存入对应编码的哈希桶;
[0048]
步骤3,数据查询阶段,用相同的哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,再逐个计算出候选数据集与查询对象的实际距离,排序并返回查询结果。
[0049]
下面对哈希函数构造部分进行展开,详细叙述lplsh方法的法向量和偏移量生成过程。
[0050]
lplsh的哈希函数构造:假定所要处理的数据集x含有n个数据元素,且数据维度为d。在不引起混淆的情况下,x也表示n
×
d矩阵,每行1个数据元素。
[0051]
lplsh通过利用超平面划分,以实现数据的分割,该方法需要生成k个哈希函数,h(x)=[h1(x),h2(x),hx(x),...,h
k
(x)],每个哈希函数表示一个超平面。构造哈希码的过程是把元素投影到超平面法向量上,根据投影在超平面两侧分别赋值0/1,从而得到哈希码。具体如式(9,10):
[0052]
hashcode=[h1(x),h2(x),...,h
k
(x)]
ꢀꢀ
(9)
[0053][0054]
其中,w
i
是服从高斯分布的随机向量,表示超平面的法向量,而b则是平面的偏移量。
[0055]
在设置法向量时,本发明利用维度精简方式,即通过随机选择的方式确定w
i
上的d

个维度,并以服从高斯分布的随机向量值填充,其他设置为0。维度精简可保证数据间的距离关系,同时可以减少w
i
中的非零数,以减少哈希函数的计算量,从而把哈希编码的计算复杂度从o(d)降低到o(d

)。生成哈希函数法向量的算法如算法1所示。
[0056]
算法1.哈希函数构造算法(create_hash).
[0057]
输入:维度d,编码长度k,投影维度d’,数据x,采样率sr=0.1;
[0058]
输出:wb={(w
i
,b
i
)|i∈{0,...,k

1}}}.
[0059][0060][0061]
算法1首先从数据集x中随机获取n

=n*sr个样本(行1),sr为采样率,0<sr<=1,n=|x|;之后的for循环生成每个维度取值范围的叠加(行2,3),以便根据维度取值范围指导维度选择。for循环控制算法逐个生成k个投影平面(w[i],b)(行5

21);其中,while循环中首先生成d

个符合正态分布的随机向量,然后按照cutpos所记录的每个维度被选中概率为w[i]中具体元素赋值(第9

17行)。算法中的数组hits用于记录w[i]分量已被选中维度,避免重复选择;
[0062]
在选定w[i]后进行偏移量的生成:超平面偏移值设置主要包含如下5个步骤:(1)样本数据在w
i
所表示的超平面法向量上进行投影;(2)确定高斯核带宽h;(3)利用高斯核函数进行概率密度估计;(4)把高斯核laplacian算子应用于投影数据;(5)选择合理的偏移量值。下面将针对这五个步骤进行详细的展开。
[0063]
(1)样本数据在w
i
所表示的超平面法向量上进行投影:
[0064]
样本数据集x

在w
i
所表示的平面法向量上进行投影,其操作如式(11):
[0065]
x
proj

=proj(x

,w
i
)=x

·
w
it
ꢀꢀ
(11)
[0066]
步骤1的操作得到样本数据集在向量w
i
上的投影值,是到n

维向量,反映样本数据在投影方向上的分布情况。
[0067]
(2)高斯核带宽的设定:
[0068]
在高斯核的应用中,计算过程中的关键参数为高斯核带宽h。对于一个给定的样本数据集投影x
proj

,若h设置太小,那么最后的概率密度估计结果具有较小偏差,但是较大方差;反之,估计结果则是大偏差小方差。为此,本发明利用一种快速求带宽h的方法,如式(12):
[0069][0070]
其中,n=n

表示样本元素个数,σ是标准差。
[0071]
silverman在1986年提出一种具有更好可用性的标准差替代a,a=min(标准差σ,四分位数/1.34).因此,本发明最终应用的求带宽公式为:h=1.06an

1/5
ꢀꢀ
(13)
[0072]
(3)利用高斯核函数进行概率密度估计:
[0073]
为了能够在投影方向上找到恰当的划分位置/偏移位置,需要投影数据的概率密度分布做参考。数据投影后转换到一维空间上,所以本发明采用一维高斯函数作为概率密度估计的核,如式(14)。
[0074][0075]
高斯核密度函数定义如式(15)。
[0076][0077]
为了避免投影分布区间过大影响计算精度与效率,本发明把投影区间[proj
min
=min(x
proj

),proj
max
=max(x
proj

)]分为m等份,每等份宽度为step。第k个位置的高斯核密度值计算如式(16)。
[0078][0079]
进一步计算高斯核密度概率分布函数如式(17)。
[0080][0081]
核密度方法有许多优点,首先识别高密度区域与区域的形状无关;其次,核函数的平滑效应使密度估计对噪声具有较好的鲁棒性,离群值不会影响大多数数据;最后,根据估计的密度函数能保持投影数据分布的基本形态。
[0082]
(4)利用高斯核laplacian算子求概率密度二阶导数:
[0083]
超平面偏移量设置的期望位置是所定义的多个正态分布数据的交界处,在具有明确分界的情况下,常常表现为概率密度函数的波谷。但在实际的应用中,多个中心的数据叠加容易导致密度被平滑,从而利用概率密度函数很难分辨出多个数据簇组合的边界
位置。以概率密度函数的波谷作为超平面的分割位置很难简单获取,但是,通过laplacian算子却可以较为准确的得到他们的边界位置。
[0084]
针对高斯核概率密度估计,利用laplacian算子作为二阶空间导数算子可以侦测到密度急剧变化区域,包括数据簇的波谷位置。高斯核laplacian算子计算高斯核概率密度二阶导数如式(18)。
[0085]
为了加快运算效率,按步长step求m个位置的概率密度函数的二阶导数,具体公式如式(19)。
[0086][0087][0088]
(5)确定超平面的偏移值b:综合所求概率密度的二阶导数值及概率密度分布函数,确定超平面的偏移值b就是要找到一个能够反映分布聚类簇数据边缘的位置。同时,为了保证划分边界不会太过靠近边缘,所以进一步利用概率分布函数值来辅助决策。具体如算法2。
[0089]
算法2.偏移量计算算法(generate_offset)
[0090]
输入:随机超平面向量w,数据样本x


[0091]
输出:(r,b)分别表示偏移量生成是否成功,以及成功时的平面偏移量
[0092][0093]
算法中存在两个常量需要初始设置,分别是m,pr
range
。其中,m表示把投影数据分成多少个区间,由m可以求区间宽度step,从而支持公式(17,19)的运算;pr
range
用于确保所选超平面对数据的分割不会产生太大的失衡。例如,本发明把m及置为100,pr
range
设置为[0.1,0.9],表示所选超平面能够把数据集分割为两个部分,且数据较少的部分占数据总量的比例不少于10%。
[0094]
本发明还公开了基于laplacian算子和lsh技术的检索系统,系统包括哈希函数构造单元、数据存储单元和数据查询单元,哈希函数构造单元用于分析数据并生成k个哈希函数参数,最终得到哈希函数簇;哈希函数构造单元通过把数据投影到符合高斯分布的随机向量上,根据投影的高斯核概率密度分布和高斯核laplacian算子求得的投影二阶导数和确定偏移量作为哈希函数参数;数据存储单元用于对所要存储数据利用对应的哈希函数簇逐个计算所要存储数据的哈希编码,并把数据id存入对应编码的哈希桶;数据查询单元用于数据查询阶段对查询数据采用相同的哈希函数簇计算查询对象的哈希编码,根据哈希编码定位哈希桶得到候选数据集,再逐个计算出候选数据集与查询对象的实际距离,排序并返回查询结果。
[0095]
算法的复杂性分析:整个哈希函数的构造包含了算法1,算法2。算法2中,投影计算需要的时间是o(n

d

),调用式(17)求概率分布pr的时间复杂度为o(mn

),利用公式求laplacian的时间复杂度为o(mn

);对二阶导值数组求极大值的索引,时间复杂度为o(m);遍历结果进行排序o(m log m),最后,对结果进行匹配筛选,时间复杂度为o(m)。所以算法总的时间复杂度为o(n

*(2m+d’)+mlogm+2m),但是在实际的使用中,d’远小于d,m又远小于n

,二阶导数的极值数量也远小于m,所以,算法2的时间复杂度可以简化为o(n

(m+d’))。
[0096]
算法1调用了算法2,实现了哈希函数的构造。算法1的每一次while循环都是随机找到一组w[i]之后调用算法2以确定依据该组w[i]的哈希函数偏移量,while循环将会生成k个w[i];综合上述对算法2的分析,算法1的总时间复杂度为o(kn

(m+d’))。在少数情况下,可能有部分w[i]无法确定其偏移量,需要多于k次的循环的情况,但是并不会影响总体时间复杂度。
[0097]
从最终时间复杂度可以看出,首先,本发明用采样数据代替全体数据集,即n

代替n,使其运行花费时间大大减少;其次,哈希函数不需要考虑所有维度上的信息,其维度从d降低到了d’,这不但加快了哈希函数的构造,也使得后继建立哈希结构和查询更加快速;最后,在计算概率密度和利用laplacian算子计算二阶导时规范了数据范围为[0..m),这一处理不但可以减少计算量,同时也对实际数据投影的概率密度和二阶导数值进行了平滑,避免了用少量采样数据代替全部数据的影响。
[0098]
实验与结果:为了展示lplsh方法检索的精度、性能和适应性,实验针对具有不同分布特性的5个数据集展开,并且对5个算法在100nn上的检索精度和效率、本发明方法在不同设置下进行对比与分析,最后将详细分析各数据集数据的分布特性对算法检索效果的影响,说明lplsh的高适应性。
[0099]
另外,为了观察维度精简对整个检索方法的影响,针对精简维度d

对lplsh做两种设置。在d’=d时,基于laplacian算子的局部敏感哈希lplsh标记为lplsh

a;在d’=ln(n)时,lplsh标记为lplsh

r。后面的叙述中,在没有明确区分lplsh

a和lplsh

r的情况下,则用使用lplsh指代二者。
[0100]
实验准备:本发明挑选了不同领域中的5个大规模高维数据集进行对比实验,数据集如表1所示:
[0101]
表1实验数据集
[0102][0103]
对于每个数据集,随机抽取其中2

数据作为查询对象,并采用欧式距离作为相似度度量标准,本发明检索100nn并进行实验分析,以考察lplsh与其他方法的对比。
[0104]
比较算法:针对高维数据的近似近邻检索问题,本发明挑选2种数据无关的lsh近似近邻检索方法(rhp、sblsh)及3种数据依赖的lsh近似近邻检索方法(pcah、dsh、itq),并与本发明提出的lplsh检索方案的两种设置(lplsh

a:基于laplacian算子的局部敏感哈希,d’=d;lplsh

r:基于laplacian算子的局部敏感哈希,d’=ln(n))进行实验比较。
[0105]
性能指标:实验主要关注3个性能指标:精度、f1值、时间消耗,其中:
[0106]
精度:反映存储到同一哈希桶的元素与查询元素的相似程度,其值越大则说明桶中元素互为近邻元素的概率越大。本发明采用式(25)定义,precision以整个哈希桶元素数量为分母,能够更准确反映构造哈希结构的质量。
[0107][0108]
f1值:算法的召回率与准确率往往难以同时获得最优值,因此通常的做法是以f

score对二者进行综合评估。f

score中最常用的是f1值,f1值是近似近邻检索的核心评价指标,该指标可以综合反映算法的检索效果,其计算如式(26),f1值越高,则算法的综合搜索能力越强。
[0109][0110]
单纯依赖f1并不能全面反映方法的检索效果,特别是在哈希桶中命中近邻元素较少时,通常会由于少数元素不同导致各衡量指标的显著差异。为此,本发明同时展示检索精度和f1值,并综合分析哈希函数的检索质量。
[0111]
算法时间是指算法运行的整体时间,包含哈希函数构造、数据存储,和随机抽取总数的0.2%的元素进行近邻查询花费时间。
[0112]
实验结果与分析:利用本发明的方法与pcah、dsh、rhp、sblsh、itq进行比较,在具体的实验中设置不同的编码长度,从而利用对应的方法构造哈希表。在查询过程中,只查询二进制哈希码对应的哈希桶,并获取桶中的数据元素进行计算查询precision和f1。
[0113]
实验结果如图2所示,在fma、glove、nuswide、mnist和sift上100nn检索的精度、f1和运行时间与编码长度k的关系曲线。
[0114]
sblsh与rhp都属于数据无关的lsh检索方法,他们具有非常接近的曲线形态。在所有情况下,lplsh的均明显优于sblsh,这也说明了数据依赖的lsh对数据分布信息利用的有效性。与dsh对比,在数据集fma中,lplsh方法在f1指标上优于dsh方法,同时也具有较高的精度,说明了lplsh相比dsh在该数据集上能够更好的协调精度和召回率,特别能适应fma数
据投影的多峰情况。在数据集glove和nus_wide中,lplsh的f1明显优于dsh;dsh在精度上基本与lplsh相当,这充分说明了lplsh在这两个数据集上划分的有效性。在mnist上,dsh和lplsh

a在不同的k位置展示出不同的最高f1值,dsh在f1上则优于lplsh

r;在精度上,lplsh与dsh相当。最后,在sift数据集上,dsh在f1上具有较为明显的优势,但是在精度上,dsh则明显不如lplsh,说明了dsh分割得到的每一个哈希桶上元素较多,从而具有较高的召回率,弥补了精度的不足。
[0115]
pcalsh算法在不同数据集上的实验结果表明,该算法总是具有较高的查询精度,在fma数据集中,甚至是两倍于其他算法的精度。但是综合衡量指标f1值却没有像精度一样优于其他算法,这也说明了pcalsh的划分导致了很低的召回率,未能协调好查全与查准的关系。从总体上看,pcalsh方法的f1值在k较小时与其他方法差别不大,但是随着k的增大,f1快速降低,总体检索表现明显不如lplsh。
[0116]
itq算法也具有较高的查询精度,精度表现上仅次于pcalsh;多数情况下,itq在k值较小时(k=10)的f1表现较好,但是随着k的增加,其f1先明显增加,之后快速下降。在数据集fma、mnist和sift中,itq的f1值先随着k增大快速增加,之后快速下降,从f1最高值上看,itq在这三个数据集上均明显不如lplsh。在数据集glove和nus_wide上,本文lplsh算法的f1则全面明显优于itq算法,这也说明本文lplsh方法具有良好的适应性。
[0117]
从上面的分析中可以看出,本文算法在具有不同分布特性的5个数据上都有良好的表现,说明其具有良好的查询效果,以及卓越的适应性;在数据集上稳定的精度表现和f1,说明算法能够平衡准确率和召回率。特别的,在fma、glove和nus_wide三个数据集上更是全面展现出最好的查询效果。
[0118]
算法效率分析:从算法的时间消耗上看,lplsh方法在所有数据集上都展现出高效的一面。具体来看,大多数算法的时间主要花费在数据预处理过程中,例如进行minibatchkmeans聚类,pca分析等。至于查询时间方面,单个查询都能在较短时间完成数据的查询操作,具体时间还取决于哈希桶中元素的数量。同时也可以注意到,所有算法的运行时间都随着编码长度k的增大而增大,一方面是由于随着编码长度的增加,需要花费更多的时间在数据预处理和构造哈希函数上,此外,随着编码长度的增加,需要更多的时间计算数据的哈希编码,从而导致了更长的处理时间。在另外一方面,编码长度k增加也导致了每一个哈希桶中元素数量的减少,从而减少了同一个桶中元素的排序时间,但是,这一时间上的消耗非常少,所以总体体现出时间消耗随编码长度的增加而增加
[0119]
lplsh

a与lplsh

r的对比:lplsh

a对应的哈希函数考虑了所有的维度信息,即d’=d;而lplsh

r则只考虑了部分的维度信息,即d’=ln(n)。图2中包含了两种情况下的算法检索对比。在fma和sift两个数据集上,lplsh

a和lplsh

r的f1指标基本没有差别。对于glove数据集,当k=30时,lplsh

a的f1略差于lplsh

r,而在其他k驭值情况,他们的f1也几乎没有差别。在数据集nus_wide,当k=20时,lplsh

r的f1明显不如lplsh

a,而在其他k取值情况,他们的f1几乎没有差别。而在上述四个数据集中,二者的精度也几乎一致。在数据集mnist中,lplsh

a的f1指标要明显优于lplsh

r;与之相对应的是,lplsh

a的精度略不如lplsh

r,这也说明了lplsh

r的召回率不如lplsh

a。
[0120]
在所用时间的对比上,总体上二者较为接近,却不能看出lplsh

r更加节省时间,其主要原因在于,当我们在确定平面偏移量时,若不能确保分割位置在[0.1,0.9]之间,则
需重新随机生成法向量并再次计算。使用的维度数量越少,则越容易出现这种情况,所以lplsh

r需生成更多的随机向量并分析,从而导致其构造时间增加。而查询时间耗费都在毫秒级,所以lplsh

r在少量查询中并没有体现出总时间的节省。
[0121]
从上述结果也可以看出,通过维度的精简不会导致lplsh方法精度和召回率退化。对大多数数据集上的应用而言,精简后虽然需要耗费较多的哈希函数构造时间,但是在后期的查询中,lplsh

r会逐步展现出其算法的性能的优势。
[0122]
数据分布对实验结果的影响:在所有的对比方法中,没有一种方法能够在所有数据集上形成绝对的优势,这也说明了不同的方法都有其适用范围。例如本文lplsh方法在glove和nus_wide数据集上的f1要明显优于其他所有方法,在fma上则总体优于现有各种方法,在mnist数据集上则与其他方法不相上下;dsh方法则在数据集sift上要优于其他的方法。本小节将从数据集的分布特征出发,分析lplsh的在各数据集上的高可适用性。
[0123]
(1)数据集mnist与sift:mnist的数据特点:每个维度中的数据主要分布在黑和白两边,中间数据极少;在数据分布的两端,大部分数据分布在白色端,占据了最主要部分;sift数据特点:各个维度中的数据以0为占比最高点,之后快速下降形成长尾;少部分维度在尾部较远处能够形成另外一个小波峰。
[0124]
对于mnist和sift,通过利用满足正态分布的随机随机向量进行投影,其投影数据特征也分为两类,其一是形成单峰效果,且单峰在0位置,之后快速下降,形成长尾;其二是能够形成双峰甚至多峰的分布特性,且在0位置的波峰占比绝大部分,后继峰值虽然出现,其峰值小。按照本文的方法以数据分布变化最为剧烈的位置为超平面偏移量,其偏移位置通常位于第一个波峰底部,未能在两个波峰中间空白区进行划分;进行二分后,后半部分的元素间距离平均值较大。从而导致了lplsh方法在这两个数据集上表现其他算法相近。
[0125]
在该数据集中,lplsh

a要总体上优于lplsh

r,其原因在于lplsh

a的哈希函数考虑了更多维度信息,也就使得投影所形成的概率密度具有更加明显的多正态分布形态,从而laplacian算子计算的二阶导数最大值更加靠近双峰中间位置;而lplsh

r考虑的维度较少,其二阶导数最大值更可能靠近其中一边。
[0126]
(2)数据集glove与nus_wide:glove和nus_wide两个数据集在每一个维度上的数据分布都大致符合正态分布,各个维度上正态分布的数学期望基本相同,方差有所不同。对于这样的数据集,当投影到随机生成的符合正态分布向量上时,其基本形态还是保持为正态分布,不会形成多峰效果。
[0127]
对于一般的方法,其所生成的超平面大都从正态分布的中间穿过,所以导致最终效果与随机超平面方法相似,效果不好。而本文lplsh方法则能够利用laplacian算子对数据变化的敏感性,从而有效定位到投影数据正态分布剧烈上升的开始位置,或者急剧下降到变平缓的过度位置,从而正确设置哈希函数的偏移量。因此,在这两个数据集上,本文lplsh方法有明显优于其他所有算法的表现。
[0128]
(3)数据集fma:从单个维度上看,fma数据具有较高的集中度,且基本满足单个正态分布形态;但各个维度上数据的数学期望和方差的差异性极大,数学期望之间的差异性可以达到上千倍,方差也可以达到数十倍。对于这样的数据集,当投影到随机生成的符合正态分布向量上时,其多个维度复合形成的概率密度形态大都近似于单个偏态分布,且具有较大的方差,这也符合数据长条形分布的特点(方差差异明显)。因此,当利用laplacian算
子求投影数据剧烈变化位置时,哈希函数偏移量总是能够被准确定位在偏态分布的剧增起始/剧减结束位置,从而展现出良好的分割效果。
[0129]
综上所述,在当前5g通讯技术快速发展的大环境下,云计算、物联网、大数据技术等诸多领域都会对大规模的高维数据的快速、准确检索提出更高的要求。构建一个性能良好的大规模高维数据索引结构将对具有高维度、多分布特性、海量数据的领域应用是非常重要的工作。针对现有基于局部敏感哈希的数据检索方法不能有效兼顾多种分布特性数据的问题,本发明提出了一种具有高度适应性的基于laplacian算子的lsh近邻数据检索方法lplsh。该方法通过随机选择满足正态分布的投影向量,进行数据投影,结合高斯核密度估计,利用laplacian算子计算投影概率密度的二阶导数,确定超平面的偏移量,由此生成的哈希函数簇能够从全局角度有效感知数据分布的剧烈变化位置,以提高基于超平面分割的局部敏感哈希方法的有效性。在不同分布特征的实验中,也体现了本发明所提出算法具有很强的适应性,且实现了数据查询精度和效率上的有效均衡。
[0130]
显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1