LSH-局部敏感哈希

LSH的基本思想是:

将原始数据空间中的两个邻近数据点通过某种映射或变换,使得这两个数据点在变换后的数据空间中仍然相邻的概率很大,而不相邻的数据点被映射到同一个桶的概率很小。

因此,最最重要的就变成了就是找到一个这样的映射或变换,也就是所谓的hash function。有没有觉得如果找到一簇这样的函数,一下子天空都变蓝了。

那么hash function应该怎样用数学语言来描述呢?

对于任意q,p属于S,若从集合S到U的函数族H={h1,h2…hn}对距离函数D(q,p),如欧式距离、曼哈顿距离等等,满足条件

$D(p,q){leq}r$且$Pro[h(p)=h(q)]{geq}p_{1}$

$D(p,q)>r(1+{varepsilon})$且$Pro[h(p)=h(q)]{leq}p_{2}$

则称为D(p,q)是位置敏感的。

这两个公式就是开头的一句话的数学模型而已。

这里说明一下,LSH不是确定性的,而是概率性的,也就是说有一定的概率可能将两个距离很远的映射到一个捅中,将距离很近的映射到不同的捅中。这是在进行降维的时候带来的不可避免的缺陷。

不同的距离函数需要使用不同的LSH算法,目前不存在一种统一的LSH算法。


原文地址:https://www.cnblogs.com/andyniu/p/7610989.html