位置敏感哈希中的EuclideanHash是什么意思?

时间:2015-09-15 09:28:42

标签: hash euclidean-distance cosine

根据github:lsh families中的存储库,我发现Location Sensitive Hash支持EuclideanHash CosineHash和其他一些哈希。无论如何,CosineHash很容易理解:

double result = vector.dot(randomProjection);
return result > 0 ? 1 : 0;

但是EuclideanHash很难理解:

double hashValue = (vector.dot(randomProjection)+offset)/Double.valueOf(w); // offset = rand.nextInt(w)
return (int) Math.round(hashValue);

1 个答案:

答案 0 :(得分:0)

通常,lsh中的欧几里德散列表示将欧几里德空间中附近位置的数据(向量)映射到整数的散列函数。

实现此目的的一种方法是生成随机线,并将线分成段,其中段表示哈希值。然后,可以通过将数据向量投影到该行并观察它落入哪个段来获得散列。

你问的功能似乎是使用类似的方法,但使用点积而不是投影