基于MinHash的集合相似度计算原理

首先,MinHash 是用于快速检测两个集合的相似性的方法。该方法由 Andrei Broder (1997) 发明,并最初用于AltaVista搜索引擎中来检测重复的网页。它同样可以用于大规模文档聚类中。

MinHash基于Jaccard相似性度量。对于两个集合A与B,Jaccard相似性系数可以定义为:

 J(A,B) = |A ∩ B|/| A ∪ B

容易知道,该系数是0-1之间的值。当两个集合越接近,那么该值越接近1;反之,更接近0。

假设h是一个哈希函数,将A与B的元素个数映射为一个整数。定义: hmin(S) 是集合S集合中具有最小哈希值的元素。那么,一个重要的结论是:仅当 A ∪ B中具有最小哈希值的元素位于A ∩ B中时,hmin(A) = hmin(B) 。而将哈希函数看成一个随机变量,那么任何 A ∪ 中的元素都有可能具有最小哈希值。因此,就有:

Pr[hmin(A) = hmin(B)] = J(A,B).

若令r 为一个随机变量(或者随机变量h的函数),当hmin(A) = hmin(B) 时取1,否则取0。那么r 就是J(A,B)的一个无偏估计。

于是,自然而然地,计算两个集合的相似度J(A,B),我们便可以取n个哈希函数(n = 80或400等),计算对每个哈希函数,r 的取值。然后求平均即可。

转载于:https://my.oschina.net/kiwivip/blog/111123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值