Multimodal Fusion(多模态融合)

Multimodal Fusion(多模态融合)_第1张图片
Jeff Dean:我认为,2020年在多任务学习和多模态学习方面会有很大进展,解决更多的问题。我觉得那会很有趣。

多模态学习
为了使人工智能进一步加强对我们周边事物的理解,它需要具备解释多模态信号的能力。一般多模态需要处理的任务主要如上图有:

  • 表征(Representation)。找到某种对多模态信息的统一表示,分Coordinated representations(相似度等),Joint representations(深度学习)。
  • 翻译(Translation)。一个模态映射到另一个模态,分example-based(有候选集,如检索任务),generative(Decoder-Encoder)。
  • 对齐(Alignment)。找模态子成份之间的关系,如某词对应某区域。分显式对齐和隐式对齐,Attention首当其冲。
  • 融合(Fusion)。整合信息。分model-agnostic(早晚融合),model-based(融合更深入),也是本篇要整理的内容。
  • 联合学习(Co-learning)。通过利用丰富的模态的知识来辅助稀缺的模态,分parallel(如迁移学习),non-parallel(迁移学习,zero shot),hybrid。

上图来自多模态综述:Multimodal Machine Learning:A Survey and Taxonomy

接下来重点介绍一些多模态融合方法。

多模态融合 (Multimodal Fusion)
一般来说,模态是指事物发生或存在的方式,多模态是指两个或者两个以上的模态的各种形式的组合。对每一种信息的来源或者形式,都可以称为一种模态(Modality),目前研究领域中主要是对图像,文本,语音三种模态的处理。之所以要对模态进行融合,是因为不同模态的表现方式不一样,看待事物的角度也会不一样,所以存在一些交叉(所以存在信息冗余),互补(所以比单特征更优秀)的现象,甚至模态间可能还存在多种不同的信息交互,如果能合理的处理多模态信息,就能得到丰富特征信息。即概括来说多模态的显著特点是: 冗余性 和 互补性
Multimodal Fusion(多模态融合)_第2张图片

传统特征融合算法主要可以分为三类:1.基于贝叶斯决策理论的算法 2.基于稀疏表示理论的算法 3.基于深度学习理论算法。其中深度学习方法按照融合的层次,主要有:

  • pixel level。原始数据进行融合。
  • feature level 。对抽象的特征进行融合。包括early 和 late fusion,代表融合发生在特征抽取的早期和晚期,如上图。early是指先将特征融合后(concat、add)再输出模型,缺点是无法充分利用多个模态数据间的互补性,且存在信息冗余问题(可由PCA,AE等方法缓解)。late分融合和不融合两种形式,不融合有点像集成学习,不同模态各自得到的结果了之后再统一打分进行融合,好处是模型独立鲁棒性强。融合的方式即在特征生成过程中(如多层神经网络的中间)进行自由的融合,灵活性比较高,如金字塔融合。
  • decision level 对决策结果进行融合。
  • hybrid。结合多种融合方法。
    Multimodal Fusion(多模态融合)_第3张图片

就方法上这篇文章主要整理:

  • 基于矩阵;
  • 基于普通神经网络;
  • 基于生成模型;
  • 基于注意力;
  • 其他。如对抗学习,Graph方法。

TFN(Multimodal Tensor Fusion Network)
首先是基于矩阵的TFN,TFN属于early fusion,是一个典型通过矩阵运算进行融合特征融合的多模态网络,即直接对三种模态的数据(如Text,Image,Audio)的三个特征向量X,Y,Z,进行: h m = [ h x 1 ] ⊗ [ h y 1 ] ⊗ [ h z 1 ] {h}_{m}=\begin{bmatrix}{{{h}_x}}\\{1}\end{bmatrix}\otimes\begin{bmatrix}{{{h}_y}}\\{1}\end{bmatrix}\otimes\begin{bmatrix}{{{h}_z}}\\{1}\end{bmatrix} hm=[hx1][hy1][hz1]

便得到了融合后的结果m,如下图:
Multimodal Fusion(多模态融合)_第4张图片

缺点:TFN通过模态之间的张量外积(Outer product)计算不同模态的元素之间的相关性,但会极大的增加特征向量的维度,造成模型过大,难以训练。

