ELECTRA模型简单介绍

news/2025/1/21 6:11:38/

目录

一、整体概要

二、生成器

三、判别器

四、模型训练

五、其它改进


一、整体概要

ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)采用了一种“生成器——判别器”结构,其与生成式对抗网络(Generative Adversarial Net,GAN)的结构非常相似。ELECTRA的整体模型结构如下图所示。

图中可以看到ELECTRA是由生成器(Generator)和判别器(Discriminator)串联起来的一个模型。这两个部分的作用如下。
 
(1)生成器。一个小的掩码语言模型(MLM),即在 [MASK]的位置预测原来的词;
 
(2)判别器。判断输入句子中的每个词是否被替换,即使用替换词检测(Replaced Token Detection,RTD)预训练任务,取代了BERT模型原始的MLM。需要注意的是这里并没有使用下一个句子预测(NSP)任务。
接下来,我们将结合图中的例子,详细介绍生成器和判别器的建模方法。

二、生成器

对于生成器来说,其目的是将带有掩码的输入文本x= x 1, ···,xn ,通过多层Transformer模型学习到上下文语义表示 h = h 1, ···, h n,并还原掩码位置的文本,即BERT中的MLM任务。需要注意的是,这里只预测经过掩码的词,即对于某个掩码位置t,生成器输出对应原文本 xt 的概率P_{}^{G} \in \mathbb{R}_{}^{|V|} (|V|是词表大小):

式中, w^{_{e}^{}}\in \mathbb{R}_{}^{|V|\times d}表示词向量矩阵; h_{t}^{G}表示原文本xt 对应的隐含层表示。
还是以上图为例,原始句子 x = x 1 x 2 x 3 x 4 x 如下:
 
the chef cooked the meal
经过随机掩码后的句子如下,记 M = {1, 3} 为所有经过掩码的单词位置的下标,记 x^{^{m}}=m_{1}x_{2}m_{3}x_{4}x_{5}   为经过掩码后的输入句子,如下所示:
 
[MASK] chef [MASK] the meal
 
那么生成器的目标是将m 1 还原为x 1 (即the),将m 3 还原为x 3 (即cooked)。在理想情况下,即当生成器的准确率为100%时,掩码标记 [MASK] 能够准确还原为原始句子中的对应单词。然而,在实际情况下,MLM的准确率并没有那么高。如果直接将掩码后的句子 x^{m}  输入生成器中,将产生采样后的句子 x^{s}
 
the chef ate the meal
从上面的例子可以看到,m 1 通过生成器成功地还原出单词the,而m3 采样(或预测)出的单词是ate,而不是原始句子中的cooked。
 
生成器生成的句子将会作为判别器的输入。由于通过生成器改写后的句子中不包含任何人为预先设置的符号(如 [MASK]),ELECTRA通过这种方法解决了预训练和下游任务输入不一致的问题。

三、判别器

受MLM准确率的影响,通过生成器采样后的句子 x^{s} 与原始句子有一定的差别。接下来,判别器的目标是从采样后的句子中识别出哪些单词是和原始句子 x 对应位置的单词一样的,即 替换词检测 任务。上述任务 可以通过二分类方法实现。
对于给定的采样句子 x^{s},通过Transformers模型得到对应的隐含层表示 h^{D} = h_{1}^{D}\cdots h_{n}^{D} 。随后,通过一个全连接层对每个时刻的隐含层表示映射成概率。

式中, w\in \mathbb{R}^{d} 表示全连接层的权重(d表示隐含层维度);M表示所有经过掩码的单词位置下标;σ表示Sigmoid激活函数。 假设1代表被替换过,0代表没有被替换过,则生成器采样生成的句子“the chef ate the meal”对应的预测标签如下,可以记为 y = y1···yn,即:
 
00100

四、模型训练

生成器和判别器分别使用以下损失函数训练:

最终,模型通过最小化以下损失学习模型参数:

式中,X 表示整个大规模语料库;\Theta ^{G}  和 \Theta ^{D} 分别表示生成器和判别器的参数。
注意:由于生成器和判别器衔接的部分涉及采样环节,判别器的损失并不会直接回传到生成器,因为采样操作是不可导的。另外,当预训练结束后,只需要使用判别器进行下游任务精调,而不再使用生成器。

