跨模态搜索(cross-modal/media retrieval)

跨模态搜索(cross-modal/media retrieval)

1、实验基本信息


        跨模态搜索研究的基本内容是寻找不同模态样本之间的关系,实现利用某一种模态样本,搜索近似语义的其他模态样本。

本文实现了论文《Joint Feature Selection and Subspace Learning for Cross-Modal Retrieval》(PAMI2016)和论文《Simple to Complex Cross-modal Learning to Rank》(arxiv.org 2017.2)。并对实现的结果进行了一些讨论。


2、算法内容
2.1 论文《Joint Feature Selection and SubspaceLearning for Cross-Modal Retrieval》(JFSSL)(PAMI2016)

代码连接:https://github.com/2012013382/JFSSL-Cross-Modal-Retrieval
       此论文是对于论文《Spectral Regression for Efficient Regularized Subspace Learning》(ICCV2007)和论文《L21Regularized Correntropy for Robust Feature Selection》的结合。其主要的目的是为了最优化目标函数(1)。


        其中,M为模态的类别数,在此,我们只考虑图片和文本之间互相搜索的情况,因此M=2;Up表示对应模态的映射矩阵;Xp表示输入的训练样本;Y表示样本的标签;第三项为模态间/模态内相似度函数;lambda1和lambda2为两个设定的阈值。

       最优化这个目标函数的目的就是为了得到映射矩阵Up。通过映射矩阵,便可以将不同模态的特征数据映射到相同的子空间中,再通过cosine相似度度量,即可得到不同模态数据之间的相似度。

        可以看到,整个式子分为三个部分,其中最主要的是第一个部分。

       如公式(2)所示,它的形式是一个基本的均方误差,最小化这个均方误差,便可以使得映射矩阵朝着理想的方向变化。
       公式( 1) 的第二项为一个 L2,1 范数约束项, 它的存在实现了对于输入样本的特征选择, 可以达到防止过拟合的目的。 通过调整lambda1的值, 可以调整该约束的

影响程度。 在具体的实现中, 利用了“ 凸优化” 的内容, 对该项进行了合理的转化, 使得整个目标函数保持凸函数的性质。



第三项是多模态的图约束项,它能够使得子空间中,不同模态但类别相同的样本尽量靠近;相同模态类别相同的样本也尽量靠近。


由于目标函数(1)是一个凸函数,因此可以直接进行求导,并且使导数为0,此时得到的映射矩阵Up,即为最优的映射矩阵。

2.2 论文《Simple to Complex Cross-modal Learning to Rank》(SCCLR)(arxiv.org 2017.2)

       该论文的想法来自于论文《A Self-paced Multiple-instance Learning Framework for Co-saliency Detection》(SMLFCD)(ICCV 2015),原文提出了一种寻找多张图片相似部分的方法,如图1所示。
   
        图1 多张图片相似部分挖掘结果

其中,第一行为四张原图,第二行为四张图片的相似部分,第三行为算法SMLFCD的结果。论文SCCLR的作者认为,上述方法既然可以挖掘图片之间的相似成分,自然也可以将其迁移到多模态的相似成分挖掘工作上,因此仿照算法SMLFCD,作者设计了算法SCCLR。该算法的基本思路为:利用从简单样本到复杂样本的学习思想,提高最终的学习效果。具体来说,利用一种图片搜索相似主题的文本,虽然均为同一类别,但是同类别的文本与该图片的相似度依然有差异,利用这个差异可以设定不同样本对映射矩阵更新的影响程度,从而得到更好的结果。作者建立了目标函数(5)。                      



其中,W表示待求的映射矩阵,v为一个属于[0 1]的权重值,它表示了不同的样本对映射矩阵的影响程度,l()为一个hinge loss,具体形式如(6)所示。其中,S()表示不同模态数据经过映射函数映射之后的值,通过sigmoid函数之后进行cosine similarity,所得到的相似度值。x和z分别为不同模态的输入样本,相同的下标表示了xk和zk为最相似的样本。“三角”为一个margin,它的存在使得相同下表的不同模态之间的相似度与其他非相同下标的不同模态之间的相似度存在margin大小的差距。


(5)中的第二项是对于v的约束项,用于选择合适的权重向量,其具体形式为(7)。


