ALBERT 与ELECTRA,小排量的大飞机

前言

随着BERT的横空出世,目前越来越多优秀的预训练语言模型涌现出来,学习的步伐跟不上发展的速度。
BERT 刚出来时,感觉,可预期的时间内,只要预训练目标任务足够好,相信效果会有更进一步提升。

预训练语言模型

名称 特点 机构
ELMO 自回归语言模型,双层BiLSTM AllenNLP
BERT 自编码语言模型,Transformer 谷歌
GPT,GPT 2.0 自回归,Transformer OpenAI
ERINE 结合知识图谱的BERT 百度
MASS 联合训练encoder和decoder的模型 微软
XLNet 排列语言模型,Transformer XL CMU & 谷歌
RoBERTa 对比BERT,数据质量更优,剔除下一句预测任务 Facebook
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)

RTD

1.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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章