CN104699701A - 基于敏感哈希的并行最邻近节点计算方法及分布式系统 - Google Patents
基于敏感哈希的并行最邻近节点计算方法及分布式系统 Download PDFInfo
- Publication number
- CN104699701A CN104699701A CN201310655600.7A CN201310655600A CN104699701A CN 104699701 A CN104699701 A CN 104699701A CN 201310655600 A CN201310655600 A CN 201310655600A CN 104699701 A CN104699701 A CN 104699701A
- Authority
- CN
- China
- Prior art keywords
- data
- nearest
- hash
- nearest neighbor
- neighbour
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于数据处理技术领域,提供一种基于敏感哈希的并行最邻近节点计算方法及分布式系统,所述方法包括:将被查询数据集划分成若干数据子集;针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合;将所有获取到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。本发明采用并行KNN算法,将海量数据划分为多个数据子集,各个子节点进行并行KNN计算,提高了计算效率,大大缩短了查询搜索时间。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及一种基于敏感哈希的并行最邻近节点计算方法及分布式系统。
背景技术
KNN(k-Nearest Neighbor algorithm,最邻近节点算法)也称为邻近算法,是电子信息分类器算法的一种。KNN算法对包容型数据的特征变量筛选尤其有效。如图1所示的KNN算法示意图,给定查询数据集R和被查询数据集S,图中实心点为集合R中的点,空心点为集合S中的点,对于集合R中的任意一点q,经KNN算法处理后返回集合S中距离点q的k个最近的点,比如根据图1所示,返回离点q最近的三个点:p1、p2、p3。
局部敏感哈希LSH算法是一种用于高效求解最近邻搜索问题的Hash算法。LSH算法的基本思想是利用一个hash函数把集合中的元素映射成hash值,使得相似度越高的元素hash值相等的概率也越高。
基于敏感哈希的串行KNN计算方法步骤如下:
A.产生一组局部敏感的哈希函数簇,共L个哈希函数;
B.将被查询数据集S中的数据分别使用L个哈希函数分别哈希到L个不同的桶B1,B2,B3,…,BL中,即桶中的每个哈希值对应数据集S中的若干数据;
C.对于查询数据集R中的任一数据q,分别使用L个哈希函数计算出L个哈希值h1,h2,h3,…,hL;
D.对于查询数据集R中任意数据q,从每个桶Bj中找出和哈希值hj相等的数据(1<=j<=L),加入到集合S(q)中;
E.对于查询数据集R中任意数据数据q,从集合S(q)中找出K个最近的邻居作为q的K近邻居。
现有局部敏感哈希的串行KNN算法无法处理海量数据,当被查询数据集S中数据量很大时,无法一次将S中的所有数据在单个计算机节点载入内存,也就无法一次将全部数据哈希到桶中。当数据量很大的时候,现有基于敏感哈希的串行KNN算法计算耗时长。
发明内容
鉴于上述问题,本发明的目的在于提供一种基于敏感哈希的并行最邻近节点计算方法及分布式系统,旨在解决现有基于敏感哈希的串行KNN算法处理海量数据耗时长的技术问题。
一方面,所述基于敏感哈希的并行最邻近节点计算方法包括下述步骤:
将被查询数据集划分成若干数据子集;
针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合;
将所有获取到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
另一方面,分布式系统一个主节点和与所述主节点连接的若干从节点,其中,所述主节点包括:
数据划分单元,用于将被查询数据集划分成若干数据子集;
接收查找单元,用于接收各个从节点返回的K近邻居集合和数据q,并将所有接收到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居;
所述从节点包括:
近邻计算单元,用于针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合,以及将所述K近邻居集合和数据q发送给主节点。
本发明的有益效果是:本发明将被查询数据集中的海量数据分组划分成多个数据子集,然后针对每个数据子集,对于给定的查询数据集中的任一数据q,采用基于敏感哈希的串行KNN算法计算出的K近邻居集合,最后将所有的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居,由于将海量数据划分为多个数据子集,各个子节点进行并行KNN计算,提高了计算效率,大大缩短了查询搜索时间。
附图说明
图1是本发明实施例提供的基于敏感哈希的并行最邻近节点计算方法的流程图;
图2是图1中步骤S102的优选流程图;
图3是本发明实施例提供分布式系统的结构图;
图4是本发明实施例提供的近邻计算单元的优选结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的基于敏感哈希的并行最邻近节点计算方法的流程,为了便于说明仅示出了与本发明实施例相关的部分。
本实施例提供的基于敏感哈希的并行最邻近节点计算方法包括下述步骤:
步骤S101、将被查询数据集划分成若干数据子集;
步骤S102、针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合;
步骤S103、将所有获取到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
由于现有基于敏感哈希的KNN算法处理海量数据效率低下,当被查询数据集S中数据量很大时,无法一次将S中的所有数据在单个计算机节点载入内存,也就无法一次将全部数据哈希到桶中。因此本实施在步骤S101中,首先将被查询数据集S中的样本数据划分成m个数据子集,分别为S1,S2,…,Sm,具体划分方式一般采用随机选择分配方法,数据采用链表存储方式。
针对每一个数据子集Si,给定查询数据集中的任一数据q,使用基于敏感哈希的串行KNN算法,获取数据子集Si上的K近邻居集合Ni;然后将所有得到的K近邻居集合组成一个近邻总集,最后从所述邻近总集中选取K个最近的邻居作为数据q的K近邻居。经验证,串行哈希KNN算法与并行哈希KNN算法测试对比结果下表1所示(被查询数据集S,查询数据R的数量1000,数据子集数为10):
表1
由于本实施例对被查询数据集S进行数据划分,对于每一个数据子集采用基于敏感哈希的KNN算法,从表1可看出,这种并行处理方式很大程度上缩短了查询时间,能够快速处理海量数据。
进一步的,如图2所示,上述步骤S102具体包括:
步骤S201、生成一组局部敏感的哈希函数簇,共有L个哈希函数;
步骤S202、针对每一个数据子集Si,将数据子集中的数据分别使用L个哈希函数计算得到L个不同的桶B1,B2,…,BL,即桶中的每个哈希值对应数据子集Si中的若干数据;
步骤S203、给定查询数据集中的任一数据q,分别使用L个哈希函数计算出L个哈希值h1,h2,…,hL;
步骤S204、从每个桶Bj中找出和哈希值hj相等的数据组成集合S(q),其中1≤j≤L;
步骤S205、从集合S(q)中找出K个最近的邻居作为数据q的k近邻居集合Ni。
因此将被查询数据集划分成m个数据子集后,就可以得到数据q的m个k近邻居集合,分别为N1,N2,…,Nm,并组成邻近总集Sk,最后从所述邻近总集Sk中选取K个最近的邻居作为数据q的K近邻居,优选的,采用大顶推方法从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
图3示出了本发明实施例提供的分布式系统的结构,为了便于说明仅示出了与本发明实施例相关的部分。
本实施例提供的分布式系统包括一个主节点1和与所述主节点连接的若干从节点2,其中,所述主节点1包括:
数据划分单元11,用于将被查询数据集划分成若干数据子集;
接收查找单元12,用于接收各个从节点返回的K近邻居集合和数据q,并将所有接收到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居;
所述从节点2包括:
近邻计算单元21,用于针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合,以及将所述K近邻居集合和数据q发送给主节点。
基于敏感哈希的并行KNN算法应用于本实施例提供的分布式系统,包括一个主节点和若干从节点。将被查询数据集S和查询数据集R传送到分布式系统中各个节点后,在主节点上数据划分单元11将被查询数据集划分成若干数据子集,并将所述数据子集对应分配给各个子节点,每个子节点分配到一个数据子集,然后在各个子节点中,查询数据集中的任一数据q,近邻计算单元21给定使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集Si上的K近邻居集合Ni,并将<q,Ni>发送给主节点。主节点的接收查找单元12接收各个从节点返回的K近邻居集合,并将所有接收到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
本实施例提供的分布式系统中,各个子节点同时进行串行KNN算法计算,很大程度上提高了计算效率,缩短搜索时间,单处理系统相比,可以处理海量数据,而且处理效率高。
进一步的,所述接收查找单元12采用大顶推方法从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
作为近邻计算单元21的一种具体结构,如图4所示,所述近邻计算单元21包括:
哈希函数生成模块211,用于生成一组局部敏感的哈希函数簇,共有L个哈希函数;
哈希第一处理模块212,用于针对每一个数据子集,将数据子集中的数据分别使用L个哈希函数计算得到L个不同的桶B1,B2,…,BL;
哈希第二处理模块213,用于给定查询数据集中的任一数据q,分别使用L个哈希函数计算出L个哈希值h1,h2,…,hL;
集合生成模块214,用于从每个桶Bj中找出和哈希值hj相等的数据组成集合S(q),其中1≤j≤L;
近邻计算模块215,用于从集合S(q)中找出K个最近的邻居作为数据q的k近邻居集合。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于敏感哈希的并行最邻近节点计算方法,其特征在于,所述方法包括:
将被查询数据集划分成若干数据子集;
针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合;
将所有获取到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
2.如权利要求1所述方法,其特征在于,所述针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合步骤,具体包括:
生成一组局部敏感的哈希函数簇,共有L个哈希函数;
针对每一个数据子集,将数据子集中的数据分别使用L个哈希函数计算得到L个不同的桶B1,B2,…,BL;
给定查询数据集中的任一数据q,分别使用L个哈希函数计算出L个哈希值h1,h2,…,hL;
从每个桶Bj中找出和哈希值hj相等的数据组成集合S(q),其中1≤j≤L;
从集合S(q)中找出K个最近的邻居作为数据q的k近邻居集合。
3.如权利要求1或2所述方法,其特征在于,采用大顶推方法从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
4.一种分布式系统,其特征在于,所述分布式系统包括一个主节点和与所述主节点连接的若干从节点,其中,所述主节点包括:
数据划分单元,用于将被查询数据集划分成若干数据子集;
接收查找单元,用于接收各个从节点返回的K近邻居集合和数据q,并将所有接收到的K近邻居集合组成近邻总集,从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居;
所述从节点包括:
近邻计算单元,用于针对每一个数据子集,给定查询数据集中的任一数据q,使用基于敏感哈希的串行最邻近节点计算方法,获取该数据子集上的K近邻居集合,以及将所述K近邻居集合和数据q发送给主节点。
5.如权利要求4所述分布式系统,其特征在于,所述近邻计算单元包括:
哈希函数生成模块,用于生成一组局部敏感的哈希函数簇,共有L个哈希函数;
哈希第一处理模块,用于针对每一个数据子集,将数据子集中的数据分别使用L个哈希函数计算得到L个不同的桶B1,B2,…,BL;
哈希第二处理模块,用于给定查询数据集中的任一数据q,分别使用L个哈希函数计算出L个哈希值h1,h2,…,hL;
集合生成模块,用于从每个桶Bj中找出和哈希值hj相等的数据组成集合S(q),其中1≤j≤L;
近邻计算模块,用于从集合S(q)中找出K个最近的邻居作为数据q的k近邻居集合。
6.如权利要求4或5所述分布式系统,其特征在于,所述接收查找单元采用大顶推方法从所述近邻总集中选取K个最近的邻居作为数据q的K近邻居。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310655600.7A CN104699701A (zh) | 2013-12-05 | 2013-12-05 | 基于敏感哈希的并行最邻近节点计算方法及分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310655600.7A CN104699701A (zh) | 2013-12-05 | 2013-12-05 | 基于敏感哈希的并行最邻近节点计算方法及分布式系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104699701A true CN104699701A (zh) | 2015-06-10 |
Family
ID=53346835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310655600.7A Pending CN104699701A (zh) | 2013-12-05 | 2013-12-05 | 基于敏感哈希的并行最邻近节点计算方法及分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699701A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760468A (zh) * | 2016-02-05 | 2016-07-13 | 大连大学 | 移动环境下基于倒排位置敏感哈希索引的大规模图象查询系统 |
CN105760469A (zh) * | 2016-02-05 | 2016-07-13 | 大连大学 | 云计算环境下基于倒排lsh的高维近似图象检索方法 |
CN107454084A (zh) * | 2017-08-10 | 2017-12-08 | 桂林电子科技大学 | 基于杂交带的最近邻入侵检测算法 |
CN108874799A (zh) * | 2017-05-09 | 2018-11-23 | 中国科学院沈阳自动化研究所 | 高速并行数据查找方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799748A (zh) * | 2009-02-06 | 2010-08-11 | 中国移动通信集团公司 | 一种确定数据样本类别的方法及其系统 |
CN102722554A (zh) * | 2012-05-28 | 2012-10-10 | 中国人民解放军信息工程大学 | 位置敏感哈希随机性减弱方法 |
CN102867306A (zh) * | 2012-09-07 | 2013-01-09 | 天津大学 | 一种用于数字图像拷贝-粘贴伪造检测的方法 |
CN103365916A (zh) * | 2012-03-31 | 2013-10-23 | 中国科学技术大学 | 地震事件参数估计获取方法和系统,地震事件搜索引擎 |
-
2013
- 2013-12-05 CN CN201310655600.7A patent/CN104699701A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799748A (zh) * | 2009-02-06 | 2010-08-11 | 中国移动通信集团公司 | 一种确定数据样本类别的方法及其系统 |
CN103365916A (zh) * | 2012-03-31 | 2013-10-23 | 中国科学技术大学 | 地震事件参数估计获取方法和系统,地震事件搜索引擎 |
CN102722554A (zh) * | 2012-05-28 | 2012-10-10 | 中国人民解放军信息工程大学 | 位置敏感哈希随机性减弱方法 |
CN102867306A (zh) * | 2012-09-07 | 2013-01-09 | 天津大学 | 一种用于数字图像拷贝-粘贴伪造检测的方法 |
Non-Patent Citations (1)
Title |
---|
孙荣坤: "《基于内容的快速音频检索》", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760468A (zh) * | 2016-02-05 | 2016-07-13 | 大连大学 | 移动环境下基于倒排位置敏感哈希索引的大规模图象查询系统 |
CN105760469A (zh) * | 2016-02-05 | 2016-07-13 | 大连大学 | 云计算环境下基于倒排lsh的高维近似图象检索方法 |
CN105760469B (zh) * | 2016-02-05 | 2019-05-31 | 大连大学 | 云计算环境下基于倒排lsh的高维近似图象检索方法 |
CN105760468B (zh) * | 2016-02-05 | 2019-05-31 | 大连大学 | 移动环境下基于倒排位置敏感哈希索引的大规模图象查询系统 |
CN108874799A (zh) * | 2017-05-09 | 2018-11-23 | 中国科学院沈阳自动化研究所 | 高速并行数据查找方法 |
CN108874799B (zh) * | 2017-05-09 | 2021-11-30 | 中国科学院沈阳自动化研究所 | 高速并行数据查找方法 |
CN107454084A (zh) * | 2017-08-10 | 2017-12-08 | 桂林电子科技大学 | 基于杂交带的最近邻入侵检测算法 |
CN107454084B (zh) * | 2017-08-10 | 2020-06-02 | 桂林电子科技大学 | 基于杂交带的最近邻入侵检测算法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631928B (zh) | 一种基于局部敏感哈希的聚类索引方法及系统 | |
CN103744934A (zh) | 一种基于位置敏感哈希的分布式索引方法 | |
CN104408163B (zh) | 一种数据分级存储方法和装置 | |
CN102609441A (zh) | 基于分布熵的局部敏感哈希高维索引方法 | |
CN102799614B (zh) | 基于视觉词语空间共生性的图像检索方法 | |
CN103914483B (zh) | 文件存储方法、装置及文件读取方法、装置 | |
JP2012526320A5 (zh) | ||
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN104699701A (zh) | 基于敏感哈希的并行最邻近节点计算方法及分布式系统 | |
CN103455531A (zh) | 一种支持高维数据实时有偏查询的并行索引方法 | |
CN103345496A (zh) | 多媒体信息检索方法和系统 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN108549696B (zh) | 一种基于内存计算的时间序列数据相似性查询方法 | |
CN104933143A (zh) | 获取推荐对象的方法及装置 | |
CN103440246A (zh) | 用于MapReduce的中间结果数据排序方法及系统 | |
CN102890719B (zh) | 一种对车牌号进行模糊搜索的方法及装置 | |
CN103207889A (zh) | 一种基于Hadoop的海量人脸图像的检索方法 | |
CN110222074A (zh) | 索引查找方法、查找装置、电子设备及存储介质 | |
CN100476824C (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
CN106599091A (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
CN105488176A (zh) | 数据处理方法和装置 | |
CN105159987A (zh) | 一种数据存储、查找方法及装置 | |
Bhushan et al. | Big data query optimization by using locality sensitive bloom filter | |
CN105159925A (zh) | 一种数据库集群数据分配方法及系统 | |
CN103119606B (zh) | 一种大规模图像数据的聚类方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150610 |