NLP中的预训练语言模型(五)—— ELECTRA
这是一篇还在双盲审的论文,不过看了之后感觉作者真的是很有创新能力,ELECTRA可以看作是开辟了一条新的预训练的道路,模型不但提高了计算效率,加快模型的收敛速度,而且在参数很小也表现的非常好。
论文:ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS
ELECTRA全称为Efficiently Learning an Encoder that Classifies Token Replacements Accurately 。论文中提出了一个新的任务—replaced token detection,简单来说该任务就是预测预训练语言模型生成的句子中哪些token是原本句子中的,哪些是由语言模型生成的。
模型的整个结构如下:
整个训练模式有点类似于GAN,模型由一个生成器和一个判别器组成的,这个判别器就是我们最终使用的预训练模型,生成器可以采用任何形式的生成模型,在这里作用采用了MLM语言模型(bert之类的)来作为生成器,具体流程如下:
1)首先对一个距离mask一些词,将这个mask后的句子作为生成器的输入。
2)生成器将这些mask的词预测成vocab中的token,如上面将painting mask后输入到生成器中,然后生成器重构输入,将mask预测成car。
3)将生成器的输出作为判别器的输入,判别器去预测这个句子中的每个token是真实的token,还是由生成器生成的虚假的token,注意:如果生成器生成的词和真实词一致,则当作真实的token,例如上面讲the mask后生成器仍预测为the,则the在判别器中也是真实值,标签为正。
模型的整个流程确定了,剩下的就是该怎么训练了,在这里训练方式和GAN并不相同,在GAN中会将判别器的结果作为训练生成器的损失,但由于NLP中句子是离散的,因此无法通过梯度下降的方式来将判别器的结果反向传播来训练生成器,因此在这里作者将MLM损失作为生成器的损失,而将replaced token detection的损失作为判别器的损失,具体损失函数如下:
生成器的损失:
生成器的损失就是MLM语言模型中预测mask词的损失。