码迷,mamicode.com
首页 > 其他好文 > 详细

局部敏感哈希LSH

时间:2017-03-09 23:10:34      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:查询   function   之间   blog   detail   href   tab   需要   多个   

之前介绍了Annoy,Annoy是一种高维空间寻找近似最近邻的算法(ANN)的一种,接下来再讨论一种ANN算法,LSH局部敏感哈希。

LSH的基本思想是:

原始空间中相邻的数据点通过映射或投影变换后,在新空间中仍然相邻的概率很大,而不相邻的数据点映射后相邻的概率比较小。

也就是说,我们对原始空间中的数据进行hash映射后,希望相邻的数据能够映射到Hash的同一个桶内。

对所有的原始数据进行hash映射后,就会得到一个hashtable,这个hashtable同一个桶内的数据在原始空间中相邻的概率就比较大。

这样对于查询数据,我们只需要把他hash映射到对应的桶内,然后在桶内搜索他的最近邻,这样就把原始的很多数据点的集合内的问题,转换为桶内 少数数据点的问题。

这样的hash function需要满足以下两个条件:

1)如果d(x,y) ≤ d1, 则h(x) = h(y)的概率至少为p1;

2)如果d(x,y) ≥ d2, 则h(x) = h(y)的概率至多为p2;

其中d(x,y)表示x和y之间的距离,d1 < d2, h(x)和h(y)分别表示对x和y进行hash变换。

满足以上两个条件的hash functions称为(d1,d2,p1,p2)-sensitive。而通过一个或多个(d1,d2,p1,p2)-sensitive的hash function对原始数据集合进行hashing生成一个或多个hash table的过程称为Locality-sensitive Hashing。

参考:http://blog.csdn.net/pi9nc/article/details/12372627

局部敏感哈希LSH

标签:查询   function   之间   blog   detail   href   tab   需要   多个   

原文地址:http://www.cnblogs.com/futurehau/p/6528229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!