一种基于高维数据过滤器的近似成员查询方法

文档序号:8381007阅读:208来源:国知局
一种基于高维数据过滤器的近似成员查询方法
【技术领域】
[0001] 本发明涉及一种近似成员查询方法,尤其是涉及一种基于高维数据过滤器的近似 成员查询方法。
【背景技术】
[0002] 在很多应用领域中,如果查询数据与目标数据的距离越近,数据的价值就越高。例 如,安全官员想要检查某未知的物质(具有某些可检测的高维特征)是否属于清单所列的 危险化学品;网络管理员想要知道某用户的行为特征是否有害;摄影比赛裁判想检查提交 的照片是否与某一张大型数据库中的照片类似。这些查询都需要判断查询数据与(目标数 据)集合中数据的距离。如果是低维的小数据集,可通过线性查找解决,但是对一个海量的 高维数据集采用线性查找匹配的话,会非常耗时,很多情况下无法满足实时的需要。为提高 处理的速度,可以设置一个高维数据过滤器代表目标数据集合,根据距离过滤掉大部分查 询数据,少量剩下的数据可以再通过常规方法进一步处理,可显著提高系统的整体性能。
[0003] 这个过滤器完成的就是近似成员查询(Approximate Membership Query, AMQ),即 回答"查询数据是否接近于数据集合中的某个数据"。现有AMQ过滤器主要是结合LSH (距 离敏感哈希,Locality-Sensitive Hashing)和Bloom filter (布鲁姆过滤器)技术的,其 主要代表有 DSBF(Distance-sensitive Bloom filters) [1]和 LSBF(Locality-Sensitive Bloom Filter)[2]〇
[0004] DSBF首次综合LSH和Bloom filter的方法来过滤AMQ查询,其返回组成员的近似 查询结果,近似度可采用不同的衡量标准,它可以改善网络和数据库应用程序的速度和空 间,从而避免对完整的最近邻查询等代价昂贵的比较操作。LSBF是DSBF的改进,使用LSH 函数来构造 Bloom filter过滤AMQ查询,LSBF还采用了额外的位向量来降低假阳性率。
[0005] 但是,使用DSBF和LSBF这两个技术来过滤AMQ查询都有一个限制,即他们仅能过 滤给定距离的AMQ查询。然而,给定一个合适的距离并不容易,过大或过小的距离值,可能 会导致不可接受的查询结果。而一旦过滤器的过滤网格参数固定后就不能改变,即能过滤 的距离值是确定的,如需要同时过滤多个不同的距离值,则需要根据原始数据重新构造过 滤器,也即改变过滤距离参数。然而,为节省空间,原始数据一般并不保存,无法构造不同的 距离参数的过滤器。其次,DSBF存在假阳性率过高的问题,LSBF存在假阴性率过高的问题。
[0006] 通过定义新的距离敏感哈希函数支持的新结构MLBF,分别来表征目标数据集合中 的多维数据和待查询的多维数据,同时通过构建一个实体校验器,不仅不需要重新构造过 滤器就能够支持更多的过滤距离参数的近似成员查询,而且通过校验,大大降低了不同虚 拟过滤器的假阳性率。但是这种方法同时也会占用较大的资源。

【发明内容】

