0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解一种简单而有效的Transformer提升技术

深度学习自然语言处理 来源:南大NLP 作者:NAACL2021 吴震 2021-04-09 09:50 次阅读

01研究背景及动机

近些年,Transformer[1]逐渐成为了自然语言处理中的主流结构。为了进一步提升Transformer的性能,一些工作通过引入额外的结构或知识来提升Transformer在特定任务上的表现。尽管如此,过参数化(over-parameterization)和过拟合(overfitting)一直是Transformer中的一个显著问题。作为一种正则化技术,Dropout常被用来缓解模型的过拟合问题[2]。和引入额外结构或知识的工作相比,dropout的一个优势是不需要额外的计算开销和外部资源。因此,本文的出发点在于,能否通过融合不同的dropout技术来进一步提升Transformer的性能甚至达到state-of-the-art效果?

为此,我们提出UniDrop技术,从细粒度到粗粒度将三种不同层次的dropout整合到Transformer结构中,它们分别为feature dropout、structure dropout和data dropout 。Feature dropout (FD),即传统的dropout技术[2],通常应用在网络的隐层神经元上。Structure dropout (SD)是一种较粗粒度的dropout,旨在随机drop模型中的某些子结构或组件。Data dropout (DD)作为一种数据增强方法,通常用来随机删除输入sequence的某些tokens。在UniDrop中,我们从理论上分析了这三层dropout技术在Transformer正则化过程中起到了不同的作用,并在8个机器翻译任务上和8个文本分类任务上验证了UniDrop的有效性。

02UniDrop

2.1Transformer结构

UniDrop旨在提升Transformer的性能。在UniDrop中,feature dropout和structure dropout的使用与网络结构密切相关。因此,我们简单回顾Transformer的网络结构。

f27843de-98d3-11eb-8b86-12bb97331649.png

图1:标准Transformer结构和Feature Dropout

如图1(a)所示,Transformer由多个相同的block堆叠而成,每个block包含两个sub-layer,分别为multi-head self-attention layer和position-wise fully connected feed-forward layer,每个sub-layer后都使用了残差连接和层正则(Add&Norm)。

Multi-head Attention:Multi-head attention sub-layer包含多个并行的attention head,每个head通过带缩放的点乘attention将query Q和键值对K、V映射乘输出,如下式所示:

f2b1ba60-98d3-11eb-8b86-12bb97331649.png

多个head的输出最终被拼接在一起并做线性映射作为最终的multi-head attention输出。

Position-wise Feed-Forward:这一层主要包含两个线性映射和一个ReLU激活函数:

f2beb904-98d3-11eb-8b86-12bb97331649.png

2.2Feature Dropout

如前所述,Feature Dropout (FD)即传统的dropout技术[2],可以以一定的概率随机抑制网络中的某些神经元。实际上,在标准的Transformer实现中,每个sub-layer后都默认配置了dropout。除此之外,Transformer也在multi-head attention和feed-forward network的激活函数层添加了dropout,本文将探索它们对Transformer性能的影响:

FD-1 (attention dropout):根据公式(1),在multi-head attention中,我们可以获得attention权重A=QKT,feature dropout FD-1被应用在attention权重A上。

FD-2 (activation dropout):FD-2被应用在feed-forward network sub-layer两层线性变换间的激活函数上。

除了上面已有的feature dropout,我们在预实验中发现Transformer仍有过拟合的风险。因此,我们额外提出两种feature dropout添加到Transformer结构中:

FD-3 (query, key, value dropout):FD-1直接应用在attention权重A上,表示token i和token j之间的connection有可能被drop,一个更大的FD-1值意味着更大的概率失去sequence中一些关键的connection。为了缓解这种风险,我们在attention之前的query Q、key K和value V上分别添加了dropout。

FD-4 (output dropout):我们在softmax分类的线性映射前也添加了dropout。具体而言,对sequence2sequence任务,我们将FD-4添加到Transformer decoder中,对于文本分类任务我们将FD-4添加到Transformer encoder中。

2.3Structure Dropout

为了提升Transformer的泛化性,之前的工作已经提出了两种Structure Dropout (SD),分别是LayerDrop[3]和DropHead[4]。DropHead通过随机舍弃一些attention head,从而防止multi-head attention机制被某些head主导,最终提升multi-head attention的泛化性。相比之下,LayerDrop是一种更高级别的结构dropout,它能随机舍弃Transformer的某些层,从而直接降低Transformer中的模型大小。通过预实验分析,我们将LayerDrop添加到我们的UniDrop中。

2.4Data Dropout

Data Dropout (DD)以一定的概率p随机删除输入序列中tokens。然而,直接应用data dropout很难保留原始高质量的样本,对于一个长度为n的sequence,我们保留住原始sequence的概率为(1-p)n,当n较大时,这个概率将会非常低。失去原始高质量样本对很多任务都是不利的。为了保留原始高质量的样本,同时又能利用data dropout进行数据增强,我们在UniDrop中提出了一个2-stage data dropout方案。对于给定的sequence,我们以一定的概率 pk保留原始的样本,当data dropout被应用时(概率为1- pk),我们以预定的概率p来随机删除序列中的tokens。

