PTM|乘风破浪的 PTM,深度解读预训练模型的进展( 八 )


多模态预训练
随着存储容量越来越大、网络传输速度越来越快、计算速度越来越强,除了传统的文字内容外,图片、视频、音频等各种多模态信息在互联网的内容占比中越来越多。如何融合多种模态信息进行内容理解,就变得越来越重要。那么,能否将多模态信息纳入预训练的框架之内呢?这是个非常有现实价值的问题。
前文有述,自由文本的预训练,本质上是让模型从海量自由文本中,通过语言模型等任务,来学习其中蕴含的的语言学知识。由此自然引发的问题就是:多模态预训练也是要将某种新型的知识塞到模型参数里,那么,这是一种什么样的知识呢?本质上,多模态预训练要学习的知识是两种模态之间,或者多种模态之间,的知识单元映射关系。比如对于文字 - 图片这两种多模态信息来说,我们可以把图片想像成一种特殊类型的语言,多模态预训练希望让模型学会这两种不同模态之间的语义映射关系,比如能够将单词 "苹果" 和图片中出现的苹果区域建立起联系。或者说,希望通过将不同模态的信息映射到相同的语义空间,来学会两者之间的语义映射关系。
 PTM|乘风破浪的 PTM,深度解读预训练模型的进展
文章图片
如果我们能够成功地学会这种不同媒介间的语义映射,那么就可以做很多有意思的事情,比如说句话,搜出与这句话语义相近的图片(参考上图);或者反过来,输入一个图片,能够找到或者生成对应的文字描述。再比如 VQA(参考上图),就是给定一张图片,你可以针对图片提出一些问题,AI 系统能够回答你的问题,给出正确答案。这涉及到图片 - 文字的跨媒体问答以及一些跨媒体的知识推理。而要想实现这种能力,如何通过预训练模型,让模型学会两种模态之间的语义映射关系就是至关重要的。我们面临的第一个问题是:从什么样的数据里来学习不同模态之间的语义映射关系呢?自由文本的预训练模型,可以采纳海量无标注数据来做,然而,多模态预训练要学习不同模态信息间的语义映射关系,所以需要有标注好的 "模态 1 - 模态 2" 的对齐数据,比如:标注好的 "文本 - 图片" 或者 "文本 - 视频" 平行数据。只有具备跨模态对齐数据,模型才有可能从中学习不同媒介类型之间的语义映射关系。从这个角度讲,相对自由文本预训练来说,多模态预训练因为需要模态对齐训练数据,而这种数据往往是需要人工标注的,所以可获得的数据难度及成本就高了很多,明显不如文本预训练那么自由。
总体而言,目前的多模态预训练任务中,通常都是 "双模态" 预训练,常见的包括 "文本 - 图片"、"文本 - 视频"、"视频 - 音频" 等模态类型组合。其中, 相对而言,"文本 - 图片"类型的任务技术发展比较快,其它类型的多模态类型发展相对缓慢,我猜测这里的主要原因在于可用标注数据的差异。"文本 - 图片"目前有一些规模达到几十万到上百万规模的标注数据集合,典型的比如 MS-COCO、Visual Gnome 等,而其它类型的模态组合数据貌似缺乏大规模数据集合,这严重影响了领域技术进展。下面我们从 "文本 - 图片" 这种模态组合来宏观介绍下多模态预训练的常规做法,其它模态组合的技术方案差不太多,所缺的可能主要是标注好的模态对齐数据。
我们从模型结构和训练目标这两个角度来阐述。目前的大多数技术方案大同小异,主要差异在于采用了不同的模型结构及与不同训练目标的差异组合。
假设我们有 "文本 - 图片" 两种模态数据,需要联合学习三种预训练模型:文本模态自身的预训练模型,图片模态自身的预训练模型,以及两个模态之间的语义对齐预训练模型。从模型结构来说,目前主流的结构有两种:双流交互模型以及单流交互模型。
 PTM|乘风破浪的 PTM,深度解读预训练模型的进展
文章图片
典型双流交互模型结构如上图 LXMERT 模型所示。文本编码器代表一个流,一般采用 Transformer 模型捕捉文本单词之间的关系;图片编码器代表另外一个流,一般也是采用 Transformer 模型,对于图片来说,一般用 Faster-RCNN 模型识别出图片中包含的多个物体及其对应的矩形位置信息,将高置信度的物体及其对应的位置信息作为图片侧 Transformer 的输入,用来学习图片中物品的相互关系;在两个流之上,再加入额外的 Transformer 模型,用于融合两个模态的语义映射关系。在这种双流结构上,模型同时学习文本预训练目标、图片预训练目标,以及图片 - 文本对齐预训练目标。一般文本预训练目标和标准的 Bert 做法类似,通过随机 Mask 一部分文本单词的语言模型来做;图片预训练目标类似,可以 Mask 掉图片中包含的部分物品,要求模型正确预测物品类别或者预测物品 Embedding 编码;为了能够让两个模态语义对齐,一般还要学习一个跨模态目标,常规做法是将对齐语料中的 "文本 - 图片" 作为正例,随机选择部分图片或者文本作为负例,来要求模型正确做二分类问题,通过这种方式逼迫模型学习两种模态间的对齐关系。 典型的双流模型包括 LXMERT、ViLBERT 等。 PTM|乘风破浪的 PTM,深度解读预训练模型的进展
文章图片
典型的单流交互模型结构如上图 Unicoder-VL 模型所示。单流和双流的区别在于:单流模型只用一个 Transformer,而双流模型,如上所述,需要三个 Transformer 各自分工协作。输入的图片,经过上述的 Faster-RCNN 物体识别和位置编码后,和文本单词拼接,整体作为 Transformer 模型的输入。也就是说,单流模型靠单个 Transformer,同时学习文本内部单词交互、图片中包含物体之间大的交互,以及文本 - 图片之间的细粒度语义单元之间的交互信息。单流模型的预训练目标,与双流交互模型是类似的,往往也需要联合学习文本预训练、图片预训练以及对齐预训练三个目标。 典型的单流模型包括 Unicoder-VL、VisualBERT、VL-VERT、UNITER 等。


推荐阅读