使用杰卡德相似度和最小哈希查找近似重复项

主要观点:探讨通过 Jaccard 相似度和 MinHash 近似技巧进行近似去重的方法,包括相似性定义、Jaccard 相似度、缩放 Jaccard 相似度、近似 Jaccard 相似度、比较所有文档(使用全签名和更模糊的方法)等,还介绍了 MinHash 与 HyperLogLog 的相似性及结合使用的情况,以及将文档表示为集合的两种常见方法(n-grams 和词分割)。
关键信息:

  • 定义“近似相似性”,通过 Jaccard 相似度衡量文档相似性,其为两个集合交集与并集的比例。
  • MinHash 签名通过随机排列或好的哈希函数选取集合中元素的最小哈希值来近似 Jaccard 相似度,使用多个哈希函数可提高估计的准确性。
  • 比较所有文档时,可使用全 MinHash 值作为分组键,或使用部分 MinHash 哈希值生成多个分组键来检测更模糊的重复。
  • MinHash 与 HyperLogLog 有相似之处,结合两者可创建能询问任意集合交集和并集的草图。
    重要细节:
  • Jaccard 相似度在两个不相交集合时为 0,完全相同时为 1。
  • 对于单个文档对,全 MinHash 值匹配的概率为(J(A,B)^{10}),随着相似度增加,匹配概率增大。
  • 生成多个分组键时,两个文档在至少一个桶中碰撞的概率为(1 - (1 - J^r)^b)。
  • 代表文档为集合的常见方法有 n-grams(选取适当的 n 值)和词分割(可使用更复杂的分词器或混合方法)。
阅读 14
0 条评论