Orca 中文站

你的位置: Orca 中文站 > Gifto中文网 >
Gifto中文网
多模态视觉语言表征学习研究综述
发布日期:2025-01-04 16:57    点击次数:168
模态是事情经历和发生的方式.我们生活在一个由多种模态信息构成的世界, 包括视觉信息、听觉信息、文本信息、嗅觉信息等等, 当研究的问题或者数据集包含多种这样的模态信息时, 我们称其为多模态问题.研究多模态问题, 是推动人工智能更好地了解和认知我们周围世界的关键.对于多模态问题, 我们需要充分利用多种模态间的互补性和冗余性, 充分挖掘模态之间的信息, 从而消除数据的异构问题带来的挑战.多模态机器学习的应用很广泛, 比较早期的应用可以追溯到1989年提出的一个视听语音任务[1], 借助隐马尔可夫模型[2], 通过视觉模态补充听觉模态信息.另外就是情感识别研究领域目前已经从单模态识别逐步转向多模态识别的研究, 多模态情感的研究的主要是借助视觉、语音、文本、脑电等模态信息对情感状态进行识别, 从输出上来看可分为分类问题(输出愤怒、高兴、悲伤等不同情感)和回归问题(输出一个到情感空间的映射值), 相应的研究数据集有Busso等人[3]通过诱导方式录制的基于情感分类的IEMOCAP数据集、Mckeown等人录制的基于连续值的SEMAINE数据库[4].另外, 比较常见的应用包括媒体描述、事件识别、多媒体检索、视觉推理、视觉问答等等. Baltrušaitis在多模态机器学习综述[5]一文中, 将多模态机器学习研究分为几个方向: 多模态表征学习、多模态翻译、多模态对齐、多模态融合、多模态联合学习.在解决多模态问题时, 多模态表征学习是一个关键的研究点.一般来说, 机器学习模型的好坏严重依赖于数据特征的选择, 传统的机器学习中, 很大一部分工作都在于特征的挖掘以及特征的抽取和选择方面, 这些工作的结果可以支持有效的机器学习数据表征.但是这样的特征工作比较耗费时间, 尤其是一些基于手工特征的方法没有能力从原始数据抽炼出有用的知识, 特征工程的目的是将人的先验知识转化为可以被机器学习识别的特征, 从而弥补自身的缺点.利用表征学习的方法, 可以从数据中学习出有用的表征以减少对特征工程的依赖, 从而在一些具体任务中能取得更好的应用.首先, 一个好的表征要尽可能地包含更多数据的本质信息.相比于单个模态, 多模态的表征学习面临很多的挑战, 比如噪音处理、模态之间的融合方式、丢失的模态信息处理、不同模态处理的差异化、实时性和效率等等.Bengio[6]指出, 好的表征主要有几个特点: 数据平滑、时空相关、数据稀疏、自然聚类等等.多模态表征空间相似的数据在实际意义或者实体概念上要存在相似性, 在单一模态信息丢失的情况下, 可以通过另外一种模态的信息进行补充. 在过去的一段时间内, 单模态的表征学习取得了很大的发展, 在图像领域, 过去很长时间内盛行的一些手工特征, 比如SIFT(尺度不变特征变化)特征[7]和HOG(方向梯度直方图)[8]特征, 逐渐被卷积神经网络[9]代替.通过卷积神经网络可以充分挖掘视觉的二维和三维信息的表征含义, 目前, 很多视觉任务都采用在一个充分预训练的卷积模型上进行微调的方式.语音领域中的一些手工特征, 比如梅尔频率倒谱系数(MFCC), 也逐渐被一些基于数据驱动的深度学习的方法所代替[10].另外就是在自然语言处理领域, 表征学习的发展尤其迅速, 过去文本领域一直效果很好的基于词频统计的TF-IDF特征[11]逐渐被word2vec[12]等隐式表征向量所代替, 这些隐式表征充分挖掘了文本信息的潜在含义可以对文本进行更丰富的信息表达.另外, 像卷积神经网络、递归神经网络等, 也常被用来作为文本表征的挖掘工具.另外, 近年来, 基于预训练技术的表征学习模型逐渐兴起, 并逐渐霸榜NLP的各类任务, 其基本模式为通过在海量无标注数据集中进行自监督学习, 然后再接一个具体的下游任务, 比如文本分类知识问题等, 其中最有代表性的为谷歌提出的BERT[13]、BERT在GLUE[14]的各项任务中都取得显著提升.BERT的成功, 充分证明了对数据表征进行充分学习的重要性.借鉴于单模态表征学习的一些方法, 多模态的表征学习也取得了一定的进展.视觉语言表征学习是多模态表征学习中最有代表性的, 而且视觉语言结合的任务也是多模态任务中最常见和占比最大的.本文中, 我们主要介绍基于视觉语言统一表征学习的一些方法、应用、数据集以及面临的难点. 本文第1节介绍相应的背景知识, 包括多模态表征学习的一些基本定义和划分、常用预训练技术.第2节分别比较视觉语言表征学习的两种研究框架.第3节开始介绍基于相似性的视觉语言表征学习的方法.第4节为核心部分, 主要介绍基于预训练架构的视觉语言表征模型.第5节介绍视觉语言统一表征的质量评估方法.第6节给出视觉语言表征学习的发展趋势. 1 背景知识 1.1 表征学习 表征学习作为机器学的一个专门领域, 吸引了越来越多的学者的研究.很多机器学习的专门会议, 比如NIPS和ICML, 都会定期举办专门的研讨会.另外, 还有专门针对表征学习的会议ICLR.表征学习本质上是特征工程的一种延伸, 传统特征工程挖掘的一些特征都是在对数据进行一些分析后, 在一些经验基础上结合一些数学分析得到的, 目前, 典型的表征学习方法是通过深度学习的方法从数据中自动化地挖掘出有效的隐性特征, 以降低人工挖掘特征成本, 更方便高效地挖掘出与具体任务无关但是可以在下游任务中有较好应用的隐含向量. Bengio[6]指出, 表征学习有两条主线: 一是概率图模型, 二是神经网络模型.这两条主线的根本区别是: 对每一层描述为概率图还是计算图, 或者隐层的节点是潜在的随机变量还是计算节点.从概率图模型角度来研究, 表征学习的问题可以解释为试图恢复一组描述观测数据分布的潜在随机变量.我们可以将观测数据表示成为x, 将潜在变量联合空间上的概率模型表示成h, 表征学习的概率图模型可以表示成p(x, h).表征值被认为是一个推理过程的结果, 以确定给定数据的潜在变量的概率分布, 即p(x|h), 也就是后验概率, 估计过程就是最大化训练数据正则化的可能性.概率图模型又可以分为有向图模型和无向图模型.有向图模型又称为贝叶斯网络, 有向图模型的图节点之间有前后依赖关系, 后面节点的概率依赖于前面节点的概率输出, 其联合分布的构建方式表示为p(x, h)=p(x|h)p(h).目前, 基于有向图模型进行表征学习的例子有主成分分析(PCA)、稀疏编码、Sigmod信念网络等等.无向图模型又被称为马尔可夫网络, 其前后节点之间没有明显的依赖关系, 其公式为 $p(x,h) = \frac{1}{{{Z_\theta }}}\prod\limits_i {{\psi _i}(x)} \prod\limits_j {{\eta _j}(h)} \prod\limits_k {{\nu _k}(x,h)} $ (1-1) 其中, ψi(x)代表可见变量之间的连接, ηj(h)代表隐含变量之间的连接, Vk(x, h)代表隐含变量和可见变量之间的连接, 分配函数Zθ保证分布的归一化.无向图模型用于表征学习的一个典型代表是波尔兹曼机(RBM).概率图模型总是学习与潜在变量相关的, 尤其是后验分布给出的一个观察输入, 如果模型有超过两个关联层时, 其计算会变得非常复杂, 而且潜在变量的后验分布还不是一个简单的可用特征向量.为了最后提取出稳定的确定性的数值特征值, 通常还需要借助自动编码器.基于神经网络的自动编码器的表征学习方法与基于概率图的表征学习模型的方法的区别是: 概率图模型是由显式概率函数定义的, 然后经过训练, 以最大化数据可能性; 而自动编码器框架通过编码器和解码器进行参数化, 自动编码框架允许在编码器和解码器中使用不同的矩阵.自动编码器训练的一个实际优点是定义了一个简单的可跟踪优化目标, 可以来监视进程.为了将重构误差最小化以捕获数据生成分布的结构, 在训练准则或者参数化过程中, 一定要防止自动编码器学习自身函数, 从而在任何地方产生零重建错误.基础的自动编码器在于找到一个值的参数向量θ, 从而将重建误差最小化.自动编码器的定义如下: ${\mathcal{J}_{DAE}}(\theta ) = \sum\limits_t {L({x^{(t)}},{g_\theta }({f_\theta }({x^{(t)}})))} $ (1-2) 其中, x(t)是训练数据; L是进行优化的目标函数, 其主要训练框架采用神经网络, 主要训练方法采用随机梯度下降法等; fθ主要用于编码; gθ主要用于解码.编码维数小于输入维数的欠完备自编码器可以学习数据分布的最显著特征, 如果赋予这类编码器过大的容量或者隐藏编码维数大于输入时, 也会发生类似情况.针对这一情况, 提出正则自编码器.正则自编码器根据要建模的数据分布的复杂性选择合适的编码维数、编码器和解码器容量等, 根据选择, 就可以成功训练任意架构的自编码器.去噪自动编码器是在自动编码器的基础上在输入中加入随机噪声, 去噪自动编码器的表示方程如下: ${\mathcal{J}_{DAE}} = \sum\limits_t {{\mathbb{E}_{q(\tilde x|{x^{(t)}})}}[L({x^{(t)}},{g_\theta }({f_\theta }(\tilde x)))]} $ (1-3) 其中, ${\mathbb{E}_{q(\tilde x|{x^{(t)}})}}[ \cdot ]$是对样本进行随机过程的一个平均.随机噪声编码的方式很多, 比如加性各向同性高斯噪声、用于灰度图像的加盐噪声, 还有近来被广泛应用的掩码噪声.其中, NLP各项任务中取得较大提升的BERT模型就是借鉴去噪自动编码方法对输入字符进行随机掩码的方法.由Rifai等人提出的基于对比损失的自动编码[15]的方法通过加入一个解析收缩惩罚项, 将学习特征的灵敏度与输入的无穷小变化相结合, 从而具备更好的性能. 1.2 多模态表征学习的定义及划分 过去的10年内, 通过神经网络或者概率图模型对自然语言处理, 对语音、图像进行表征的方法层出不穷.而同一时间内, 多模态表征学习的早期研究主要通过对单模态表征进行简单连接的方式进行, 后来借鉴单模态表征, 尤其是自然语言处理领域的一些成功经验, 多模态表征尤其是视觉语言的统一表征开始逐渐兴起. Baltrušaitis[5]等人汇聚了到目前为止多模态表征的一些研究进展, 根据输出的表征是否在一个统一的表征空间内, 将多模态表征分为统一表征和协同表征: 统一表征融合多个单模态信号, 并将它们映射到一个统一表征空间内; 协同表征分别处理每一个模态的信息, 但是在不同模态之间增加相似性的约束.协同表征和统一表征的构造如图 1所示. Fig. 1 Structure of joint and coordinated representations 图 1 统一表征与协同表征的基本结构 统一表征将所有的多模态数据映射到一个公共空间, 适用于在做推断时所有模态都存在的情况, 其被广泛应用于一些视觉语言匹配任务、语音识别辅助、情感识别和多模态姿态估计等.协同表征将每一个模态映射到单独的空间, 其中的每一个模态都是相互独立的, 但是不同模态之间存在关联关系, 协同表征可以将其中的一个模态单独拿来用, 适用于像跨模态检索等场景. 从处理模态的形式上来区分, 多模态表征的研究涉及图像加音频[16-18]、视频加音频[19, 20]、图像加文本[21-40]、视频加文本[41-43]等等, 其中, 视觉语言表征的研究比较多, 而且其研究框架较为通用, 其详细的信息在后面介绍. 1.3 预训练技术 随着深度学习的兴起, 预训练技术逐步被广泛应用, 其大概框架是预先训练一个模型, 然后利用已经训练好的底层网络参数在目前的网络结构基础上再增加一个下游任务, 其中, 底层网络参数在下游任务训练过程中可以不做改变的方式叫冷冻(frozen); 另外一种是底层网络参数在下游任务训练过程中随着训练进程一起改变, 这种方式叫微调(fine-tuning).这种预训练加下游任务的方法在图像和视频领域取得了较好的效果, 比如在做目前检测或者图像分类等任务时, 一般都会使用一个基于ImageNet数据集的预先训练好的网络, 然后再进行微调.虽然目前图像领域对预训练技术有一些质疑, 并且认为基于ImageNet的预训练网络不能明显改善准确率[44], 但是其明显改善了模型的鲁棒性和不确定性的估计[45].而且一些基于无监督学习的预训练技术可以充分地利用海量的无标注样本[46], 从而为下游任务提供更加丰富的特征. 在NLP领域, 表征学习可以追溯到2003年的NNLM[47], 但由于各种原因其应用效果不佳.直到Word2Vec[12]的诞生, 基于NLP领域的表征学习才开始逐步兴起.Word2Vec与NNLM架构类似, 其充分利用文本表达的语序关系, 通过句子中词的上下位词来进行训练(通过上下文预测词或者通过词预测上下文), 从而产出词的向量.但由于这种方法产生的词向量是静态的, 所以其无法较好地解决多义词的问题.从2018年开始诞生的ELMO[48], GPT[49]以及目前广泛应用的BERT通过利用预训练技术, 并采用LSTM、Transformer等特征提取器, 有效地解决了多义词问题.尤其是BERT, 其通过借鉴随机噪声编码器的思想, 通过对文本进行随机掩码的方式, 从而有效地提升了文本表征的质量, 并且在NLP的各项任务中得到了显著的提升.BERT的一些设计思想和架构也随即被应用到了视觉文本表征领域. 2 视觉语言表征学习的研究框架 基于视觉语言的多模态表征是多模态表征中的一个重要研究方向, 其在内容消费、医疗影像等领域有着广泛应用.视觉语言表征学习的本质是学习到视觉模态和语言模态到一个空间的映射, 其可以充分利用视觉模态和语言模态之间的互补性, 剔除模态间的冗余性, 从而学习到更好的特征表示.目前, 较主流且性能较好的研究框架主要分为两种: 一种是基于对比学习或者称为相似性学习的, 其主要是在相似性的约束条件下优化每一种模态的表征; 另外一种是基于自回归或者自编码的预训练架构的, 其借助于Transformer[21]等高效神经网络对各种数据模态的样本编码成特征, 然后再进行重构.两种研究框架表现形态如图 2所示. Fig. 2 Two architectures for visual language representation learning 图 2 视觉语言表征学习的两种架构 基于相似性学习的方法通过一个度量函数衡量视觉模态信息和语言模态信息的差异, 相似性学习的目标是学习一个编码器f, 使得: $ score(f(m),f({m^ + })) > > score(f(m),f({m^ - })) $ (2-1) 其中, m+是和m相似的正样本, m-是和m不相似的负样本, score为相似性的度量函数.相似性度量又可以建模为回归问题、分类问题、排序问题, 其根据输入数据的不同格式和不同的目标损失函数来建模模态之间的关系, 其输入模态被限制为两种. 相似性学习的方法只需要在各自特征空间上学习到区分性; 而基于预训练架构的方法需要对每个模态元素之间的细节进行重构, 其构建模型表示如下: $\left. \begin{gathered} VisionRegions:\mathit{\boldsymbol{v}} = \{ {v_1},...,{v_K}\} \\ SentenceTokens:\mathit{\boldsymbol{w}} = \{ {w_1},...,{w_T}\} \\ {f_{emb}} = f(v,w) \\ \end{gathered} \right\}$ (2-2) 其中, v为视觉区域单元; w表示为文本模态信息.f为深度神经网络, 一般为Transformer神经网络结构, 其堆叠了多个多头自注意力层和前馈神经网络.自注意力子层的设计, 使其在处理多模态序列编码时, 与其他结构相比具备更好的性能.其中一种典型的框架是采用类似于BERT这种基于语言模型掩码的自编码架构的, 比如VisualBERT[39]、ImageBERT[40]等.视觉输入通过预处理的方法转化成与文本单元类似的一个个视觉单元, 然后, 视觉单元和语言单元通过掩码任务实现语言模型.这种架构从本质上是将视觉模态和语言模态处理成语言序列任务, 通过自监督的方式从海量数据中学习出两种模态的联合编码.针对联合表征的具体用途(用于理解或者用于生成), 其可以分别采用自编码模型或者自回归模型来进行编码.更好的损失函数定义和更海量的数据都有助于提升这种表征的质量, 还有就是视觉单元的描述方式、视觉维度信息的刻画方式, 也会对最终表征好坏产生影响.预训练架构可以让视觉语言表征在第1阶段通过自编码或者自回归的方式进行充分的模态融合产生高质量的视觉语言表征, 然后在第2阶段或者第3阶段应用于具体任务.目前, 在一些视觉语言具体的应用任务中, 这种方式取得准确率最高. 3 基于相似性的视觉语言表征学习 3.1 总体架构 基于相似性的表征学习是在一个协同的空间内最小化不同模态之间的距离, 其输入数据主要为具有排序或者正负关系的视觉文本信息对, 通过不同的建模方法实现视觉语言表征的学习.其建模的损失函数可以为铰链损失或者三元损失.输入为具备排序关系的正负对或者三塔结构.比如在基于堆叠注意力网络的图文联合表征(SCAN)[50]中, 其采用损失函数如下: ${l_{hard}}(I,T) = {[\alpha - S(I,T) + S(I,{\hat T_h})]_ + } + {[\alpha - S(I,T) + S({\hat I_h},T)]_ + }$ (3-1) 其中, S为相似函数方程(主要基于cosin函数进行改造), (I, T)为正例的图像文本对, $(I,{\hat T_h})$为负例的文本图像对, $({\hat I_h},T)$为负例的图像文本对.该损失函数融合了铰链损失和三元损失函数, 其优化目标是在一定间距内使得图文配对的正例的取值大于图文不配对和文图不配对的负例的取值.基于相似性的视觉语言表征学习主要受限于度量损失函数、相似性计算方法和进行相似度量的粒度, 其中, 从相似性度量的粒度来看, 主要分为基于粗粒度的匹配和精细粒度的匹配; 从发展来看, 越精细粒度的相似性计算所产生的表征越能产生更好的效果.下文分别从粗粒度相似度匹配模型和细粒度的相似度性匹配模型这两个方面进行阐述, 同时介绍不同模型的特性. 3.2 基于粗粒度的相似度匹配模型 最早的一个工作是由Weston等人在WSABIE[51]中提出的, 其主要通过计算图像模态和图像的标注文本之间的相似性.WSABIE中使用排序损失来度量标注数据与图像之间的相似性: $L(k) = \sum\limits_{j = 1}^k {{\alpha _j}} ,{\rm{with\;}}{\alpha _1} \geqslant {\alpha _2} \geqslant ... \geqslant 0$ (3-2) L可以选择不同的优化方法, 其中, v为对一张图片的不同标注的排序.WSABIE同时引入了在线学习排序的方法来实时优化参数, 但由于WSABIE只研究了从图像特征到嵌入空间的线性映射, 可用的标签仅仅是图像训练集中提供的标签, 无法扩展到新的类别.DeViSE[25]基于深度零样本学习的理念, 在不同模态的预训练向量之间建立了一个线性映射.首先采用skip-gram的方法对文本部分产生文本向量, 另外采用一个卷积神经网络对图片进行基于目标检测的预训练, 视觉部分的最终投影层是一个线性变换, 将视觉部分的4 096维的表征映射成语言模型的500维或者1 000维.最终的损失主要基于相似性, 融合点积运算和铰链损失, 我们定义最终的损失函数为 $loss(image,label) = \sum\limits_{j \ne label} {\max [0,margin{\rm{\;}} - {{\vec t}_{label}}M\vec v(image) + {{\vec t}_j}M\vec v(image)]} $ (3-3) 其中, $\vec v(image)$是视觉层的输出向量, ${\vec t_{label}}$是为所提供的文本标签学习嵌入向量的行向量, ${\vec t_j}$是其他文本的向量, M是线性映射层的训练参数. DeViSE在对文本部分进行预训练时, 利用了基于skip-gram的语言模型.Lazaridou等人[52]进行了扩展, 将视觉部分加入了进去, 构成了多模态的skip-gram模型.视觉损失部分将词汇表示的视觉信息考虑在内, 其中, 损失的计算为 $ - \sum\limits_{w'\sim{P_n}(w)} {\max (0,\gamma - \cos ({u_{{w_t}}},{v_{{w_t}}}) + \cos ({u_{{w_t}}},{v_{w'}}))} $ (3-4) ${u_{{w_t}}}$是我们最终想学习的多模态增强的单词表示; ${v_{{w_t}}}$是与文本部分匹配的视觉模态的向量表示; ${v_{w'}}$是从视觉词典中负采样的视觉单词向量, 其通过最大化匹配的图文向量和不相匹配的图文向量的差异来进行相似性度量. 针对损失函数的优化, 可以有效地提升产出的表征的质量.VSE++[53]提出了一种新的损失函数计算方案, 其主要针对疑难的负例, 加大样本与疑难负例之间的距离, 其损失函数采用三元损失: $ {\ell _{MH}}(i,c) = {\rm{ma}}{{\rm{x}}_{c\prime }}{[\alpha + s(i,c\prime ) - s(i,c)]_ + } + {\rm{ma}}{{\rm{x}}_{i\prime }}{[\alpha + s(i\prime ,c) - s(i,c)]_ + } $ (3-5) 针对每一给定的正例(i, c), 负例的选择为i'=argmaxj≠is(j, c)和c'=argmaxd≠cs(i, d), 其中, s为距离函数, 也就是选择距离正样本距离较远的负样本进行训练. 借鉴于深度语义相似性度量模型DSSM[54]这种基于无监督方式度量查询向量和返回的匹配文档相似性的方法, DMSM[55]将视觉模态作为查询, 而文本模态作为返回的匹配文档, 采用余弦度量函数度量两种模态的距离$R(Q,D) = cosine({y_Q},{y_D}) = (y_Q^T{y_D})/