五、其它改进

(1)更小的生成器。通过前面的介绍可以发现,生成器和判别器的主体结构均由BERT组成,因此两者完全可以使用同等大小的参数规模。但这样会导致预训练的时间大约为单个模型的两倍。为了提高预训练的效率,在ELECTRA中生成器的参数量要小于判别器。具体实现时会减小生成器中Transformer的隐含层维度、全连接层维度和注意力头的数目。对于不同模型规模的判别器,其缩放比例也不同,通常在1/4~1/2之间。以ELECTRA-base模型为例,缩放比例是1/3。下表展示了
ELECTRA-base 模型的生成器和判别器的各项参数大小对比。
 

为什么是减小生成器的大小,而不是判别器的大小?因为上文讲到生成器只会在预训练阶段使用,而在下游任务精调阶段是不使用的,因此减小生成器的大小是合理的。
 
(2)参数共享 为了实现更灵活的建模目的,ELECTRA首先引入了词向量因式分解方法,通过全连接层将词向量维度映射到隐含层维度。由于上面讲到,ELECTRA使用了一个更小的生成器,因此生成器和判别器之间无法直接进行参数共享。在ELECTRA中,参数共享只限于输入层权重,其中包括词向量和位置向量矩阵。


http://www.ppmy.cn/news/106220.html

相关文章

【1110. 删点成林】

来源:力扣(LeetCode) 描述: 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的…

L1频段卫星导航射频前端低噪声放大器芯片 AT2659/AT2659S

AT2659 是一款具有高增益、低噪声系数的低噪声放大器(LNA)芯片,支持L1频段多模式全球卫星定位,可以应用于GPS、北斗二代、伽利略、Glonass等GNSS导航接收机中。芯片采用先进的SiGe工艺制造,采用1.5 mm X 1 mm 0.78 mm的…

【九】设计模式~~~结构型模式~~~外观模式(Java)

【学习难度:★☆☆☆☆,使用频率:★★★★★】 4.1. 模式动机 不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最…

C++ 中的运算符,包括三目运算符,关系和逻辑运算符,地址运算符等等(C++复习向p8)

算术运算符 加减乘除 */&#xff1a;略取模运算符 %&#xff1a; 比如 10 % 42自增运算符 &#xff1a;给自己加1自减运算符 —&#xff1a;给自己减1 关系运算符 “” 是否相等“!” 是否不等“>” 是否大于“<” 是否小于 逻辑运算符 && 逻辑与&#xff0…

视频里的声音怎么转换成音频?

视频里的声音怎么转换成音频&#xff1f;这样我们就能把视频里的想要的声音在其他音频平台播放或是用于其他视频。其实视频提取音频是一种将视频文件中的音频数据分离出来的技术。该技术可以将视频中的音频转换为不同的格式&#xff0c;让我们可以在无需视频的情况下使用音频文…

前端还是后端,该怎么选择

在计算机科学领域&#xff0c;前端和后端是两个常见的方向&#xff0c;它们各自拥有独特的特点和职责。本文将对前端和后端进行比较&#xff0c;并总结哪些人适合前端&#xff0c;哪些人适合后端。 一、前端 前端开发主要涉及构建用户界面&#xff0c;处理用户交互和用户体验…

CompletableFuture详细介绍及方法使用示例(二)

CompletableFuture详细介绍及方法使用示例(一) CompletableFuture 相比于 Future的优缺点 优点&#xff1a; 异步执行&#xff1a;CompletableFuture 可以异步执行任务&#xff0c;并在任务完成后返回结果&#xff0c;减少线程等待时间&#xff0c;提高了程序的并发性能。 异…

美团二面:细数 Redis 阻塞的9种情况

前两天去美团面试的陈同学回来了&#xff0c;看他满脸泄气的样子&#xff0c;准是没拿到 Offer。 听了他面试的经过&#xff0c;真替他感到惋惜。究其原因&#xff0c;是被一道面试题拦住了去路&#xff1a;看你简历上写着精通 Redis&#xff0c;请你总结一下 Redis 中存在的阻…