接上篇译文;

1.尽管我们利用minhashing技术将大数据量的文档压缩到小数据量的signatures,并且能够保证文档对之间的相似度大致不变。但是由于文档对的数目可能非常的大,我们仍然不能很有效的找到最相似的文档对。
如果我们的目标是计算每一对文档对之间的相似度,那么我们就没有更好的办法了,或者可以用并行的方法减少运行的时间规模;但是如果我们的目的仅仅是找到的最相似的文档对或者相似度在某种程度之上的文档对,这时候我们就可以采用LSH技术(locality-sensitive hashing or near-neighbor search)。
2.    应用于寻找相似文档的LSH技术
一般来说,我们这样应用LSH技术:将所有的items(要比较的东西)进行多次的hash,从而能够将可能相似的文档hash到同一个bucket中;然后我们会只考虑那些hash到同一个bucket中的items,认为他们组成的item对才有可能是我们要找的item对。  这其中就会产生两个概念,一个是 false positives: 就是指那些本来不相似的item对却被hash到一个bucket中;另一个是false negatives: 指那些本来相似的items对却没有被hash到同一个bucket中。
如何具体使用lsh技术呢?  一个比较有效的hashing方法是将signature matrix(由所有文档的signature组成,每一列存储一个文档的signature)分为b个bands,每个band包含r行(相当于将每个文档的b*r 个signatures分成b组); 对于每一个band用一个hash函数(输入是每个文档的r个signature,相当于将一列考虑为hash的输入),将每一列的signature hash到一些大数量的bucket中。(我们可以对不同的band使用相同的hash函数,但是不同的band的bucket要放在不同的位置,从而保证不同band中相同的列不会被hash到同样的bucket中。)
3. 对lsh的banding技术的分析
将设我们有b bands而且每个band有r行。并且假设一个特定的文档对的jaccard距离是s。  从前文的minhash技术的分析(没有翻译 o(╯□╰)o)中可以知道该文档对的任何一行的signature相同的概率是s。  然后我们就可以计算着文档对成为一个候选的文档对(被hash到同一个bucket中)的概率,过程如下:
在一个特定的band中,该文档对的所有的signature都相等的概率是 s^r;  那么不相等的概率就是 1-s^r;
所有的band中,该文档对的signature都不相等的概率是 (1-s^r)^b;  该文档对至少会在一个band中相等的概率就是 1-(1-s^r)^b.
分析: 将b r看作一个常量,可以看出该概率是s的函数而且是一个典型的S型曲线. 该曲线横轴是 文档对的相似度; 纵轴为该文档对被放到一个bucket中成为候选文档对的概率;两者之间的关系是一条我们非常熟知s型曲线,对于s型曲线,中间有一段非常陡峭的上升部分,可以将这个部分的横轴看作相似度的阈值,高于这个相似度的一般以接近于1的概率(具体的概率可以通过前边的分析计算出来)被分到同一个bucket中,而低于这个相似度阈值的则以接近于0的概率被分到同一个bucket中;而且这个阈值是b,r的函数:s=(1/b)^(1/r)。   这种函数的s型特性就满足了我们对于LSH技术的要求,即将相似的文档hash到同一bucket中,而将不相似的文档hash到不同的bucket中,至于具体的false positive 和false negatives 与具体的b和r取值有关。(这种方法会产生一定的false positives 和 false negatives)
4.     最后我们总结下如何在大数据量的文档对中找到相似的文档对
1) 针对文档特性选取合适的k值,对每一个文档进行k-shingle,并对shingle结果映射为整数。
2) 对每个文档的shingle标签进行排序。?
3)  利用前文所述算法,计算每个文档的signature(signature的长度n的选择是一个需要tradeoff的量)
4) 选取合适的阈值t, 用来决定相似度多高的文档对会被放到同一个bucket中作为候选对;然后选取bands:b以及rows:r,使得b*r=n,而且 t ≈ (1/b)^(1/r)。 如果希望false negatives尽量的低,可以选取b r使得t尽量小;如果追求速度,那就是的t尽量大。
5) 利用LSH技术计算出候选文档对; 并对文档对的最初的signatures进行检测,确保其相似度确实在t之上。
6) 最后回到文档对最原始的字符状态,进行检测文档对是否确实相似。

