“公开参考支持两种基础族。超平面角度指纹提供共享符号序列,连续切成 $L$ 段、每段 $k$ 位;核验整数向量的余弦是否至少为给定有理数 $a/b\in[0,1]$。MinHash则为有限全集…”
形式陈述
一个随机次序,供所有集合共同使用
固定有限键宇宙
对非空
排列保证名次互异,所以最小键唯一。也可以保存该键的完整排列名次;因为排列是单射,两种表示的相等判断等价。空集使用不属于 U 的专用符号
对两个集合,Jaccard相似度定义为
MinHash的碰撞等式是
这是关于完整随机排列的精确概率,不是说一次指纹能输出相似度的精确数值。[1, §3,Theorem 1的单样本情形]
多副本估计与误差
取 q 个相互独立的排列,q 为正整数。每个副本内部仍让 A、B 共享排列。令
由Hoeffding不等式,对
因此
直觉
碰撞由并集的第一名决定
把
所以“指纹相同”等价于“并集第一名属于交集”。均匀排列下,并集每个键成为第一名的概率都是
流式计算只保留当前最小者
一个副本从 best = None 开始。每读一个键 x,计算它的固定名次;若它比目前名次小,就替换 best。处理任意前缀后的不变量是:best 为该前缀出现过的所有不同键中的最小名次键。新键只可能保留原最小者或自己成为最小者,归纳便闭合。
同一键重复一千次,名次仍相同,不改变结果。这里甚至不需要保存一个全局去重集合。若每次出现都重抽随机数,重复越多的键就有越多次争夺最小值的机会,统计对象会变成出现位置,而不再是不同键的集合。
例子与边界
同样的交集,排列不同就给出不同指纹
令
对这个四键宇宙,枚举全部24个排列,恰有12个碰撞。这是一个可完整复算的概率空间。把第一个排列的“不碰撞”重复记录100次,只会得到100个相同的零,不能伪装成100个独立样本。
集合各抽各的排列会破坏目标
若
两空集的指纹都是
两键均匀不够保证多键第一名均匀
在
对集合
短哈希值有并列时,按原键确定性破并列可使程序可重复,却不会自动恢复均匀第一名。例如所有哈希值都为零,按键排序就退化为固定最小键。若先把不同原键映射成同一短指纹再丢掉原键,估计的还是被合并后的集合,误差来源又多了一层。[1, §4.1]
推论与应用
成本与随机源是两份账
若名次查询、键比较、存取都按常数成本计算,长度为 L 的键流用 q 副本需
本页的精确参考实现把整个有限排列存为数组,公共随机源另占
LSH放大候选索引把共享排列指纹用于检索:每张表拼接多个独立分量,再对多张表的桶取并集,按记录ID去重并核验原始Jaccard条件。基础碰撞率仍由本页保证;表间独立性、元组键和随机源的存储,以及出现预算截断导致的额外漏检,都必须另行核算,不能从单对相似度估计自动推出。
从一个最小者转向固定容量集合样本
若想用同一个排列保留多个不同键,并在分片间去重合并,Bottom-k摘要保留前 k 名,再用并集样本中的交集比例估计 J。那 k 个键来自一次无放回抽样,不能当作 q 个独立MinHash副本照抄方差公式。
若键带有非负实权,普通MinHash仍只看“是否出现”。一致加权抽样将每个坐标扩成相应高度的区间,目标改为最小权重和除以最大权重和。定义目标之后再选指纹,才能区分重复去重、频次权重与相似度。
共享随机键终结任务要求交出排列、两侧指纹、逐副本碰撞和一个失效随机族的精确计数,而不是只报一个相似度小数。
参考资料
[1] Andrei Z. Broder,On the Resemblance and Containment of Documents,Compression and Complexity of Sequences,1997,§§2–3、§4.1。原论文在集合化的文档特征上给出共同排列抽样;本页独立展开单样本等价事件、空集约定、仿射族反例和副本成本。