阅读笔记 -- ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS

本文的主要贡献:

BERT与类似于GAN的结构相结合,并辅以新的预训练任务来做预训练 – 在更少的参数量和数据下,效果超越BERT,并且仅用1/4的算力就达到了SOTA模型RoBERTa的效果:在这里插入图片描述

Introduction:

  • 当下流行的MLM(Masked Language Modeling)方法会大大增加计算开销,原因:模型只学到每个example中15%的tokens信息,而且有些token可能会很简单。
  • 因此,我们创新性地提出了RTD (Replaced Token Detection)这样的新的预训练任务。
  • ELECTRA – Efficiently Learning an Encoder that Classifies Token Replacements Accurately
  • 先来看一下效果:在这里插入图片描述

Methods:

  • NLP式的Generator-Discriminator:在这里插入图片描述

    • ELECTRA最主要的贡献是提出了新的预训练任务和框架,把生成式的Masked language model(MLM)预训练任务改成了判别式的Replaced token detection(RTD)任务,判断当前token是否被语言模型替换过。
    • 一点思考:随机替换一些输入中的字词,再让BERT去预测是否替换过可以吗?答案:不可以,因为随机替换过于简单,效果不好。
    • 为了让替换更加真实,作者提出了利用一个基于MLM的Generator来替换example中的某些个token,然后丢给Discriminator来判别。
  • 目标函数:

    • 由于生成器的输入输出都为句子,而句子中的字词都是离散的,因此判别器的梯度无法传给生成器,因此生成器的训练目标仍旧和BERT一样,而RTD的训练就是传统的二分类:在这里插入图片描述
      所以整个预训练框架的loss为:在这里插入图片描述
      因为判别器的任务相对来说容易些,RTD loss相对MLM loss会很小,因此加上一个系数,作者训练时使用了50
    • ELECTRA与GAN的区别:在这里插入图片描述

Experiments:

  • Weight sharing:生成器和判别器的权重共享是否可以提升效果呢?作者设置了相同大小的生成器和判别器,在不共享权重下的效果是83.6,只共享embedding层的效果是84.3,共享所有权重的效果是84.4。作者认为生成器对embedding有更好的学习能力,因为在计算MLM时,softmax是建立在所有vocab上的,之后反向传播时会更新所有embedding,而判别器只会更新输入的token embedding。最后作者只使用了embedding sharing。

  • Smaller Generators:上述实验:生成器和判别器只需要共享embedding的权重就足矣了。So是否可以缩小生成器的尺寸进行训练效率提升呢?作者在保持原有hidden size的设置下减少了层数,得到了下图所示的关系图。结论:生成器的大小在判别器的1/4到1/2之间效果最好–过强的生成器会增大判别器的难度:在这里插入图片描述

  • Training Algorithms:
    MLM:无需赘言,实验证明这个最好。
    Two-stage training:即先训练生成器,然后freeze掉,用生成器的权重初始化判别器,再接着训练相同步数的判别器。

  • Models Comparison:

    • 小模型:在这里插入图片描述
    • 大模型:
      GLUE:在这里插入图片描述
      SQUAD:在这里插入图片描述
  • Efficient Analysis:

    • 让判别器计算全部token的loss比只计算15%的masked token的效果好
    • ELECTRA体积越小,相比于BERT就提升的越明显==》原因:由于ELECTRA是判别式任务,不用对整个数据分布建模,所以更parameter-efficient

Conclusion:

  • 打破了之前的“more data+ more params+ more steps+ more GPU+ more money == better model”的做法;
  • 将GAN的思想用在了NLP的应用中;
  • BERT虽然对上下文有很强的编码能力,却缺乏细粒度语义的表示,ELECTRA优化了这个缺陷:在这里插入图片描述 图中是把sequence token编码降维后的效果,可以看到sky和sea因为上下文一样而得到了极为相似的编码 – 细粒度表示能力的缺失会对真实任务造成很大影响,所以更细粒度的任务让BERT去区分每个token是一个关键突破!