【NIPS】经典论文Transformer速读

初识Transformer

Transformer最早由NIPS会议上Attention is all you need论文提出来,包含Encoder和decoder的一类结构,有区别于RNN,在大数据量的情况下效果显著优于RNN,Tranformer在机器翻译领域用的比较多。

Transformer结构

在这里插入图片描述
网络步骤:
1. 特征提取,获取embedding,包括词和位置,然后用表示向量X进行表示,多个表示向量X,得到整句话的表示向量矩阵,其中每一行为X。
Transformer使用全局信息,不能利用单词的顺序信息,所以需要位置embedding(绝对位置)
在这里插入图片描述
2. Encoder编码,使用6个encoder block对输入特征向量矩阵X进行编码,得到编码信息矩阵C。注意每个encoder block的输入输出矩阵维度都是完全一致的。

3. Decoder解码,编码信息矩阵c传到decoder,decoder逐词翻译,根据当前翻译的前面所有单词来翻译、预测下一个单词。在翻译到i单词的时候,需要把之后的单词给遮住Mask
在这里插入图片描述

自注意力机制 Self-Attention

在这里插入图片描述上图中的左右block分别为encoder和decoder。其中Multi-Head Attention由多个Self-Attention组成,对于decoder中有一个Multi-Head Attention是用于Masked。Add表示残差链接,Norm是Layer Normalization。

在这里插入图片描述
关键参数为矩阵Q(查询),K(键值),V(值),其作用是对输入(单词的向量表示矩阵)进行线性变化,乘上线性变换矩阵,得到QKV。再利用QKV计算Self-Attention的输出。
在这里插入图片描述
Softmax 计算每一个单词对于其他单词的 attention 系数,对矩阵的每一行进行 Softmax,即每一行的和都变为 1.

在这里插入图片描述Multi-Head Attention就是多层的self-Attention,最后通过Concat乘Linear变换得到输出Z

Decoder中的区别与Mask操作

第一个Multi-Head Attention
使用了Masked操作,第二个的k,V矩阵使用编码信息矩阵C来计算。

为什么使用Mask操作? 
因为实际翻译过程中,翻译第i个单词的时候不知道之后的单词的翻译。

Decoder怎么学习? 
类似于Teacher Forcing的并行化训练,计算出一个有遮挡的attention和softmax输出。
在这里插入图片描述第二个Multi-Head Attention
是为了让每个单词都可以使用上所有单词的信息。

怎么使用softmax进行预测?
在这里插入图片描述
因为mask的存在,单词0的输出Z只包含单词0的信息,所以softmax需要去根据输出矩阵的每一行预测下一个单词。

总结

  1. Transformer是并行结构,可以更好的并行训练(大数据下比RNN更好)
  2. embedding机制是因为transformer本身无法利用单词的顺序信息
  3. self-attention结构很重要,multi-head attention可以捕获多个维度下的attention score

Reference

  1. Transformer模型详解(图解最完整版) https://www.zhihu.com/people/zi-yang-yang-74-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值