我已经阅读了这个问题,但不幸的是它没有帮助。
我不明白的是,一旦我们了解了哪个桶分配给我们的高维空间查询向量,我们会做什么q
:假设使用我们的一组位置敏感的族函数h_1,h_2,...,h_n
,我们已经转换q
为低维(n
维度)哈希码c
。
然后c
是分配给的桶的索引,q
以及(希望)分配给它的最近邻居的位置,假设有 100 个向量。
现在,为了找到 NN,我们要做的是计算这100 个向量之间的q
距离,对吗?所以使用仅用于索引(它仅用于决定分配给哪个存储桶),对吗?q
c
q
另一种解决方案,如本c
调查(第 2.2 节)中所述,“哈希表查找”(前面描述的方法)的替代方案是“快速距离近似”,因此我们进行了详尽的研究,计算和生成的距离相对于数据集中每个元素的哈希码。这应该很快,因为哈希码在低维空间中,并且距离应该计算得更快(例如,如果哈希码空间是二进制的,那么我们可以使用 XOR 运算符来快速计算汉明两个哈希码之间的距离)。
现在,我想知道的是:这两种方法的优点/缺点是什么?为什么我应该使用一种方法而不是另一种方法?