ALBERT: A Lite Bert for Self-Supervised Learning of Language Representations

ALBERT: A Lite Bert for Self-Supervised Learning of Language Representations

abstract:提出两种参数减少技术来降低内存的消耗和加快BERT的训练速度,使用了一个self-supervised loss计算句子之间的一致性。

两种参数减少技术,使参数减少18倍,训练速度加快1.7倍。:

  • factorized embedding parameterization:把大的词嵌入矩阵分解成两个小矩阵;
  • cross-layer parameter sharing:跨层参数共享;

自监督损失:

  • sentence-order prediction(SOP):句序预测,注重句子间的一致性,解决BERT中的NSP任务。

Factorized embedding parameterization

在原始BERT以及各种Transformers结构的模型都使:E=H,其中E是Embedding Dimension和Hidden Dimension。WordPiece embedding是学习上下文无关的表示,Hidden-layer embedding是学习上下文相关的表示,其中Hidden-layer层能够学习到更加负责的信息,所需的维度也应该更大,提出了H\gg E。但是由于词汇表的大小V越大越好,如果E=H的话,增加Hidden-layer层,即H的大小后,嵌入矩阵(embedding matrix)大小为V\times E就会变得非常大。

因此,ALBERT使用矩阵因式分解,并且不直接将原本的one-hot向量映射到hidden space size of H,而是分解成两个矩阵,首先将单词投影到一个低维embedding空间E,再将其投影到高维隐藏空间H。这使得embedding matrix维度从O(V\times H)减小到O(V\times E + E\times H)。当H\gg E使效果就非常明显。

V∗H=30000∗768=23,040,000

V ∗ E + E ∗ H = 30000 ∗ 256 + 256 ∗ 768 = 7 , 876 , 608 

举个例子,当 V 为30000, H为768, E 为256时,参数量从2300万降低到780万

Cross-layer parameter sharing

有很多种参数共享的方法,比如,feed-forward network层的参数共享、注意力的参数共享等等。对于ALBERT是使所有层的参数共享,相当于只学习第一层的参数,并在剩下的所有层重用该参数,而不是每个层都学习不同的参数。

通过参数共享使模型的L2距离,和余弦相似性曲线变得平滑,说明参数共享有助于使模型变得平稳。便在后面的实验中,说明了几种共享参数方法对模型的影响。

ALBERT: A Lite Bert for Self-Supervised Learning of Language Representations_第1张图片

Inter-sentence coherence loss

BERT使用了两种损失函数方法:MLM和NSP。MLP对模型有很好的作用,但是NSP通过各种实验证明,其作用不是很大,于是很多基于Transformer的模型都在这个地方进行改进。NSP是一个二元分类损失,用于预测两个片段是否连续出现在原始文档中。于是ALBERT提出了inter-sentence coherence:基于一致性的损失,使用句子内部损失sentence-order prediction loss(SOP),专注于预测句子间的连贯性。主要思想:

  • 从同一个文档中取两个连续的句子作为一个正样本
  • 交换这两个句子的顺序,并作为一个负样本

Adding Data & Remove Dropout

以上ALBERT都是使用跟BERT相同的训练数据。但是增加训练数据或许可以提升模型的表现,于是ALBERT加上STORIES Dataset后总共训练了157G的数据。另外,训练到1M步的时候,模型还没有对训练集Overfit,所以作者直接把Dropout移除,最终在MLM验证集上的效果得到了大幅提升


ALBERT: A Lite Bert for Self-Supervised Learning of Language Representations_第2张图片

 

Conclusion

  1. 虽然实现了参数共享,减少了参数量,但是层数没有变,还是12层。所有模型的推断时间(Inference time)没有变,只是加快了训练的总时间。
  2. 在相同的训练时间下,ALBERT的效果确实比BERT好
  3. 在相同的Inference time下,ALBERT base和large的效果都没有BERT好,差了2-3个点。

参考

ALBERT详解

【论文阅读】ALBERT

 

你可能感兴趣的:(NLP,论文阅读)