笔记二:Min-Wise Independent Permutations (Extended abstract) 第一部分
这篇论文定义并研究了序列的min-wise independent 家族。
min-wise independent 家族在实践中常用于检测和过滤“近似重复”文件。
先上定义:对于S的子集F,如果
任意{0,1,2,3,...,n-1}的子集X,任意x∈X,当随机从F中选择映射π,都有
Pr(min{π(X)}= π(x)) = 1/|X|
即任何给定集合X,X的任何元素x在π的映射下有相同的机会成为X的最小元素。
另外,大多数启发式hash函数和随机hash函数具有非常相近的行为。当然也有例外。
Carter和Wegman定义了一致hash的概念。
弱一致:对于一个hash函数家族H,
如果对于任意一对独立元素x1,x2,如果h是从H中随机均匀的选择,有
Pr(h(x1)=h(x2)) <= 1/|M|
强一致(pair-wise independent):对于一个hash函数家族H,
如果对于任意一对独立元素x1,x2,任意的y1,y2∈{0,1,2,3,...M-1},有
Pr(h(x1)=y1 且 h(x2)=y2) = 1/|M|²
有很多情况,有限的随机化就够用了。(limited randomness suffices)
而且,存在可以容易实现的一致hash家族,而且空间复杂度O(|M|²)。
强一致的概念有重要的理论上的应用。
考虑序列经常要比考虑函数更方便。设Sn是{0,1,2,3,...n-1}的所有序列的集合。
强一致(pair-wise independent):对于Sn的子集,序列家族F
如果任意{0,1,2,3,...,n-1}的子集{x1,x2,y1,y2},且x1 != x2, y1 != y2
Pr(π(x1)=y1 且 π(x2)=y2) = 1/n*(n-1)
弱一致(min-wise independent):对于Sn的子集,序列家族F
如果任意{0,1,2,3,...,n-1}的子集X,x∈X,当π是从F中均匀选择,有
Pr(min{π(X)}=π(x)) = 1/|X|
也就是说,在映射π下任何X里面的元素x有相同的机会成为最小元素。
标题中的min-wise indepent permutation终于浮出水面了。也可以叫做”弱一致序列“。
两个文本相似度的问题可以被规约到“集合相交问题”。通过Shingling操作,每一份文本得到一个关联集合Sd。我们可以把Sd看做一个自然数的集合。两个文本相似度这样定义:
r(A,B) = |Sa∩Sb|/|Sa∪Sb|
为了计算两份文本的相似度,维护一个小的,固定大小的“速写”(sketch)便足够了。
设π是从Sn(即{0,1,2,3,...,n-1}的序列集合)中均匀随机的选择出,那么
Pr(min{π(Sa)} = min{π(Sb)}) = |Sa∩Sb|/|Sa∪Sb| = r(A,B)
因此,我们可以选择例如100个独立随机序列π1,...,π100。
对于每个文本D,我们存储list Sa = (min{π1(Sa)},min{π2(Sa)},...,min{π100(Sa)})
这样我们可以用Sa和Sb的相似计数来估计A和B的相似度。
Reference:
[1]Min-Wise Independent Permutations (Extended abstract) Andrei Z. Broder 1998
[2]http://en.wikipedia.org/wiki/Damerau–Levenshtein_distance
[3]http://en.wikipedia.org/wiki/Derandomization#Derandomization
[4]Ecient Private Matching and Set Intersection Michael J. Freedman
PS:有点写不动了,而且很多时候都不知道自己在写什么。
先发上来第一部分。还会有第二部分第三部分的。