大数据下的相似度计算--minHash

简述

本文讨论一种在数据量较大的情况下计算两个集合(比如文本)相似度的算法,以及在互联网行业的应用。

原始问题

当数据量较小时,计算两个文本的相似度可以直接将两个文本表示为向量,然后计算他们的cosine相似度或jaccard相似度。本文所阐述的方法基于后者。jaccard相似度可以看成两个集合A,B的交集占并集的比例:

Jaccard Sim = (A∩B) / (A∪B)

其实就是计算A与B产生重叠的程度。如果数据量不大,A,B的交集与并集中的元素个数可以遍历A,B数出,复杂度为O(n^2)。

衍生问题

文本中的单词往往是可以计数的,但在一个衍生问题中,计算量会很庞大。在互联中,我们往往需要检查两个url的相似性(比如过滤相似度很高的网页,为某一url查找与之类似的白名单,或产生作弊的黑名单等等)。如果把每个url看成文本,那么访客记录则为它的单词。我们需要计算的是两个url的访客重合度。然而,每个url的访客数目是非常庞大的,而且如果需要计算的url pair很多的话

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值