摘要
现有的方法基于batch或者是无监督学习方法,
它们有很多的缺点:不能有效地处理流数据,学习到的哈希码识别能力不强,对于变化的流数据学习缺乏灵活性。
所以我们提出了FOMH,它的好处就是:
1,(很虚的motivation)它可以适应性地融合各个模态,并且灵活性地为新数据学习具有判别性的哈希码,即使
部分模态已经丢失了。
(flexible和部分模态丢失这个优点是极强的,是这篇论文的精髓所在。
之前的框架例如DMVH,一旦这一批输入数据的模态出现丢失,那剩下的权重加起来就不是1了,所以权重的
作用会大大降低,不能处理模态丢失的情况。
还有Discrete Multi-view Hashing中虽然取消一个模态也可以计算权重,但是这个权重是最后计算的(大概率会
有影响),并且它的策略就是权重是所有模态都存在并且不断调优的状态(权重加在相似矩阵上,是全面的重要
的权重,而加在损失函数上就是一个可调节的权重了,DMVH虽然也是损失函数上,但说了,不违反规则的加起来
就不是1了,限制了这种情况)。
而FOMH中这个权重在训练中最先调整,更关键的一点就是在查询的数据也可以自动地调节权重,这就保证了
模态丢失的情况也可以训练。)
2,我们的FOMH的权重可以自动地学习,好处是可以及时捕捉流样本的变化。
3,我们提出了一种高效的非对称在线监督策略,同时避免了挑战性的对称语义矩阵分解(矩阵分解是耗时的,要注意)
和存储代价(不用相似度矩阵表示,而是用标签矩阵的2-范数来表示,相似度矩阵直接用其相乘)。
4,我们直接更新离散的哈希码,既快又精确。
现有的在线多模态哈希策略
现有的在线多模态哈希方法主要有两个策略:
1)采用在线学习的技巧,像是在线图学习和在线矩阵分解。
2)把现有的在线单模态检索问题扩展到在线多模态检索问题。通过简单地导入他们的模型与连接的多模态特征。
这两种策略有两个缺点:
1)这两种策略采用固定或相等的模态权重组合。不能捕捉流多媒体数据的动态特征。
2)当一部分模态丢失的时候它们不能为新到来的多模态数据生成哈希码。
多模态哈希分类
无监督:构建图和采用矩阵分解
有监督:采用语义标签作为监督去知道哈希码的学习。
提出方法
- 数据的预处理
首先,整个数据集为,
然后我们把不同模态的数据做一个非线性转换表示:
表示为
.
是随机选取的p个锚点。
这n个数据就可以表示为:
它的好处在于保持了特定模态样本相关性,通过简单地描述样本与特定锚点之间的关系。
- 灵活的多模态二进制投影
现有的多媒体哈希策略采用固定或者相等的权重,
所以它们不能够捕捉多媒体数据的动态变化,
当部分模态丢失的时候它们不能为新到来的多媒体数据生成哈希码。
所以我们采用了以下的模型:
这种策略的好处就是即使部分模态丢失,哈希码也可以通过给定的模态数据生成,因为
有权重调整,多媒体数据的完备性可以被很好地发掘。
但这种策略的坏处其实就是有一个必须手动调整的超参数,
的作用是防止平凡解,但优化它有很多缺点,
一是耗时,二是在流数据到来的时候几乎不能找出一个合适的值。
所以找一个没有手动调节超参数的式子尤为重要。
在这篇文章,我们介绍了一个虚拟的权重,并且提出了自权重调节策略,还不用增加额外的超参数,特别地,
我们把这一部分定义为:
然后我们通过证明一个公式巧妙地加入权重,而不引入超参数。
(注:要特别注意这个权重是否满足约束,满足的话,就不需要考虑
的平凡解,就是下文中提到的解法
和FOMH的解法。如果不满足,就是上述的(1)中要对进行正则化,并且加入超参,避免平凡解。)
定理1
上述的式子等价于
证明:
上述的式子等价于
其中,(a)是因为满足,(b)是因为满足Cauchy-Schwarz inequality,这个不等式的内容如下:
.
这个等式也就等价于
这个思想尤其重要,就是求一个式子的最小值,可以转化为求它上限的最小值。
很明显,这是一个递推的式子就可以出现了:
这里的作为函数的真实权重存在,
的值越小,这个权重越大;
相反,若的值越大,这个权重越小。并且
也可以自动调节。
- 非对称语义监督
我们可以把pairwise语义引入损失函数,并且把这一部分定义为:
直接更新离散的二进制哈希码 是困难的,我们直接把其中一个离散的
变成连续的
,在非对称语义监督的支持下,
作为现有的离散多模态的逐位离散优化可以通过简单的sgn(·)操作来学习哈希码,而不是使用哈希方法。
我们通过以下的式子保持它们的一致性:
- 总体的损失函数
第一项采用了灵活的多模态二进制码映射。
第二和第三项使用了非对称监督去学习具有判别性的哈希码。
最后一项采用正则化避免过拟合。
- 高效的离散在线优化
1.-step
我们把定义为
,然后这一项就可以定义为:
根据Cauchy-Schwarz inequality:
我们直接给这个式子强制赋予最小值
.
这时这个式子就可以转化成:
2.-step
其中,与
的时间复杂度都是
,与新到来的数据有关。
3.-step
只包含的式子可以写成:
根据增广拉格朗日乘子,这个式子可以写成
这时 可以通过下方的式子得到:
直接计算 的空间复杂度太高了
,我们把它定义为
直接用 就可以表示相似度了,空间复杂度降为
.
并且,
4.-step
5.Z-step
6.G-step
检索过程
我们把查询集定为,并且
是新来到的查询的数量,我们可以递归地得到每一个模态的权重和哈希码
step1:更新. 我们把
定义为
. 相应的权重可以表示为
.
step2:更新. 我们可以通过下列的式子得到
:
个人认为,为什么要更新呢?因为映射后的数据如果距离随机值较远,那么
较大,取倒数的话权重就小些,
这样的话这个模态就越不重要。总结下来:映射后的数据如果距离随机值较远-->这个模态越不重要。
总结
这篇论文很妙的,尤其是检索过程中,自动更新的过程,是一个可以借鉴的想法。
还有就是消去超参数的那个想法和论证,简直米老鼠进了米奇妙妙屋,秒到家了。