C-MinHash:将两个排列实际简化为仅一个
数据结构与算法
2021-09-13 v1 机器学习
摘要
传统的最小哈希需要应用 个独立排列来估计海量二值(0/1)数据中的 Jaccard 相似度,其中 可以是(例如)1024 甚至更大,具体取决于应用。近期关于 C-MinHash 的工作(Li and Li, 2021)通过严格的证明表明,仅需两个排列即可。首先应用一个初始排列来破坏数据中可能存在的任何结构,然后以循环移位的方式将第二个排列重用 次以生成 个哈希值。(Li and Li, 2021)证明了,也许令人惊讶的是,尽管这 个哈希值是相关的,但估计方差严格小于传统 MinHash 的方差。(Li and Li, 2021)已证明 C-MinHash 中的初始排列确实是必要的。为了便于理论分析,他们使用了两个独立的排列。在本文中,我们表明实际上可以简单地仅使用一个排列。也就是说,单个排列既用于破坏数据结构的初始预处理步骤,也用于生成 个哈希值的循环哈希步骤。尽管理论分析变得非常复杂,我们仍能显式写出估计量的期望表达式。新的估计量不再是无偏的,但其偏差极小,对估计精度(均方误差)几乎没有影响。我们提供了大量实验来验证我们关于仅使用一个排列的主张。
关键词
引用
@article{arxiv.2109.04595,
title = {C-MinHash: Practically Reducing Two Permutations to Just One},
author = {Xiaoyun Li and Ping Li},
journal= {arXiv preprint arXiv:2109.04595},
year = {2021}
}