2.5UniDrop整合

最终,我们将上面三种不同粒度的dropout技术集成到我们的UniDrop中,并从理论上分析了feature dropout、structure dropout、data dropout能够正则Transformer的不同项并且不能相互取代,具体分析可参考论文。Figure 2是UniDrop的简单示例。

f2d2db1e-98d3-11eb-8b86-12bb97331649.png

图2:UniDrop示例

03实验与分析

我们在序列生成(机器翻译)和文本分类两个任务上来验证UniDrop的性能。

3.1神经机器翻译

我们在IWSLT14数据集上进行了机器翻译实验,共4个语言对,8个翻译任务,baseline为标准的Transformer结构,实验结果如表1所示:

f33983a0-98d3-11eb-8b86-12bb97331649.png

表1:不同模型在IWSLT14翻译任务上的结果

可以看到,相比于标准的Transformer,我们的UniDrop在所有任务翻译任务上都取得了一致且显著的提升。为了验证UniDrop中每种dropout的作用,我们进行了ablation study实验,也在标准Transformer添加单一的dropout去验证它们的性能。从结果看,FD、SD和DD都能在一定程度上提升Transformer的性能,并能够协同工作,最终进一步提升Transformer的泛化性。

为了进一步验证UniDrop的优越性,我们也在广泛被认可的benchmarkIWSLT14 De→En翻译任务上和其他系统进行了对比。这些系统从不同的方面提升机器翻译,如训练算法设计(Adversarial MLE)、模型结构设计(DynamicConv)、引入外部知识(BERT-fused NMT)等。可以看到,我们的Transformer+UniDrop仍然显著超过了其他系统。

f371701c-98d3-11eb-8b86-12bb97331649.png

表2:不同系统在IWSLT14 De→En翻译任务上的表现

3.2文本分类

对于文本分类任务,我们以RoBERTaBASE作为backbone,在4个GLUE数据集上和4个传统的文本分类数据集上进行了实验,结果如表3和表4所示:

f386802e-98d3-11eb-8b86-12bb97331649.png

表3:不同模型在GLUE tasks (dev set)上的准确率

f39a732c-98d3-11eb-8b86-12bb97331649.png

表4:不同模型在传统文本分类任务上的准确率

可以看到,作为一个强大的预训练模型,RoBERTaBASE显著超过了其他方法。即使如此,UniDrop仍然能够进一步提升RoBERTaBASE的性能,这进一步验证了UniDrop对Transformer模型的有效性。

3.3分析

为了展现UniDrop能够有效防止Transformer过拟合,我们画出了不同模型在IWSLT14 De→En翻译验证集上的loss曲线,如图3所示:

f3b2636a-98d3-11eb-8b86-12bb97331649.png

图3:不同模型在IWSLT14 De→En翻译上的dev loss

可以看到,标准的Transformer结构随着训练轮数的增加,很容易出现过拟合现象。相比之下,FD、SD、DD都在一定程度上缓解了Transformer的过拟合问题。在所有对比模型中,我们的UniDrop取得了最低的dev loss,并且dev loss能持续下降,直到训练结束。综合来看,UniDrop在预防Transformer过拟合问题上取得了最好的表现。

此外,我们也进行了细粒度的ablation study实验来探究不同的feature dropout以及我们2-stage data dropout对Transformer性能的影响,结果如表5所示:

f4117ee0-98d3-11eb-8b86-12bb97331649.png

表5:Ablation Study

可以看到,FD-3比FD-1带来更多的提升,这也验证了我们之前的分析,仅使用FD-1对提升multi-head attention的泛化性来说是不够的。另外,表5表明我们提出的2-stage data dropout策略对提升性能是有帮助的,这体现了保留原始高质量样本的必要性。

04总结与展望

过拟合是Transformer结构中一个常见的问题,dropout技术常被用来防止模型过拟合。本文中,我们提出了一种集成的dropout技术UniDrop,它由细粒度到粗粒度,将三种不同类型的dropout(FD、SD、DD)融合到Transformer结构中。我们从理论上分析UniDrop中的三种dropout技术能够从不同的方面防止Transformer过拟合,在机器翻译和文本分类任务上的实验结果也体现了UniDrop的有效性和优越性,更重要的,它不需要额外的计算开销和外部资源。更多的细节、结果以及分析请参考原论文。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Dropout
    +关注

    关注

    0

    文章

    13

    浏览量

    10051
  • Transformer
    +关注

    关注

    0

    文章

    143

    浏览量

    5997
  • 自然语言处理

    关注

    1

    文章

    618

    浏览量

    13553

