39

超越bert,最新预训练模型 ELECTRA 论文阅读笔记

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ%3D%3D&%3Bmid=2650411776&%3Bidx=2&%3Bsn=9c6bed5d9294c79886150bb7834815db
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

最近看到一些ELECTRA模型的消息,感觉这个模型的设计很新颖,于是赶紧找来了原文来看一下,看完趁着现在还有空赶紧记下来。

论文的地址 https://openreview.net/pdf?id=r1xMH1BtvB

目前论文还在ICLR2020的双盲审阶段,据说,作者为斯坦福SAIL实验室Manning组。

文章贡献:

文章提出了一种新的文本预训练模型,相比于之前的预训练模型(xlnet,bert等),该模型用更少的计算资源消耗和更少的参数在GLUE上取得了超越xlnet,roberta的成绩。

文章细节:

文章开始,作者就先比较了ELECTRA模型和其他预训练模型在GLUE任务上的效果和训练资源的消耗。可以看到本文提出的ELECTRA模型在训练步长更少的前提下得到了比其他预训练模型更好的效果。

E7nqInm.jpg!web

作者提出的预训练模型如下图所示,包括了一个Generator和一个Discriminator,在预训练模型的训练中,需要训练两个神经网络。一个生成器G,一个分类器D,对于生成网络

EfaaEj2.jpg!web

G,对于给定的输入 x ,生成网络在t位置按照下述方式生成输出token的xt。其中 e 是token对应的embedding。

UNF732Z.png!web

而对于给定位置 t 的token,鉴别器需要去鉴别这个单词是否经过替换。

rAnmeyr.png!web

生成器模型G会扮演一个MLM模型,对于给定的token输入x=[x1,x2,x3..xn],它会选择一些位置,并且将token替换成[mask],然后生成器会开始学习预测这个masked的元素。并且生成自己的预测结果,并且生成句子。

而鉴别器模型D会对于生成句子中的每一个token进行鉴别,判断其是否是经过G替换的token,与GAN网络不同,在这个G,D网络中G使用最大似然的方式训练,而不是训练去用于对抗D网络,由于在文本任务中D的loss不便于传给G,所以D和G的训练是分开的,联合的训练loss如下:

r6baMbQ.png!web

除了上述的基本模型以外,作者在训练中还增加了下述的方法:

embedding层共享:作者认为在G模型生成任务中,G模型会对token的embedding层进行学习,从而得到更好的embedding,而D模型不会更新其embedding层,所以作者将两个模型的embedding层进行了共享。

使用小型生成器G:作者认为如果生成器G和鉴别器D如果使用同样的大小,那么训练的效率会下降,于是作者在仅改变层数大小的情况下做了实验,如下图所示。

6ZzqQj3.jpg!web

实验发现,当G网络的层数在D网络的1/4到1/2的时候效果最好。作者认为太强的生成器会让鉴别器不能高效地学习。

训练算法:除了文中上述的两种方法,作者还实验了另外两种训练算法:

1、Adversarial Contrastive Estimation:借用强化学习的思想,将被替换token的交叉熵作为生成器的reward,然后进行梯度下降,用GAN的思想进行训练。

2、Two-stage training:先训练生成器,然后用生成器的权重初始化判别器,再训练判别器,得到的实验结果如下所示:

VnauYfQ.jpg!web

实验结果:作者先给出了ELECTRA-Small和ELECTRA-base的实验结果,在等参数级别和训练量的情况下比较了BERT,ELMo,GPT模型的效果。可以看到在等参数,等计算量的情况下,ELECTRA模型有极大的效果提升。

ZzAZBzY.jpg!web

接着作者给出了ELECTRA-Large的实验结果,从实验结果中可以看出ELECTRA-Large模型在等参数量,但是仅使用Roberta1/4计算量的前提下获得了超过Roberta的效果。

rU7vean.jpg!web

之后作者为了探究效率提升的原因,进行了对比实验,比较不同方案的效果,作者对以下训练方案进行了实验:

1、 ELECTRA 15%:让D只计算15%token上的损失。

2、 Replace MLM:输入不用mask替换,而是直接用其他生成器。

3、 All-Tokens MLM: 依然使用替换的方法,但是目标函数变为预测所有的token。

uMbuEjI.jpg!web

实验结果表明,mask的使用确实会降低一定的性能,尽管BERT在mask token上已经使用了一些trick,预测所有的token效果会好于预测部分的token。

最后作者比较了BERT和ELECTRA在不同hidden state size和训练计算量下的表现,结果如下:

QFbABne.jpg!web

实验结果表明,在相同的hidden state size和训练计算量的情况下,ELECTRA模型相比于BERT有很好的性能提升。

关注纸鱼AI,了解最新 人工智能 ,机器学习,自然语言处理学术进展和竞赛题解

本文转载自公众号:  纸鱼AI ,作者linhw

推荐阅读

ELECTRA: 超越BERT, 19年最佳NLP预训练模型

BERT详解,论文笔记

T5 模型:NLP Text-to-Text 预训练模型超大规模探索

Google T5速读

BERT 瘦身之路:Distillation,Quantization,Pruning

超小型bert横空出世:训练和预测提速10倍

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。

qIR3Abr.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK