多模态关键任务与应用综述(从表示到融合,从协同学习到关键技术梳理)

2023-11-02

冗余性 和 互补性 是多模态各种特性存在的基础

1.双线性池化

特征融合即输入两个模态的特征向量,输出融合后的向量。最常用的方法是拼接、按位乘、按位加。有些作者认为这些简单的操作效果不如外积/叉乘得tensor,不足以建模两个模态间的复杂关系。但外积计算存在复杂度过高的问题。双线性(Bilinear)就是向量外积的计算。双线性池化(Bilinear Pooling)是对双线性融合后的特征进行池化。
例如LMF(Low-rank Multimodal Fusion),PTP (polynomialtensor pooling)
双线性池化的详解,改进和相关论文
Ps:模态对齐的挑战
模态对齐面临着许多困难:少有显示标注模态对齐的数据集;很难设计模态间的相似性度量;存在多种可能的模态对齐,而且一个模态中的elements可能在另一个模态中没有对应。

2.多模态特征表示

主要任务是学习如何更好的提取和表示多模态数据的特征信息,以利用多模态数据的互补性
主要存在的问题有:(1)如何组合来自不同模态的数据 (2)如何处理不同模态不同程度的噪音 (3)如何处理缺失数据。
联合特征表示(Joint representations)和协同特征表示(coordinated representations)。联合特征表示将各模态信息映射到相同的特征空间中,而协同特征表示分别映射每个模态的信息,但是要保证映射后的每个模态之间存在一定的约束,使它们进入并行的相互映射的协同空间。(投影到分离但相关的空间)
联合特征表示主要用于在训练和测试阶段都是多模态数据的任务。
协同特征表示是为每个模态学习单独的特征提取模型,通过一个约束来协同不同的模态,更适合于在测试时只有一种模态数据的任务,如:多模态检索和翻译。
协同架构包括跨模态相似模型和典型相关分析,其目的是寻求协调子空间中模态间的关联关系;由于不同模态包含的信息不一样,协同方法有利于保持各单模态独有的特征和排它性,

  • 协同架构在跨模态学习中已经得到广泛应用,主流的协同方法是基于交叉模态相似性方法,该方法旨在通过直接测量向量与不同模态的距离来学习一个公共子空间。而基于交叉模态相关性的方法旨在学习一个共享子空间,从而使不同模态表示集的相关性最大化。
  • 交叉模态相似性方法在相似性度量的约束下保持模态间和模态内的相似性结构,期望相同语义或相关对象的跨模态相似距离尽可能小,不同语义的距离尽可能大。
  • 与其它框架相比,协同架构的优点是每个单模态都可以独立工作,这一特性有利于跨模式迁移学习,其目的是在不同的模态或领域之间传递知识。缺点是模态融合难度较大,使跨模态学习模型不容易实现,同时模型很难在两种以上的模态之间实现转移学习。

3.多模态融合(fusion)

多模态融合是将来自多种不同模态的信息进行整合,用于分类任务或回归任务。值得注意的是,在最近的工作中,对于像深度神经网络这样的模型,多模态表示和融合之间的界限已经模糊了,其中表示学习与分类或回归目标交织在一起。
优点有三,一是对比单模态更加鲁棒,二是模态信息互补,三是其一模态信息缺失仍能运行

模型无关的方法(Model-agnostic approaches)不依赖具体机器学习方法
(可以兼容任何一种分类器或者回归器)

  1. 早期融合:提取特征后简单连接,利用低水平特征间的相关性和相互作用,训练容易(特征级的融合,多模态表示的前期尝试)不过无法充分利用多个模态数据间的互补性,且存在信息冗余问题(可由PCA,AE等方法缓解)
    pixel level:对原始数据最小粒度进行融合。
  2. 晚期融合:针对不同的模态训练不同的模型,然后进行集成,更好地对每种模态数据进行建模(不融合,类似继承学习),模型独立,鲁棒性强。融合的方式即在特征生成过程中(如多层神经网络的中间)进行自由的融合,从而实现更大的灵活性,本质上忽略了模态之间的低水平交互作用,即底层特征之间的关系(推理结果融合)可以较简单地处理数据的异步性
    利用单一模态的预测结果,通过投票机制、加权、signal variance或者一个模型进行融合
    decision level 对决策结果进行融合,这就和集成学习很像了。
  3. 混合融合:多者结合

