ELECTRA模型精讲

本文转载自公众号夕小瑶的卖萌屋,专业带逛互联网算法圈的神操作

-----》我是传送门

关注后,回复以下口令:

回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)

回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)

回复【0511】:领取算法岗面试手册(刷offer神器)

回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)

还记得去年写下《ELECTRA: 超越BERT, 19年最佳NLP预训练模型》时兴奋的心情,在我等到都快复工的时候,终于看到了它的身影和源码[1]:

才第五吗?没事,期望越大,失望越大

谷歌在github放出的预训练模型效果是这样的:

燃!鹅!在论文中声称的效果却是这样的

Github repo中官方的解释是精调的震荡比较大,他们测试了很多随机种子后取了中位数。

那么问题来了,为什么论文中没有取中位数呢(* ̄m ̄)?

虽然ELECTRA的思想仍是很惊艳的,但这样的结果不免让我们对原论文的数据产生质疑。

不过,有了word2vec和transformer的大家都懂的前车之鉴,我们这一次也理解为瑕不掩瑜了(* ̄m ̄)

回顾目前单模型的进展(只参考原论文数据):

如果按照github中给出的85.2,ELECTRA跟RoBERTa还是有很大差距的。那今天我们就来分析一下ELECTRA的优点和缺陷,如果对文中的观点有质疑,请在评论区一起讨论~


PS:不了解这个模型的同学可以先看第二章ELECTRA简介~

后台回复【electra】获取论文PDF噢~~

ELECTRA优缺点

通过自己的思考和知乎大佬们的提点[2],ELECTRA主要有如下优点:

  • 任务难度的提升(知乎@香侬科技)

原始的MLM任务是随机进行mask,样本预测难度是不一样的,比如“夕小瑶的卖[MASK]屋”和“夕[MASK]瑶的卖萌屋”中,卖萌是比较常见的词语,而夕小瑶则是命名实体,没见过的话更难预测出来。生成器相当于对输入进行了筛选,使判别器的任务更难,从而学习到更好的表示

  • 效率的提升(知乎@徐啸)

运算上,判别器进行2分类而不是V分类,复杂度降低。参数利用上,判别器不需要对完整的数据分布进行建模,作者在实验中也发现越小的模型提升越明显,可见参数被更完整地训练了

  • Token自身信息的利用(知乎@Towser)

做MLM的任务时,都是mask掉token自身,利用上下文对自己进行预测。而ELECTRA是同时利用自身和上下文预测,和NLU任务的Finetune阶段也比较一致

  • 收敛速度

从论文中的分析实验来看:

(1)ELECTRA 15%:让判别器只计算15% token上的损失

(2)Replace MLM:两个生成器。一个生成器替换被mask的token,另一个生成器用替换后的输入继续进行15%的MLM训练。这样可以消除这种pretrain-finetune之间的diff

(3)All-Tokens MLM:同Replace MLM,只不过BERT的目标函数变为预测所有的token,为了防止信息泄露加入了copy机制,以D的概率直接拷贝输入,以1-D的概率预测新token,相当于ELECTRA和BERT的结合

可以发现,对效果提升最重要的其实是all-tokens的loss计算,这种方式相比只计算15%的token,大大增加了模型收敛速度。

虽然ELECTRA有很多优点,但个人认为它还有以下缺陷:

  • 显存占用增多

之前都是训一个BERT,现在相当于两个,即使共享参数去训练,由于Adam等优化器的关系,需要保存的中间结果数量也是翻倍的。

  • 多任务学习超参数调整

ELECTRA的loss由生成器和判别器分别构成,原文中给判别器loss的权重是50,因为二分类的loss会比V分类低很多。但这个数值太过绝对,最好是变成可学习的参数动态调整。

ELECTRA简介

模型结构

ELECTRA的全称是Efficiently Learning an Encoder that Classifies Token Replacements Accurately,以1/4的算力就达到了RoBERTa的效果。模型结构如下:

Generator和Discriminator可以看作两个BERT,生成器的任务是MLM,判别器的任务是Replaced Token Detection,判断哪个字被替换过。

但上述结构有个问题,输入句子经过生成器,输出改写过的句子,因为句子的字词是离散的,所以梯度在这里就断了,判别器的梯度无法传给生成器,于是生成器的训练目标还是MLM(作者在后文也验证了这种方法更好),判别器的目标是序列标注(判断每个token是真是假),两者同时训练,但判别器的梯度不会传给生成器,目标函数如下:

因为判别器的任务相对来说容易些,RTD loss相对MLM loss会很小,因此加上一个系数,作者训练时使用了50。

