CN102609441A - 基于分布熵的局部敏感哈希高维索引方法 - Google Patents

基于分布熵的局部敏感哈希高维索引方法 Download PDF

Info

Publication number
CN102609441A
CN102609441A CN201110443604XA CN201110443604A CN102609441A CN 102609441 A CN102609441 A CN 102609441A CN 201110443604X A CN201110443604X A CN 201110443604XA CN 201110443604 A CN201110443604 A CN 201110443604A CN 102609441 A CN102609441 A CN 102609441A
Authority
CN
China
Prior art keywords
data
hash
hash function
local sensitivity
local
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
Application number
CN201110443604XA
Other languages
English (en)
Other versions
CN102609441B (zh
Inventor
张伟
高科
张勇东
李锦涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201110443604.XA priority Critical patent/CN102609441B/zh
Publication of CN102609441A publication Critical patent/CN102609441A/zh
Application granted granted Critical
Publication of CN102609441B publication Critical patent/CN102609441B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了基于分布熵的局部敏感哈希高维索引方法。该方法首先生成局部敏感哈希函数候选集合。接着,根据训练数据集,计算局部敏感哈希函数候选集合中每个哈希函数的分布熵值,并从中选取分布熵值最高的L个哈希函数作为局部敏感哈希函数集合。然后,基于该局部敏感哈希函数集合,将待索引数据集存储到哈希表中。还可以采用基于三角不等式过滤和欧氏距离排序的查询算法查询上述哈希表,得到与查询数据相似的结果集。该方法通过选择分布熵值高的哈希函数,更好地适应了数据的分布,从而优化了哈希表索引结构,减小了索引的内存消耗,同时使得查询更加准确和高效。

Description

基于分布熵的局部敏感哈希高维索引方法
技术领域
本发明涉及高维数据空间下的索引方法与查询方法,尤其涉及近似最近邻查询方法。
背景技术
互联网上以指数级增长的图像、视频给信息的组织与管理带来了巨大挑战。与此同时,对海量图像、视频内容分析的需求也越来越大。内容分析依赖于对图像、视频提取的视觉特征数据之间的相似性匹配,这些特征数据不仅数量多而且动辄上百维。高维索引研究的正是如何准确高效地从海量高维数据库中查询到与给定数据相似的数据集。高维索引的查询方式中最基本的是最近邻查询,在欧氏空间下,数据x在数据库X中的最近邻的形式化描述如下:NN(x)={x′:min(d(x,x′))∧(x′∈X)},其中d是计算两点之间欧氏距离的函数。
传统的顺序查找方法无法满足用户对效率的要求。为了提高检索效率,在国内外研究机构的推动下,针对高维数据的索引方法主要经历了两个发展阶段:
(1)早期针对高维数据的索引方法大多基于树型结构。这种树型结构通过对数据空间的递归划分,将空间中相邻的数据尽可能存储到同一结点中,从而建立层次化的组织结构。查询算法则是对树进行遍历,查询性能和树的结构以及数据空间的划分方式有关。随着维数的增加,树型索引结构的查询性能急剧下降。当维数增加到一定程度时,树型索引结构的查询性能甚至还不如线性查找,这种现象也称为“维数灾难”(Curse OfDimensionality)。“维数灾难”导致树型结构只在低维空间下有效。
(2)高维特征数据本身的提取过程存在着随机、取近似的因素,因此,在大多数情况下并不要求搜索到精确解,近似解就能满足应用的需要。于是近似最近邻ANN(Approximate Nearest Neighbor)方法得到了广泛的研究和应用,该方法通过牺牲很小的精度换取了查询效率的大幅度提高。诸多文献指出,目前最成功的ANN方法是局部敏感哈希(Locality SensitiveHashing)。局部敏感哈希索引方法基于哈希表结构,消除了“维数灾难”的影响。局部敏感哈希的基本思想是将距离相近的高维数据以较高的概率哈希到同一表项中,而距离远的数据则尽量哈希到不同表项中。局部敏感哈希方法的关键在于选择建立哈希表所依据的哈希函数。欧氏空间下的局部敏感哈希将高维空间中的数据投影到随机选择的向量上,利用投影后的值来建立哈希函数。其查询算法通过计算查询数据所在的哈希表项,可以直接访问到与查询点相似的数据所在的存储结构。与遍历整个树结构相比,大大提高了在线查询时间。局部敏感哈希方法简单实用,把查询时间降到了亚线性,能够满足用户在查询精度和效率上的需求。因此,在视频检索等领域得到了成功应用。
但是,局部敏感哈希索引方法内存消耗较大,影响了其在海量数据库下的可扩展性。目前针对局部敏感哈希的改进算法主要基于对查询端的扩展,即通过探测一个哈希表中的多个表项来保证查询精度,从而减少所需哈希表的个数。比如,基于熵值扩展的方法,在查询点邻域范围内随机选择数据,然后把这些点作为新的查询点,以探测到更多的近邻;基于多探测的方法,扩展与查询点哈希值相近的表项,以找到更多的近邻来提高查询精度。这些方法在一定程度上减少了内存消耗,但并没有针对哈希函数进行改进,而哈希函数更本质地影响了索引的性能。
在原始的局部敏感哈希方法中,哈希函数随机选择投影向量,并没有考虑数据分布的先验信息。为了更好地利用数据分布的信息来提高查询效率,基于机器学习的方法被相继提出。限制波尔兹曼机RBM(RestrictedBoltzmann Machine)利用一种两层无向图形学的模型,产生RBM机来处理指数型分布族。但由于RBM自身的复杂性,在提高精度的同时也大大地降低了效率。基于增强的相似度敏感编码(Boosting Similarity SensitiveCoding)的方法,分类器由多个弱分类器复合而成,其复杂度也较高导致索引效率低。另外还有谱哈希的方法,该方法先采用主成分分析对数据降维,然后用特征函数对数据进行处理。以上基于机器学习的方法往往因学习过程复杂而导致整体复杂度较高。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种局部敏感哈希高维索引方法来提高查询效率并降低其对资源的消耗。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种局部敏感哈希索引方法,包括以下步骤:
步骤1)生成局部敏感哈希函数候选集合;
步骤2)根据训练数据集,计算局部敏感哈希函数候选集合中每个哈希函数的分布熵值,并从中选取分布熵值最高的L个哈希函数作为局部敏感哈希函数集合;
步骤3)基于该局部敏感哈希函数集合,将待索引数据集存储到哈希表中。
上述方法中,在所述步骤1)中局部敏感哈希函数候选集合中包括L’个哈希函数gi(x),其中
gi(x)=[hi1(x),...hij(x),...hik(x)],(1≤i≤L′,1≤j≤k),x为d维数据,d为大于2的整数。
上述方法中,所述步骤2)包括以下步骤:
步骤21)依据局部敏感哈希函数候选集合中每个哈希函数gi(x)执行如下操作:
211)为训练数据集建立一个哈希表,具有相同哈希值的数据被存储到该哈希表的同一表项中,而具有不同哈希值的数据被存储到该哈希表的不同表项中;
212)统计该哈希表中不为空的表项的个数m,以及表项r中存储的数据的个数Nr(1≤r≤m);
213)计算哈希函数gi(x)的分布熵
Figure BDA0000125362960000031
E g i ( x ) = - Σ r = 1 m N r Σ r = 1 m N r * log ( N r Σ r = 1 m N r )
步骤22)从局部敏感哈希函数候选集合中选取分布熵值最高的L个哈希函数作为局部敏感哈希函数集合。
上述方法中,所述步骤3)包括以下步骤:
步骤31)建立L个空哈希表,每个哈希表对应于局部敏感哈希函数集合中的一个哈希函数;
步骤32)采用局部敏感哈希函数集合中的每个哈希函数执行下列操作:采用该哈希函数计算待索引的数据集中每个数据的哈希值,具有相同哈希值的数据将被存储到该哈希函数对应的哈希表的同一表项中,不同哈希值的将被存储到该哈希函数对应的哈希表的不同表项中。
上述方法中,所述步骤3)包括以下步骤:
步骤31)建立L个大小为tableSize的空哈希表{Table1,...TableL};
步骤32)对于待索引数据集中每个数据x,采用Qgi(x)计算该数据x的哈希值,将x存储到Tablei的第Qgi(x)个表项的链表中,其中Qgi(x)为:
Q gi ( x ) = ( ( Σ j = 1 k r j a j ) mod prime ) mod tablesize - - - ( 3 )
其中aj(1≤j≤k)是采用gi(x)=[hi1(x),...hik(x)]对数据x计算得到的k维哈希值中第j个哈希值;rj是随机整数,prime是一个素数,取值为232-5。
上述方法中,步骤1)中
Figure BDA0000125362960000042
其中,pij是d维向量,其元素是满足高斯正态分布的随机数;正实数w是一个划分宽度值;bij是[0,w]内的随机数。
又一个方面,本发明还提供了一种对采用上述索引方法索引的数据集的查询方法,包括以下步骤:
对于每个哈希表Tablei,采用Qgi(x)计算查询数据的哈希值,从哈希表Tablei中取出该哈希值对应的表项中所存储的数据;
将从L个哈希表得到数据组成相似数据的候选集合;
计算查询数据和该相似数据的候选集合中的每个候选数据的欧氏距离;
根据所计算的欧氏距离取出与该查询数据最接近的n个数据作为该查询数据的近似最近邻数据集合。
上述查询方法中,还包括以下步骤:
设置查询半径R;以及对所述相似数据的候选集合中每个候选数据,如果其欧氏范数与所述查询数据的欧氏范数的差值的绝对值大于或等于所述查询半径R,则将该候选数据从所述相似数据的候选集合中删除。
与现有技术相比,本发明通过提出局部敏感哈希函数的分布熵的概念,选择分布熵值高的哈希函数提高了检索性能,降低了局部敏感哈希方法所需的内存资源。另外,更好地利用数据分布的先验信息来获得更高的近似最近邻查询效率和精度。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是根据本发明实施例的基于分布熵选择局部敏感哈希函数示意图;
图2是根据本发明实施例的将数据存储至哈希表的流程图;
图3是根据本发明实施例的查询相似数据的流程图;
图4是本发明实施例的方法与现有方法的查询性能比较效果示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的实施例中提供了一种基于分布熵的局部敏感哈希索引方法。该方法基于训练数据集,计算局部敏感哈希函数候选集合中每个哈希函数的分布熵值,从中选取分布熵值最高的L个哈希函数作为局部敏感哈希函数集合,然后根据该局部哈希函数集合来将待索引数据集存储到哈希表中。更具体地,该方法主要包括以下步骤:
步骤1,生成局部敏感哈希函数候选集合。
在一个实施例中,可以现有方法(例如欧氏空间局部敏感哈希方法)生成局部敏感哈希函数候选集合G’。例如,给定待索引数据集X,d维数据x=(x1,...,xd)代表X中的一个数据(通常,d为大于2的整数),则可以生成k*L’(k>0,L’>0)个原始的欧氏空间局部敏感哈希函数,即H={hij(x)},1≤i≤L′,1≤j≤k;其中,k代表组成一个局部敏感哈希函数所需级联组合的哈希函数个数,L’代表候选局部敏感哈希函数的个数,L代表要选择的局部敏感哈希函数的个数,k和L可以按照原始的欧氏空间局部敏感哈希方法中的参数设置方法来进行设置(参见文献:Mayur Datar,NicoleImmorlica,Piotr Indyk,Vahab S.Mirrokni.Locality-sensitive hashing schemebased on p-stable distributions[J].In SCG′04:Proceedings of the twentiethannual symposium on Computational geometry,2004:253-262.)。通常,L’取值越大,候选的局部敏感哈希函数越多,性能优化越多,但择优选择哈希函数的时间越长,因此L’应取适中的值。在本发明的实施例中,将L’取值为L的3~10倍。应指出,其中,哈希函数hij(x)可以采用本领域人员所知的任何局部哈希敏感函数。例如,在一个实施例中,其中,pij是d维向量,其元素是满足高斯正态分布的随机数;正实数w是一个划分宽度值;bij是[0,w]内的随机数。内积x·pij操作将空间中的点x投影到向量pij上。通过对数据进行投影以及对投影值以宽度w进行划分,实现了数据x从d维向量到整数的映射。
然后,在上面生成的k*L’哈希函数中,每k个为一组形成哈希函数g(x),g(x)实际上是k个哈希函数h(x)(h(x)∈H)的级联组合,即
g(x)=[h1(x),...,hk(x)]    (1)
根据公式(1)得到L’个哈希函数g(x)的集合G’,即G′={g1,...gL′},其中gi(x)=[hi1(x),...hij(x),...hik(x)]。将集合G’作为局部敏感哈希函数候选集合。为了描述方便,也可以将h(x),g(x)、gi(x)简写为h、g、gi
步骤2,基于训练数据集,计算所生成的局部敏感哈希函数候选集合中的每个哈希函数的分布熵值。
其中,训练数据集是从待索引数据集X中随机选取的,例如,可以从待索引数据集X中选择10%的数据作为训练数据集T。选取的数量越多训练越准确但效率越低,对训练时间没有要求时可选取更多的数据。
然后,基于该训练数据集,计算局部敏感哈希函数候选集合G’中每个哈希函数gi(1≤i≤L′)的分布熵值,主要包括以下步骤:
(1)对于候选集合G’中每个哈希函数gi,采用该哈希函数对训练数据集建立哈希表。也就是采用该函数计算训练数据的局部敏感哈希函数值,即计算gi(t)=[hi1(t),...hik(t)],其中1≤i≤L′,t∈T;并且根据该哈希函数对训练数据集建立哈希表Table(gi),哈希值相同的数据存储在同一哈希表项中,不同的存储在不同的表项中。假设表项Bucket(key)对应的哈希值为key,则其包含的数据为:Bucket(key)={t|t∈T&gi(t)=key}。
(2)统计哈希表Table(gi)中不为空的哈希表项的个数m,以及表项Bucket(keyr)(也可以简记为表项r)(1≤r≤m)中存储的数据的个数Nr
(3)计算哈希函数gi的分布熵
Figure BDA0000125362960000062
E g i = - Σ r = 1 m P * ( key r ) * log ( P ( key r ) ) - - - ( 2 )
P(keyr)为任何数据x依据哈希函数gi被哈希到表项Bucket(keyr)的概率,其值可通过估计
Figure BDA0000125362960000071
得到,也就是
经过上述步骤计算的分布熵值体现了哈希函数对数据建立索引的均衡程度,分布熵值越大索引越均衡。当哈希表项中有的数据稀疏,有的密集时,分布熵值较低,查询密集的表项访问的噪声数据多将引起查询效率低,查询稀疏表项则访问的近邻数据少而导致精度低。当数据被均匀索引到哈希表项中时,分布熵值较高,此时查询时访问到的噪声少且近邻适中,因此可以判断该哈希函数对应的索引性能较好。
步骤3,从局部敏感哈希函数候选集合中选取分布熵值最高的L个哈希函数作为局部敏感哈希函数集合。
图1是根据本发明实施例的基于分布熵从候选集合中选择局部敏感哈希函数的示意图。根据上述公式(2),计算G’中每个哈希函数g的分布熵值,并降序排列,选取对应分布熵值高的L个组成局部敏感哈希函数集合G。
步骤4,根据局部敏感哈希函数集合,计算待索引数据集中每个数据的哈希值,将待索引数据集存储到哈希表中。
首先,建立L个大小为tableSize的空哈希表{Table1,...TableL},依次对应于局部敏感哈希函数集中的L个哈希函数;其中,每个哈希表实际上是大小为tableSize的数组,数组的第s(1≤s≤tableSize)个表项中存储一个指向链表的指针,该链表将存储哈希值为s的所有数据。
然后,对于局部敏感哈希函数集合中的每个哈希函数,计算待索引数据集X中每个x的L个哈希值,具有相同哈希值的数据将被存储到该哈希函数对应的哈希表的同一表项中,不同哈希值的数据将被存储到该哈希表的不同表项中。
其中,tableSize表示哈希表的大小。假设待索引数据集包含N个数据,当N≤104时tableSize取值为N;当N>104时,tableSize取值为104。tableSize取值越大,查询性能较高,同时哈希表中的空表项也越多;tableSize取值越小,不相似数据存储到相同表项的概率变大,在一定程度上降低查询效率,但不会影响查询精度。在内存资源允许的条件下,可以尽量设置大的tableSize。
在又一个实施例中,为了提高查询效率,进一步减小内存消耗,采用二级哈希函数将多维的哈希值转换为1维。例如,假设哈希表的大小为tableSize,对数据x,其第一级哈希函数gi(gi∈G,1≤i≤L)的哈希值为gi(x)=[hi1(x),...hik(x)],表示为[a1,...ak]。而第二级哈希函数为:
Q gi ( x ) = ( ( Σ j = 1 k r j a j ) mod prime ) mod tableSize - - - ( 3 )
其中rj是随机整数,prime是一个素数,取值为232-5。可见,第二级哈希函数Qgi(Qgi(x)可简写为Qgi)的输入实际上是第一级哈希函数gi(gi∈G,1≤i≤L)的k维哈希值,其输出为1维的哈希值。
图2是根据本发明实施例的采用二级哈希函数将待索引数据集存储至哈希表的流程图。首先建立L个大小为tableSize的空哈希表{Table1,...TableL},根据局部敏感哈希函数gi(gi∈G,1≤i≤L)和二级哈希函数Qgi将待索引数据集存储到Tablei中。存储流程如图2所示:对每个x∈X,依次计算gi(x)和Qgi(x),将x存储到Tablei的第Qgi(x)个表项的链表中。相同哈希表项中的数据在概率上具有较高的相似性,不同表项中的数据在概率上相似性较低。
在又一个实施例中,提供了一种对采用上述方法形成的索引表进行查询的方法。图3是根据本发明实施例的查询相似数据的流程图。其中,首先计算查询数据的L个哈希值,然后,查询所有哈希表得到相似数据的候选集合,最后对所得到的相似数据的候选集合采用欧氏距离排序策略,得到查询数据的近似最近邻数据集合。
更具体地,对于每个哈希表,计算查询数据q的对应哈希值,即计算gi(q)(gi∈G,1≤i≤L),取出第i个哈希表中Qgi(q)对应表项包含的数据。将这些数据组成候选集合C。对候选集合C,计算查询数据到候选数据的欧氏距离,根据欧氏距离取出与查询数据q最接近的n个数据作为结果返回。
在又一个实施例中,为了滤除噪声数据,精简返回的数据集合,可以在计算查询数据到候选数据的欧氏距离之前,先采用基于欧氏范数的三角不等式过滤候选集合C,即:设置查询半径为R,对c∈C如果|||q||-||c|||≥R则删除c,其中||c||离线计算(也就是说,可以在哈希表中存储数据的时候同时计算c的范数)。也就是对相似数据的候选集合中每个候选数据,如果其欧氏范数与所述查询数据的欧氏范数的差值的绝对值大于或等于所述查询半径R,则将该候选数据从所述相似数据的候选集合中删除。
然后,计算查询数据到剩余候选数据的欧氏距离,并根据欧氏距离对候选数据进行升序排列。由于高维数据计算欧氏距离的成本较高,因此对经上述方法精简后的C进行欧氏距离排序能够提高查询效率。最后,取出排序后的前n个数据,作为结果返回。n代表要返回多少近邻,n的取值可以根据具体应用或用户的需求来设置,例如,可以是1个、2个、10个等等。当在n=1时,表示只返回最近邻。
现有技术中的局部敏感哈希索引方法采用的是随机选择的哈希函数。随机的方法具有不确定性,无法保证每次产生的哈希函数都能建立均衡的索引,从而造成索引效率的下降。在本发明的实施例中,选取原始局部敏感哈希函数中分布熵值较高的来建立哈希表。分布熵值高的哈希函数使得数据更均匀地索引到哈希表中,在执行查询时访问到的噪声少且近邻个数适中,从而提高了索引的查询性能。
为了说明本申请所公开的方法的效果,发明人在法国国家信息与自动化研究院的INRIA-BIGANN公开数据集上(http://corpus-texmex.irisa.fr/)具体实现了上述方法。使用的数据集包含了128维的100个查询数据、10k个待索引数据。通过下述步骤实现:
(1)生成哈希函数候选集合G’。
生成原始局部敏感哈希函数集合H:设置L=8,L’=32,k=8,则共生成32*8=256个局部敏感哈希函数h以及32个函数g。所有的函数g组成集合G’。
(2)在待索引数据中随机选择1k个作为训练数据集T,根据公式(2),在T上计算g的分布熵值。
选取分布熵值最高的L=8个组成第一级哈希函数集合G;
(3)生成第二级哈希函数,即:根据公式(3),从高斯正态分布中生成向量aj并保存。此时,共得到L=8组第一级和第二级哈希函数。
(4)设置tableSize=104。对待索引数据集中的每个数据x,分别计算L=8组第一级和第二级哈希函数值,并根据第二级哈希函数值建立哈希表。同时计算||x||即x的欧氏范数,并和数据一起保存至哈希表中。
(5)执行相似性查询算法。
对查询数据q,分别计算第一级哈希函数gi(q)和第二级哈希函数Qgi(q)(gi∈G,1≤i≤L)的值。根据Qgi(q)访问哈希表的表项,取出对应表项中的所有数据组成集合C。
对C进行三角不等式过滤,设置过滤半径R为103;然后对过滤后的数据计算与查询数据之间的欧氏距离,并根据该距离进行降序排列。
为了方便评价实验结果,查询返回n=1个数据即最近邻。在该实验中,采用最近邻在返回结果中的比例来衡量查询精度。基于相同的索引与查询数据集合,用本发明的方法和现有方法重复多次查询实验,实验结果如图4所示。由于哈希函数的随机性,现有方法的查询时间和查询精度在较大范围内波动。而本发明的方法由于基于分布熵择优选择局部敏感哈希函数,提高了哈希函数对数据分布的适应性,表现出更稳定的性能,优于现有方法。而且由于通过基于训练数据集来计算分布熵,更好地利用数据分布的先验信息,获得了更高的近似最近邻查询效率和精度。另外,本发明的方法采用二级哈希函数的方法,其操作简单且易于实现,降低了局部敏感哈希方法所需的内存资源。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。

Claims (8)

1.一种局部敏感哈希高维索引方法,所述方法包括:
步骤1)生成局部敏感哈希函数候选集合;
步骤2)根据训练数据集,计算局部敏感哈希函数候选集合中每个哈希函数的分布熵值,并从中选取分布熵值最高的L个哈希函数作为局部敏感哈希函数集合;
步骤3)基于该局部敏感哈希函数集合,将待索引数据集存储到哈希表中。
2.根据权利要求1所述的方法,在所述步骤1)中局部敏感哈希函数候选集合中包括L’个哈希函数gi(x),其中
gi(x)=[hi1(x),...hij(x),...hik(x)],(1≤i≤L′,1≤j≤k),x为d维数据,d为大于2的整数。
3.根据权利要求2所述的方法,所述步骤2)包括以下步骤:
步骤21)依据局部敏感哈希函数候选集合中每个哈希函数gi(x)执行如下操作:
211)为训练数据集建立一个哈希表,具有相同哈希值的数据被存储到该哈希表的同一表项中,而具有不同哈希值的数据被存储到该哈希表的不同表项中;
212)统计该哈希表中不为空的表项的个数m,以及表项r中存储的数据的个数Nr(1≤r≤m);
213)计算哈希函数gi(x)的分布熵
Figure FDA0000125362950000011
E g i ( x ) = - Σ r = 1 m N r Σ r = 1 m N r * log ( N r Σ r = 1 m N r )
步骤22)从局部敏感哈希函数候选集合中选取分布熵值最高的L个哈希函数作为局部敏感哈希函数集合。
4.根据权利要求2或3所述的方法,所述步骤3)包括以下步骤:
步骤31)建立L个空哈希表,每个哈希表对应于局部敏感哈希函数集合中的一个哈希函数;
步骤32)采用局部敏感哈希函数集合中的每个哈希函数执行下列操作:采用该哈希函数计算待索引的数据集中每个数据的哈希值,具有相同哈希值的数据将被存储到该哈希函数对应的哈希表的同一表项中,不同哈希值的将被存储到该哈希函数对应的哈希表的不同表项中。
5.根据权利要求2或3所述的索引方法,所述步骤3)包括以下步骤:
步骤31)建立L个大小为tableSize的空哈希表{Table1,...TableL};
步骤32)对于待索引数据集中每个数据x,采用Qgi(x)计算该数据x的哈希值,将x存储到Tablei的第Qgi(x)个表项的链表中,其中Qgi(x)为:
Q gi ( x ) = ( ( Σ j = 1 k r j a j ) mod prime ) mod tableSize - - - ( 3 )
其中aj(1≤j≤k)是采用gi(x)=[hi1(x),...hik(x)]对数据x计算得到的k维哈希值中第j个哈希值;rj是随机整数,prime是一个素数,取值为232-5。
6.根据权利要求2或3所述的方法,步骤1)中
Figure FDA0000125362950000022
其中,pij是d维向量,其元素是满足高斯正态分布的随机数;正实数w是一个划分宽度值;bij是[0,w]内的随机数。
7.一种对采用上述任一权利要求所述的索引方法索引的数据集进行查询的方法,所述方法包括以下步骤:
对于每个哈希表Tablei,采用Qgi(q)计算查询数据q的哈希值,从哈希表Tablei中取出该哈希值对应的表项中所存储的数据;
将从L个哈希表得到数据组成相似数据的候选集合;
计算查询数据和该相似数据的候选集合中的每个候选数据的欧氏距离;
根据所计算的欧氏距离取出与该查询数据最接近的n个数据作为该查询数据的近似最近邻数据集合。
8.根据权利要求7所述的查询方法,还包括以下步骤:
设置查询半径R;
对所述相似数据的候选集合中每个候选数据,如果其欧氏范数与所述查询数据的欧氏范数的差值的绝对值大于或等于所述查询半径R,则将该候选数据从所述相似数据的候选集合中删除。
CN201110443604.XA 2011-12-27 2011-12-27 基于分布熵的局部敏感哈希高维索引方法 Active CN102609441B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110443604.XA CN102609441B (zh) 2011-12-27 2011-12-27 基于分布熵的局部敏感哈希高维索引方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110443604.XA CN102609441B (zh) 2011-12-27 2011-12-27 基于分布熵的局部敏感哈希高维索引方法