原文标题:UniDrop:一种简单而有效的Transformer提升技术

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一种使用LDO简单电源电路解决方案

    本期我们介绍一种使用LDO简单电源电路解决方案,该方案可以处理12V/24V、多节锂离子电池和4节干电池等相对较高的输入电压。
    的头像 发表于 12-04 16:05 320次阅读
    <b class='flag-5'>一种</b>使用LDO<b class='flag-5'>简单</b>电源电路解决方案

    自动驾驶中直说的BEV+Transformer到底是个啥?

    (Bird’s Eye View)+Transformer”是两个方向的技术,BEV是一种全新的3D坐标系,而Transformer则是一种
    的头像 发表于 11-07 11:19 372次阅读
    自动驾驶中<b class='flag-5'>一</b>直说的BEV+<b class='flag-5'>Transformer</b>到底是个啥?

    一种简单高效配置FPGA的方法

    本文描述了一种简单高效配置FPGA的方法,该方法利用微处理器从串行外围接口(SPI)闪存配置FPGA设备。这种方法减少了硬件组件、板空间和成本。
    的头像 发表于 10-24 14:57 561次阅读
    <b class='flag-5'>一种</b><b class='flag-5'>简单</b>高效配置FPGA的方法

    英伟达推出归Transformer,革命性提升LLM训练速度

    英伟达团队近日在AI领域投下了枚震撼弹,他们提出了一种全新的神经网络架构——归Transformer(nGPT)。这创新架构基于超球
    的头像 发表于 10-23 11:30 370次阅读

    重启解决PLC故障的具体表现

    重启PLC作为一种简单而有效的故障排除手段,往往能够解决许多临时性或软件层面的故障。
    的头像 发表于 08-30 14:16 614次阅读

    一种供电总线技术POWERBUS二总线

    首先给大家介绍一种总线技术Powerbus总线,特性: 1.总线可供电,通讯和供电无需电气隔离 2.总线抗干扰能力强,可与市电并走 3.可支持总线电流20A(2400bps) 4.具备总线短路保护
    发表于 07-23 13:38

    Transformer能代替图神经网络吗

    Transformer作为一种在处理序列数据方面表现出色的深度学习模型,自其提出以来,已经在自然语言处理(NLP)、时间序列分析等领域取得了显著的成果。然而,关于Transformer是否能完全代替图神经网络(GNN)的问题,需
    的头像 发表于 07-12 14:07 446次阅读

    一种简单的降压式开关稳压器LM2575数据表

    电子发烧友网站提供《一种简单的降压式开关稳压器LM2575数据表.pdf》资料免费下载
    发表于 04-23 11:23 0次下载
    <b class='flag-5'>一种</b><b class='flag-5'>简单</b>的降压式开关稳压器LM2575数据表

    如何成为名嵌入式C语言高手?

    。 三、通过实践项目提升技能理论知识是建立在实践基础之上的。选择些小型的嵌入式项目,例如LED闪烁、温度监测等简单的应用,将所学的C语言知识应用到实际中。通过实践,你可以了解如何将C语言程序移植到嵌入式
    发表于 04-07 16:03

    如何成为名嵌入式C语言高手?

    。 三、通过实践项目提升技能理论知识是建立在实践基础之上的。选择些小型的嵌入式项目,例如LED闪烁、温度监测等简单的应用,将所学的C语言知识应用到实际中。通过实践,你可以了解如何将C语言程序移植到嵌入式
    发表于 03-25 14:12

    简单而有效的晶体管/二极管测试电路

    晶体管和二极管是电子产品的基本组件,在许多电路设计中发挥着重要作用。在将这些有源元件集成到电路中时,确保它们正常工作至关重要。因此,必须有一种可靠的方法来测试晶体管和二极管。
    的头像 发表于 02-25 15:21 725次阅读
    <b class='flag-5'>一</b>个<b class='flag-5'>简单</b><b class='flag-5'>而有效</b>的晶体管/二极管测试电路

    详解Transformer神经网络模型

    Transformer模型在强化学习领域的应用主要是应用于策略学习和值函数近似。强化学习是指让机器在与环境互动的过程中,通过试错来学习最优的行为策略。
    发表于 02-20 09:55 1.4w次阅读
    <b class='flag-5'>一</b>文<b class='flag-5'>详解</b><b class='flag-5'>Transformer</b>神经网络模型

    Transformer压缩部署的前沿技术:RPTQ与PB-LLM

    随着人工智能技术的迅速发展,Transformer在自然语言处理、机器翻译、问答系统等领域取得了显著的性能提升
    的头像 发表于 01-24 14:05 1188次阅读
    <b class='flag-5'>Transformer</b>压缩部署的前沿<b class='flag-5'>技术</b>:RPTQ与PB-LLM

    一种简单易行的可编程振荡器构建方法

    本文介绍一种简单易行的可编程振荡器构建方法,其中振荡频率和幅度可以通过使用digiPOT来彼此独立地调节。
    发表于 01-15 10:05 238次阅读
    <b class='flag-5'>一种</b><b class='flag-5'>简单</b>易行的可编程振荡器构建方法

    如何提升单片机开发技术

    单片机开发是现代电子技术中的重要分支,其在各个领域都有着广泛的应用。单片机开发技术提升不仅可以提高工作效率,还可以提高工作质量和创新能力。那么,如何提升单片机开发
    发表于 01-05 10:14