一种基于位置敏感哈希的分布式索引方法

文档序号:6526731阅读:350来源:国知局
一种基于位置敏感哈希的分布式索引方法
【专利摘要】一种基于位置敏感哈希的分布式索引方法,首先利用聚类算法对海量数据集进行聚类,然后把聚类中心映射到不同计算节点上,再次将原始海量图片或视频特征数据映射到所属类对应的计算节点上,这样可以让每个节点处理一个类,最后利用基于p-稳定分布的位置敏感哈希方法建立不同节点上的数据索引。为了减少不同计算节点上搜索结果的合并时间和提高搜索结果的质量,本发明提供了两种方法来选择最近m个类以供后续详细搜索。本发明提供了一种自动将海量数据映射到不同计算节点的向导,此外,本发明还有效地减少了位置敏感哈希搜索阶段的详细比较次数,使得海量数据的搜索更加的准确高效。
【专利说明】一种基于位置敏感哈希的分布式索弓I方法
【技术领域】
[0001]本发明属于计算机【技术领域】,涉及高维数据空间下的分布式索引与查询方法,涉及一种近似最近邻搜索的方法,具体为一种基于位置敏感哈希的分布式索引方法。
【背景技术】
[0002]传统的最近邻搜索方法在信息检索、数据挖掘、数据库等应用中扮演了重要角色。一些经典的基于树形结构的搜索的方法,通常对于维度小于10的低维数据表现得很好,然而现在分析数据所应用的特征都是远大于10的,因此这些基于树形结构的搜索方法都退化到线性搜索的效率了,这个现象即大家所熟知的“维度灾害”。
[0003]最近10年,一些学者提出了利用近似最近邻搜索来替代传统的最近邻搜索,这类方法可以更好的克服“维度灾害”带来的负面影响,更好的平衡了搜索质量与搜索反应时间。不仅如此,只要能在搜索时准确的“理解”用户的搜索意向,采用近似最近邻搜索得到的结果与传统的最近邻搜索得到的结果之间的差异可以忽略不计。位置敏感哈希就是这类方法中一种非常流行的近似最近邻搜索方法,它的搜索质量和搜索反应时间都是非常优秀的。
[0004]现在是信息爆炸性增长的时代,待搜索的数据变得越来越多。但是位置敏感哈希为了获得更高的搜索质量和更好的搜索效率需要消耗大量的哈希表,也就是说,内存使用量非常大。这在很大程度上影响了位置敏感哈希在海量数据情景下的可扩展性,因为在单机环境下,内存难以提供足够的空间来加载海量数据所生成的哈希表。针对海量数据处理,Google提出了分布式处理计算技术的软件架构MapReduce,用于大于ITB的大规模数据集的并行运算。Google的MapReduce的开源实现是Hadoop MapReduce架构,但是开源的Hadoop MapReduce是为了离线海量数据处理的,直接把Hadoop MapReduce用在搜索框架中,是不太合适的,整体的效率也不高,因为Hadoop MapReduce架构不适合在线搜索服务,启动一次MapReduce任务所需要的时间开销是在线搜索服务不能承受的。
[0005]此外,传统的位置敏感哈希在搜索时是要搜索所有冲突表中的候选结果的,当数据量非常大的时候,详细比较的代价也会非常大,这也会降低传统位置敏感哈希的搜索效率。
[0006]综上所述,传统的位置敏感哈希可扩展性不太好,而且由于冲突表中的候选结果较多,浪费了很多时间在详细比较阶段,搜索的效率还可以进一步提高。

【发明内容】

[0007]本发明要解决的问题是:在高维数据的检索和查询技术中,传统的位置敏感哈希可扩展性不太好,搜索效率低;而且现有的离线海量数据处理计算方式不适于直接用于在线搜索中,因为离线处理的计算方式反应时间太长。
[0008]本发明的技术方案为:一种基于位置敏感哈希的分布式索引方法,以多台计算机作为节点,多机协同创建索引与搜索,包括以下步骤:[0009]I)对原始海量数据利用聚类方法进行聚类,所述原始海量数据指被检索的原始海量图片或视频特征数据;
[0010]2)聚类结束后,将每个聚类中心映射到不同计算机节点上;
[0011]3)将原始海量数据映射到所属类对应的节点上,每个节点处理一个类,映射到节点上的数据作为该节点的特征数据点;
[0012]4)利用基于P-稳定分布的位置敏感哈希方法建立不同节点上的数据索引,即分布式索引,以供后续搜索;
[0013]5)根据得到的分布式索引,对查询特征数据点进行分布式搜索,所述查询特征数据点指待搜索的特征数据点。
[0014]作为优选方式,步骤I)对原始海量数据进行聚类时,首先对原始海量数据进行采样,然后在样本数据集上利用聚类算法进行聚类,进行聚类计算时,利用MapReduce对采样数据进行并行聚类,得到聚类结果,所述聚类算法包括k-means,BIRCH, CLIQUE, SUBCLU,DBSCAN和近邻传播。
[0015]步骤4)具体为:
[0016]4.1)生成基于P-稳定分布的位置敏感哈希的哈希函数
【权利要求】
1.一种基于位置敏感哈希的分布式索引方法,其特征是以多台计算机作为节点,多机协同创建索引与搜索,包括以下步骤: 1)对原始海量数据利用聚类方法进行聚类,所述原始海量数据指被检索的原始海量图片或视频特征数据; 2)聚类结束后,将每个聚类中心映射到不同计算机节点上; 3)将原始海量数据映射到所属类对应的节点上,每个节点处理一个类,映射到节点上的数据作为该节点的特征数据点; 4)利用基于P-稳定分布的位置敏感哈希方法建立不同节点上的数据索引,即分布式索引,以供后续搜索; 5)根据得到的分布式索引,对查询特征数据点进行分布式搜索,所述查询特征数据点指待搜索的特征数据点。
2.根据权利要求1所述的一种基于位置敏感哈希的分布式索引方法,其特征是步骤I)对原始海量数据进行聚类时,首先对原始海量数据进行采样,然后在样本数据集上利用聚类算法进行聚类,进行聚类计算时,利用MapReduce对采样数据进行并行聚类,得到聚类结果,所述聚类算法包括k-means,BIRCH, CLIQUE, SUBCLU, DBSCAN和近邻传播。
3.根据权利要求1或2所述的一种基于位置敏感哈希的分布式索引方法,其特征是步骤4)具体为: 4.1)生成基于P-稳定分布的位置敏感哈希的哈希函数
4.根据权利要求3所述的一种基于位置敏感哈希的分布式索引方法,其特征是在步骤4.2)之后进行步骤4.3),采用另外两个哈希函数对步骤4.2)得到的哈希结果向量进行哈希,分别为:
5.根据权利要求1或2所述的一种基于位置敏感哈希的分布式索引方法,其特征是步骤5)具体为: 5.1)计算查询特征数据点到每个聚类中心的距离,然后将查询请求发送到离查询特征数据点最近的m个类所在的计算机节点,然后详细搜索最近的这m个类,m的大小采用以下两种判断方法之一确定: a)搜索固定数目的最近m类; b)离查询特征数据点最近的m个类的聚类中心为ct,t= 1,…m,则查询特征数据点到聚类中心Ct的距离dt满足条件
【文档编号】G06F17/30GK103744934SQ201310746690
【公开日】2014年4月23日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】武港山, 徐向阳 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1