论文阅读《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》

论文地址:《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》

文章目录

  • 论文阅读
    • 论文介绍
    • Factorized embedding parameterization
    • Cross-Layer Parameter Sharing
    • Sentence-Order Prediciton (SOP)
    • Adding Data & Remove Dropout
    • 总结

论文阅读

论文介绍

在对自然语言表示进行预训练时,增加模型的大小通常会提高下游任务的性能。大体量的“BERT”们虽然一个比一个效果好,但是他们动不动就几千万几个亿的参数量,而且训练也非常困难。新出的ALBERT就是为了解决模型参数量大以及训练时间过长的问题。ALBERT最小的参数只有十几M,效果要比BERT低1-2个点,最大的xxlarge也就200多M。

ALBERT 利用了参数共享、矩阵分解等技术大大减少了模型参数,用 SOP(Sentence Order Prediction) Loss 取代 NSP(Next Sentence Prediction) Loss 提升了下游任务的表现。但是 ALBERT 的层数并未减少,因此推理时间(Inference Time)还是没有得到改进。不过参数减少的确使得训练变快,同时 ALBERT 可以扩展到比 BERT 更大的模型(ALBERT-xxlarge),因此能得到更好的表现。

ALBERT 的结构和 BERT 基本一样,采用了 Transformer 以及 GELU 激活函数。具体的创新部分有三个:embedding 层参数因式分解、跨层参数共享、将 NSP 任务改为 SOP 任务。

Factorized embedding parameterization

在原始BERT模型和各种Transfomer模型中E=H,即嵌入层维度等于隐藏层维度。词嵌入意味着学习上下文无关的表示,而隐藏层嵌入则意味着学习上下文相关的表示。正如使用上下文长度的实验表明的那样,类似bert的表征的力量来自于使用上下文,为学习这种上下文依赖的表征提供信号。因此,将词嵌入大小E与隐藏层大小H分离,使我们能够根据建模需要更有效地使用总模型参数。
所以 ALBERT 的作者将E和H进行解绑,具体的操作就是在 Embedding 后面加入一个矩阵进行维度变换。E的维度是不变的,如果H增大了,我们只需要在E后面进行一个升维操作即可。
原本的词嵌入矩阵为V * H,V为vocab size,H为hidden size,转换为VE+EH当H很大时能有效降低参数。例如:V=30000,H=786,E=256,V * H=2304000,V * E + E * H =7876608,参数从2300万降低到780万。
通过因式分解 Embedding 的实验可以看出,对于参数不共享的版本,随着E的增大,效果是不断提升的。但是参数共享的版本似乎不是这样,E最大并不是效果最好。同时也能发现参数共享对于效果可能带来 1-2 个点的下降。
论文阅读《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》_第1张图片

Cross-Layer Parameter Sharing

传统 Transformer 的每一层参数都是独立的,包括各层的 self-attention、全连接。这样就导致层数增加时,参数量也会明显上升。之前有工作试过单独将 self-attention 或者全连接层进行共享,都取得了一些效果。ALBERT 作者提出了跨层参数共享作为另一种提高参数效率的方法。有多种方法可以共享参数,例如,跨层只共享前馈网络(FFN)参数,或者只共享注意力参数。ALBERT的默认决定是跨层共享所有参数。
作者通过实验还发现了,使用参数共享可以有效的提升模型稳定性,实验结果如下图
论文阅读《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》_第2张图片
BERT-base 和 ALBERT 使用相同的层数以及 768 个隐藏单元,结果 BERT-base 共有 1.1 亿个参数,而 ALBERT 只有 3100 万个参数。通过实验发现,feed-forward 层的参数共享会对精度产生比较大的影响;共享注意力参数的影响是最小的。
论文阅读《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》_第3张图片

Sentence-Order Prediciton (SOP)

ALBERT 提出了另一个任务 —— 句子顺序预测。关键思想是:从同一个文档中取两个连续的句子作为一个正样本,交换这两个句子的顺序,并使用它作为一个负样本。
SOP 提高了下游多种任务(SQUAD,MNLI,SST-2,RACE)的表现
论文阅读《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》_第4张图片

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》_第5张图片

总结

论文的主要创新点是参数共享、矩阵分解和句子顺序预测。ALBERT直接把同等量级的BERT缩小10+倍,降低了训练的时间,但实验发现参数的减小还是有一定的影响的。而且改善的训练的时间,Inference时间并没有得到改善,故Inference时间和BERT差不多。
论文阅读《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》_第6张图片

你可能感兴趣的:(pytorch,深度学习,机器学习)