另外要注意的一点是,在优化判别器时计算了所有token上的loss,而以往计算BERT的MLM loss时会忽略没被mask的token。作者在后来的实验中也验证了在所有token上进行loss计算会提升效率和效果。

事实上,ELECTRA使用的Generator-Discriminator架构与GAN还是有不少差别,作者列出了如下几点:

实验及结论

创新总是不易的,有了上述思想之后,可以看到作者进行了大量的实验,来验证模型结构、参数、训练方式的效果。

  • Weight Sharing

生成器和判别器的权重共享是否可以提升效果呢?作者设置了相同大小的生成器和判别器,在不共享权重下的效果是83.6,只共享token embedding层的效果是84.3,共享所有权重的效果是84.4。作者认为生成器对embedding有更好的学习能力,因为在计算MLM时,softmax是建立在所有vocab上的,之后反向传播时会更新所有embedding,而判别器只会更新输入的token embedding。最后作者只使用了embedding sharing。

  • Smaller Generators

从权重共享的实验中看到,生成器和判别器只需要共享embedding的权重就足矣了,那这样的话是否可以缩小生成器的尺寸进行训练效率提升呢?作者在保持原有hidden size的设置下减少了层数,得到了下图所示的关系图:

可以看到,生成器的大小在判别器的1/4到1/2之间效果是最好的。作者认为原因是过强的生成器会增大判别器的难度(判别器:小一点吧,我太难了)。

  • Training Algorithms

实际上除了MLM loss,作者也尝试了另外两种训练策略:

(1) Adversarial Contrastive Estimation:ELECTRA因为上述一些问题无法使用GAN,但也可以以一种对抗学习的思想来训练。作者将生成器的目标函数由最小化MLM loss换成了最大化判别器在被替换token上的RTD loss。但还有一个问题,就是新的生成器loss无法用梯度下降更新生成器,于是作者用强化学习Policy Gradient的思想,将被替换token的交叉熵作为生成器的reward,然后进行梯度下降。强化方法优化下来生成器在MLM任务上可以达到54%的准确率,而之前MLE优化下可以达到65%。

(2) Two-stage training:即先训练生成器,然后freeze掉,用生成器的权重初始化判别器,再接着训练相同步数的判别器。

对比三种训练策略,得到下图:

可见“隔离式”的训练策略效果还是最好的,而两段式的训练虽然弱一些,作者猜测是生成器太强了导致判别任务难度增大,但最终效果也比BERT本身要强,进一步证明了判别式预训练的效果。

  • Small model? Big model?

模型的效果可以参考文首的图片,ELECTRA-Small仅用14M参数量,以前13%的体积,就接近了BERT-Base的效果。ELECTRA-Base更是超越了BERT-Large。由于时间和精力问题,作者们没有把ELECTRA训练更久(应该会有提升),也没有使用各种榜单Trick,所以真正的GLUE test上表现一般。

后台回复【electra】获取论文PDF噢~~

本文转载自公众号夕小瑶的卖萌屋,专业带逛互联网算法圈的神操作

-----》我是传送门

关注后,回复以下口令:

回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)

回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)

回复【0511】:领取算法岗面试手册(刷offer神器)

回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)

