跨模态语言模型

2020 年 6 月 23 日 AINLP




本文为预训练语言模型专题的第17篇。

快速传送门     
1-4: [萌芽时代][风起云涌][文本分类通用技巧] 、  [GPT家族]
5-8: [BERT来临][浅析BERT代码][ERNIE合集]、[ MT-DNN(KD)]
9-12: [Transformer][Transformer-XL][UniLM][Mass-Bart]
13-16: [跨语种模型][XLNet][RoBERTa][SpanBERT]


今天聊一聊近年来挺火的“多模态”任务。其实这不是我们第一次聊到多模态了,之前发的Kaggle PetFinder比赛方案其实就在解决一个多模态预测的问题。准确地说今天介绍的模型都是“双模态”,即同时处理文本数据和图像数据。

多模态任务

虽然生活中需要处理多模态输入的场景比比皆是,但众所周知,目前的AI水平还比较低,只能处理一些特定的任务。在介绍模型之前,我们先介绍几个在当前研究中常见的多模态问题。

视觉问答

比较有名的是视觉问答VQA,简单的说就是针对图片提问题让计算机回答。有一个叫VQA[1]的著名数据集,发布于2015年,2017年发布了最新的2.0版本。数据集包含大约二十万张图片、一百多万个问题以及一千多万个标注答案。就像之前的ImageNet一样,每年都有针对这个任务的挑战赛,2020年第一名的accuracy已经达到了76.36%,2017年这一数字是69%。

VQA数据集样例

视觉常识推理

视觉常识推理(visual commonsense reasoning,VCR)也是一个热门且有趣的任务。他比VQA更进一步,计算机不仅要回答问题(Question Answering,Q->A),还需要给出一个理由(rationale)来解释为什么给出这个答案,这个给理由的任务有两种设定,一种是只给Q同时得到A和R(Q->AR),另一种是给定Q和A纯粹获得R(Answer Justification, QA->R)。

VCR数据集样例,模型不仅要给出答案,还要给出理由

VCR数据集的leaderboard也很活跃。这里贴一个目前排行榜top5的成绩,从图中可以看出,这个任务目前算法的水平距离人类还有较大差距。

VCR排行榜前五名

多模态检索

最后介绍一个跟大家生活比较贴近的任务,以KDD 2020的Multimodalities Recall challenge[2]为例。简单的说就是用自然语言问句来搜图,这个在大家日常生活中需求很大。由于互联网图片通常有大量的文字上下文,现有技术可以完全不利用多模态交互做到一个比较好的使用体验。但基于多模态的技术会大大扩展检索的使用范围并提高体验。

多模态检索任务示意图,对于这个例子大家在搜索引擎搜“豹纹女鞋”应该都能得到好结果

多模态模型

为了更好地解决多模态问题,大概有以下几个重要的子问题需要解决

  1. 多种模态如何混合输入
  2. 多种模态间的信息怎么交互
  3. 如何发挥预训练的威力

下面我们以ICLR 2020上提出的VL-BERT[3]为主线,紧扣这3个问题介绍一下多模态模型。

多模态输入

目前最新的多模态模型基本都是以transformer为backbone,为了达到更好的语言模态处理能力,往往都在预训练语言模型的基础上进行扩展。

从VL-BERT的名字就可以看出它采用了BERT。BERT的输入方式大家应该都已经非常熟悉,在讲文本序列令牌化后,分别转化为word embeddingposition embeddingsegment embedding输入进多层transformer模型。

下图是VL-BERT的模型结构图,可以看到有三个主要的变化。首先,embedding从三种变成了四种,增加了第二行的visual feature embedding;其次,引入了特殊的[IMG] token以及相应的token embedding;最后segment embedding从原来的0/1两种变成了A、B、C三种,其中A、B对应原来的0和1,C专门留给图像特征。

VL-BERT结构图。值得注意的点:visual feature embedding,两个预训练任务,被抹去的ROI(蓝色斜线)。

visual feature embedding(以下简称VFE)是对R-CNN网络输出的ROI(regions of interest,简单理解就是模型认为有意义的区域)进行高维向量表征。其中又分为两个小部分:一个是对图像信息进行表示的appearance feature,另一部分是对位置信息进行表示的geometry。最终的VFE是这两个特征向量拼接后用全连接降维得到的。对于一张图片,R-CNN网络会给出多个ROI,因此也就得到了多个VFE

仔细观察会发现VFE叠加在原来的文字输入上(图中黑框),这部分叠加的是从整张图片获得的VFE。而对于拼接的部分,则是从单个ROI获得的VFE。另一个细节是视觉信息的position embedding都是一样的,这是因为ROI并没有所谓的序列位置关系,其图像位置信息已经包含在了VFE中。

通过以上的方式,图像和文本信息就都输入进了模型里。

多模态信息的交互

由于VL-BERT使用的是BERT作为backbone,很自然的,信息的交互是通过自注意力机制完成的。模型的整体性很好,从我们在NLP领域的经验来看,这种方式的效果也是比较好的。

但这不是唯一的方式,例如更早的模型LXMERT[4]就采用了双塔结构。先分别使用语言编码器和图像编码器对两种信息进行分别编码,再通过一个跨模态编码器(cross-modality encoder)进行交互。如果你熟悉文本匹配,那对这种套路应该再熟悉不过了。

LXMERT模型结构。采用“双塔”分别对文本和图片进行编码,再通过跨模态编码器进行交互

如何预训练

