假设你有一个非常大的集合群。给定一个查询集合,想要在集合群中找到与查询集的Jaccard 相似度大于确定阈值的集合,并且对于很多其他查询也进行相同的操作。
为了进行有效地查询,可以给每一个集合创造一个MinHash,当一个查询集到来,可以计算集合群中的集合的MinHash与查询集合的MinHash,并且返回满足阈值的集合们。
上述方法仍然是一个复杂度 O(n) 的算法,意味着 查询的成本会随着集合数目的增加线性增加。一种流行的替代方法是使用局部敏感哈希索引 Locality Sensitive Hashing (LSH)。LSH 可以与MinHash一起使用来实现次线性查询开销——这是一个巨大的改进。