ELECTRA:类似GAN的预训练语言模型

简介: ELECTRA:类似GAN的预训练语言模型

论文标题:ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators


论文链接:https://arxiv.org/abs/2003.10555


论文来源:ICLR 2020


一、概述


目前的SOTA语言表示学习方法可以看做是在学习一个去噪自编码器(denoising autoencoder),它们选择无标注的输入序列的一小部分(通常15%),然后将这一部分mask掉(比如BERT),或者attend到这些token(比如XLNet),然后训练整个网络来还原原来的输入。由于每个样本只学习15%的token,这些Masked Language Modeling(MLM)的方法通常需要大量的算力。


在本文中提出的replaced token detection的预训练方法,在这个方法中,不会使用[MASK]来替换token,而是使用从提议分布中的采样来进行替换,这些采样来自一个小的masked language model。这种方法解决了BERT中(在XLNet中没有)的一个mismatch的问题,也就是网络只在训练时遇到过[MASK]这个token,而在微调时并没有遇到。输入被采样替换后会将网络当做一个discriminator来识别一个token是原来的还是被替换过的。另外使用一个masked language model作为generator来预测被mask的位置的原始token。比起MLM的方法,replaced token detection的一个优点是从所有的token中进行学习,而非只从15%的被mask掉的token中进行学习,这使得ELECTRA是更加高效的。前面提到的训练的方法虽然很像GAN,但事实上ELECTRA的训练并不是对抗式的,因为generator虽然提供被破坏的token,但是它使用的是极大似然的方法,这主要是因为将GAN应用到文本上有一些困难。


ELECTRA的全名叫做“Efficiently Learning an Encoder that Classifies Token Replacements Accurately.”。经过试验论证ELECTRA比BERT更加地高效并且能够在下游任务上取得更高的精度。在给定相同的模型大小、数据和算力的条件下,ELECTRA战胜了一系列模型:


SPXB[}UMJJ]JXYH2]L7ZWK0.png

                                         效率对比


二、方法


下图提供了本文方法的一个概览:


7]AH%_MCTP6]}QHWCC8]7M4.png

                                        架构


X~~%HSL3ZNGCD_(}88}Y]ZU.png

