Attention Is All You Need论文解读

基本信息

作者Ashish Vaswanidoi
发表时间2017期刊NIPS
网址https://doi.org/10.48550/

研究背景

1. What’s known 既往研究已证实
使用RNN(循环神经网络)来处理机器翻译任务。RNN本轮的输入状态取决于上一轮的输出状态,这使RNN的计算必须串行执行。因此,RNN的训练通常比较缓慢。

2. What’s new 创新点
基于注意力的"encoder-decoder"架构。
允许模型扩展到比训练中遇到的序列长度更长的序列。

3. What’s are the implications 意义
提升训练的并行度,不受序列距离的限制;训练更快,表现更强。

研究方法

1. 模块1:Positional Embedding
把位置信息加入到输入向量中,transformer中使用正余弦波来计算PE:
在这里插入图片描述
在这里插入图片描述

2. 模块2:Multi-Head Attention
在这里插入图片描述
input(输入向量与位置向量的和)通过线性层映射出Q、K、V。
经过MatMul计算 Q ∗ KT得到scores(L*L的矩阵)。
之后通过Scale进行正则化,除以在这里插入图片描述

在这里插入图片描述
经过mask:使用一个很小的值,对指定位置进行覆盖填充。
在这里插入图片描述softmax:转换为概率。
在这里插入图片描述
最后MatMul: 这步使用softmax后的概率值与V矩阵做矩阵乘法。
在这里插入图片描述
Multi-Head:比如Q、K、V分为8段,每组Q、K、V通过Scaled Dot-Product Attention计算出结果,然后把这8个结果再拼成一个结果,就multi-head的结果。
3. 模块3:ADD
把模块2的输入矩阵与模块2的输入矩阵的对应位置做加法运算。
4. 模块4:Layer Normalization
根据 x = a ∗在这里插入图片描述
对x的分布进行调整。
5. 模块5:Feed Forward NetWork
前馈网络,其实就是MLP。
6. 模块6:Masked Multi-Head Attention
预测第N个字时,第N(包括)个字之后的字都masked掉。
7. 模块7:Multi-Head Attention
模块7的输入有两个,一个是decoder的输入经过第一个大模块传过来的值(为了方便,我们叫它input_x),一个是encoder最终结果(我们暂叫它input_memory), 模块7是把input_x通过一个linear映射成了Q,然后通过两个linear把input_memory映射成K、V,其它的与模块2完全一致。
在这里插入图片描述
8. 模块8:Linear
transformer decoder的输出从dmodel维度映射到词表大小的维度。(即全连接层,前向传播,转化成你需要的形状)
9. 模块9:SoftMax
输出转化成概率,对应到某个字的概率。

  1. 单词向量优于以前的技术状态。
  2. 使用非常简单的模型架构可以训练高质量的词向量。计算复杂性低,可从更大的数据集中计算非常精确的高维词向量。
  3. 通过Word2vec训练出的词向量可以用于许多自然语言处理任务,例如词义相似度计算、命名实体识别和情感分析等。

个人思考与启发

  1. 使用sin和cos函数生成的位置编码不依赖于序列的长度,它也可以让模型很容易地通过相对位置来学习。sin和cos有周期性,而词在句子中的位置通常表现出周期性。
  2. 整个结构中的其中一个小模块或许可以提取出来去解决其他问题,并且还能减少计算量,提高速度。
    参考文章:https://blog.csdn.net/nocml/article/details/110920221
    https://zhuanlan.zhihu.com/p/569527564

    transformer pytorch 代码实现:https://blog.csdn.net/nocml/article/details/124489562

重要图

文献中重要的图记录下来
transformer的基本结构

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值