前言
随着BERT的横空出世,目前越来越多优秀的预训练语言模型涌现出来,学习的步伐跟不上发展的速度。
BERT 刚出来时,感觉,可预期的时间内,只要预训练目标任务足够好,相信效果会有更进一步提升。
预训练语言模型
名称 | 特点 | 机构 |
---|---|---|
ELMO | 自回归语言模型,双层BiLSTM | AllenNLP |
BERT | 自编码语言模型,Transformer | 谷歌 |
GPT,GPT 2.0 | 自回归,Transformer | OpenAI |
ERINE | 结合知识图谱的BERT | 百度 |
MASS | 联合训练encoder和decoder的模型 | 微软 |
XLNet | 排列语言模型,Transformer XL | CMU & 谷歌 |
RoBERTa | 对比BERT,数据质量更优,剔除下一句预测任务 | |
SG-Net | 融入句法结构的BERT | 上海交通大学 |
ALBERT | Embedding因式分解,跨层的参数共享,移除dropout,参数量相比于BERT下降了一个数量级(Base 110M->11M) | 谷歌 |
T5 | 整个 NLP 预训练模型领域提供了一个通用框架 ,以及预训练语料C4 | 谷歌 |
ELECTRA | 把生成式的Masked language model(MLM)预训练任务改成了判别式的Replaced token detection(RTD)任务,判断当前token是否被语言模型替换过。 | 斯坦福 |
近期两篇
下面分享最新的学术界两篇论文,他们有共同点:对比于BERT参数量少了一个量级,但是效果却反而提升了
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
1.ELECTRA
摘要(原文)
虽然像BERT这样的MASK语言建模(MLM)预训练方法在下游的NLP任务上产生了很好的结果,但是它们需要大量的计算才能有效。这些方法通过用[MASK]替换一些Token来破坏输入,然后训练一个模型来重构Token。作为一种替代方案,我们提出了一种更具效率的预训练,称为Replaced token detection(RTD)判断当前词是否被替换了。我们的方法不是屏蔽输入,而是用从小型GAN中提取的plausible alternatives sampled替换一些输入Token,从而破坏输入。然后,我们不是训练一个模型来预测[MASK],而是训练一个判别模型来[MASK]输入中的每个Token是否被生成器样本替换。实验表明,这种预训练模型更有效,因为它从所有的输入中学习,而不是仅仅从[MASK]中。结果,在相同的模型大小、数据和计算条件下,通过我们的方法学习的上下文表示大大优于通过BERT和XLNet等方法学习的上下文表示。例如,我们在一个GPU上训练一个模型4天,该模型在GLUE自然语言理解基准上的性能优于GPT(使用30倍以上的计算进行训练)。我们的方法在规模上也很有效,我们使用不到1/4的计算,就可以达到RoBERTa的性能。
- 14M参数就能达到RoBERTa 的效果,训练语料更少,速度更快
- 33M参数在GLUE很多任务上超过RoBERT和ALBERT,GLUE 榜单上还没有,所以很多比较结果不全
- 尚未开源,斯坦福的个性,coming soon
MNLI | QQP | |
---|---|---|
XLNet | 89.8 | 91.8 |
RoBERTa | 90.2 | 92.2 |
ALBERT | 88 | * |
T5 | 92 | 90.2 |
ELECTRA | 90.5 | 92.4 |
1.1GAN的引入
GAN在CV中大火,但是在NLP中却一直差点意思,效果不是很突出。这篇文章一个突出贡献就是将GAN引入到预训练语言模型中,并且取得了SOTA(state of the art)的效果。
Replaced Token Detection(RTD)
RTD1.1.1Generator 生成器
通过对MASK后的句子生成样本,这里使用的是MLM(maximum likelihood),而不是使用的 Adversarially。因为NLP和CV的差异性
1.1.2Discriminator 判别器
通过序列标注的方法,判断当前词是否是原文(original,replaced)
- GAN生成的都是假的,但是该文的G会生成真实样本(部分词汇真实)
- 梯度不能从D传到G,所以该文使用强化学习的方法来训练G
1.2权重共享
-
正常情况下,Generator 和Discriminator 使用相同的大小,但是 实验表明,Generator 更小效果会好点。
-
Generator 和Discriminator 只是对于 token embeddings 进行共享,如果将所有权重共享效果反而会差点。
1.3Smaller Generators
- 实验表明,Generator的大小为 Discriminator 1/4~1/2效果最好,作者假设,Generator太大会给Discriminator 造成困扰。
1.4Training Algorithms
-
将Generator 和Discriminator 进行联合训练
-
Train only the generator with MLM for n steps.
开始只训练通过MLM去训练Generator -
Initialize the weights of the discriminator with the weights of the generator. Then train the discriminator with Disc for n steps, keeping the generator’s weights frozen.
然后用Generator 的参数去初始化 Discriminator,通过Disc 去训练Discriminator 同时冻结 Generator 的参数
1.5 contrastive learning(对比学习)
- 通过对比学习方法来区分虚构的负样本与正样本
- 本文算是 contrastive learning 与GANs的一种结合
2.ALBERT
Other
参考
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
XLNet: Generalized Autoregressive Pretraining for Language Understanding
T5:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
网友评论