Including a distributed local sensitive Hashi method: loading from the distributed file system data, read the original data vector set, generating a first elastic distributed data set; according to the number of K Hashi L and Hashi function table number specified by the user, a structure of L composite Hashi function; calculate each data value of a Hashi L and each data is mapped to a table in each bucket of Hashi Hashi, each in the data table and mark Hashi composite Hashi function values of the key value into string and mapped to digital keys, digital keys and data identification form pairs, save for the second flexible distributed data sets; according to the second data set for each digital key data re partition, which has the same number of key data is stored in the same partition, complete Kazakhstan Construction of a Greek table. This method can reduce the amount of shuffle generated in the process of constructing hash table, improve the efficiency of index construction, and reduce the overhead of message passing when querying.
【技术实现步骤摘要】
高效分布式局部敏感哈希方法
本专利技术属于互联网技术中的大数据数据挖掘领域,特别是涉及局部敏感哈希方法的分布式实现,加速海量高维数据的相似性搜索。
技术介绍
相似性搜索是多媒体信息检索领域中的一个重要问题,是指根据用户输入的查询对象,基于某种相似度(或距离)度量方式,在已有的数据集合中查找与之相似度最高(或距离最小)的对象。为了提升相似性搜索的效率,已有KD-tree、R-tree、SR-tree等索引方法被相继被提出,并在低维空间中有良好的效果。但随着数据维度的增加,这些方法的性能则呈现急剧下降的趋势,该问题被称之为“维度灾难”。为了克服“维度灾难”,许多近似搜索的方法被提出,其中最著名的方法之一就是局部敏感哈希(LocalitySensitiveHashing,LSH)。LSH方法通过使用一组具有局部敏感性质的哈希函数,会以很高的概率将原始数据空间中距离相近的对象散列到相同的哈希桶之中,查询时则只需计算查询对象所在哈希桶中的数据对象与查询对象之间的距离即可找出近似点。在搜索过程中,对于给定的一个特征,重要的是如何快速地从海量的特征中找到和这个特征相似的一些特征。局部敏感哈希就是:如果原来的数据相似,那么hash以后的数据也保持一定的相似性。数据的维数在某种程度上能反映其信息量,一般来说维数越多,其反映的信息量就越大。如果我们知道的信息越多,就能越准确地判定两个东西的相似性。但因为高维空间上计算复杂度太高,所以通常是通过哈希函数把高维数据映射到低维空间上,降维就在某种程度上造成的信息的丢失,在降维后的低维空间中就很难100%保持原始数据空间中的相似性,所 ...
【技术保护点】
一种分布式局部敏感哈希方法,包含以下步骤:步骤1,从分布式文件系统加载原始数据,读取原始数据向量集合,为每条数据增加数据标识,生成第一弹性分布式数据集。其中第一弹性分布式数据集中每条数据记录的格式为由数据标识与数据向量组成的键值对;步骤2,根据用户指定的哈希表数量L和哈希函数数量k,构造L个复合哈希函数;步骤3,根据步骤2中生成的L个复合哈希函数gi,其中1≤i≤L,计算第一弹性分布式数据集中每项数据的L个哈希值,将每项数据分别映射到每个哈希表的各一个哈希桶中,所述哈希桶表示为<<i,gi(x)>,idx>,其中i为哈希表标识,表示该项数据的哈希桶所在的哈希表,每项数据会被映射到L个哈希桶当中。将每项数据中的哈希表标识与复合哈希函数的值组成的键值对<i,gi(x)>合并为字符串,根据字符哈希方法将所述字符串映射为数字键值key,所述数字键值与数据标识形成<keyx,idx>键值对,将映射后得到的全体数据的集合保存为第二弹性分布式数据集;步骤4,根据第二弹性分布式数据集中每项数据的数字键值key对第二弹性分布式数据集进行重分区,使得有具有相 ...
【技术特征摘要】
1.一种分布式局部敏感哈希方法,包含以下步骤:步骤1,从分布式文件系统加载原始数据,读取原始数据向量集合,为每条数据增加数据标识,生成第一弹性分布式数据集。其中第一弹性分布式数据集中每条数据记录的格式为由数据标识与数据向量组成的键值对;步骤2,根据用户指定的哈希表数量L和哈希函数数量k,构造L个复合哈希函数;步骤3,根据步骤2中生成的L个复合哈希函数gi,其中1≤i≤L,计算第一弹性分布式数据集中每项数据的L个哈希值,将每项数据分别映射到每个哈希表的各一个哈希桶中,所述哈希桶表示为<<i,gi(x)>,idx>,其中i为哈希表标识,表示该项数据的哈希桶所在的哈希表,每项数据会被映射到L个哈希桶当中。将每项数据中的哈希表标识与复合哈希函数的值组成的键值对<i,gi(x)>合并为字符串,根据字符哈希方法将所述字符串映射为数字键值key,所述数字键值与数据标识形成<keyx,idx>键值对,将映射后得到的全体数据的集合保存为第二弹性分布式数据集;步骤4,根据第二弹性分布式数据集中每项数据的数字键值key对第二弹性分布式数据集进行重分区,使得有具有相同数字键值key的数据被保存在相同的分区中,将同一分区中的数据进行合并,得到形式如<key,(id1,id2,…,idn)>的哈希桶,n则为具有相同key的数据的数目,将这些哈希桶数据保存在哈希表弹性分布式数据集中,完成哈希表的构建。2.如权利要求1所述的方法,步骤2中复合哈希函数的构造方法为:设p-稳态局部敏感哈希函数族H,h∈H是该函数族中的一个局部敏感哈希函数,根据用户指定的哈希表个数L和哈希函数个数k,构造L个复合哈希函数g,对于某项维度为d的数据x,有gi(x)=(h1(x),h2(x),…,hk(x)),其中1≤i≤L,gi(x)为针对数据x构造的用于构建一个哈希表的第i个复合哈希函...
【专利技术属性】
技术研发人员:张万新,李东升,徐颖,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。