论文解读ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks

ViLBERT (short for Vision-and-Language BERT)是一个Task-Agnostic(无特定任务的)的多模态图文预训练模型。
论文链接: link.

首先从结构上来说。
论文解读ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks_第1张图片
他是一个双流的结构。这一点跟LXMERT十分的相似。本文使用faster-rcnn 来提取图片的区域特征,大多数多模态预训练模型都是使用faster-rcnn 来提取图片特征。如uniter,unimo等等。本文认为图片提取完特征是具备高层的语义信息,此时(刚embed完)文本不具备高层语意信息。所以文本是需要先通过几个transformer 模块之后再与图片特征进行交互。其结构上的创新是这个Co-Attentional Transformer Layers.

论文解读ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks_第2张图片
这个layer结构也十分简单容易理解。self-attention中的q,k,v都是来自自己的输入,只不过只不过输入通过不同的线性网络得到q,k,v。 该结构中只不过是图片k,v去与文本的q做self- attention计算,文本的k,v去与图片的q做self- attention计算。简单说就是图片流中的k,v 和文本流的q 输入到文本流,文本流中的k,v 和图片流的q 输入到图片流。
其图片上结构也非常清晰。文本流 [cls]word…[sep] 先与bert的处理是一样的,通过几个标准的transformer block 后与图片流。[img] v0,v1…vt. 进入k个跨模态模块,注意的是跨模态模块中是一个Co-Attentional Transformer Layers 加一个标准的transformer block 。 使用最后一层的[img]作为图片的表征。最后一层的[cls]. 作为文本的表征。

预训练方法上来说。
有两个预训练方法:masked multi-modal modelling and multi-modal alignment prediction.。

论文解读ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks_第3张图片
masked multi-modal modelling task:跟bert的mlm差不多。随机mask掉百分之15的图片区域和文字,让模型去还原。百分之90的时间mask掉,百分之10的时间保持不变。其预测文字的地方使用的损失跟bert一样就是预测是哪个单词。其mask 图片区域特征方式是使该区域特征全为0。举个小例子,使用的base版本的bert。图片流的输入是[img]v0 v1 …vn 是n个768维的向量,mask v1的话,v1就变成了768维的0向量。 使其还原使用的损失函数是 KL divergence
在这里插入图片描述
还有一个在还原frame,或region 时常用的损失是nce loss。这个以后讲到时再介绍。

multi-modal alignment prediction :这个也十分简单。将文本与图片对随机替换其中的一个,构建了图文描述不一致的图文对。通过输入模型去[img] 与[cls] 做 Hadamard乘积,就是对应位置元素相乘,然后输入到一个线性网络做二分来判断图文信息是否一致。

剩下的就是下游任务微调和实验结果,感兴趣的可以去读原文。
以上就是本论文的核心思想了,哎,该早点开始写博客,现在都能积累一堆了。

你可能感兴趣的:(深度学习,自然语言处理,transformer)