论文笔记--ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
1. 文章简介
- 标题:ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
- 作者:Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, Radu Soricut
- 日期:2019
- 期刊:arxiv preprint
2. 文章导读
2.1 概括
文章给出了一种使用更少参数的BERT预训练方式,在不损失模型性能的情况下大幅提升了模型训练效率。文章提出的ALBERT(A Lite BERT)模型在多个GLUE评测任务上达到了SOTA水平。
2.2 文章重点技术
2.2.1 参数因式分解(Factorized embedding Parameterization)
文章指出BERT模型中训练的不合理之处:BERT模型的隐藏层大小H和单词嵌入大小E是相等的,即
E
=
H
E=H
E=H。这是由于Transformer中输入和多头注意力机制中的残差连接层(下图所示)要求两个输入的维度相同。但文章指出这样做是不合理的:1) 隐藏层学习到的是上下文有关的嵌入,而输入层的wordpiece embedding学习到的是上下文无关的嵌入,从而H应该远大于E;2)如果保持
H
≡
E
H\equiv E
H≡E,则当我们想增加H时,E也随之增加,此时整个单词级别的向量嵌入就会增加至
V
∗
E
V*E
V∗E,其中V表示词表大小。
为此,文章提出一种因式分解的方法:首先将词表中的所有单词映射到E维空间(E<H),然后再将E维向量映射到H维空间。这样词表中所有单词的嵌入花费
O
(
V
∗
E
+
E
∗
H
)
=
O
(
(
V
+
H
)
∗
E
)
\mathcal{O}(V*E + E*H) = \mathcal{O}((V+H)*E)
O(V∗E+E∗H)=O((V+H)∗E),而原有直接嵌入的花费为
O
(
V
∗
H
)
\mathcal{O} (V*H)
O(V∗H),在
H
≫
E
H\gg E
H≫E时,ALBERT通过因式分解的嵌入花费远低于BERT的嵌入花费。
2.2.2 跨层参数共享
ALBERT采用全局层间参数共享,这样可使层间距离不至于过大,且大幅降低训练的参数量。文章对比了几种层间参数共享的策略,下表可见在E=128时,全局参数共享对整体性能造成的损失不明显。
2.2.3 句内连贯性损失
BERT[1]采用了MLM和NSP两种训练任务进行预训练。一些工作表明BERT中的NSP任务对模型表现提升不大,可能原因为NSP任务过于简单,可由MLM直接推导出来。文章采用了XLNET中应用的SOP(Sentence-order prediction)损失:随机从一篇文档中采样两个连续的文本片段A和B,则(A, B)是一对正样本,(B, A)是一对负样本。实验表明NSP损失不可以解决SOP任务,但SOP损失可以解决NSP问题。
3. 文章亮点
文章训练了ALBERT-base,ALBERT-large, ALBERT-xlarge, ALBERT-xxlarge四个模型,模型参数相比于BERT-LARGE小得多。最大的ALBERT-xxlarge参数量为235M,相比于BERT-large,在更高效的训练效率得到一个更好表现的模型。此外,模型采用的SOP损失相比于NSP损失更加复杂,得到的模型理解能力更强。
4. 原文传送门
ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
5. References
[1] 论文笔记–BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding