博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论文笔记 _ ELECTRA_ Pre-training Text Encoders as Discriminators Rather than Generators
阅读量:4289 次
发布时间:2019-05-27

本文共 2614 字,大约阅读时间需要 8 分钟。



作者:韩

单位:燕山大学



目录

一、前言

  BERT类的掩码语言建模(MLM)方法在下游 NLP 任务上产生了出色的结果,但它们需要大量的计算才能有效。这些方法通过用 [MASK] 替换一些令牌来破坏输入,然后训练模型以重建原始令牌。作为替代方案,本文提出了一种更加 sample-efficient 的预训练任务,称为 replaced token detection 替换令牌检测。本文的方法不是掩盖输入,而是通过使用从小的生成器采样的合理的替代令牌来替换部分输入令牌从而破坏输入。然后训练一个判别模型,该模型可以预测损坏的输入中的每个令牌是否被生成器样本替换,而不是训练一个预测损坏的令牌的原始令牌的模型。

  全面的实验表明,这种新的预训练任务比MLM更有效,因为该模型从所有输入令牌中学习,而不仅仅是从被掩盖的部分中学习。结果,在相同的模型大小,数据和计算条件下,通过本文方法学习的上下文表示大大优于通过 BERT 和 XLNet 等方法学习的上下文表示。小模型的收益尤为明显。例如,在 GLUE 自然语言理解基准上,一个GPU上训练了 4 天的模型优于 GPT (30倍的计算量)。本文的方法在大规模上也能很好地发挥作用,可以媲美当前最先进的预训练变压器 RoBERTa 的性能,而只使用不到 1/4 的计算量。

二、概述

  本文提出了 replaced token detection 替换令牌检测任务,训练模型分辨输入令牌中由小型的 MLM 生成的替换 token。这一方法解决了 BERT 中的 mismatch 问题:预训练时网络会看到人为的[MASK]令牌而在下游任务上微调时却不会看到。通过训练判别器分辨每一个 token 是否被替换,而不是 MLM 那样训练网络作为生成器预测被损坏的 token 的原始 token,从而使模型从所有的输入 token 中学习而不是 MLM 中那样仅从 masked 的部分 token 学习,这提高了计算效率。

  本文的方法并不是对抗性的,使用最大似然来训练生成器生成替代的 token。

  ELECTRA 是 Efficiently Learning an Encoder that Classifies Token Replacements Accurately 的简写,模型以 GLUE Score 作为性能指标。从图 1 可以看出,在相同的模型大小、数据和计算条件下,ELECTRA 的性能明显优于基于 BERT 和 XLNet 的基于 MLM 的方法。ELECTRA-Small(可以在4天内用1块GPU上完成训练)不仅比 BERT-Small 要好,甚至还优于更大的 GPT 模型。而在更大规模下,模型取得了和 RoBERTa 相匹配的性能,但是只使用了不到 1/4 的计算量并且参数量更少。

  与现有的生成式的语言表示学习方法相比,区分真实数据和具有挑战性的负样本的分类任务具有更高的计算效率和参数效率 compute-efficient and parameter-efficient 。

三、方法

  训练两个神经网络:生成器 G 和 判别器 D。每个神经网络主要由一个编码器构成,将输入序列x = [ x 1 x_1 x1,…, x n x_n xn],映射为上下文化的向量表示 h( x x x) = [ h 1 h_1 h1,…, h n h_n hn]。对于给定位置 t ,生成器通过 softmax 层输出生成 token x t x_t xt的概率值:

  其中 e 表示 token 嵌入。对于给定位置 t ,判别器预测 token x t x_t xt是否为假(是否来自与生成器):

  生成器学习最大化被遮盖令牌的可能性。判别器学习分辨数据中的令牌和被生成器样本替换过的令牌。更具体的说,通过用生成器样本替换被遮盖的令牌来创建一个损坏示例 x c o r r u p t x^{corrupt} xcorrupt并训练判别器预测 x c o r r u p t x^{corrupt} xcorrupt中的哪些令牌与原始输入 x x x一致。模型输入如下:

损失函数如下:

  尽管与GAN的训练目标相似,但仍存在一些关键差异。首先,如果生成器碰巧生成了正确的令牌,则该令牌被视为“真实”而不是“伪造”;本文发现此公式可以适度改善下游任务的结果。更重要的是,生成器使用最大似然来训练,而不是通过对抗性训练来欺骗判别器。对抗训练生成器很难,因为不可能通过生成器的采样进行反向传播。尽管通过使用强化学习来训练生成器(请参阅附录D)来尝试规避此问题,但其效果不如最大似然训练。最后,不像GAN那样为发生器提供噪声矢量作为输入,本文在大原始文本语料库 x x x上最小化联合损失:

  不会向生成器反向传播判别器的损失,预训练后丢弃生成器并在下游任务上微调判别器。

四、实验

  由于本文的目标是提高预训练的效率,我们开发了一个小型模型,可以在单个GPU上对其进行快速训练。从 BERT-Base 超参数开始,我们缩短了序列长度(从512到128),将批量大小(从256减少到128),将模型的隐层维度大小(从768减少到256),并使用了较小的令牌嵌入(从768到128)。为了提供公平的比较,我们还使用相同的超参数训练了 BERT-Small 模型。我们训练 BERT-Small 150万步,ELECTRA-Small 训练了100万步,因此两者计算成本相当(因为 ELECTRA 既有生成器又有判别器)。还对比了基于语言建模的的 ELMo 和 GPT(大小与 BERT-Base 类似但是训练步骤更少) ,还与DistilBERT进行了比较(从 BERT-Base 蒸馏而来的较小的 Transformer )

  考虑到其尺寸,ELECTRA-Small 的表现非常出色,与使用大量计算和参数的其他方法相比,其 GLUE 得分更高。结果还证明了 ELECTRA 在更适中的尺寸下的强度。ELECTRA-Base 模型大大优于 BERT-Base ,甚至优于 BERT-Large (GLUE得分84.0)。我们希望 ELECTRA 能够以较少的计算量获得出色的结果,从而扩大在 NLP 中开发和应用预训练模型的可行性。

转载地址:http://bemgi.baihongyu.com/

你可能感兴趣的文章
控制反转(IoC)-解析与实现
查看>>
Android内存泄露的原因
查看>>
Java并发总结
查看>>
JavaScript筑基篇(二)->JavaScript数据类型
查看>>
干货:Java几种线程池的分析和使用。
查看>>
避免在Java接口中使用数组的3个理由
查看>>
android 自定义带动画的统计饼图
查看>>
入职必备,Android 真实面试题(内有答案)
查看>>
JavaScript 日期处理类库---Moment.js
查看>>
仿斗鱼直播的弹幕效果实现
查看>>
Android(Java)中的Object
查看>>
Java反射机制——学习总结
查看>>
Android大图片处理
查看>>
如何将util.Date转化为sql.Date
查看>>
Java笔试题及答案
查看>>
这是一个挺有意思的Java讨论话题
查看>>
没错!java中private字段也是可以访问D!
查看>>
安卓:文本框TextView/EditText的开源库清单
查看>>
Android中Xposed框架篇---利用Xposed框架实现拦截系统方法
查看>>
腾讯老司机的RecyclerView局部刷新爬坑之路
查看>>