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),目前研究领域中主要是对图像,文本,语音三种模态的处理。之所以要对模态进行融合,是因为不同模态的表现方式不一样,看待事物的角度也会不一样,所以存在一些交叉(所以存在信息冗余),互补(所以比单特征更优秀)的现象,甚至模态间可能还存在多种不同的信息交互,如果能合理的处理多模态信息,就能得到丰富特征信息。即概括来说多模态的显著特点是: 冗余性 和 互补性 。
传统特征融合算法主要可以分为三类:1.基于贝叶斯决策理论的算法 2.基于稀疏表示理论的算法 3.基于深度学习理论算法。传统方法不做整理,其中的深度学习方法按照融合的层次从下到上每一层都可以fusion:
- pixel level。对原始数据最小粒度进行融合。
- feature level 。对抽象的特征进行融合,这也是用的最多的。包括early 和 late fusion,代表融合发生在特征抽取的早期和晚期,如上图。early是指先将特征融合后(concat、add)再输出模型,缺点是无法充分利用多个模态数据间的互补性,且存在信息冗余问题(可由PCA,AE等方法缓解)。late分融合和不融合两种形式,不融合有点像集成学习,不同模态各自得到的结果了之后再统一打分进行融合,好处是模型独立鲁棒性强。融合的方式即在特征生成过程中(如多层神经网络的中间)进行自由的融合,灵活性比较高,如金字塔融合。
- decision level 对决策结果进行融合,这就和集成学习很像了。
- hybrid。混合融合多种融合方法。
就一些详细方法上,这篇文章主要整理部分博主自己看过的paper:
- 基于矩阵;
- 基于普通神经网络;
- 基于生成模型;
- 基于注意力;
- 其他。如NAS,GAN,Graph等。
- 融合矩阵和特征。
- shuffle和shift等不需要额外参数的方法。
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