Tag: locality sensitive hash

LSH Spark永远停留在approxSimilarityJoin()函数

我正在尝试实现LSH spark来为每个用户找到包含50000行和每行约5000个特征的非常大的数据集的最近邻居。 这是与此相关的代码。 MinHashLSH mh = new MinHashLSH().setNumHashTables(3).setInputCol(“features”) .setOutputCol(“hashes”); MinHashLSHModel model = mh.fit(dataset); Dataset approxSimilarityJoin = model .approxSimilarityJoin(dataset, dataset, config.getJaccardLimit(), “JaccardDistance”); approxSimilarityJoin.show(); 这项工作停留在approxSimilarityJoin()函数,永远不会超越它。 请让我知道如何解决它。

地方敏感哈希实施?

在C / C ++ / Java / C#中是否有任何相对简单易懂(并且易于实现)的局部敏感哈希示例? 我想更多地了解这个概念,所以想尝试一些文本文件只是为了看看它是如何工作的,所以我不需要任何高性能或任何东西……只是一个哈希的例子为类似输入返回类似哈希的函数。 之后我可以通过实例了解更多信息。 🙂

为LSH Minhash算法生成随机哈希函数

我正在编写一个Java中的minhashing算法,它要求我生成任意数量的随机散列函数(在我的情况下为240个散列函数),并通过它运行任意数量的整数(目前为2000)。 为了做到这一点,我一直在为240个散列函数中的每一个生成随机数a,b和c(从1到2001的范围)。 然后,我的哈希函数返回h =((a * x)+ b)%c,其中h是返回值,x是通过它运行的整数之一。 这是随机散列的有效实现,还是有更常见/可接受的方式来实现它? 这篇文章提出了类似的问题,但我仍然对答案的措辞感到困惑: Minhash实现如何找到排列的哈希函数