我已经阅读了this question,但不幸的是它没有帮助。
我不理解的是,一旦我们了解了哪个存储桶分配给我们的高维空间查询向量q
,我们就会做什么:假设使用我们的一组局部敏感族函数h_1,h_2,...,h_n
我们已将q
翻译为低维(n
维度)哈希码c
。
然后c
是分配q
的桶的索引,其中(希望)也分配给它最近的邻居,假设有100个向量。
现在,我们为了找到q
的NN而做的是计算{100}向量<{1}}和之间的距离这100个向量,是正确?因此q
的使用仅用于索引(它仅用于决定将c
分配给哪个桶),对吧?
另一种解决方案,如this调查(第2.2节)中所述,是&#34;散列表查找的替代方案&#34; (前面描述的方法)是&#34;快速距离近似&#34;所以我们进行详尽的研究,我们计算q
和生成的哈希码相对于数据集中每个元素的距离。这应该是快速的,因为哈希码在低维空间中并且距离应该更快计算(例如,如果哈希码空间是二进制的,那么我们可以使用XOR运算符来快速计算汉明两个哈希码之间的距离)。
现在,我想知道的是:这两种方法的优点/缺点是什么?为什么我应该使用一种方法而不是另一种方法?
答案 0 :(得分:2)