ELECTRA 提出“替换词检测” 预训练任务,在计算损失时,考虑全部输入, 而非 MLM 中15%的输入;另一方面解决了[MASK] 在预训练与Fine-Tuning 阶段不一致的问题。
替换词检测
替换词检测任务采用如下结构:
生成器理论上可以采用任何模型,论文中采用的是Transformer Encoder,并进行 MLM 任务。MLM 任务会给出一个新的输入序列,这个新的输入序列会作为判别器的输入, 判别器的任务是检查新输入中的词是否是替换词,即对每一个词进行二分类。最终预训练的损失
L
=
L
G
+
λ
∗
L
D
L = L_G + \lambda * L_D
L=LG+λ∗LD 。预训练完成之后,在Fine-Tuning阶段,只需要调整判别器的参数即可。
- 生成器与判别器共享Embedding 层的参数。
- 生成器的参数量是判别器的1/4-1/2,目的1)降低预训练计算成本,2)生成器如果太强,判别器能学到的东西就很少了。
- 计算全部输入的损失,有助于提升效果。下图中 ELECTRA15%是指,判别器计算损失时,仅考虑15%遮掩的部分。