在介绍VL-BERT的预训练之前,我们先简单回顾一下BERT的预训练任务。BERT采用了两个预训练任务,分别是masked language model(MLM)和next sentence prediction(NSP)。这两个任务大家应该也比较熟悉,尤其是MLM被证明是非常有效的预训练任务,NSP在最近倒是有淡出历史舞台的迹象。

VL-BERT的预训练任务是对MLM的扩展,一共有两个。第一个任务是带视觉线索的掩码语言模型(Masked language model with visual clues)。这个任务的扩展是自然的,在就是引入视觉信息之后做MLM。被mask的token只会来自于文本。

第二个任务是带语言信息的掩码ROI分类(Masked RoI Classification with Linguistic Clues)。这个任务是第一个任务的对偶任务,前面那个任务是用视觉信息来辅助语言模型训练,而这个是借助语言信息来进行ROI图像预测。预测的标签来自于R-CNN模型的预测结果(注意,这个结果是来自于视觉信息的)。

这个任务比较复杂,因为需要处理视觉信息泄露。所谓视觉信息泄露,就是直接通过VFE就得到了图像类别。例如R-CNN框出了一只猫并生成了相应的VFE,那目前的模型基本都可以做到轻松地从视觉特征向量预测出这个框里面是只猫而完全不需要借助文本提供的信息。这是我们不希望看到的,我们希望模型能够建立跨模态的联系,它需要从输入的“kitten drink from bottle”里预测出被mask掉的区域里应该有只猫(因为另一个区域已经有瓶子了)。为了解决视觉信息泄露的问题,需要在数据输入时就做好准备。被预测的ROI需要从图中抹去(像素值置零)。

由于输入信息丰富,除了VL-BERT采用的两个预训练任务外还有好多其他的选择。这里提一下比它稍微早一些的VisualBERT[5],这个模型也采用了两个预训练任务,其中有一个是和VL-BERT一样的MLM,而另一个是图像语言相关性任务(sentence-image prediction)。具体的说,COCO image caption[6]数据集对每张图片有多个caption,模型预训练时会输入两个句子+视觉信息,第一个句子是和图片相关的,而第二个句子有50%的概率是随机挑的,模型需要学会分辨这两种情况。

从历史的后视镜看,VisualBERT的这个任务明显简单于VL-BERT的ROI分类任务。即使不靠图片信息,BERT也已经可以分辨两句话的意思是否相同。从结果也可以看出来,在COCO上进行预训练对VisualBERT的VQA成绩提升是从70.18到70.8,并不是非常显著。

VisualBERT结构图,输入方式和VL-BERT大体相同,但使用了不同的预训练任务。

转过头说回VL-BERT,它的预训练步骤对VQA成绩的提高是从69.58到71.16,除了任务先进,它还做了不带图像信息的单纯MLM预训练(还是第一个训练任务,但没有输入任何图像信息),不仅质高,而且量大,超过前辈自然不在话下。

总结

在VL-BERT论文的附录里有一张表,对近几年重要的多模态模型进行了比较全面的对比。表里面可以直观地看到各模型的结构、视觉信息、数据集、预训练任务以及下游任务信息,感兴趣的朋友可以作为路线图做更细致的研究。

重要多模态模型对比

另外,前面提到的KDD 2020比赛不少前排大佬已经放出了解决方案,例如第一名方案[7]就采用了MCAN[8]和VisualBERT融合,大家可以通过这些材料看一下在实际问题中多模态技术是如何应用的。

今天的文章就到这,欢迎关注我们,方便获取后续更多精彩内容。

参考资料

[1]

VQA数据集: https://visualqa.org/

[2]

KDD 2020多模态检索赛道: https://tianchi.aliyun.com/competition/entrance/231786/information

[3]

VL-BERT: http://arxiv.org/abs/1908.08530

[4]

LXMERT: https://arxiv.org/abs/1908.07490

[5]

VisualBERT: A Simple and Performant Baseline for Vision and Language: http://arxiv.org/abs/1908.03557

[6]

Microsoft COCO captions: Data collection and evaluation server: https://arxiv.org/abs/1504.00325

[7]

KDD 2020多模态赛道第一名方案: https://github.com/steven95421/KDD_WinnieTheBest

[8]

Deep Modular Co-Attention Networks for Visual Question Answering : https://arxiv.org/abs/1906.10770

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

这门斯坦福大学自然语言处理经典入门课,我放到B站了

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,点个在看吧👇

登录查看更多
2

相关内容

【ICML2020】统一预训练伪掩码语言模型
专知会员服务
25+阅读 · 2020年7月23日
【Google】多模态Transformer视频检索,Multi-modal Transformer
专知会员服务
101+阅读 · 2020年7月22日
【Google AI】开源NoisyStudent:自监督图像分类
专知会员服务
54+阅读 · 2020年2月18日
AAAI 2020 | 多模态基准指导的生成式多模态自动文摘
AI科技评论
16+阅读 · 2020年1月5日
超过Google,微信AI在NLP领域又获一项世界第一
量子位
6+阅读 · 2019年10月19日
微软机器阅读理解在一场多轮对话挑战中媲美人类
微软丹棱街5号
19+阅读 · 2019年5月14日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
干货 | 如何从编码器和解码器两方面改进生成式句子摘要?
微软研究院AI头条
8+阅读 · 2018年3月28日
Arxiv
4+阅读 · 2019年2月18日
Arxiv
3+阅读 · 2018年11月29日
VIP会员
Top
微信扫码咨询专知VIP会员