赞
踩
参考文章:
多模态关键任务与应用综述(从表示到融合,从协同学习到关键技术梳理)_被rua弄的小狸花的博客-CSDN博客_多模态融合综述
常用的特征融合方法:拼接、按位乘、按位加,有些作者任务外积方法更好,但是外积的计算复杂度高。
双线性(Bilinear)就是向量外积的计算。双线性池化(Bilinear Pooling)是对双线性融合后的特征进行池化。例如LMF(Low-rank Multimodal Fusion),PTP (polynomialtensor pooling)
模态对齐面临着许多困难:少有显示标注模态对齐的数据集;很难设计模态间的相似性度量;存在多种可能的模态对齐,而且一个模态中的elements可能在另一个模态中没有对应。
主要存在的问题有:(1)如何组合来自不同模态的数据 (2)如何处理不同模态不同程度的噪音 (3)如何处理缺失数据。
联合特征表示(Joint representations)将各模态信息映射到相同的特征空间中。主要用于在训练和测试阶段都是多模态数据的任务。
协同特征表示(coordinated representations)分别映射每个模态的信息,但是要保证映射后的每个模态之间存在一定的约束,使它们进入并行的相互映射的协同空间。 (投影到分离但相关的空间)。适合于在测试时只有一种模态数据的任务,如:多模态检索和翻译。
协同架构的优点:每个单模态都可以独立工作,这一特性有利于跨模式迁移学习,其目的是在不同的模态或领域之间传递知识。
协同架构的缺点:模态融合难度较大,使跨模态学习模型不容易实现,同时模型很难在两种以上的模态之间实现转移学习。
主流的协同方法是基于交叉模态相似性方法。旨在通过直接测量向量与不同模态的距离来学习一个公共子空间。
将来自多种不同模态的信息进行整合,用于分类任务或回归任务。
优点有三,一是对比单模态更加鲁棒,二是模态信息互补,三是其一模态信息缺失仍能运行。
不依赖具体机器学习方法(可以兼容任何一种分类器或者回归器)
1.早期融合:提取特征后简单连接,利用低水平特征间的相关性和相互作用,训练容易(特征级的融合,多模态表示的前期尝试)不过无法充分利用多个模态数据间的互补性,且存在信息冗余问题(可由PCA,AE等方法缓解)。
pixel level:对原始数据最小粒度进行融合。
2.晚期融合:针对不同的模态训练不同的模型,然后进行集成,更好地对每种模态数据进行建模(不融合,类似继承学习),模型独立,鲁棒性强。融合的方式即在特征生成过程中(如多层神经网络的中间)进行自由的融合,从而实现更大的灵活性,本质上忽略了模态之间的低水平交互作用,即底层特征之间的关系(推理结果融合)可以较简单地处理数据的异步性。
利用单一模态的预测结果,通过投票机制、加权、signal variance或者一个模型进行融合。
decision level 对决策结果进行融合,这就和集成学习很像了。
3.混合融合:多者结合。
1.基于内核的方法(Multiple kernel learning):SVM的扩展,不同模态不同内核,灵活选择kernel可以更好的融合异构数据,主要优势是MKL的损失函数是凸函数,可以得到全局最优解,模型训练可以使用标准的优化package和全局优化方法。劣势在于测试时对于数据集的依赖推理速度慢,缺点在于测试期间依赖于训练数据(sv),测试慢内存大。
2.概率图模型(Graphical models):生成模型(联合概率)和概率模型(条件概率),耦合和阶乘隐马尔可夫模型以及动态贝叶斯网络,CRF。图模型能够很容易的发掘数据中的空间和时序结构,同时可以将专家知识嵌入到模型中,模型也可解释。
3.神经网络模型(Neural networks):多模态特征提取部分和多模态融合部分可以进行端到端的训练且能够学习其他方法难以处理的复杂决策边界。神经网络方法的主要缺点就是可解释性差以及需要依赖大量高质量的训练数据。
多模态融合的挑战:
1.不同模态的信息在时间上可能不是完全对齐的,同一时刻有的模态信号密集,有的模态信号稀疏。
2.融合模型很难利用模态之间的互补性。
3.不同模态数据的噪音类型和强度可能不同。
旨在通过发掘另一种模态的信息来帮助当前模态建模。
多模态协同学习通过寻找模态之间的互补信息,使一种模态影响另一种模态的训练过程。
多模态协同学习是与任务无关的,可以用于更好的多模态特征融合、转换和对齐。
相关场景:一种模态的资源有限,缺乏标注数据或者输入噪声大,标签可靠性低。
1.并行数据:模态之间共享一个实例集合。
两种方法:协同训练和表征学习。
协同训练:当某一个模态的标记数据非常少时,可以利用协同训练生成更多的标注训练数据(图像增强RGB,文本增强翻译德法语)。或者利用模态间的不一致性过滤不可靠标注样本。
协同训练方法能够生成更多的标注数据,但也可能会导致过拟合。
迁移学习:多模态玻尔兹曼机或者多模态自编码器,将一种模态特征表示转化为另一种。这样不仅能得到多模态表征,而且对于单模态而言推理过程中也能得到更好的性能。
2.非并行数据:不需要依赖模态间共享的实例,有共享的类别或者概念(concept)即可。
迁移学习:迁移学习能够从一个数据充分、干净的模态学习特征表示迁移到另一个数据稀缺、噪声大的模态,这种迁移学习常用多模态协同特征表示实现。(零调整:zero shot)
Conceptual grounding:通过语言以及其他附加模态,例如视觉、声音、甚至味觉,学习语义含义,单纯的利用文本信息不能很好的学习到语义含义,例如人学习一个概念的时候利用的是所有的感知信息而非单纯的符号。(共感觉性/通感)
grounding通常通过寻找特征表征间的共同隐空间或者分别学习每个模态的特征表示拼接,conceptual grounding和多模态特征对齐之间有很高的重合部分。
需要注意的是,grounding并不能在所有情况下带来性能的提升。仅当grounding与具体任务相关时有效,例如在视觉相关任务中利用图像进行grounding。
3.混合数据:通过共享的模态或者数据集连接两种非数据并行的模态。
典型的任务例如多种语言进行图像描述,图片会与至少一种语言之间建立联系,语言之间的可以利用机器翻译任务建立起联系。
目标任务如果仅有少量标注数据,也可利用类似或相关任务去提升性能。例如利用大量文本语料指导图像分割任务。
设计一个Vision-Language 预训练模型,其实主要涉及到三个关键技术:特征提取、特征融合和预训练任务。
(1)特征提取要解决的问题是怎么分别量化文字和图像,进而送到模型学习。
(2)特征融合要解决的问题是怎么让文字和图像的表征交互。
(3)预训练任务就是怎么去设计一些预训练任务来辅助模型学习到图文的对齐信息。
其他的也很重要的trick,比如:
(1) 训练的数据是文本和图像pair,怎么挖掘?
(2) 训练好的预训练模型怎么增量学习?
(3) 训练好的预训练模型怎么压缩?
(4) …
目前这三个技术的通常做法是:
(1) 特征提取:文本端的表征标配就是bert的tokenizer,更早的可能有LSTM;图像的话就是使用一些传统经典的卷积网络,按提取的形式主要有三种Rol、Pixel、Patch三种形式(?,像素,?)。
(2) 特征融合:目前的主流的做法不外乎两种,即双流two-stream或者单流single-stream。
双流:基本上就是双塔网络,在模型最后的时候设计一些layer进行交互,所以双流结构的交互发生的时间更晚。
单流:是一个网络比如transformer,其从一开始就进入一个网络进行交互,所以单流结构的交互时间发生的更早且全程发生,更灵活。
当然还有一类是Multi-stream(MMFT-BERT),目前还不多,不排除将来出现基于图文音等Multi-stream多模态模型。
(3) 预训练任务:这里就是最有意思的地方,也是大部分多模态paper的idea体现。这里就先总结一些常见的标配任务,一些特色的任务后面paper单独介绍。
1.Masked Language Modeling ( MLM ):传统的文本屏蔽语言模型,针对的是文本流。
2.Masked Region Modeling(MRM):模仿MLM,只不过这里是对图片进行随机mask,针对的是图像流。被随机屏蔽的概率是15% ,替换成 0 和保持不变的概率分别是 90%和10%,这里又可以细化的分为Masked Region Feature Regression (MRFR) ,Masked Region Classification (MRC)和Masked Region Classification with KL-Divergence (MRC-kl)。主要的loss分别是L2 regression,cross-entropy (CE) loss,KL divergence 。
3. Image-Text Matching ( ITM ):图文匹配任务,针对的是图文交互流,即判断当前pair是不是匹配(就是个分类任务),具体的是将图片的IMG token和文本的cls做element-wise product再经过一个MLP层来做相似性的监督学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。