神经翻译笔记7. Transformer

本文深入探讨Transformer模型,介绍了其体系结构,包括多头注意力机制、位置编码、前馈网络等核心组件。Transformer摒弃了RNN和CNN,利用注意力机制提升了长距离依赖的建模能力,成为机器翻译和NLP领域的里程碑。
摘要由CSDN通过智能技术生成

神经翻译笔记7. Transformer

编码器-解码器架构,是使用神经网络方法作为机器翻译问题解决方案的基石,自问世以来广受关注,也获得了比较大的成功。然而,这种架构主要使用是RNN,而由前面对RNN的介绍可知,这种网络在时刻 t t t的隐藏状态是由前一时刻的隐藏状态和该时刻的输入共同计算得出,因此不太好并行化,在句子很长的时候容易陷入性能瓶颈。基于CNN的编码器试图解决这样的算力问题,但是如何学习长距离依赖又成为了一个难点。注意力机制使得模型能够对长距离依赖更好地建模,但是在被Bahdanau引入以后开始的一段时间该机制一直都紧密依附于底层的RNN,因此也受限于RNN按时间逐步展开的计算方式。对此,[Vaswani2017]提出了里程碑式的工作Transformer,发扬了注意力机制的优势,摒弃了RNN和CNN各自的弱点,将机器翻译的研究工作带入了一个新的时代。而在其基础上发展出来的BERT则更是将大部分NLP任务的SOTA效果提高到了一个新的高度

本文参考了如下资料

体系结构

本节所有配图如无特别说明均出自原文[Vaswani2017]

Transfromer架构图

上图给出了Transformer的整体结构,可见它仍然沿用了前述的编码器解码器架构(左为编码器,右为解码器),但是无论编码器和解码器都不再使用RNN,而是大量使用了注意力机制、残差连接 (图中的Add操作) 和层归一化 (图中的Norm操作)

  • 编码器包括了 N = 6 N=6 N=6个结构相同的层,每层由两部分(两个子层)构成,其一是多头自注意力机制,其二是一个全连接层。每个子层都会使用残差连接(图中的Add操作)然后接一个层归一化(图中的Norm操作),即各子层的输出为

    L a y e r N o r m ( x + S u b L a y e r ( x ) ) {\rm LayerNorm}(x + {\rm SubLayer}(x)) LayerNorm(x+SubLayer(x))

    其中 S u b L a y e r \rm SubLayer SubLayer是全连接操作或多头自注意力操作。编码器的所有向量(包括词向量)维度都为 d m o d e l = 512 d_{\rm model}=512 dmodel=512。残差连接的使用使得训练可以更加稳定,保留更多原始信息,尤其是在Transformer有很多子层的情况下。关于LayerNorm的使用,相关学者作了若干研究,将在后面单独发文讨论

  • 解码器也分 N = 6 N=6 N=6层,每层结构也都相同。其与编码器不同的结构主要有两点:其一,是自注意力部分使用了掩码,使解码到位置 i i i时解码器看不到该位置后面的内容;其二,是在自注意力部分和全连接部分中间插了一个对编码器输出的多头注意力子层

在图中可以见到有两个比较新,同时比较重要的概念:多头注意力 (Multi-head Attention) 和位置编码

多头注意力

在介绍多头注意力机制之前,有必要再厘清注意力机制的一般形式,以及Transformer基本单元对注意力机制的使用方法

注意力机制的一般形式

注意力机制本质是学习一个函数,其接受输入可以看作是一种查询query,给出的输出是值向量value的加权和,权重由query和键key一起计算并经过softmax归一化后得出,每个键与每个值一一对应。该函数的核心是一个打分函数 S c o r e \rm Score Score,作用可以看作是判定各键向量 k i \boldsymbol{k}_i ki与查询向量 q \boldsymbol{q} q的相似度。即

α i = exp ⁡ ( S c o r e ( q , k i ) ) ∑ j exp ⁡ ( S c o r e ( q , k j ) ) A t t e n t i o n ( q , K , V ) = ∑ i α i v i \begin{aligned} \alpha_i &= \frac{\exp({\rm Score}(\boldsymbol{q}, \boldsymbol{k}_i))}{\sum_j \exp({\rm Score}(\boldsymbol{q}, \boldsymbol{k}_j))} \\ {\rm Attention}(\boldsymbol{q}, \boldsymbol{K}, \boldsymbol{V}) &= \sum_i\alpha_i\boldsymbol{v}_i \end{aligned} αiAttention(q,K,V)=jexp(Score(q,kj))exp(Score(q,ki))=iαivi

如果不考虑键值分开的情况,例如[Meng2018]所提出的网络结构,对一般NMT模型都有 k = v \boldsymbol{k} = \boldsymbol{v} k=v。对于前述的使用RNN的编码器解码器架构,每个查询向量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值