目录
前言
Vision-language Tasks
V+L Joint Pre-training
第一个问题:
第二个问题;
第三个问题:
第四个问题
当前已有的一些视觉语言模型对比
ERNIE-VIL
思路来源
下面来看看改论文设计的几个loss吧
其次看一下ERNIE-ViL的其他方面(其实上面是最重要的)
实验结果:
LayoutLMv2
输入特征
transformer变种
预训练任务
实验结果
总结
自从2018年Bert预训练模型大方异彩之后,预训练模型可以说百花齐放,关于预训练模型领域的一些总体概括,可以参考笔者另一篇博客
<预训练模型的那些方向和研究成果>:https://blog.csdn.net/weixin_42001089/article/details/113267764
之前都是单独处理文本数据,但随着场景和业务的驱动,输入数据变成了多种形式,如图像+语言,今天就大体来说说目前该分支的一些发展成果或者方法,主要是对百度自然语言处理部高级研发工程师唐尼老师的一个论文直播的一个文本总结(以下介绍背景内容均是唐尼老师ppt的内容),该论文发表于AAAI2021
论文:https://arxiv.org/abs/2006.16934
直播:https://www.bilibili.com/video/BV1av4y1o7Ei/
所以下面是首先对视觉文本领域通常要解决的一些问题和技术做一个大概介绍,后面介绍一些最新发表的论文。
首先是视觉语言领域要处理的一些任务包括两大类即:理解式任务和生成式任务。
(1)Understanding 理解式任务
Visual question answering : 视觉问答任务
给定一个图片和文本问题,回答出答案(分类的)
Visual commonsense reasoning : 视觉常识推理
也是问答任务,有的不仅仅要给出答案,而且要给出这么回答的原因
Cross-modal retrieval : 跨模态检索
比如在浏览器中输入文本给出图片即图片检索文本或者文本检索图片
等等...
(2) Generation 生产式任务
Image/video captioning : 根据图片/视频 生产文本
Text-to-image generation : 根据文本生成图片
等等...
视觉和文本预训练,主要涉及到四个问题要解决:
第一:视觉特征怎么提取能够适用于Bert输入
第二:怎么讲视觉和文本特征进行联合融合提取,即怎么联合建模
第三:就是怎么扩展多模态预训练任务(如只有文本时我们是mask token等等)
第四:不同于单文本的自监督预训练,多模态基本上是一个对齐输入即pair,那怎么挖掘这些pair也是一个方向。
=========================================
t特征提取主要有两种:
Object detection regions : 物体检测的,检测出一个个物体作为token
equally-size image regions:将图片等分成一个个小区域,每个小区域提取一个特征作为token
关于model architecture 方面有两种,一种是单流的,一种是双流的
single-stream:就是拼接成一个输入:比如VLBERT
two-stream:双流的如ViLBERT,重新设置一下transformer中的attention,即K是自身,Q,V是另外一端的,通过这样交互起来
即Pretrain-task主要有:
Language Modal:语言端有multi-modal Masked Language Model(MLM):多模态掩码语言模型
这个基本就是沿用了bert的mask任务,当然有很多变种啦,如ERNIE的掩码实体
Vision modal :视觉端有multi-modal Masked Region Prediction(MRP):区域预测
基于目标检测,mask一个区域,预测有两种,一种是预测区域特征分布是不是一样,一种是一个区域分类任务
Cross-Modal:跨模态端 Image-Text Matching(ITM):多模对齐任务
图文匹配任务,即Aligned 或not Aligned
不论哪一种所以其实就在学习不同粒度的对齐,这也是预训练模型的通用思想
即Pre-training Datasets 介绍了一些视觉语言领域的数据集
Out-of-domain dataset:领域无关数据集
In-domain dataset :领域相关的数据集
所谓领域相关和不相关的意思是:
不相关就是直接网页抓取的,通常来说噪声也比较大
相关的意思是具体的下游任务是在这些数据集中挑选出来制作的,如问答的图片就是来自于第三个MS-COCO数据集
可以看得出在特征提取方面,Pixel比较特殊是采用的区域等分的方式,而且用ResNet提取的,而且看得出大家都是用了MLM任务的。
===========================================================================================================================
下面看一下最新的SOTA模型,即百度的ERNIE-VIL模型
论文:https://arxiv.org/abs/2006.16934
(1)MLM任务中的一些缺陷
mask掉一些诸如助动词the,然后预测其实是对模型没有益处的,即没有区分普通词和细粒度语义词
这些细粒度的语义词是比较重要的比如:
一个解决的办法就是场景图如:
已经有很多工作将场景图融入进来比如
Unified VSE将文本场景图融入到图片文本检索任务中
又如将图片场景图融入视觉问答任务
上面一个是文本场景图,一个图片场景图,那怎么提取场景图(Scene Graph Parsing )呢?已有很多工作比如:
文本场景图提取主要就是比如Spice,图片的画是VTransE等等,当然该篇论文这不是重点,它的重点是怎么在多模态中用这些场景图
对应这张图主要是设计了三个Object predictions、Attribute Predictions 、relationship Predictions
Object predictions:物体检测,比如当场景图选择了house后,文本对应mask掉house,依托剩下的词去预测房子这个场景图
Attribute Predictions:属性预测即大小形状颜色等等,但属性预测其实和物体是一对pair,比如当场景图选择了蓝色裙子这个场景图,那mask了blue后去预测其实一定要保留
dress 这个物体,不然很难预测出blue,是要依托这个物体的
relationship Predictions:关系预测:即预测位置和动作等等如in front of 和on top of等等,同理要保留相关的物体
采用的是双流two-stream transformers 结构encoder
看论文吧,就是各种SOTA,说明提出的这种学习泛式即三种场景图的预测任务可以很好实现多模态对齐,总的来说给我们的思路或者贡献就是,设计了更细粒度的知识供模型学习
代码也开源了可以看
这是MSRA在2021年初刚发表的一篇论文,其实微软亚洲研究院在2020年初就发表了 LayoutLM 1.0,该模型最有意思的是假如了布局信息,传统的OCR技术都是识别出
图片中的文本,但该篇论文一改常态,通过融入图像+文本+布局特征信息来提高模型泛化能力。
论文:https://arxiv.org/pdf/2012.14740.pdf
代码:https://github.com/microsoft/unilm/tree/master/layoutlm
以下部分文字来自于文章解读:
https://view.inews.qq.com/a/20210114A03WWL00
https://www.msra.cn/zh-cn/news/features/layoutlm-v2
https://mp.weixin.qq.com/s/Zl93Dk2phgyb5PsxSJEQ0g
这里做一个汇总,我们还是按照开头的大体框架来解读
图像+文本+布局
图像
LayoutLM 1.0 采用了整体和局部两种图像表示方法。使用图像整体表示可以帮助模型捕捉页面整体样式信息,但是模型难以高效建模细节特征。而使用图像中的局部文本区域则会顾及更多细节特征,但文本区域众多,且非文本区域也可能含有重要的视觉信息。因此2.0结合二者特点,可以将图像网格状均分,表示为定长向量序列。
使用 ResNeXt-FPN 网络作为图像编码器,要先抽取原始文档图像的特征图,再将其平均池化为固定尺寸(W×H),接着按行展开平均池化后的特征图,之后经过线性投影,就可以得到图像对应的特征序列。和文本向量的组成对应,图像向量也补充了一维相对位置和分段信息。有别于文本的 [A]、[B] 段,图像统一归入 [C] 段。用特征向量、一维位置向量、分段向量相加得到最终的图像向量
文本
文本输入采用常规做法,使用 WordPiece 切分原始输入文本,之后添加 [CLS] 和 [SEP] 标记,并用 [PAD] 补齐长度得到文本输入序列:
再将词向量、一维位置向量、分段向量(代表 [A] 或 [B])相加得到文本向量
布局
对应于每个词或图像区域在页面中覆盖的坐标范围,使用平行于坐标轴的边界框(bounding box)表示布局信息。LayoutLM 2.0 沿用了1.0的处理方式,用4个边界坐标值、宽、高来表示一个边界框。最终的布局向量由6个特征对应的向量拼接得到
(1)遮罩式视觉语言模型(Masked Visual-Language Model)
作为对 LayoutLM 1.0 的扩展,2.0使用的遮罩式视觉语言模型任务要求模型根据图文和布局信息中的上下文还原文本中被遮盖的词,遮盖操作同时遮盖文本中的词和图像中的对应区域,但保留空间位置信息。和传统BERT类似,LayoutLMv2会mask若干词的文本特征,并在输入图片中将这些词的位置涂黑,但保留布局特征,让模型预测丢失的词。这是利用上下文和布局信息去恢复文本信息。
(2)文本—图像对齐(Text-Image Alignment)
遮罩式视觉语言模型更关注模型的语言能力,视觉和布局信息只提供隐式线索,为此一种细粒度的多模态对齐任务在 LayoutLM 2.0 中被提出,即文本—图像对齐。该方法在文档图像上随机按行遮盖一部分文本,利用模型的文本部分输出进行词级别二分类,预测每个词是否被覆盖。文本—图像对齐任务帮助模型对齐文本和图像的位置信息。
输入图片时将若干行覆盖(cover),通过文本预测当前词是否被覆盖(cover)。这是利用上下文和文本信息去确定布局信息。
(3)文本—图像匹配(Text-Image Match)
现有工作证明,粗粒度的文本—图像匹配任务有助于帮助模态信息对齐。对于预训练阶段的文档数据,随机地替换或舍弃一部分文档图像,会构造图文失配的负样本。LayoutLM 2.0 的模型以文档级二分类的方式预测图文是否匹配,以此来对齐文本和图像的内容信息。和许多其他多模态预训练模型类似,LayoutLMv2在输入时会替换一部分图片,并让模型判断输入的图片与当前文字是否对应。这是学习视觉信息和其他模态的关联。
FUNSD表单理解、CORD 和 SROIE 两个票据理解数据集来评估模型性能、Kleister-NDA复杂布局长文档理解、文档图像分类RVL-CDIP 数据集测试模型性能、视觉问答DocVQA 数据集来验证等等各种就是SOTA啦
总之就是不断给模型要融入更多的细粒度的增强信息,比如ERNIE-ViL融入了场景图,LayoutLM 2.0 由于是处理表单这种形如pdf等等数据源引入了布局等等,所以在融入不同模态时, 主要创新就是怎么设计更细粒度的知识特征以及怎么设计预训练任务(loss),是一个研究热度。