基于模型的方法(Model-based approaches)
基于内核的方法(Multiple kernel learning):SVM的扩展,不同模态不同内核,灵活选择kernel可以更好的融合异构数据,主要优势是MKL的损失函数是凸函数,可以得到全局最优解,模型训练可以使用标准的优化package和全局优化方法,劣势在于测试时对于数据集的依赖推理速度慢,缺点在于测试期间依赖于训练数据(sv),测试慢内存大
概率图模型(Graphical models):生成模型(联合概率)和概率模型(条件概率),耦合和阶乘隐马尔可夫模型以及动态贝叶斯网络,CRF
图模型能够很容易的发掘数据中的空间和时序结构,同时可以将专家知识嵌入到模型中,模型也可解释
神经网络模型(Neural networks):多模态特征提取部分和多模态融合部分可以进行端到端的训练且能够学习其他方法难以处理的复杂决策边界。神经网络方法的主要缺点就是可解释性差以及需要依赖大量高质量的训练数据。

融合挑战

1.不同模态的信息在时间上可能不是完全对齐的,同一时刻有的模态信号密集,有的模态信号稀疏。
2.融合模型很难利用模态之间的互补性
3.不同模态数据的噪音类型和强度可能不同

4.多模态共同学习

旨在通过发掘另一种模态的信息来帮助当前模态建模
相关场景:一种模态的资源有限,缺乏标注数据或者输入噪声大,标签可靠性低
1.并行数据:模态之间共享一个实例集合,两种方法:协同训练和表征学习
协同训练:当某一个模态的标记数据非常少时,可以利用协同训练生成更多的标注训练数据(图像增强RGB,文本增强翻译德法语),或者利用模态间的不一致性过滤不可靠标注样本
协同训练方法能够生成更多的标注数据,但也可能会导致overfitting

迁移学习:多模态玻尔兹曼机或者多模态自编码器将一种模态特征表示转化为另一种,这样不仅能得到多模态表征,而且对于单模态而言推理过程中也能得到更好的性能。

2.非并行数据:不需要依赖模态间共享的实例,有共享的类别或者概念(concept)即可
迁移学习:迁移学习能够从一个数据充分、干净的模态学习特征表示迁移到另一个数据稀缺、噪声大的模态,这种迁移学习常用多模态协同特征表示实现。(zero shot)

Conceptual grounding:通过语言以及其他附加模态,例如视觉、声音、甚至味觉,学习语义含义,单纯的利用文本信息不能很好的学习到语义含义,例如人学习一个概念的时候利用的是所有的感知信息而非单纯的符号。(共感觉性/通感)

grounding通常通过寻找特征表征间的共同隐空间或者分别学习每个模态的特征表示拼接,conceptual grounding和多模态特征对齐之间有很高的重合部分。

需要注意的是,grounding并不能在所有情况下带来性能的提升,仅当grounding与具体任务相关时有效,例如在视觉相关任务中利用图像进行grounding

3.混合数据:通过共享的模态或者数据集连接两种非数据并行的模态,典型的任务例如多种语言进行图像描述,图片会与至少一种语言之间建立联系,语言之间的可以利用机器翻译任务建立起联系。

目标任务如果仅有少量标注数据,也可利用类似或相关任务去提升性能,例如利用大量文本语料指导图像分割任务(有点prompt的意思)。

多模态协同学习通过寻找模态之间的互补信息,使一种模态影响另一种模态的训练过程。
多模态协同学习是与任务无关的,可以用于更好的多模态特征融合、转换和对齐。

5.关键技术梳理

设计一个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单独介绍。

  5.1 Masked Language Modeling ( MLM ):传统的文本屏蔽语言模型,针对的是文本流。

  5.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 。

  5.3 Image-Text Matching ( ITM ): 图文匹配任务,针对的是图文交互流,即判断当前pair是不是匹配(就是个分类任务),具体的是将图片的IMG token和文本的cls做element-wise product再经过一个MLP层来做相似性的监督学习。

可以看到其实 5.1是Language-Modal的,5.2是Vision-modal的,5.3是Cross-modal

Conclusion

