ELECTRA解读

背景

当今的SOTA的预训练语言模型,比如BERT,采用Mask language model(MLM)的方式破坏输入的内容,通过双向语言模型进行预测重构;然而这存在一个问题,那就是[MASK]这个token在训练中存在但是在实际预测中不存在,为了缓解这个问题,BERT采用了选择语料中15%的TOKEN,在其中80%进行【MASK】,10%随机替换,10%不变,这的确稍微缓解了训练预测不一致的问题(虽然在XLNet利用permutation language model得到解决),但是确使得BERT必须利用更多的训练语料,需要的算力也大幅增加,为此提出了ELECTRA这个模型解决这个问题,具体论文见《ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS》

ELECTRA

很直接的,为了解决上述说的训练慢,数据要求多的问题,ELECTRA中训练不只是用语料中的subset(即BERT中只是MASK的token)进行预测,而是利用全部的token. 为了达成这个目的,作者训练语言模型的时候不是像bert一样把他看作generator(bert中通过重构被MASK的词,某种程度上可以看成为generator),而是看成discriminator,论文中引入另一个generator去生成相似的词进行替换,训练语言模型的任务就是去判断语料中的每个词是不是被替换了,这里有点对抗学习(GAN)的意思,但是这里并不是用GAN(因为GAN在本文和图片不一样不是连续的,将GAN用在文本生成上有难度)。

Replaced Token Detection

ELECTRA的全称为(Efficiently Learning an Encoder that Classifies Token Replacements Accurately),作者采用replaced token detection作文ELECTRA的预训练任务。
在这里插入图片描述
如图所示,作者采用一个小型的mask language model作为generator根据词的概率分布输出一个词,另一个discriminator是来预测这个词是不是G生成的。注意这里训练网络不是采用GAN中对抗学习的思想。GAN中训练网络分两步,第一步训练D,最大化其正确判断数据来自真实或来自G的概率;第二步训练G,最小化使得D预测其来自G的概率(即让D做出错误判断)。那么论文里是怎么训练G和D的呢?对于G,和MLM的任务一样,即对于MASK的token对于的节点,通过softmax得到词的概率分布,最大化将输入sequence(含MASK token)还原出来的概率,即最大化概率似然,loss为
在这里插入图片描述
对于D,则和对抗网络中训练D的方式一样,这里将D中每个词对应的输出向量(比如bert是764维)通过矩阵转化到1维,再用sigmoid函数作为预测当前词来自generator采样得到还是原始数据的概率,最终loss为用cross entropy loss。
在这里插入图片描述
所以这里因为训练G的时候没有考虑D,并不是为以欺骗D为目的进行训练的,因此没有对抗的思想。

训练方式

实际训练不同于GAN分别训练D和G,这里采用G的MLM的loss和D与CE loss进行训练网络,注意训练的时候D的CE loss无法更新G的参数因为采样这个步骤数学上不可导。预训练完毕后,G只是副产物,只需用D来进行下游NLP任务的fine-tune,
ELECTRA(即D这一部分)采用和bert一样的结构。另外作者实验发现G小一点会更好(D和bert一样但G相比bert减少layer不变其他参数,建议 1/4-1/2 原bert的大小),另外G和D只共享输入的embedding这个部分(这里输入的embedding和bert一样)。

其他方式

另外作者还尝试过当D和G参数层数一样的实验,但是没有提升效果。
训练分两步,第一步先训练G,然后用G的参数初始化D,继续训练D,保持G不变
在这里插入图片描述

总结

ELECTRA针对BERT计算量和MASK的问题,利用generator和discriminator的思想提出了有效利用全部语料进行训练的方式,达到了当时SOTA的效果

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值