联合表示Joint Representation:关于《多模态表示学习:综述》学习笔记(1)


原论文:
Guo W, Wang J, Wang S. Deep multimodal representation learning: A survey[J]. Ieee Access, 2019, 7: 63373-63394.

异质性差异

异质性差异(heterogeneity gap):多模态的特征向量经常是定义在不相等的子空间里。这样的话,就算是相同的语义,在不同模态下,表示向量是完全不同的。

一种自然的常见的想法是:将不同模态的异构特征,映射到一个共同的子空间中,同时保证相似语义的输入拥有相似的表示向量。也就是,在缩小异质性差异的同时,还能保持在原模态下特定语义的完整。

原模态下特定语义的完整怎么理解呢?当表示猫猫的图片信息和表示猫猫的文本描述都用相近的向量表示(分别为v,t,但是v,t相似)的时候,我们拥有了“猫猫”语义的一般性的底层的“模态不变的(modality-invarious)”表示向量,但是又希望v保留了毛茸茸的质感的视觉表现的信息,这是t所没有的。(既要抽象,又要低损)
(后面会再次提到。)

在这里插入图片描述

为什么要解决异质性差异,又同时带来了什么好处呢?
自然的,当不同模态的表示向量在一个共同的子空间里,且我们构建的时候,要求向量之间计算相似/相关是有意义的。那么,我们可以有很多应用,例如,跨模态检索cross- modal retrieval(用文本句子检索图像,或者根据图像检索文字)、跨模态翻译cross-modal translation(输入图像,获得标题;输入视频,获得视频描述说明)

因为深度学习方法的表示能力强,可以获得不同程度的表示,而且无需要求手工特征设计,所以聚焦在深度学习方法。

深度多模态表示学习分类

深度多模态表示学习按网络架构设计分为三种:联合表示joint representation,协同表示coordinated representation,编码-解码encoder-decoder
在这里插入图片描述
一些常见模型在分类中的情况。
在这里插入图片描述

单模态的表示MODALITY-SPECIFIC REPRESENTATION

在三种框架中,首先都是要对原模态输入进行表示学习,然后才能进行或融合,或约束修正,或重构的操作。

  • 图像:基于CNN的LeNet,AlexNet,GoogleNet,VGGNet,ResNet;特别地,可以应用一些给予CNN预训练模型,进行迁移学习。
  • 词字:word embedding(word2vec、Glove)、character embedding(解决未登录词的问题)
  • 手工特征提取(handcrafted features):对特定输入至今还有广泛应用
    • 人脸:OpenFace提取人脸特征(facial landmark)
    • 音频:openSMILE提取音频特征(MFCC、强度、音调等)
  • 序列:得益于NLP的发展,有很多研究
    • 一般情况:RNN,加入门控的LSTM、GRU;双向的RNN、LSTM、GRU;
    • 句子级别:CNN(应用在句子级别sentence level的情感分析中有效)
    • 视频/音频:看作是fames,先应用单个fame的表示方法(例如CNN、OpenFace、openSMILE等),再对序列处理(例如RNN),获得完整的视频/音频表示

联合表示JOINT REPRESENTATION

从“整合不同类型的特征,以提高机器学习方法的性能”这种策略进行拓展,在多模态表示学习中对异质性特征进行融合。
在多模态分类、聚类任务中,这个策略得以实现。(下游任务定义约束进行融合)
为了消弭异质性差异,**联合表示法(Joint representation)**目标是将所有单模态表示投射到一个共享的语义空间中。

拼接concatenate

这里的拼接,通常都是通过一个额外的隐藏层实现,如式子(1)。其中 v 1 v^1 v1 v 2 v^2 v2 是单模态的表示, f f f是激活函数
z = f ( w 1 T v 1 + w 2 T v 2 ) \begin{equation} z=f(w_1^Tv_1+w_2^Tv_2) \end{equation} z=f(w1Tv1+w2Tv2)
这种也被称为加法方法additive method
另外,也有人提出乘法方法multiplicative method,并试图捕获模态内和模态间的动态关系(exploit either intra-modality or inter-modality dynamics),如式子(2)
z m = [ z l 1 ] ⊗ [ z v 1 ] ⊗ [ z a 1 ] \begin{equation} z^m= \left[ \begin{matrix} z^l \\ 1 \\ \end{matrix} \right] \otimes \left[ \begin{matrix} z^v \\ 1 \\ \end{matrix} \right] \otimes \left[ \begin{matrix} z^a \\ 1 \\ \end{matrix} \right] \end{equation} zm=[zl1][zv1][za1]
由于外积计算需要高的运算成本,引入Count Sketch projection function 进行降维。

数据缺失问题和模态不变特性(modality-invariant property)

根据Joint的结构就可以发现,它需要并行独立同时计算不同模态的数据,但是同一对象能获取的模态数据有可能缺失。什么意思呢,训练图片-文本-语音三模态表示的模型,有了猫猫吃鱼的图片、猫猫吃鱼的文本,但是没有相关的语音,那是否只能舍弃“猫猫吃鱼”这个语义的表达呢?或者只能讲此数据用在负例中?
研究发现,充分利用有缺失模态的数据,甚至可以加入只有部分模态的训练数据,能够提高模型的性能,甚至能有助于获取模态不变的(modality-invariant)通用语义信息。(个人理解是,能达到一种类似“数据增强”的正则效果)

除了在数据准备过程这么做,也可以在在训练中的,某些epoch里,随机排除某个模态的数据(类masked操作)。

还可以在中间隐藏层加入统计正则化约束,鼓励保留通用语义信息,而最小化模态特有的(modality-specific)特征的影响。

共享语义(shared semantic)和互补语义(complementary semantic)

不管愿不愿意,其实Joint的模型结构和设计都是在鼓励保留那些不同模态都共享的语义信息。
为什么这么说?因为捕捉共同的部分是容易的,这些基础信息是可以在不同的样本中重复出现的;在网络早期就被融合的特征,在下游任务的深层网络训练中,权重矩阵倾向保留清晰的贡献高的“关键”部分;样本在不同模态下的“信息容量”差距大,融合时大容量特征会被舍弃;……(一些直观推测)
这样的话,不利于我们从不同模态上获得互补的语义。(融合后的表示向量,既要是底层不变的,又要补充各模态中的特别之处)

其中策略是,增加正则约束

例如,将在多模态自编码(Multimodual autoecoders)方法中的重建损失(recontributed loss)作为正则项加入到目标函数上,以此保护模态表示独特的部分。

还可以,在隐藏层的权重 w w w中加入矩阵迹范数(trace norm)作为正则项,用于保留多模态特征的隐藏的相关性和多样性。
怎么起作用的?原来鼓励不同模态用相似的分布产生特征,现在最小化迹范数要求发现不同模态的关系,调节权重矩阵,即不同模态的特征对融合后的特征贡献是不一样的,以此使得融合后的特征保留了模态间不同的互补信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值