Publications (2)

Publication Number Publication Date
CN102609441A true CN102609441A (zh) 2012-07-25
CN102609441B CN102609441B (zh) 2014-06-25

Family

ID=46526816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110443604.XA Active CN102609441B (zh) 2011-12-27 2011-12-27 基于分布熵的局部敏感哈希高维索引方法

Country Status (1)

Country Link
CN (1) CN102609441B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631928A (zh) * 2013-12-05 2014-03-12 中国科学院信息工程研究所 一种基于局部敏感哈希的聚类索引方法及系统
CN103744934A (zh) * 2013-12-30 2014-04-23 南京大学 一种基于位置敏感哈希的分布式索引方法
CN104199827A (zh) * 2014-07-24 2014-12-10 北京大学 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN104391866A (zh) * 2014-10-24 2015-03-04 宁波大学 一种基于高维数据过滤器的近似成员查询方法
CN104604200A (zh) * 2012-07-16 2015-05-06 阿尔卡特朗讯 用于对用户兴趣简档的隐私保护聚集的方法和装置
CN104699747A (zh) * 2014-12-15 2015-06-10 宁波大学 一种基于高维数据过滤器的近似成员查询方法
CN104731882A (zh) * 2015-03-11 2015-06-24 北京航空航天大学 一种基于哈希编码加权排序的自适应查询方法
CN104778234A (zh) * 2015-03-31 2015-07-15 南京邮电大学 基于局部敏感哈希技术的多标记文件近邻查询方法
CN104866471A (zh) * 2015-06-05 2015-08-26 南开大学 一种基于局部敏感哈希策略的实例匹配方法
CN106156154A (zh) * 2015-04-14 2016-11-23 阿里巴巴集团控股有限公司 相似文本的检索方法及其装置
CN107229663A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 数据处理方法和装置以及数据表处理方法和装置
CN107656989A (zh) * 2017-09-13 2018-02-02 华中科技大学 云存储系统中基于数据分布感知的近邻查询方法
CN107870974A (zh) * 2016-09-23 2018-04-03 谷歌公司 使用设备上模型的智能回复
CN108197324A (zh) * 2018-02-06 2018-06-22 百度在线网络技术(北京)有限公司 用于存储数据的方法和装置
CN108959427A (zh) * 2018-06-11 2018-12-07 南京邮电大学 基于经验拟合的局部敏感哈希图像检索参数优化方法
CN109634952A (zh) * 2018-11-02 2019-04-16 宁波大学 一种面向大规模数据的自适应最近邻查询方法
CN109739999A (zh) * 2019-01-16 2019-05-10 福建师范大学 一种高效的果蝇神经网络哈希搜索wmsn数据方法
CN110175258A (zh) * 2016-02-05 2019-08-27 大连大学 建立基于位置敏感哈希索引的移动感知数据查询方法
CN110222775A (zh) * 2019-06-10 2019-09-10 北京字节跳动网络技术有限公司 图像处理方法、装置、电子设备及计算机可读存储介质
CN111552692A (zh) * 2020-04-30 2020-08-18 南方科技大学 一种加减法布谷鸟过滤器
CN111801665A (zh) * 2018-03-01 2020-10-20 华为技术加拿大有限公司 用于大数据应用的分层局部敏感哈希(lsh)分区索引
US11080251B1 (en) 2017-10-23 2021-08-03 Comodo Security Solutions, Inc. Optimization of memory usage while creating hash table
CN114943090A (zh) * 2022-07-22 2022-08-26 图灵人工智能研究院(南京)有限公司 一种基于同态加密大规模人脸库隐匿查询的方法
US11669752B2 (en) 2014-04-22 2023-06-06 Google Llc Automatic actions based on contextual replies
CN116401258A (zh) * 2023-06-06 2023-07-07 支付宝(杭州)信息技术有限公司 数据索引方法、数据查询方法及对应装置
EP3161722B1 (en) * 2014-06-24 2024-03-06 Grass Valley Limited Hash-based media search

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030039357A1 (en) * 2001-08-24 2003-02-27 Alten Alexander I. System and methods for a vernam stream cipher, a keyed one-way hash and a non-cyclic pseudo-random number generator
CN101719155A (zh) * 2009-12-29 2010-06-02 北京航空航天大学 一种支持分布式多集群计算环境的多维属性范围查询的方法
US20110047545A1 (en) * 2009-08-24 2011-02-24 Microsoft Corporation Entropy Pools for Virtual Machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030039357A1 (en) * 2001-08-24 2003-02-27 Alten Alexander I. System and methods for a vernam stream cipher, a keyed one-way hash and a non-cyclic pseudo-random number generator
US20110047545A1 (en) * 2009-08-24 2011-02-24 Microsoft Corporation Entropy Pools for Virtual Machines
CN101719155A (zh) * 2009-12-29 2010-06-02 北京航空航天大学 一种支持分布式多集群计算环境的多维属性范围查询的方法

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104604200A (zh) * 2012-07-16 2015-05-06 阿尔卡特朗讯 用于对用户兴趣简档的隐私保护聚集的方法和装置
CN104604200B (zh) * 2012-07-16 2017-12-08 阿尔卡特朗讯 用于对用户兴趣简档的隐私保护聚集的方法和装置
CN103631928A (zh) * 2013-12-05 2014-03-12 中国科学院信息工程研究所 一种基于局部敏感哈希的聚类索引方法及系统
CN103631928B (zh) * 2013-12-05 2017-02-01 中国科学院信息工程研究所 一种基于局部敏感哈希的聚类索引方法及系统
CN103744934A (zh) * 2013-12-30 2014-04-23 南京大学 一种基于位置敏感哈希的分布式索引方法
US11669752B2 (en) 2014-04-22 2023-06-06 Google Llc Automatic actions based on contextual replies
EP3161722B1 (en) * 2014-06-24 2024-03-06 Grass Valley Limited Hash-based media search
CN104199827A (zh) * 2014-07-24 2014-12-10 北京大学 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN104199827B (zh) * 2014-07-24 2017-08-04 北京大学 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN104391866A (zh) * 2014-10-24 2015-03-04 宁波大学 一种基于高维数据过滤器的近似成员查询方法
CN104391866B (zh) * 2014-10-24 2017-07-28 宁波大学 一种基于高维数据过滤器的近似成员查询方法
CN104699747A (zh) * 2014-12-15 2015-06-10 宁波大学 一种基于高维数据过滤器的近似成员查询方法
CN104699747B (zh) * 2014-12-15 2017-10-31 宁波大学 一种基于高维数据过滤器的近似成员查询方法
CN104731882A (zh) * 2015-03-11 2015-06-24 北京航空航天大学 一种基于哈希编码加权排序的自适应查询方法
CN104731882B (zh) * 2015-03-11 2018-05-25 北京航空航天大学 一种基于哈希编码加权排序的自适应查询方法
CN104778234A (zh) * 2015-03-31 2015-07-15 南京邮电大学 基于局部敏感哈希技术的多标记文件近邻查询方法
CN106156154A (zh) * 2015-04-14 2016-11-23 阿里巴巴集团控股有限公司 相似文本的检索方法及其装置
CN104866471B (zh) * 2015-06-05 2017-09-19 南开大学 一种基于局部敏感哈希策略的实例匹配方法
CN104866471A (zh) * 2015-06-05 2015-08-26 南开大学 一种基于局部敏感哈希策略的实例匹配方法
CN110175258B (zh) * 2016-02-05 2024-01-23 大连大学 建立基于位置敏感哈希索引的移动感知数据查询方法
CN110175258A (zh) * 2016-02-05 2019-08-27 大连大学 建立基于位置敏感哈希索引的移动感知数据查询方法
CN107229663A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 数据处理方法和装置以及数据表处理方法和装置
CN107870974A (zh) * 2016-09-23 2018-04-03 谷歌公司 使用设备上模型的智能回复
CN107870974B (zh) * 2016-09-23 2021-08-06 谷歌有限责任公司 使用设备上模型的智能回复
CN107656989A (zh) * 2017-09-13 2018-02-02 华中科技大学 云存储系统中基于数据分布感知的近邻查询方法
CN107656989B (zh) * 2017-09-13 2019-09-13 华中科技大学 云存储系统中基于数据分布感知的近邻查询方法
US11080251B1 (en) 2017-10-23 2021-08-03 Comodo Security Solutions, Inc. Optimization of memory usage while creating hash table
CN108197324B (zh) * 2018-02-06 2021-07-16 百度在线网络技术(北京)有限公司 用于存储数据的方法和装置
CN108197324A (zh) * 2018-02-06 2018-06-22 百度在线网络技术(北京)有限公司 用于存储数据的方法和装置
CN111801665A (zh) * 2018-03-01 2020-10-20 华为技术加拿大有限公司 用于大数据应用的分层局部敏感哈希(lsh)分区索引
CN108959427A (zh) * 2018-06-11 2018-12-07 南京邮电大学 基于经验拟合的局部敏感哈希图像检索参数优化方法
CN108959427B (zh) * 2018-06-11 2022-09-20 南京邮电大学 基于经验拟合的局部敏感哈希图像检索参数优化方法
CN109634952A (zh) * 2018-11-02 2019-04-16 宁波大学 一种面向大规模数据的自适应最近邻查询方法
CN109634952B (zh) * 2018-11-02 2021-08-17 宁波大学 一种面向大规模数据的自适应最近邻查询方法
CN109739999A (zh) * 2019-01-16 2019-05-10 福建师范大学 一种高效的果蝇神经网络哈希搜索wmsn数据方法
CN110222775A (zh) * 2019-06-10 2019-09-10 北京字节跳动网络技术有限公司 图像处理方法、装置、电子设备及计算机可读存储介质
CN111552692B (zh) * 2020-04-30 2023-04-07 南方科技大学 一种加减法布谷鸟过滤器
CN111552692A (zh) * 2020-04-30 2020-08-18 南方科技大学 一种加减法布谷鸟过滤器
CN114943090A (zh) * 2022-07-22 2022-08-26 图灵人工智能研究院(南京)有限公司 一种基于同态加密大规模人脸库隐匿查询的方法
CN116401258A (zh) * 2023-06-06 2023-07-07 支付宝(杭州)信息技术有限公司 数据索引方法、数据查询方法及对应装置
CN116401258B (zh) * 2023-06-06 2023-09-22 支付宝(杭州)信息技术有限公司 数据索引方法、数据查询方法及对应装置

