局部敏感哈希(Locality Sensitive Hashing)二三问

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Grace_0642/article/details/80335717

写在前面的话

今天的这一章有几个目的,一是回答一下各位网友在各大博客上提出的问题,然后其他博主没有回答的问题。二是纠正一些别人在写局部敏感哈希时候出现的错误。就是这么贴心有没有。


假装自己是正文的正文

首先我们来看一下这篇文章局部敏感哈希LSH(Locality Sensitive Hashing)
https://blog.csdn.net/yc461515457/article/details/48845775

这里写图片描述

我觉得博主在这两篇文章里面的描述可能是有问题。

这两个图片要说的其实不是这个问题把,正版的PPT在这里http://i.stanford.edu/~ullman/cs246slides/LSH-1.pdf

这两个图都是针对我们在用Minhash 得到了我们特征矩阵之后然后 把特征矩阵划分成了 b 个bands 每个band 包含了r 行的情况来说明的。 具体的说明已经在我上一篇文章中,非常详细的说明了。

这里写图片描述

这里写图片描述

这里写图片描述

为什么这个图片是一条过原点的直线,我们可以这么看。首先纵坐标是每一个band 落到桶里的概率也就是,这个概率就是两个样本的相似度,也就是S。 而横坐标就是两个样本的相似度,也是s . 所以,当你只有一个band 并且这个band 只有一行的时候,那么就是一条直线。这个其实很好理解。但是如果你有一个band ,这个band 有r行,两个样本相似的概率是s,那么每一行相似的概率就是s, 一个band 相同的概率就是 s r .

注意一个band 相同概率也就是指,这个band 的hash 值被映射到一个桶里的概率。


我们再来看另外一个图

这里写图片描述

这个图描述的应该就是有b个band 每个band 里面有r 行的情况
s r 表示的两列被映射到同一个bucket 的情况,或者说是两个band 相同的情况。如果这两个band 不相同,其实很难被映射到同一个bucket 里面,这个已经在前一节里面做了很详细的分析。
因为一个band 有r 行,每一行都相同才能保证我们的 band 相同

所以这个概率就是 s r

那么band 不相同的概率,或者说更加准确的就是一个band 里面不是每一行都相同的概率就是

1 s r 这个公式表示的就是band 不相同的概率

那么每一个band 都不相同的概率就是 1 s r b

然后我觉得高中的学霸或者说你高中数学基础扎实一点都知道 每一个都不相同的概率就是至少有一个相同
1 1 s r b

why?

我记得我高中的时候特别喜欢那种列表去看问题

这里写图片描述

上面那个图表示是总共有5个band对,0对相同的概率,1对相同的概率,2对相同的概率,……以及5 对相同的概率

因为这几个事件是相对独立的,每个事件相加的概率是1.所以没有相同的对出现的反面就是至少有一对。



在这篇博客里
http://www.cnblogs.com/maybe2030/p/4953039.html

这里写图片描述

这里写图片描述

当然不是,我们说以两列Boolean 矩阵来说,我们的Jaccard Similarity 只有下面四种情况:

这里写图片描述

a 类 表示的就是 两个样本都有的属性 的个数
b 类 表示的就是 第一个样本有的属性,第二个样本没有的属性 的个数
c 类 表示的就是 第二个样本有的属性,第一个样本没有的属性 的个数
d 类 表示的就是 两个样本都没有的属性 的个数

既然我们Jaccard Similarity 表示的是交集除以并集

这个时候我们不会考虑d类,为啥,因为他们两个都没有这个属性,这个属性根本不存在他们的并集还是交集中。所以我们的两列的 sim = a/(a+b+c)

而且这个也可以解释,签名的相似和列的相似性其实是一样的,因为是从两列中开头第一次出现1的最小行号,当且仅当两列都是1时,他们的minhash 才会相等,也就是签名矩阵产生的特征值才会相等。

我觉得其他人写的也挺好的

这里写图片描述





这里写图片描述


这里写图片描述

猜你喜欢

转载自blog.csdn.net/Grace_0642/article/details/80335717
今日推荐