LMF(Low-rank Multimodal Fusion)
出自论文 Efficient Low-rank Multimodal Fusion with Modality-Specific Factors,ACL2018。是TFN的等价升级版,就具体模型如图。LMF利用对权重进行低秩矩阵分解,将TFN先张量外积再FC的过程变为每个模态先单独线性变换之后再多维度点积,可以看作是多个低秩向量的结果的和,从而减少了模型中的参数数量。
Multimodal Fusion(多模态融合)_第5张图片

缺点:虽然是TFN的升级,但一旦特征过长,仍然容易参数爆炸。

PTP (polynomialtensor pooling)
出自论文,Deep Multimodal Multilinear Fusion with High-order Polynomial Pooling,NIPS 2019.
以往的双线性或三线性池融合的能力有限,不能释放多线性融合的完全表现力和受限的交互顺序。 更重要的是,简单地同时融合特征忽略了复杂的局部相互关系。所以升级为一个多项式张量池(PTP)块,通过考虑高阶矩来集成多模态特征。即将concat的模型x N之后再做一个低秩分解。
Multimodal Fusion(多模态融合)_第6张图片

DSSM(Deep Structured Semantic Models)
DSSM是搜索领域的模型,属于late fusion。它通过用 DNN 把 Query 和 Title(换成不同的模态数据就行) 表达为低维语义向量,并通过 cosine 距离来计算两个语义向量的距离,最终训练出语义相似度模型。该模型既可以用来预测语义相似度,又可以获得某模态的低维语义向量表达。(可以将两个模态约束至统一表示空间,多模态协同表示。与之对应的多模态联合表示是先concat再FC)Multimodal Fusion(多模态融合)_第7张图片
其他玩法:可以在DNN的过程中,用recurrent residual fusion (RRF) ,多个残差,然后将3次recurrent的结果与最开始的输入concat起来,最后将concat得到的结果做融合。

Dynamic Fusion for Multimodal Data
以上的融合方法都太过“生硬”,能否有更好更自然的融合方法呢?AE(autoencoder)首当其冲,如图左图,先把所有模态fc即encoder,再用decode还原特征,最后计算特征之间的损失。

有了AE,GAN的出现不会太迟。如图右图,将不采用固定的模态融合方法,而是自动学习“how”融合。先对video和speech转换完成后,和text进行对抗(video往往和speech是搭配的,所以先融合)。
Multimodal Fusion(多模态融合)_第8张图片
另外在CVPR2019,有一篇–MFAS:Multimodal Fusion Architecture Search,首次用神经架构搜索做how融合。

MFN(Memory Fusion Network)
出自Memory Fusion Network for Multi-View Sequential Learning,AAAI 2018。
17,18年是注意力机制开始统治学术界的一年,很多工作都做了这方面的工作。MFN就是一种使用“Delta-memory attention”和“Multi-View Gated Memory”来同时捕捉时序上和模态间的交互,以得到更好的多视图融合。模型图如下,用memory的目的是能保存上一时刻的多模态交互信息,gated过滤,Attention分配权重。
Multimodal Fusion(多模态融合)_第9张图片

淘宝视频多模态应用
淘宝视频的多模态信息也是十分丰富,而用LMF和TFN参数量往往会爆炸,就不得已要先将每个模态特征降维,然而降维本身是有损的,导致降维后的模态特征再外积不如直接利用不同模态间特征拼接。

不过不要紧,淘宝也就提出了基于Modal Attention的多模态特征融合方法。Modal Attention是用法是,预测基于concat后的多模态联合特征对不同模态的重要性分布概率,再将分布概率与多模态融合特征做点积,得到对于不同模态特征重要性重新加权过后的新的多模态融合特征。
Multimodal Fusion(多模态融合)_第10张图片
Multi-Interactive MemoryNetwork
这篇文章同样是用了Attention,使用Aspect-guided attention机制来指导模型生成文本和图像的Attention向量。使用的是和Attention很类似的记忆网络技术,具体如下图分为Textual和Visual Memory Network,然后通过GRU+Attention的多跳融合优化特征表达。

