文章目录
- 摘要
- 算法
- BERT预训练
- Masked LM
- NSP
- Fine-tune BERT
- 实验
- GLUE
- SQuAD v1.1
- SQuAD v2.0
- SWAG
- 消融实验
- 预训练任务影响
- 模型大小影响
- BERT基于特征的方法
- 结论
论文: 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
github: https://github.com/google-research/bert
摘要
BERT利用左右双向上下文表征在无标注文本进行预训练,通过增加额外输出层,应用于下游任务,在多个任务取得SOTA性能;
本文主要贡献:
1、通过MLM(masked language models)进行双向表征预训练;
2、BERT通过finetune而不需特定结构即可达到SOTA;
算法
BERT分为两步:
预训练、finetune;如图1所示,
模型结构:
B
E
R
T
b
a
s
e
(
L
=
12
,
H
=
768
,
A
=
12
,
T
o
t
a
l
P
a
r
a
m
e
t
e
r
s
=
110
M
)
BERT_{base} (L=12, H=768, A=12, Total Parameters=110M)
BERTbase(L=12,H=768,A=12,TotalParameters=110M)
B
E
R
T
l
a
r
g
e
(
L
=
24
,
H
=
1024
,
A
=
16
,
T
o
t
a
l
P
a
r
a
m
e
t
e
r
s
=
340
M
)
BERT_{large} (L=24, H=1024, A=16, Total Parameters=340M)
BERTlarge(L=24,H=1024,A=16,TotalParameters=340M)
输入输出:
单个句子(任意范围)或成对句子(比如问答),输入表征由对应token、segment及位置编码构成,如图2。
BERT预训练
Masked LM
双向模型比单向模型或两单向模型concate后模型表达能力要强;标准有条件语言模型只能单向训练,双向将导致每个单词间接看到自己;
因此作者对输入token进行随机mask(15%),然后预测这些token,该过程为MLM(masked LM),最终mask token对应中间向量送入输出softmax与标准LM一致;
但是这样会导致预训练与finetuen不一致,因为finetune时没有mask token,为缓和此问题,作者使用仍随机选择15% token,若第i个token被选中,则其有80%概率替换为[MASK],10%概率选择随机token,10%概率保持不变。
NSP
为理解句子之间相关关系,比如问答系统(QA)、自然语言推理(NLI),作者增加下句话预测(NSP)任务,具体而言,每个训练样例选择句子A和句子B,句子B有50%概率紧跟句子A,有50%概率为语料库中随机选取,如图1中C用于预测B是否为A的下一句,预训练中可达到97%-98%精度;
作者使用文档级语料库而非打乱句子级别语料库,用于提取长连续序列;
Fine-tune BERT
对于每个具体任务,插入任务相关输入、输出,训练BERT所有参数;sequence-level任务如图4a、4b;token-level任务如图4c、4d。
实验
GLUE
利用最后一层向量
C
∈
R
H
C \in R^H
C∈RH,为输入token[CLS]对应的聚合特征,通过分类层输出需要结果;
结果如表1,BERT大幅超越现有方法;
SQuAD v1.1
任务:给出问题及来自维基百科包含该问题答案的一段话,该任务可以预测答案在段落中范围;
作者引入起始位置向量
S
∈
R
H
S \in R^H
S∈RH及结束位置向量
E
∈
R
H
E\in R^H
E∈RH;位置i,j为答案区域得分
S
c
o
r
e
=
S
⋅
T
i
+
E
⋅
T
j
Score=S·T_i + E·T_j
Score=S⋅Ti+E⋅Tj
实验结果如表2,BERT集成系统超越top1方案1.5F1、单系统超越1.3F1;
SQuAD v2.0
SQuAD v2.0允许提供段落中可能不存在答案;作者在【CLS】token设置start和end标志位,根据
s
n
u
l
l
=
S
⋅
C
+
E
⋅
C
s_{null} = S·C + E·C
snull=S⋅C+E⋅C判断是否有答案;实验结果如表3,超越最佳方案5.1F1。
SWAG
任务:给出一个句子,从四个选择中选择最可能的下一句;
实验结果如表4,
B
E
R
T
l
a
r
g
e
BERT_{large}
BERTlarge超越最优方案GPT 8.3
消融实验
预训练任务影响
结果如表5,移除NSP对QNLI、MNLI、SQuAD 1.1任务影响比较大;在所有任务上LTR比MLM结果更糟糕;
模型大小影响
ppl越小,模型越好
表6展示BERT不同模型大小影响,
BERT基于特征的方法
如图7,
B
E
R
T
l
a
r
g
e
BERT_{large}
BERTlarge基于预训练方案比整个模型finetune的SOTA方法低0.3
结论
作者提出的双向网络结构,可将同一预训练模型成功处理多个NLP任务。