ALBERT 介绍
ALBERT 全称 A Lite BERT,出自论文 A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS,用于解决 BERT 参数过多导致内存占用高同时训练时间长的问题。
论文地址:https://arxiv.org/pdf/1909.11942.pdf
ALBERT 简介
BERT-large 比 BERT-base 效果好这种现象,已经给大家灌输了一个常识,更多的模型参数能使模型效果变得更好。 然而随着模型参数的增加,现在硬件的显存容量已经达到了能支持的极限,同时参数量增加使计算的时间开销更大。
那 ALBERT 就是用于改进参数大的问题的。
具体方案
ALBERT 从两个方面对 BERT 的参数进行缩减:
- Factorized embedding parameterization:把 Token Embedding 进行矩阵分解
- Cross-layer parameter sharing:多层之间共享参数
此外 ALBERT 还引入了一个新的预训练方法:
- Inter-sentence coherence loss:句子顺序损失
Embedding 矩阵分解
常规的 BERT 词向量维数 E 和隐藏层向量维数 H 是相等的 E=H,词向量维护了一个矩阵的大小为 $V \times E$,其中 V 是词表大小。 ALBERT 把词向量矩阵分解成了两个矩阵,尺寸分别是 $V \times E$ 和 $E \times H$,其中 $E \ll H$。
层间共享参数
BERT 每层主要有两种参数:Feed Forward 参数和 Attention 参数。ALBERT 之间简单的把两种参数在各层之间都贡献。
预训练方法
BERT 采用两个预训练任务进行联合,分别是 MLM(Masked Language Model)和 NSP(Next Sentence Prediction)。很多论文 Argue 说 NSP 任务并不会给下游带来提升,本论文提出的观点 NSP 不能带来提升的原因是其对比MLM来说太简单了。
此论文对句子级别的预训练任务提出了SOP( sentence-order prediction)任务,即使对连续的两个句子,有50%概率保持原样作为正样本,50%概率颠倒他们的顺序作为负样本。
实验
实验结果太多了,挑几个重点的来说一下。
模型参数量
模型参数量见下图
可以看到比 BERT 少非常多!
总体实验结果
总体实验结果见下图
可以看到 ALBERT 模型可以达到 SOTA 结果。
词向量 size 的影响
词向量 size 的影响见下图
可以看到从 768 缩减到 64 性能损失也不太大。
层间参数共享的影响
层间参数共享的影响见下图
可以看到全部共享性能损失也不太大。
Dropout 影响
论文指出 ALBERT 对 Dropout 很敏感,去掉 Dropout 反而是效果提升明显,估计原因是参数量本来就不大,不用防止过拟合把。见下图
NSP 和 SOP 对比
NSP 和 SOP 对比,到底咋样,见下图
SOP 明显优于 NSP。