[0007] 本发明所要解决的技术问题是提供一种基于过滤器的高维数据近似成员查询方 法,在固定过滤网格(距离)参数的过滤器的基础上,不需要重新构造过滤器,即能够实现 更多的过滤网格参数的近似成员查询,并且能够节省空间资源。
[0008] 本发明解决上述技术问题所采用的技术方案为:一种基于过滤器的高维数 据近似成员查询方法,将目标数据集合定义为Ω,并将距离敏感哈希函数H定义为
【主权项】
1. 一种基于过滤器的高维数据近似成员查询方法,其特征在于将目标数据集合定义 为L并将距离敏感哈希函数H定义为
其中t = 12,…,k,j= 1,2,"*,L,L为函数组数,k为每一函数组中的函数个数,〇是多维数据,at;j是与〇维数相 同的随机向量,其每一维的数据符合标准正态分布,?是点积运算,20w是距离过滤参数,0 =0, 1,2,…,S-l,S为过滤距离的种类数,w是正实数定义的最小距离过滤参数,L」是下取 整运算,然后进行以下步骤的操作: (1) 构建一个容量为m',地址为0到m' -1的位向量,定义为MVBF,并设定MVBF[i] =0,i = 0, 1,2,…,m' -1 ; (2) 将目标数据集合D中的每一个数据0y的第j组的k个哈希值,S卩^^, I换成2进制字符串,并定义为et,j,其中y= 1,2,…,n,n属于目 标数据集合
D,t= 1,2,…,k,以其中最长的一个2进制字符串长度为标准字符串长度,在 其余的2进制字符串前添加0来使其达到标准字符串长度; (3) 将et。.分为两个字符子串,即,其中?表示字符串的串接,#的长度为S-1,的长度为标准字符串长度减S-1 ; (4) 用一个均匀散列的哈希函数将串接的字符串ni1卜散列为k'个地址,定义 为:,其中P= 1,2,…k',并定义该均匀散列的哈希函数为f1; (5) 将t= 1,2,…,k的所有字符串中相同序号的字符按顺序串接成新的字符串 #,..〇],其中,v为1,…,S-1,是字符串中字符的序号,#[v]为字符串#的第v个 字符,然后用一个均匀散列的哈希函数将字符串散列为k'位地址,定义为: 今其中P= 1,2,…k',并定义该均匀散列的哈希函数为f2; (6) 将步骤(4)中的地址与步骤(5)中的地址进行重新组合成新的地址,定义为 ?玲^ ~C,其中v为 1,…,S-1, (7) 在MVBF中将第j组的k'个地址Cg置1 ; (8) 将待查询的多维数据定义为q,然后用上述的距离敏感哈希函数进行表征,即
(9) 将待查询的多维数据q的第j组的k个哈希值,_
专 换成2进制字符串,在前添加0来使其达到标准字符串长度-0,并定义为e' t,j; (10) 将e't,」分为两个字符子串,即(=C? 〇2),其中?为字符串的串接,的长 度为S-1- 0,的长度为标准字符串长度减S-1 ; (11) 用同样的哈希函数心将串接的字符串jOSf?…散列为k'个地址,定义 为:H,其中P= 1,2,…k'; (12) 将t= 1,2,…,k的所有字符串中相同序号的字符按顺序串接成新的字符串SfMOJO/],其中,v'为i,…,S-1-0,是字符串中字符的序号,#[v']为字符串 <2)的第v'个字符,然后用同样的哈希函数4将字符串<f|V] ?…散列为k'位 地址,定义为:,其中p=l,2,…k'; (13) 将步骤(11)中的地址与步骤(12)中的地址进行重新组合成新的地址,定义为 ◎=43,峨W?…?…?劣(;),其中v,为i,...,s-i-0 ; (14) 在第j组的V个哈希值后接上0个0,定义为IV2,j,…,D' k, j;,p = 1,2, ...k' ; (15) 如MVBF[D'yLMVBFQ)'y+1],…,MVBF[D'ipe-l]中有一个为 1,则定义 D'w地址通过;如D'm_,D'2,p…,D'u都通过,则定义第j组在过滤器MVBF通过, 如果L组中任意一组在过滤器MVBF通过,则确认q是目标数据集合Q的近似成员,否则q 不是目标数据集合D的近似成员。
【专利摘要】本发明公开了一种基于过滤器的高维数据近似成员查询方法,通过定义新的距离敏感哈希函数来分别表征目标数据集合中的多维数据和待查询的多维数据,不需要重新构造过滤器,能够支持更多的过滤距离参数的近似成员查询,大幅度减少了空间代价,通过使用多个函数组数,且每个函数组数包含多个函数,在最终确认是否目标数据集合Ω的近似成员时使用“与-或”结合的方式进行判断,能够降低过滤器的假阴性率,同时,本发明通过构建一个实体校验器,通过校验,大大降低了不同过滤距离参数过滤器的假阳性率,并且通常减少实体过滤器的方式,在准确性略有降低的情况下,空间资源大大节省。
【IPC分类】G06F17-30
【公开号】CN104699747
【申请号】CN201410775986
【发明人】陈华辉, 钱江波, 陈叶芳
【申请人】宁波大学
【公开日】2015年6月10日
【申请日】2014年12月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1