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

本文介绍了在大数据场景下,如何利用minHash算法有效地计算两个集合(如文本或URL)的Jaccard相似度。通过降低计算复杂度,解决高维独热编码导致的计算难题,minHash可以用于评估海量数据中两个集合的重合度,广泛应用于互联网领域的相似性过滤和检测。
摘要由CSDN通过智能技术生成

简述

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

原始问题

当数据量较小时,计算两个文本的相似度可以直接将两个文本表示为向量,然后计算他们的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很多的话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值