深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)ycszenSemantic Segmentation / changqianyu.me​关注他1,520 人赞同了该文章前言 (标题不能再中二了&#…

常用分词算法总结(字典、统计、神经网络)

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

阿里架构师进阶23期精讲:Redis、Kafka、Dubbo、Docker等

史上最全Redis面试49题(含答案):哨兵复制事务集群持久化等 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别 高并发架构系列:Redis为…

论文浅尝 | 变分知识图谱推理:在KG中引入变分推理框架

本文转载自公众号:机器之心。推理知识图谱中缺失的连接已经吸引了研究界的广泛关注。在本论文中,加州大学圣塔芭芭拉分校的王威廉等研究者在知识图谱推理中引入了变分推理框架,并将路径搜索和路径推理紧密结合从而进行联合推理,这…

机器学习中的最优化算法总结

https://zhuanlan.zhihu.com/p/42689565 机器学习中的最优化算法总结对于几乎所有机器学习算法,无论是有监督学习、无监督学习,还是强化学习,最后一般都归结为求解最优化问题。因此,最优化方法在机器学习算法的推导与实现中占据中…

以jieba为首的主流分词工具总结

工具篇 下面列了几个较为主流的分词工具(排名不分先后,大家自行试用),相关的paper请在订阅号「夕小瑶的卖萌屋」后台回复【中文分词】领取。 1 Jieba 说到分词工具第一个想到的肯定是家喻户晓的“结巴”中文分词,主…

mikechen详谈架构师成长之3大步骤

本文作者:陈睿|mikechen,优知学院创始人 这是架构师系列的第二篇文章 前文谈到架构师核心技能架构设计的重要性,如果你对架构师这个职位从技能的角度有比较清晰的认识,本篇文章将为你继续揭示架构师这个职位的成长周期。 在国内…

论文浅尝 | 二维卷积知识图谱嵌入

链接:https://arxiv.org/pdf/1707.01476.pdf本文主要关注 KG Link prediction 问题,提出了一种多层卷积神经网络模型 ConvE,主要优点就是参数利用率高(相同表现下参数是 DistMult 的8分之一,R-GCN 的 17 分之一&#x…

如何成为架构师?3条有效的实战经验

“ 希望你看完这一篇,能充分认知和了解架构师,认知对了,事就好办了。 01 架构师的准确定义 架构师的职责应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数&am…

ArchSummit2016干货分享+美团:即时物流调度平台实践+一点资讯:兴趣引擎-深度融合搜索和推荐+阿里-智能问答系统的实践

** 2015年7月 ** 加入滴滴打车3个半月,感觉遇到和解决的技术问题超过之前1年的。写在这里给大家分享。 滴滴这边负责所有策略算法设计的是“策略组”,大概有20几个员工。由于滴滴的业务线越来越多(出租车,专车,快车&…

论文浅尝 | 使用变分推理做KBQA

Yuyu Zhang, Hanjun Dai, Zornitsa Kozareva, Alexander J.Smola, and Le Song: Variational Reasoning for Question Answering with KnowledgeGraph. AAAI 2018链接:https://arxiv.org/abs/1709.04071本文提出了一个可端到端训练的 KBQA 框架,可以在模…

史上最全Git学习教程

Git是世界上最先进的分布式版本控制系统,没有之一。 —— Git爱好者 Git 是一个「分布式版本管理工具」,其具备太多的优点:更方便的 Merge、更方便的管理、更健壮的系统、对网络的依赖性更低、更少的“仓库污染” 等等,这使得Git…

阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制

摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。 随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文…

深入解析GBDT二分类算法(附代码实现)

目录: GBDT分类算法简介 GBDT二分类算法 2.1 逻辑回归的对数损失函数 2.2 GBDT二分类原理 GBDT二分类算法实例 手撕GBDT二分类算法 4.1 用Python3实现GBDT二分类算法 4.2 用sklearn实现GBDT二分类算法 GBDT分类任务常见的损失函数 总结 Reference 本文的主要…

论文浅尝 | 动态词嵌入

Citation: Bamler R, Mandt S. Dynamic word embeddings.InInternational Conference on Machine Learning 2017 Jul 17 (pp. 380-389).URL:http://proceedings.mlr.press/v70/bamler17a/bamler17a.pdf动机语言随着时间在不断演化,词语的意思也由于文化的…

滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型

国际数据挖掘领域的顶级会议 KDD 2018 在伦敦举行,今年 KDD 吸引了全球范围内共 1480 篇论文投递,共收录 293 篇,录取率不足 20%。其中滴滴共有四篇论文入选 KDD 2018,涵盖 ETA 预测 (预估到达时间) 、智能派单、大规模车流管理等…

Keyword-BERT——问答系统中语义匹配的杀手锏

引子 问&答 是人和人之间非常重要的沟通方式,其关键在于:我们要理解对方的问题,并给出他想要的答案。设想这样一个场景,当你的女朋友or老婆大人在七夕前一晚,含情脉脉地跟你说 亲爱的,七夕快到了&…

阿里P8架构师谈:Docker简介、组成架构、使用步骤、以及生态产品

Docker简介 Docker是DotCloud开源的、可以将任何应用包装在Linux container中运行的工具。 Docker基于Go语言开发,代码托管在Github上,目前超过10000次commit。 基于Docker的沙箱环境可以实现轻型隔离,多个容器间不会相互影响;D…

研讨会 | 知识图谱前沿技术课程暨学术研讨会(武汉大学站)

知识图谱作为大数据时代重要的知识表示方式之一,已经成为人工智能领域的一个重要支撑。4月28日,“武汉大学信息集成与应用实验室”与“复旦大学知识工场实验室”联合举办“知识图谱前沿技术课程暨学术研讨会”,将结合知识图谱学界研究与业界应…

LayerNorm是Transformer的最优解吗?

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…