最小哈希签名

参考:大佬1|大佬2

主要目的:用于文本查重比较,文档相似度比较。

估计的原理:两个集合经随机排列转换后得到的两个最小哈希值相等的概率等于这两个集合的jaccard相似度(如在两集合n次随机中有a次最小哈希值相等,相等的概率=a/n)【最小哈希的关键+目前不会证明】


$0


这里我们用到的jaccard相似度用于比较有限样本集之间的相似性和差异性。

给定两个集合A、B,jaccard系数定义为A与B交集的大小与并集大小的比值,系数越大相似度越高。

A=∅,B=∅的时候,jaccard=1.

$1


最小哈希首先针对特征矩阵。

比如全集{a,b,c,d,e}.S1={a,d},S2={c},S3={b,d,e},S4={a,c,d}

这个就是特征矩阵。

PS:假设文档为ABCD,可以以2为切割特征,AB,BC,CD。

最小哈希就是对特征矩阵进行行变换,最小哈希值就是变换后行排序下第一个为1的行号。

比如现在h(S1)=a,h(S2)=c,h(S3)=b,h(S4)=a.

具体的使用最小hash算法,将一个特征矩阵进行压缩,即构造签名矩阵,签名矩阵的每一列是n个hash函数的值,并且近似估计原始数据的jaccard的值。

接下来我们通过把行号映射出去来实现伪行排序【也属于一种不断打乱按次序的一种】

$2


模拟计算签名矩阵的方法:

先考虑第0行:可以得到:

一直顺序计算到最后一行,每次只取最小值(找到对应的行比较当前最小哈希值和映射行号的大小):

可以通过签名矩阵估计原始的jaccard相似度。

SIM(S1,S4)=1,而实际相似度为4/6=2/3。以上只是一个估计值。在大规模数据下[多个哈希],估计值和真实值相近。

\zeta 自闭

不知道为啥画的矩阵和公式都没了。改天再补吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 阅读目录 基本思想 局部敏感哈希LSH 文档相似度计算 局部敏感哈希(Locality Sensitive Has...
    Anaven阅读 8,883评论 2 4
  • 写在前面的话 酱酱,又到了程序媛拯救世界的时间,程序猿们解决不了的问题看来又只能靠我们女程序员来帮大家解决了。不好...
    塔克树阅读 7,022评论 0 2
  • 前言 其实读完斯坦福的这本《互联网大规模数据挖掘》,让我感觉到,什么是人工智能?人工智能就是更高层次的数据挖掘。机...
    我偏笑_NSNirvana阅读 14,367评论 1 23
  • 在数据挖掘中,一个最基本的问题就是比较两个集合的相似度。通常通过遍历这两个集合中的所有元素,统计这两个集合中相同元...
    HollyMeng阅读 9,931评论 2 1
  • 昨日(20180928),北京的電子工業出版社的編輯轉發給我一個封面與封底設計。書名爲《王者歸來-精通物聯網及Py...
    小鱼儿他老汉阅读 3,097评论 0 0