2.3 基于算法SMLFCD对算法JSFFL进行小改进对于目标函数(5),作者将其分为两个部分进行了分别的交叉迭代优化,即将公式(7)a从原式(5)中,分离出来,从而得到最终的结果。

   上述提高的从简单样本到复杂样本的学习过程,同样可以应用到算法JSFFL中,只需要根据原算法中均方误差的大小,为每个样本分配一个相应的权重值,误差越小,分配的权重值越大,这样就可以实现上述思想与算法JSFFL的结合。

3、实验结果
3.1 实验数据

   来自于维基百科的数据集,有2173个训练集和693个测试集,每个样本有一张图片和其对应的一个文本段落,总共有10个类别,样本类别并不均匀。


3.2 实验环境及工具


       Windows8.1+4BG内存+intel i5处理器+matlab2016a。


3.3 结果及分析

      如表1所示,为实现算法JFSSL的结果。
                                                                                                                           

  最终的评判标准使用的是MAP参数,该标准可以综合评价结果的准去率与召回率,其值越大,表明结果越好,最大值为1。

        其中,表1中的base line表示数据集按照3.1中所提到的方式进行划分,算法JFSSL在其上面的结果。实际上在作者的工作中,并没有将数据集按照上述方法进行划分,而是划分了1300个训练集和1566个测试集,且每一类的训练集均为130个,这样的做法使得训练样本的类别变得均衡,从而也提高了最终的效果。原文中作者的结果为0.3063(Image query)和0.2275(Text query),有表1的第二列可知,实验结果与作者的结果基本一致。   

   如表2所示,表示的是算法JFSSL的目标函数中各项的实际作用。
                                        
         由结果可知,两项约束均能够使得结果变好,但是该数据集的样本特征维数较少(图片(128)文本(10)),使得L2,1范数的应该对于结果的提升并没有特别明显。当去除第二项,保留第三项时,可以看到想过并没有变好,甚至还变差了,这主要是因为当目标函数缺乏约束项时,最后一项的存在,使得映射矩阵的变化不收约束,从而使结果变差。
       本文也实现了算法SCCLR,该论文号称是目前该问题上结果最好的论文,但是我一直对于该论文的理论存在质疑。质疑主要有两个部分:
    (1)文中没有使用样本的类别信息,它将具有相同下标的样本之间的cosine相似度与其他所有非相同下标的样本之间的cosine相似度进行比较,也就相当于训练“一对多”的分类器,最优化分类器,使得它们之间相差margin的大小。这样做能够一定程度上达到分类的效果,但是我不认为能够达到非常出众的结果。
    (2)整篇论文的目标函数,理论上只能够将样本分开,但不能使得相同下标的样本之间的cosine相似度变大,这样一来,在测试集中,利用cosine相似度无法得到想要的结果。
        最终的实验结果也完全达不到一个满意的效果,当然作者没有提及参数的问题,也许将参数调整到合适的状态可以一定程度上改善结果,但是,我对于该方法理论依旧无法理解。
        我联系过论文的作者,第一次请教了“最终使用什么方法衡量映射到子空间之后的数据的相似度”的问题,她很快进行了回答,但是当我请教了以上我所提到的疑惑时,发了好几封邮件,都没有得到回复,也许是因为作者工作太忙的缘故。
        虽然如此,本文还是将“从简单学习到复杂学习”的思想迁移到了算法JFSSL中,得到了如表3的结果。
                                                                                                              
         如表3所示,该改进的确对算法的结果有所提升, 但在Text query方面似乎效果不大,这可能是因为text样本的特征数量较少,且样本的数量太少的原因。
         对于这个改进方法,新增了两个阈值,用于控制样本更新权重的分配,但最优的阈值并不好取,因为原算法中,利用了最小化的平方误差的方法对样本进行类别的划分,在目标函数的设计中,对于同类样本的划分能力不强,使得同类样本的均方误差差异较小。同时,该改进思想其实存在一种trade-off(权衡):应用的训练样本数量大小的权衡。学习算法需要足够的训练样本进行训练,当算法中,太多的样本的均方误差大于阈值,则没有足够的样本以供学习;当算法中,应用的训练样本较大时,对学习结果产生不良影响的样本也会越多。
        近两年在该问题上,并没有突破性的工作,基本都是对于前面经典的方法进行改进,在数据集上的表现也没有特别大的进步。单独研究不同模态特征之间的关系,可能很难取得突破,需要将样本的特征提取和子空间的生成,这两部分关联在一起,才有可能有更好的效果。这其实是一个比较自然的想法,但是至今也没有非常突出的工作。我个人更加看好神经网络的方法,因为它将以上的两步结合到了一起,但是目前在效果方面没有明显超越传统方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值