什么是“局部敏感”代表局部敏感的散列?

时间:2013-04-05 16:47:25

标签: data-mining discrete-mathematics

locality-sensitive代表locality-sensitive hashing代表什么?这个术语有正式的定义吗?

2 个答案:

答案 0 :(得分:2)

LSH将高维向量映射到存储桶,并尝试确保彼此“接近”的向量映射到同一个存储桶。 “近”的定义只是关于某个距离函数的邻域(例如欧几里得)。

“地方”是指空间中的区域; “敏感”表示附近的位置映射到同一个桶。换句话说,散列函数的输出取决于(对空间中的位置敏感)。

这是我的理解。我相信理论家必须有更正式的定义。希望这会有所帮助。

答案 1 :(得分:1)

通常,散列函数将用于分离附近的值,以降低冲突的风险。想想加密哈希:你确实希望每一个字符都改变以完全改变哈希码。

这不适用于LSH中使用的散列函数。好吧,从技术上来说它适用于哈希函数,但不适用于哈希之前的步骤:数据被放入桶中,这是一个有损操作,通常会将附近的点放入同一个桶中。之后,只有桶号实际上是哈希(IIRC),因此您不会获得数百万个桶,而只能获得所需数量的桶。

如果你有用于映射和分级的独立函数,它们可能会重叠,这样你就可以在查询点所在的至少一个散列冲突桶中找到所有真正的邻居。