M((DY``IH4QZZDBJJ`%}GEP.png


2$(V)]A}6DZ4EZ(2}RLPVCJ.png


三、实验


本文中的实验在GLUE数据集上进行,使用GLUE score来代表GLUE数据集中所有任务的平均得分。


  1. 模型拓展


  • 参数共享


实验中探索了Generator和Discriminator的参数共享对模型效果的影响,如果Generator和Discriminator的size(这里的size指的是隐层hidden size)完全一致,那么就可以完全共享参数,但事实上实验表明使用一个小的Generator效果更好。在这种情况下,我们只共享token embedding的参数(token embedding只在Generator的输入和输出以及Discriminator的输入使用),使用的token embedding的size和Discriminator的隐层hidden size大小一致,注意当Generator的size更小时会有一个线性映射来将token embedding映射到Generator的size大小。Generator的输入和输出token embedding总是绑定在一起的,就像BERT中一样。


本文使用相同size的Generator和Discriminator进行了实验,3种不同的实验设置:不进行参数共享、只共享Generator和Discriminator的token embedding、完全共享所有参数,3种实验设置对应的GLUE得分是83.6、84.3、84.4。这说明Discriminator能够从token embedding的共享中获益,这是因为Discriminator只会更新输入中出现的和Generator采样得到的token,而Generator由于存在softmax层,所以能够更新所有的token。另外共享所有参数的提升不大并且要求Generator和Discriminator的size相同,因此在ELECTRA只会共享token embedding的参数。


  • 更小的Generator


如果Generator和Discriminator的size相同,就会导致ELECTRA的算力需求是MLM的两倍,因此ELECTRA使用小一点的Generator,也就是说Generator的隐层hidden size会小一点,甚至本文尝试使用过极简的“unigram”作为Generator。不同size的Generator和Discriminator实验结果如下:


NXQQ4%6C4KGOLH6~4_KR0G5.png

                                               不同size实验


本文推测如果Generator过于powerful会对Discriminator的学习造成阻碍,因此本文中会按照本实验的最佳实验结果来确定ELECTRA的Generator size大小。


  • 不同的训练算法


本实验对比了3种不同的训练策略。第一种是联合训练(也就是ELECTRA的训练方法),第二种是分两步的训练:


%]@V5D(R](HQC1F8BD$O5Y0.png


第三种是对抗式的方法,这种方法的实验记录在本文附录中,感兴趣的同学可以自行查看。


以下为实验的结果对比:


_F@Y~L7RM2[F8)]$XISTH$5.png

                                         不同训练算法实验


因此ELECTRA采用联合训练的方法。


  1. 实验


  • 小模型


本部分对比ELECTRA-small、ELECTRA-base等小模型实验结果:


T85$}4LJC3X15}ALS}OR(NJ.png

                                            小模型实验


  • 大模型


本部分对比ELECTRA-large等大模型实验结果:


7JDTQ]ZU(RERXGCMI}{~UXE.png

                                                   大模型实验  


  1. ELECTRA相对于BERT的提升来自何处


之前说过,ELECTRA相对于BERT有所提升是因为ELECTRA预测所有的token,而BERT只预测15%的mask的token,但是事实上BERT预测15%的mask的token时也会参考所有的token。为了更好的探索这一点,本实验做了如下3种设置:


①ELECTRA 15%:ELECTRA只预测15%的被Generator采样过的位置,也就是说Discriminator的lossY4Q9Q{}5Y4M2UZJ}JFO15JY.png所标记的位置。


②Replace MLM:一个BERT模型,不过被选中的位置不会使用[MASK]替换,而是也使用Generator的采样,设置这样一个模型是为了探索ELECTRA相对于BERT的提升是否是因为解决了之前提到的mismatch的问题。


③All-Tokens MLM:与Replace MLM设置一样,只不过要预测所有位置而非只预测mask的位置。


实验结果如下:


0KIABI473LCZAOC_DJH07JN.png

                                                实验结果


这表明:


①ELECTRA的提升的确是因为对所有位置进行预测;


②BERT的mismatch的问题的确会对效果造成轻微损害。


另外实验对比了不同size下的ELECTRA对BERT的增益,发现size越小增益越大,并且,并且对小模型进行了完全训练以达到收敛,表明完全训练时ELECTRA能够比BERT达到更高的下游精度。本文推测ELECTRA相比BERT更加的parameter-efficient,因为ELECTRA作为一个Discriminator来训练,并不需要建模完整的数据分布。这部分实验结果如下:


1]RRVE~`M[IIU3M7}1`0B4G.png

                                                  不同size对比

相关文章
|
11天前
|
机器学习/深度学习 自然语言处理 算法
预训练语言模型是什么?
【2月更文挑战第13天】预训练语言模型是什么?
26 2
预训练语言模型是什么?
|
11天前
|
数据采集 人工智能
【大模型】大语言模型存在的一些限制
【5月更文挑战第5天】【大模型】大语言模型存在的一些限制
|
10月前
|
机器学习/深度学习 自然语言处理 安全
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型(1)
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型
109 0
|
10月前
|
机器学习/深度学习 自然语言处理 Apache
Transformer 模型实用介绍:BERT
Transformer 模型实用介绍:BERT
165 0
|
10月前
|
机器学习/深度学习 自然语言处理 数据可视化
微调预训练的 NLP 模型
微调预训练的 NLP 模型
127 1
|
10月前
|
机器学习/深度学习 自然语言处理 数据挖掘
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型(2)
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型
178 1
|
机器学习/深度学习 自然语言处理 算法
ELMo、GPT、BERT、X-Transformer…你都掌握了吗?一文总结文本分类必备经典模型(三)
ELMo、GPT、BERT、X-Transformer…你都掌握了吗?一文总结文本分类必备经典模型(三)
247 0
|
机器学习/深度学习 XML 人工智能
ELMo、GPT、BERT、X-Transformer…你都掌握了吗?一文总结文本分类必备经典模型(五)
ELMo、GPT、BERT、X-Transformer…你都掌握了吗?一文总结文本分类必备经典模型
377 0
|
机器学习/深度学习 自然语言处理 数据可视化
ELMo、GPT、BERT、X-Transformer…你都掌握了吗?一文总结文本分类必备经典模型(四)
ELMo、GPT、BERT、X-Transformer…你都掌握了吗?一文总结文本分类必备经典模型
246 0
|
机器学习/深度学习 自然语言处理 算法
FlowSeq、mBART、BERT-fused、mRASP、mRASP2...你都掌握了吗?一文总结机器翻译必备经典模型(1)
FlowSeq、mBART、BERT-fused、mRASP、mRASP2...你都掌握了吗?一文总结机器翻译必备经典模型
117 0