(1)基本上现在的标配:就是single-modal层面的MASK预测,以及cross-modal层面的对齐学习。
(2) single-stream好还是two-stream好,目前没有一个绝对的结论,就目前看使用single-stream更多一些,使用single-stream的好处是特征融合更早更充分,使用two-stream一个明显的优势是参数量更多(意味着可以容纳更多的信息),先在前期提取了各种低阶特征,进而在高阶进行融合。
(3) 图像的提取Rol到Pixel到Patch,目前使用Rol方式居多,但是必然缺失了很多信息,最直观的就是空间,尽管一些模型都显示的加了位置embedding,但是一些隐式的也有缺失,毕竟目标外的甚至是目标检测模型不能检测的目标信息都丢失了,所以从包含的信息的角度考虑后两种更全。
(4) 粒度越来越细。语言模态上:从简单的MLM到mask 场景图,视觉模态上:从单纯的mask region 区域到mask object目标,kaleido-BERT的设计的AKPM任务等等。对齐任务上面的比如:kaleido-BERT的设计的AGM。这里也是可以挖掘的一个方向可以更细粒度,当然难点就是要挖掘的粒度下的训练pair的挖掘。对齐先验知识很重要,这块有更大的挖掘空间。
(5) 数据量越来越大。不论是使用对比学习还是什么手段,本质上就是为了使的模型可以利用更大的数据集。谁能利用的数据量更大且谁能挖掘更细粒度的对齐,效果应该是越好。
(6) 大一统模态即一个模型同时可以多模态单模态可能是一个方向,因为其利用的数据可以更多,且一个模型解决可以覆盖所有任务,应用也广。
这个作者有图文介绍,结合着看可能会更好
多模态文本分类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多模态关键任务与应用综述(从表示到融合,从协同学习到关键技术梳理) 的相关文章

