[发明专利]基于敏感哈希的并行最邻近节点计算方法及分布式系统在审
申请号: | 201310655600.7 | 申请日: | 2013-12-05 |
公开(公告)号: | CN104699701A | 公开(公告)日: | 2015-06-10 |
发明(设计)人: | 范成林;罗军 | 申请(专利权)人: | 深圳先进技术研究院 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳中一专利商标事务所 44237 | 代理人: | 张全文 |
地址: | 518055 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 敏感 并行 邻近 节点 计算方法 分布式 系统 | ||
技术领域
本发明属于数据处理技术领域,尤其涉及一种基于敏感哈希的并行最邻近节点计算方法及分布式系统。
背景技术
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示出了本发明实施例提供的基于敏感哈希的并行最邻近节点计算方法的流程,为了便于说明仅示出了与本发明实施例相关的部分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳先进技术研究院;,未经深圳先进技术研究院;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310655600.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息推送方法、服务器及系统
- 下一篇:提示信息获取方法和装置