Also Published As

Publication number Publication date
CN102609441B (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
CN102609441B (zh) 基于分布熵的局部敏感哈希高维索引方法
CN104035949B (zh) 一种基于局部敏感哈希改进算法的相似性数据检索方法
Amato et al. MI-File: using inverted files for scalable approximate similarity search
CN102521386B (zh) 基于集群存储的空间元数据分组方法
CN104199827A (zh) 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN105574212B (zh) 一种多索引磁盘哈希结构的图像检索方法
CN102169491B (zh) 一种多数据集中重复记录动态检测方法
Hamrouni et al. Looking for a structural characterization of the sparseness measure of (frequent closed) itemset contexts
Valkanas et al. Skydiver: a framework for skyline diversification
CN105404675A (zh) Ranked反近邻空间关键字查询方法及装置
CN104142946A (zh) 一种同款业务对象聚合、搜索的方法和系统
Li et al. SES-LSH: Shuffle-efficient locality sensitive hashing for distributed similarity search
US20220222233A1 (en) Clustering of structured and semi-structured data
Dell'Amico Fishdbc: Flexible, incremental, scalable, hierarchical density-based clustering for arbitrary data and distance
Zhu et al. Efficient k-nearest neighbors search in high dimensions using mapreduce
Chen et al. Locality sensitive hashing for sampling-based algorithms in association rule mining
CN114911826A (zh) 一种关联数据检索方法和系统
Wang et al. A distributed multi-level composite index for knn processing on long time series
CN115495504A (zh) 数据查询方法和装置、电子设备、计算机可读存储介质
Lee et al. A locality sensitive hashing technique for categorical data
Levchenko et al. Spark-parsketch: a massively distributed indexing of time series datasets
WO2022153287A1 (en) Clustering of structured and semi-structured data
Zhou et al. Accurate querying of frequent subgraphs in power grid graph data
Guzun et al. High-dimensional similarity searches using query driven dynamic quantization and distributed indexing
Shiqiu et al. DBSCAN clustering algorithm based on locality sensitive hashing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant