赞
踩
来源:ICLR 2020
单位:中科大,微软亚研院
链接:https://arxiv.org/pdf/1908.08530.pdf
1) 基于MLM方法的BERT预训练模型在NLP领域取得了很好的性能表现;
2) 而目前的视觉-语言混合任务,缺乏通用的预训练模型,现有方法通常只针对具体任务进行预训练。
1) 设计了一种视觉-语言混合特征嵌入编码表示;
2) 对MLM方法进行改进,提出了一种视觉-语言混合任务通用的预训练框架,并在多种下游任务中取得了良好效果。
BERT以句子的原始词向量集合 x = { x 1 , . . . , x N } x=\{x_1,...,x_N\} x={x1,...,xN}作为输入,经过多层双向Transformer(待仔细学习)对句子中每个词向量进行编码,获得融合了全局语义信息的特征嵌入。对于每一个词向量 x i x_i xi,其特征嵌入通过逐层编码的形式产生,具体来说,第 l + 1 l+1 l+1层特征嵌入过程可分为以下四步:
1) 使用多头注意力计算 x i l x_i^l xil与其他词嵌入之间的注意力权重,生成注意力图 h ~ i l \tilde{h}_i^l h~il并与 x i l x_i^l xil相加;
2)使用LayerNorm
对第1)步结果进行归一化,获得
h
i
l
{h}_i^l
hil;
3) 经过两层网络进行特征提取,所得结果再与 h i l {h}_i^l hil相加;
需要注意,这一步的GELU
也是一种激活函数,近似计算公式为(BERT使用的是一种更加简化的近似):
GELU
(
x
)
=
0.5
x
(
1
+
Tanh
[
2
/
π
(
x
+
0.044715
x
3
)
]
)
\text{GELU}(x)=0.5x(1+\text{Tanh}[\sqrt{2/ \pi}(x+0.044715x^3)])
GELU(x)=0.5x(1+Tanh[2/π
(x+0.044715x3)])
4)使用LayerNorm
对第3)步结果进行归一化,获得最终输出
x
i
l
+
1
x_i^{l+1}
xil+1;
笔者画了一个网络结构图便于理解:
BERT模型将整个应用过程分成多个阶段,第一阶段通过无监督方法进行预训练,第二阶段再根据具体的任务使用监督信息做微调。
BERT的预训练包含两部分,第一部分是通过Masked Language Modeling (MLM)任务,期望模型可以从同一句子中其他所有单词的词嵌入推断出该句子某个单词的词嵌入,这是与其他NLP模型相比较大的一个不同点,通常NLP模型会使用从左到右/从右到左这种单项预测方法对某个位置的词嵌入进行推断,BERT不仅则是使用了整个句子中所有的词嵌入;第二部分任务为Next Sentence Prediction(NSP)任务,期望能够预测文本中不同句子的相对位置,判断输入的两个句子是否相连。
MLM优化:
为了实现MLM的效果,首先随机采样一个句子
x
∼
D
x∼D
x∼D,然后,随机采样
x
x
x中的某个位置
i
i
i,将
x
i
x_i
xi用一个特殊的mask替换,替换后的词组为
x
╲
i
=
{
x
1
,
.
.
.
x
i
−
1
,
[
m
a
s
k
]
,
x
i
+
1
,
.
.
.
,
x
N
}
x_{\diagdown i}=\{x_1,...x_{i-1}, [mask],x_{i+1},...,x_N\}
x╲i={x1,...xi−1,[mask],xi+1,...,xN},在训练时,期望
x
╲
i
x_{\diagdown i}
x╲i对
x
i
x_i
xi的推断词嵌入与
x
i
x_i
xi具有相似的表示:
log
ϕ
i
(
x
∣
θ
)
=
x
i
T
f
i
(
x
╲
i
∣
θ
)
i
\text{log}{\phi}_i(x|\theta)=x_i^Tf_i(x_{\diagdown i}|\theta)_i
logϕi(x∣θ)=xiTfi(x╲i∣θ)i
这部分的损失为:
L
MLM
(
θ
)
=
−
E
x
∼
D
,
i
∼
{
1
,
.
.
.
,
N
}
log
ϕ
i
(
x
)
L_{\text{MLM}}(\theta)=-\mathbb{E}_{x∼D,i∼\{ 1,...,N \}}\text{log}{\phi}_i(x)
LMLM(θ)=−Ex∼D,i∼{1,...,N}logϕi(x)
NSP优化:
NSP优化的目的较为简单,BERT将这一任务转变成了一个分类任务,随机采样两个句子
x
1
x1
x1,
x
2
x2
x2,在二者的开头分别插入一个标记
[CLS]
\text{[CLS]}
[CLS]和
[SEP]
\text{[SEP]}
[SEP],并且有一个指示
t
t
t来指示
x
2
x2
x2是否位于
x
1
x1
x1之后,将插入标记后的
x
1
x1
x1,
x
2
x2
x2进行拼接,得到一个词向量
x
x
x,使用BERT提取
x
x
x的词嵌入表示,在训练一个二分类器,以
[CLS]
\text{[CLS]}
[CLS]的词嵌入
x
0
x_0
x0作为类别判断依据,
[SEP]
\text{[SEP]}
[SEP]主要是用来区分两个句子,用交叉熵损失进行训练:
KaTeX parse error: Undefined control sequence: \ at position 47: …b{E}_{(x,t)∼D} \̲ ̲[t\text{log}(g(…
NSP损失的目的是期望词嵌入可以学习到不同句子间的词汇的信息,提升BERT的性能,但是目前有些研究” RoBERTa “,”SpanBERT“则认为这个损失没什么用,反而会起负面效果,去掉最好。当然也有人认为NSP起负面作用是因为任务目标和损失函数选择有问题,没有发挥出这个思想的性能。
VL-BERT的工作重点是关于文本-视觉混合表征的构造,首先对其进行介绍。其输入由三部分组成,分别是文本元素、视觉元素和标志。其中,文本元素就是句子中具体的单词;视觉元素则只包含感兴趣的图像区域,这些区域或使用目标检测算法标记,或直接使用有标注数据集标注的边界框所涵盖的区域;标志只有三类,分别是 [CLS] \text{[CLS]} [CLS]、 [SEP] \text{[SEP]} [SEP]和 [END] \text{[END]} [END],对应类别检测指示、文本与视觉嵌入之间的过渡指示和表征序列结束指示。
在正式使用模型的时候, [CLS] \text{[CLS]} [CLS]指示对应的输出特征会被用来预测文本-图像关系;而每个文本元素和图像元素输出的特征则被用来预测该元素的标签。他们的表征会根据任务的不同进行微调。
对于表征序列里的每一个元素,其嵌入均由四种embedding组成,分别是下图中所展示的标记嵌入(Token Embedding)、视觉特征嵌入(Visual Feature Embedding)、片段嵌入(Segment Embedding)和序列位置嵌入(Sequence Position Embedding),因此,同一句子中单词位置不同不会影响BERT的输出结果,因为单词的位置信息只由序列位置决定。
下面对四种嵌入分别进行说明:
Token Embedding:
较为常规的嵌入设计方法,单词使用WordPiece embeddings生成嵌入表示,共有30000种;视觉特征和其他特殊标记使用独一无二的标记嵌入表示,如上图所示。
Visual Feature Embedding:
视觉特征嵌入由外观特征(Visual Appearance Feature)和几何特征(Visual Geometry Embedding)两部分组成。其中外观特征是Faster-RCNN对感兴趣图像区域的2048维输出特征,对于视觉信息,感兴趣的图像区域是对应内容边界框划定的区域,对于文本词汇和指示信息,则是整个图像。几何特征则是感兴趣区域边界框左上角和右下角两个坐标值相对图像的位置,一共四维,表示感兴趣区域的相对位置。外观特征和几何特征拼接后经由一个全连接层映射到最终使用的视觉特征嵌入。
Segment Embedding:
片段嵌入其实就是对文本元素和图像元素进行区分,一共只有A,B,C三种。其中,A和B指示文本,C指示图像信息,大部分情况下只有A、C两种表示,只有在视觉问答(VQA)和视觉常识推理(VCR)任务中,文本信息被细分为A,B两类,分别指示问题和答案。
Sequence Position Embedding:
序列位置嵌入用来指示输入特征序列的位置信息,顺序为 [CLS] → [WORD] → [SEP] → [IMAGE] → [END] \text{[CLS]}→\text{[WORD]}→\text{[SEP]}→\text{[IMAGE]}→\text{[END]} [CLS]→[WORD]→[SEP]→[IMAGE]→[END],其中,文本信息不同元素之间存在位置关系,而不同图像信息的位置不存在差异,具有相同的位置嵌入。
VL-BERT的预训练包含两个任务,其一是带有视觉线索的MLM任务,其部分目的与BERT相似,但是希望同时能捕捉视觉信息与文本信息之间的相关性。现在对VL-BERT的预训练过程进行细节分析:
数据集:
VL-BERT使用的数据集有三种,分别是有330万个样本的”图像-标题“文本-图像混合数据集Conceptual Captions dataset,其中的每一张图像都有一个简短的文本描述。为了防止过于简单的文本描述导致模型对文本信息过拟合,还引入了两个更加复杂的纯文本数据集BooksCorpus和English Wikipedia datasets。
在训练时,每个Batch中的数据均有一半来自文本-图像混合数据集,一半来自纯文本数据集。
带有视觉线索的MLM任务:
与经典BERT的MLM任务相似,某一个文本元素有15%的几率会被随机替换成
[MASK]
\text{[MASK]}
[MASK],然后,首先希望能够从其他未被遮盖的文本元素中推断出被隐藏的元素的信息,比如上面结构图中的示例,希望能够从未被覆盖的文本元素小猫从[mask]中喝水
中推断出
[MASK]
\text{[MASK]}
[MASK]本身是一个容器
,然后根据第一个视觉元素瓶子的图像
进一步推断出,这个
[MASK]
\text{[MASK]}
[MASK]对应的是瓶子
。
实现这个目标的方法比较简单,使用一个在所有词向量上训练的分类器,期望被遮盖的元素经VL-BERT输出的特征能被分类到正确的词语中。
带有文本线索的MRC任务:
这个任务可以理解成是MLM任务的反面,其遮蔽的是某一个视觉元素,而不是某个文本元素,希望能够从文本元素中推断出被遮蔽的视觉元素的标签。对于被遮蔽的视觉元素,其所在区域将被用0像素值填充,任何元素的图像特征嵌入都无法包含该元素的信息。优化方法与上一方法类似,将被遮蔽的视觉元素经VL-BERT的输出送入分类器,期望能被分类到正确的类别。
假如输入的不是一个文本-图像混合特征,而是纯文本特征,则只使用BERT中的MLM损失进行优化。
VL-BERT的基本架构与BERT相同,也使用了与BERT相同的参数初始化,根据任务不同增加的参数也用了BERT中用的截断正态分布初始化的方法,标准差为0.02。VL-BERT模型使用了 BERT BASE \text{BERT}_\text{BASE} BERTBASE和 BERT LARGE \text{BERT}_\text{LARGE} BERTLARGE两种架构,参数量分别为110M和340M(兆)。
VCR任务给定一张标记了感兴趣区域的图像,并提出了一个问题,期望模型能根据问题和图像做出回答,并对回答给出进一步推理和解释。因此大体上可以分为两个子任务,第一个任务是根据问题进行回答 Q→A \text{Q→A} Q→A,第二个任务是根据问题和回答进行论证 QA→R \text{QA→R} QA→R。
这实际上是一个判别问题,每个任务都会给出一个问题,和四个备选答案与推理,要求模型对于答案的正确性进行判断。模型的输入如上图所示,文本内容被进一步分成了问题和答案两部分,并使用 [SEP] \text{[SEP]} [SEP]标志进行分隔,对于 Q→A \text{Q→A} Q→A任务,图中的“Question”就是问题,“Answer”就是答案;对于 QA→R \text{QA→R} QA→R任务,图中的“Question”是问题与答案的拼接,“Answer”则是推理。模型训练时有两个优化目标,一个是 CLS \text{CLS} CLS标志指示的关于回答的正确性,另一个是融合了文本信息的图像嵌入特征分类的正确性。
最终在VCR数据集(由25.6万对问答数据组成,来自超过10万张图像)上的问答准确率为:
该实验使用在COCO上构建的VQA v2.0数据集进行实验,训练集包括8.3万张图像和44.4万个问题,验证集包括4.1万张图像和21.4万个问题,测试集包括8.1万张图像和44.8万个问题。每个问题被要求从3129个答案中选择正确答案。
其输入输出架构如下图所示,网络期望在不知道具体答案的情况下,由其他文本和视觉信息做出正确的预测,微调损失同样是分类交叉熵损失:
其效果如下图所示:
上面的test-dev和test-std是COCO VQA挑战对测试集进行的两种划分,表中数据代表精度,实验表明,在VL-BERT的通用预训练基础上进行的微调会比不预训练好1.6%,他们认为没有比过LXMERT的原因是LXMERT的预训练是在专门的VQA数据集上做的。
所谓参考表达(referring expression),是指使用文本对图像中的某个物体/区域进行描述,该任务期望能根据参考表达定位出被描述目标在图像上的位置。
本实验所使用的数据集为RefCOCO+,包含COCO中2万张图像里5万个对象的14.1万个表达,表达中不能含有关于目标的位置描述。该实验的测试集分为A,B两部分,A包含的是人物描述,B则是其他物体。
其输入输出如下:
输入的文本Qurey表示对应的文字表述,每一个输入的图像目标都会经分类器输出一个分类得分,得分最高者作为文本表示对应目标的判断。图像目标的检测有两个版本,一个是经人工标记的Ground Truth标记,另一个是使用目标检测方法自动生成的Bounding Box。其性能如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。