其中的重点在于,为了捕获多模态间和单模态内的交互信息,模型又使用了Multi-interactive attention机制。即Textual和Visual在多跳的时候会相互通过Attention来融合信息(感觉很像Co-Attention的处理方法)。
Multimodal Fusion(多模态融合)_第11张图片
其他玩法:不止是Co-Attention咯,就把Attention的其他各种变体再应用一遍。。。

Adversarial Multimodal Representation Learning for Click-Through Rate Prediction
补上一篇WWW20’的阿里论文,虽然是做点击率预估,这里的融合方法非常有意思。

以往的多模态融合要么将多个模态特征串联起来,相当于给每个模态赋予固定的重要性权重;要么学习不同模态的动态权重,用于不同的项如用Attention融合比较好,但是不同模态本身会有冗余性和互补性(相同的东西和不同的东西),即需要考虑不同的模态特性和模态不变特性。使用冗余信息计算的不同模式的动态权重可能不能正确地反映每种模式的不同重要性。

为了解决这一问题,作者通过不同的考虑模态特异性和模态不变特征来考虑模态的非定性和冗余性。
Multimodal Fusion(多模态融合)_第12张图片
所以在多模态融合(普通的Attention融合,即图中的MAF)旁边加上一个双判别器对抗网络(即图中的DDMA),即分别捕捉动态共性,和不变性。DDMA如下图:
Multimodal Fusion(多模态融合)_第13张图片
双判别器是为了挖掘:

  • 各种模式共同特征的潜在模式(第一个D 识别可能来自共同潜在子空间的模态不变特征,跨越多种模式并强调已识别的模态不变特征,以进一步混淆第二个鉴别器)
  • 并推动各种模式之间的知识转让(第二个D 在模式之间学习跨多个模式的共同潜在子空间)。

Cross-modality Person re-identification with Shared-Specific Feature Transfer
继续补一篇新鲜的CVPR2020的文章,同样这篇文章是做行人重识别的,但是融合方法很有趣。

还是沿着上一篇博文的思路,现有的研究主要集中在通过将不同的模态嵌入到同一个特征空间中来学习共同的表达。然而,只学习共同特征意味着巨大的信息损失,降低了特征的差异性。

所以如何找不同模态间的 共性 和 个性?一方面不同模态之间的信息有互补作用,另一方面模态自己的特异性又有很强的标识功能。但是怎么把两者分开呢?即如何找到这两种表示。作者提出了一种新的跨模态共享特征转移算法(cm-SSFT):
Multimodal Fusion(多模态融合)_第14张图片
(注:作者这里认为RGB图和红外IR图是两种模态…)

  • Two-stream。特征提取器得到两个模态的特征。绿线是RGB,黄线是IR,这两部分是特性,然后蓝色部分是两者共享的modality-shared 共性。
  • Shared-Specific。对提取到的特征进行统一的特征表示。然后这里有个概念是Affinity modeling(博主的理解是相似度),使用共性common feature和特性specific feature建立成对亲和模型,目的是使得模态内及模态间的每个样本向关联。会拼接出一个统一的大方形(两个对角是特性,两个对角共性),和一个由RGB+共性+0和IR+共性+0拼接得到的Z。
  • shared-specific transfer network (SSTN)。确定模态内和模态间的相似性,并且在不同的模态间传播共享和特定特征,以弥补缺乏的特定信息并增强共享特征。这一部分借鉴了GAN进行消息传播,直观的理解是根据共享特征对不同模态样本的亲缘关系进行建模。
  • 在特征提取器上模块上又增加了两个项目对抗重建块(project adversarial and reconstruction blocks)和一个模式适应模块(modality- adaptation module),以获得区别性、互补性的共享特征和特定特征。1 模态鉴别器对每个共享特征的模态进行分类 2 特有特征投射到相同样本的共享特征上 3 将共享的和特定的特征拼起来。

如果有其他有关多模态融合有意思的论文,欢迎在文章后面留言。

另外,下一篇博文整理了在多模态领域中也很常见的领域:Cross-modal Retrieval 跨模态检索 。

你可能感兴趣的:(深度学习,多模态融合,Multimodal,Fusion,论文,python)