Transformer结构解读-Attention is all you need


论文: 《Attention is all you need》
代码: https://github.com/tensorflow/tensor2tensor

创新点

作者提出一种新的简单网络结构,Transformer,其完全基于注意力机制,摒弃CNN与RNN。
我们的模型在 WMT 2014 英德翻译任务上达到了 28.4 BLEU,比现有的最佳结果提高了 2 BLEU 以上。

算法

Transformer结构如图1,左侧为encoder,右侧为decoder,
在这里插入图片描述

Encoder

编码器有6个(即为图1左侧N),每个结构包括:multi-head self-attention(MSA)和feed-forward network(FFN)。MSA及FFN引入残差网络解决退化问题;

MSA

MSA结构如图2,在这里插入图片描述
在self-attention中,每个单词有3个不同的向量,它们分别是Query向量(Q),Key向量( K )和Value向量( V ),长度均是64(每个head)。它们是通过3个不同的权值矩阵由嵌入向量 X 乘以三个不同的权值矩阵 Wq, Wk , Wv 得到,其中三个矩阵的尺寸也是相同的。均是 512 * 64 。 d m o d l e d_{modle} dmodle=512,由于含有8个head,因此dk为512/8=64。8个head拼接得到512。

Attention的计算方法如式1,整个过程可以分成7步:
1、将输入单词转化成嵌入向量;
2、根据嵌入向量得到 Q ∈ ( n , d k ) , K ∈ ( m , d k ) , V ∈ ( m , d v ) Q\in(n, d_k), K\in(m, d_k),V\in(m,d_v) Q(n,dk),K(m,dk),V(m,dv)三个向量;
3、为每个向量计算一个score(attention,相似度): score = Q * K ;
4、为了梯度的稳定,防止score过大,Transformer使用了score归一化,即除以 √ d k \surd d_k dk
5、对score按行施以softmax激活函数;
6、softmax点乘Value值 V ,得到加权的每个输入向量的评分 V ;
7、相加之后得到最终的输出结果 Z: Z = sum(V)。

在这里插入图片描述
在这里插入图片描述

Decoder

解码器有6个,每个结构包括:multi-head self-attention、feed-forward network以及masked multi-head attention。
masked multi-head attention防止看到句子当前位置后面单词,输入为上一个 Decoder block 的输出 Z,输出为Q (如果是第一个 Decoder block 则使用输入矩阵 X 进行计算)。
masked multi-head attention训练时第一个attention单元输入为x,通过mask确保第i个位置预测仅使用位置i之前信息,达到seq2seq目的。

multi-head self-attention中K、V使用编码器输出C计算得到 K, V;

FFN

feed-forward层, W 1 ∈ ( d m o d e l , d f f ) , W 2 ∈ ( d f f , d m o d e l ) W_1\in(d_{model}, d_{ff}), W_2\in(d_{ff},d_{model}) W1(dmodel,dff),W2(dff,dmodel),其中 d m o d e l = 512 , d f f = 2048 d_{model}=512,d_{ff}=2048 dmodel=512,dff=2048
FFN计算过程如式2,
在这里插入图片描述

Position Embedding

positional encoding作用是防止输入单词顺序调换,输出结果一致,表示词在句子中位置;
下一个位置的编码向量可以由前面的编码向量线性表示,等价于以一种非常容易学会的方式告诉了网络单词之间的绝对位置,让模型能够轻松学习到相对位置信息。
作者使用正余弦定理进行位置编码,
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值