在大数据中如何寻找相似的文档(shingle, minhash, LSH)(二)相关推荐

  1. 在大数据中如何寻找相似的文档(shingle, minhash, LSH)(一)

    ps: 文章翻译与 Mining of Massive Datasets 场景:在一堆非常多的文档中,找到相似的文档,或者对文档间的相似性进行评估. 当应用于此类目的的时候,我们最常用的用来表示一篇文 ...

  2. ACM图灵奖获得者:想从大数据中获益,先解决集成问题!

    文章讲的是ACM图灵奖获得者:想从大数据中获益,先解决集成问题!如今,大数据对所有行业都产生了深远影响:从医疗保健.汽车.电信到物联网.随着数据浪潮的持续,企业都在寻找更新的管理和分析方法.收集可行的 ...

  3. 因素空间理论在大数据中的应用——汪培庄

    因素空间理论在大数据中的应用 汪培庄 辽宁工程技术大学 (在大数据与数据科学进展主题论坛上的发言稿,经过整理) 个人主页  我国数据与机器智能科学工作者肩负着引领大数据时代浪潮的重任,这是关乎我们能否 ...

  4. 从“大数据中的年轻人”看《后浪》为什么被批判?

    文 | 李永华 来源 | 螳螂财经(ID:TanglangFin) 这两天,现象级营销TVC<后浪>刷屏了. 有人夸赞,也有人穷尽各种视角去挑问题,"批判"内容花样百出 ...

  5. 大数据中的反欺诈,平台与羊毛党的攻防恶战

    新的2017年,大家鸡年快乐 有句古话,"有人的地方就有江湖,是江湖就会有争斗".对于互联网金融平台来说,有实惠的活动中必定有这样一群人出现,大家戏称他们为"羊毛党&qu ...

  6. 华西生物医学大数据中心俞鹏课题组博士后招聘启事

    四川大学华西医院生物医学大数据中心俞鹏课题组拟招收博士后数名.主要从事:1)生物信息学及实验验证,2)生物医学信息学,3)生物医学文献审编和本体构建,4)药用植物基因组学及合成生物学,5)化学信息学. ...

  7. 大数据中常见的端口号 总结汇总大全(最新)

    大数据中常见的端口号 总结大全 如图所示: 常见端口汇总: Hadoop: 50070:HDFS WEB UI端口 8020 : 高可用的HDFS RPC端口 9000 : 非高可用的HDFS RPC ...

  8. 【Spark Summit East 2017】管道泄漏问题:像女士一样在大数据中做个的标记

    更多精彩内容参见云栖社区大数据频道https://yq.aliyun.com/big-data:此外,通过Maxcompute及其配套产品,低廉的大数据分析仅需几步,详情访问https://www.a ...

  9. 如何才能在大数据中获取价值

    从数据中获取价值都是一个挑战,不管你所在的行业和企业规模如何.然而,在早期阶段,这一挑战与可用数据量没多大关系.如果对数据处理过程和数据值提取的结构设计不合理,那么至少按照现在的标准,企业有数据和没数 ...

最新文章

  1. 局部敏感哈希(Locality Sensitive Hashing)二三问[2]
  2. 写给非技术人员的机器学习指南
  3. 梦工厂实验室 取石子之fans 博弈
  4. JavaOne 2016——首日亮点
  5. linux卸载pci驱动,linux的PCI驱动固件问题
  6. 2-SAT适定性(Satisfiability)问题知识点详解
  7. (八)企业部分之nginx+tomcat+memcached负载均衡集群搭建
  8. .NET Core 3 Preview 2 发布,C# 8 更强大的模式匹配
  9. Nginx 500错误总结
  10. solr mysql 速度_提高solr的搜索速度
  11. Pandas-常用统计分析方法 describe、quantile、sum、mean、median、count、max、min、idxmax、idxmin、mad、var、std、cumsum
  12. 计算机键盘盲打方法,电脑键盘盲打练习方法 盲打键盘指法练习技巧
  13. 阿泰,水晶报表--push样式模板
  14. [附源码]计算机毕业设计springboot微信点餐系统
  15. 业界 | 摩根大通报告12个亮点总结:金融领域的机器学习工具有哪些?
  16. 《AlignedReID: Surpassing Human-Level Performance in Person Re-Identification》论文解读
  17. 单核cpu多核cpu如何执行多线程
  18. LPC1768生成bin文件夹问题
  19. 品牌策划中该如何在“细节之处”刺激受众痛点?
  20. Virtual Box与win10系统不兼容问题

热门文章

  1. 互联网金融入门篇(三) 专业术语
  2. web前端基础——第一章
  3. 麒麟处理器是基于arm的吗_手机处理器是骁龙处理器好还是麒麟处理器好?
  4. 什么是高防ip?高防ip什么意思?
  5. 提高工作效率的重要性 苹果手机用便签软件制定计划
  6. vb实现 心理学实验 IAT内隐联想测试
  7. 儿童语言发育迟缓分类中C群d是指,5种表现提示孩子语言发育迟缓,快来看看!...
  8. 极速office2021(ppt)怎么修改页面布局
  9. 中国三大电信营运商的3G网络制式、网速、价格对比
  10. 微信小程序两张图片(本地/在线)合成为一张并下载