随机推荐

  • 2023华为od机试真题B卷Python【矩阵里的非一元素】

    题目 假设存在一个m n的二维数组 其成员取值范围为0 1和2 1具有同化特性 它具体的同花步骤是 每经过1秒 如果其上下左右值为0 那么修改为1 而值为2的元素不会有任何变化 初始时 将数组的 0 0 元素修改为1 经过足够长的时间后 需
  • 应用于SSVEP脑电信号识别的CCA算法

    应用于SSVEP脑电信号识别的CCA算法 1 SSVEP信号 2 应用于SSVEP信号的CCA算法 1 SSVEP信号 SSVEP是指当受到一个固定频率的视觉刺激的时候 人的大脑视觉皮层会产生一个连续的与刺激频率有关 刺激频率的基频或倍频处
  • phpstudy站点404访问遭到拒绝 首页可以访问 接口不能访问

    问题描述 新站站点可以使用 关机再开不能使用 新建站点 不能访问接口 可以访问首页 接口404 直接入正题 入口文件夹里有一个文件 htaccess 这个文件打开如果没有内容 问题就出现在这
  • 清华汪玉创始公司浮出水面,要做大模型一体机,仍是“深鉴式”师生组合拳...

    衡宇 发自 凹非寺量子位 公众号 QbitAI 清华大学电子工程系系主任汪玉 再一次躬行实践 产学结合 具体领域 与大模型紧密相关 量子位获悉 汪玉担任创始人身份的新公司无问芯穹 主要做大模型推理用一体机 以及工具链软件 公司旨在解决大模型
  • J-Tech Talk | 编写Dockerfile的最佳实践

    J Tech Talk 由 Jina AI 社区为大家带来的技术分享 工程师们将深入细节地讲解具体的问题 分享 Jina AI 在开发过程中所积累的经验 不论是个人开发者还是企业 上云已经成为基本的需求 使用 Dockerfile 构建 D
  • debug assertion failed 的一种解决方法

    在使用C 编写程序时 使用到了如同以下的程序 scene addItem originalPixmap 出现debug assertion failed错误 查找原因 发现代码并没有问题 罪魁祸首是 变量 scene 的声明在 origin
  • Centos搭建k8s

    在CentOS 7上搭建Kubernetes集群 kubeadm官方文档 https blog 51cto com zhangxueliang 4952945 前置步骤 所有结点 CentOS 7 9 物理机或虚拟机三台 CPU 内核数量大
  • MATLAB常用函数汇总

    一 基本函数 函数 作用 举栗子 clear 清除工作区中的所有变量 clc 清除命令行中的所有代码 help 函数名 或 doc 函数名 查找函数帮助 syms 定义符号变量 syms x y sym f 定义符号表达式 sym x y
  • TVM的安装过程

    最近在看深度学习编译器相关的工作 其中FlexTensor给我留下了比较深刻的印象 加上这项工作是开源的 所以想看看这份工作的源码 首先是怎么把工程跑起来 FlexTensor倚仗TVM做代码生成 所以首先得安装TVM 首先给出官方网站的安
  • 人生四大喜事是什么?

    一辈子 或长或短 总是要经历很多事情 古人很聪明 把人生简单明了化 归结了最重要的四大喜事和四大悲事 四大喜事 久旱逢甘雨 他乡遇故知 洞房花烛夜 金榜题名时 四大悲事 幼年丧母 少年丧父 中年丧妻 老年丧子 人生四大喜事 久旱逢甘雨 他乡
  • 覆盖的面积【HDU-1255】【扫描线】

    题目链接 超级好的一道题的说 虽然看了别人的思路才有了的的想法 我好弱啊 题目求的是覆盖两次以上的区间的面积大小 那么我们要怎么做 一样的 Covercnt gt 2 就得到答案 不 不行 因为若是我们之前放进去一个小区间 然后再放一个包含
  • 留言赠书|因果推断与机器学习,终于有本书能讲明白啦!

    随着大数据时代的来临 机器学习技术突飞猛进 并且在人类社会中扮演越来越重要的角色 例如 你可能已经习惯了每天使用谷歌 百度 Bing等搜索引擎查找信息 或者在电商网站和视频网站的推荐系统 以及利用谷歌 百度等网站提供的机器翻译学习外语 这些
  • weak和assign的区别-正确使用weak、assign

    一 区别 1 修饰变量类型的区别 weak 只可以修饰对象 如果修饰基本数据类型 编译器会报错 Property with weak attribute must be of object type assign 可修饰对象 和基本数据类型
  • 11、若依分布式事务

    数据库事务的基本概念 ACID 原子性 Atomicity 操作这些指令时 要么全部执行成功 要么全部不执行 只要其中一个指令执行失败 所有的指令都执行失败 数据进行回滚 回到执行指令前的数据状态 要么执行 要么不执行 一致性 Consis
  • C# Lambda Expression概念浅析

    C Lambda Expressions是什么呢 我们在处理数据库数据删除的操作的时候会碰到它 那么具体的C Lambda Expressions是什么以及含义和使用是什么情况呢 那么下面我来看看具体的内容 1 关于C Lambda Exp
  • 有趣的图形算法(竞赛热点)

    用于总结当时的经典题型 题目 记得大一刷题有这样一道题 默认三角形 n 2 是形如下列形状的 n 3时是这样的 输入一个整数n 1 lt n lt 9 输出符合题意的图形 解析 当时老纠结了 最后才明白需要用递归 总结代码 include
  • vue项目首屏加载优化

    vue项目首屏加载优化 1 存在的问题 2 什么是首屏加载 2 1 首屏加载时间的计算 3 加载慢的原因 4 解决的办法 4 1 路由懒加载 4 1 1 什么是路由懒加载 4 1 2 为什么需要懒加载呢 4 1 3 路由懒加载的原理 4 1
  • “终于我从字节离职了...“一个年薪40W的测试工程师的自白...

    我递上了我的辞职信 不是因为公司给的不多 也不是因为公司待我不好 但是我觉得 我每天看中我憔悴的面容 每天晚上拖着疲惫的身体躺在床上 我都不知道人生的意义 是赚钱吗 是为了更好的生活吗 但是我认为我想要的生活不是每天从早忙到晚 不是每天面对
  • Canvas入门实战之实现一个图形验证码

    本文主要介绍用canvas实现图形验证码的一些思路以及如何用javascript面向对象的方式更友好的实现canvas的功能 关于canvas的一些基本使用方法和API我整理了一个思维导图 大家感兴趣的可以参考学习 你将收获 闭包的使用 c
  • 多模态关键任务与应用综述(从表示到融合,从协同学习到关键技术梳理)

    冗余性 和 互补性 是多模态各种特性存在的基础 1 双线性池化 特征融合即输入两个模态的特征向量 输出融合后的向量 最常用的方法是拼接 按位乘 按位加 有些作者认为这些简单的操作效果不如外积 叉乘得tensor 不足以建模两个模态间的复杂关