Post Tuned Hashing - A New Approach to Indexing High-dimensional Data
论文阅读:Post Tuned Hashing: A New Approach to Indexing High-dimensional Data
1. 方法介绍
Learning to hash
是进行高维数据索引的有效方法,它的目标是:学习一个low-dimensional
的、similarity-preserving
的二进制编码表示,使该其可以代表原高维空间的数据。本文基于Unsupervised hashing method
思想,通过探索数据内在特征与属性,来学习二进制码表示。
传统的无监督hashing基本都通过2阶段的范式来实现:
- mapping:将高维原始数据投影到低维空间;
- binarization:将投影向量二值化,变成一个“二进制”编码。
并且为了保证原有的neighborhood relationships
,他们大都选择在投影阶段或者二值化阶段做出优化。
但是,论文指出,尽管他们努力地在某个阶段保证了邻域关系(例如在降维时保证了邻域关系),但是二值化过程不可避免地造成了neighborhood error
:即原数据中相邻的数据可能会产生不相似的二进制编码,而不相邻数据可能会产生相似编码。于是论文提出了一个全新的步骤,post-tuning stage
,意图使用该方法在二值化后重建邻域关系,减小邻域损失。图1展示了加入新的步骤前后,邻域损失情况。

值得注意的是,该步骤独立于前两个步骤,因此可以广泛适配传统的2阶段方法。
2. 方法框架分析与推导
下面我们对该方法的理论做一定的阐述与推导:
首先,我们设数据集
其中
由于论文指出上述2阶段方法会造成严重的neighborhood error
,因此他们定义了该损失函数的表达式:
其中
其中,bi 是数据 xi 的二值化向量。可以看到Vij 是值域为-1到1的离散变量。那么通过式(3),损失函数可以改写为:
其中
结合公式(1)和公式(4),很容易得到在传统方法中,
对于这个新的变换,论文设计了一个二值(-1,1)的矩阵post-tuning matrix
,表示为
为了清楚地推导论文的优化算法,这里对于步骤做了细化的分析:
根据上面的详细推导,我们的目标函数可以写为
我们也可以统计U的第p行的部分:
所以一次项,即文章中的linear terms,可以表示为
论文设
值得指出,
其中,每一个涉及
对于每一个元素
更新与优化策略
论文提供了一种更新策略:
update the current entry if its coefficient is larger than a fixed threshold
.
这个策略可以按照矩阵
论文提供了一种剪枝策略:
Only tune the elements whose projection results (value before binarization) are close to 0, or smaller than a threshold
.
即,我们只调整那些投影后值与0接近的元素(因为0是二值化的一个阈值),因为这些元素更有可能被二值化为不正确的值。这有效减少了post-tuning的复杂度,并且缓解了过拟合。
结合这两种策略,最终的优化算法如下图所示:

Out-of-Sample Post-Tuning
由于是无监督学习方法,故方法必须兼容新的数据 skeleton points
。这样,完整的post-tuning应该包含以下2个任务:
- post-tuning skeleton points
; - post-tuning out-of-sample
.
与公式(6)类似的,我们建立如下损失:
其中:
: 和 的邻域关系矩阵; :即 的post-tuning matrix
; :即 经过二值化后的向量; : 经过post-tuning的新二值化向量。
总之上式衡量了hashing前后 skeleton points
(

适量的数据点即可达到性能上限。太多的数据点不仅不能提高性能,还会消耗过多空间/时间资源。