原创 | 一文读懂Transformer

Transformer模型凭借自注意力机制在机器翻译任务中展现出优越性能,通过多头注意力、全连接前馈网络和位置编码,解决了长序列依赖问题。相比RNN和CNN,Transformer具有更短的前向和后向信号路径,更适合并行计算,训练速度快。在WMT2014英德、英法翻译任务中,Transformer模型取得了最佳BLEU分数。
摘要由CSDN通过智能技术生成

467065ee149161d38bc7205f6cdb1ab0.png

作者:陈之炎

本文约3500字,建议阅读7分钟
Transformer 是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。

主流的序列到序列模型是基于编码器-解码器的循环或卷积神经网络,注意力机制的提出,优化了编解码器的性能,从而使得网络性能达到最优。利用注意力机制构建出新的网络架构Transformer, 完胜了循环或卷积神经网络。Transformer 是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。Transformer可以并行训练,训练时间更短。

1 Transformer的模型架构

序列到序列模型采用的是编码器-解码器结构,编码器将输入序列(,,……,映射成符号表示z=(,,……,,根据给定的Z ,解码器生成输出序列(,,……,,在每一个步长里,模型利用前一个步长中生成的向量和该步长的输入,生成输出符号。

Transformer模型架构如图1-1所示,编码器-解码器结构采用堆叠的多头注意力机制加全连接层,图中左边的是编码器结构,右边的是解码器结构:

aceeee62549930b6afb18eee6d65eeb2.png

图 1-1    堆叠的编码器-解码器结构(来源:网络)

编码器:编码器由6个相同的块结构堆叠而成 N=6,每个块结构进一步分成两个子层:即一个多头的自注意力机制和一个前馈网络全连接层,在块中的每一个子层之后,增加一个归一化层(Add&Norm),每个子层的输出均为归一化的LayerNorm(x + Sublayer(x)),包括词嵌入层,模块中所有子层的输出的维数均为512,即 = 512。

解码器:同理,解码器也由6个相同的块结构堆叠而成 N=6,每个块结构在编码器两个子层的基础之上,增加了第三个子层,即增加了一个多头自注意力子层。与编码器类似,在块中的每一个子层之后,增加一个归一化层(Add&Norm)。在解码器端,对解码器堆栈中的自注意力子层进行了修改,以防止位置编码和后续位置编码相关,通过这种掩蔽,确保了对位置i的预测只能依赖于小于i的位置的已知输出。

2 Self-attention 自注意力机制

Attention 函数将三元组Q(Query)、K(Key)、V(Value) 映射成输出,其中三元组Q(Query)、K(Key)、V(Value)和输出均为向量,输出是V(Value)的加权和,其中的权重是Q(Query)和K(Key)对应的组合计算出来的数值。

1)带缩放的点积注意力机制Scaled dot-product attention

带缩放的点积注意力机制(Scaled dot-product attention )的公式如下:

1514e3ba225bc30f7766a409712cf7e5.png

在上面公式中Q和K中的向量维度都是,V的向量维度是b4a42fe8acd75081a88c58188d4865e1.png,计算所有K向量和Q向量的点积,分别除以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值