摘要
在线哈希是一个有前途的领域,但是这个领域仍然存在着两个问题:
1,如何有效地挖掘语义信息;
2,如何离散地更新哈希码;
3,如何有效地更新哈希码和哈希函数。
所以,我们提出了LEMON,它有很多好处:
1,我们提出了一个标签嵌入框架,包括标签相似度保留和标签重建。
好处是它可以生成更有识别性的哈希码,并且减少计算的复杂度。
2,它不仅可以保留新到达数据的两两相似度,也可以建立新旧数据的两两复杂度。
好处是它可以挖掘更多的相似性信息,使得优化过程不只对新到来的数据敏感。
3,此外,我们设计了一个离散优化算法,不需要进行松弛。
好处是量化损失得到进一步下降。
以前的点的缺陷
OCMH和OLSH然而,这些方法都不能充分利用数据的原始特征和语义标签信息。此外,
它们也不能很好地以流的方式捕获数据的相似信息。
如何利用数据的原始特征和语义标签信息?(使用两种方式把B和L对齐了。)
如何以流的方式捕获数据的相似信息?(增加了新旧数据的两两相似度。)
提出损失函数
- 分而击之
其中,
是2范数标准下的标签矩阵。
然后,我们把新到来的数据与原来的数据结合在一起。
我们构造从哈希码到标签的映射。
- 组成在线损失函数
- 在线损失函数的优化
然而,我们上述的损失函数存在巨大的问题。
更新不平衡问题:
旧数据的样本的数量要远远大于新数据中样本的数量,使得相似度矩阵和稀疏且
不平衡,即,矩阵中的大部分元素都是负的。
不平衡问题带来的坏处:
直接使用离散的分解方式会倾向于保持非相似性而丢掉相似性,由于我们的学习依赖于
旧的数据,所以这种倾向会导致性能下降。
解决不平衡问题的方法:
我们用实值矩阵来替代一个离散矩阵.
并且对于,我们为了减少它与的损失,使用了一个正交旋转矩阵。
并且,我们对于也施加了正交和平衡约束。
这样干的好处:
比携带了更准确的语义信息。
更新不平衡的问题也得到了解决。
保持了的离散性质。
最后我们隆重退出优秀的损失函数:
优化过程
- 更新
C暂时省略不写。
- 更新
可以把问题简化写成如下的形式:
其中,
这种式子有一种固定解法:
1,先定义J
2,然后对J和Z组成的式子进行奇异值分解。
其中,是正的特征值的对角矩阵,G是特征值对应的特征向量。
是剩下的特征值为0的数对应的特征向量。我们对其进行施密特正交化得到.
3,然后我们得到Q.
同理得到 ,是特征值为0的特征向量得到的。
4,最后得到原问题的解。
- 更新
式子很容易转化为这一种形式:
这种式子依然有一种固定解法:
1,得到式子,然后对其进行奇异值分解。
2,然后我们就可以得到R.
- 更新
我们可以得到只关于的式子:
然后可以得到:
Two-Step法哈希函数学习
注意:这里已经学习到的哈希码是保持不变的。