【论文精读】transformer:Attention Is All You Need

论文题目:Attention Is All You Need(transformer)
时间:2017
来源:NIPS
论文链接:https://arxiv.org/abs/1706.03762

相关介绍

Seq2Seq模型

Seq2Seq模型是输出的长度不确定时采用的模型
基础的 Seq2Seq 包括Encoder、Decoder以及连接两者的中间状态向量C

NLP之Seq2Seq

softmax

在这里插入图片描述
其实就是计算每个部分在总体中的概率

RNN的局限性

RNN 由于要考虑之前的所有信息,训练非常慢
在这里插入图片描述
RNN 是看完所有的input之后再生成输出,很难进行平行计算(如图: a 1 , a 2 , a 3 , a 4 a^1,a^2,a^3,a^4 a1,a2,a3,a4是顺序进行的,然后顺序生成 b 4 , b 3 , b 2 , b 1 b^4,b^3,b^2,b^1 b4,b3,b2,b1
在这里插入图片描述
与之相对的是 CNN 计算,是每部分的同时进行(如图: a 1 , a 2 , a 3 , a 4 a^1,a^2,a^3,a^4 a1,a2,a3,a4是同时进行的)

解决对策

提出了一种新的简单的网络体系结构–Transformer,它完全基于注意力机制,完全不需要重复和卷积。

本文贡献(创新点)

在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时更具并行性,所需的训练时间明显减少。

  • 在WMT2014英译德翻译任务中达到了28.4%的BLEU,比现有的最好成绩(包括合奏)提高了2%以上。
  • 在WMT2014英法翻译任务上,我们的模型在8个GPU上进行了3.5d的培训后,建立了一个新的单一模型最先进的BLEU得分41.8%,这只是文献中最好的模型培训成本的一小部分。

什么时候可以用transformer模型

只要是是之前用 RNN 能做的,transformer都可以做
但是几乎可以不用考虑用这个作为应用创新点了,能做的方向几乎都已经有paper

模型

Encoder 部分

基本过程公式推导

  1. 生成q k v三个向量
    在这里插入图片描述
    a乘以不同的权重矩阵生成:q,k,v(注意权重相加应为1)

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

这里 x 1 , x 2 , x 3 , x 4 x^1,x^2,x^3,x^4 x1,x2,x3,x4 是同时进行的,x的顺序对attention没什么影响
2. 每个q和每个k做 Scaled Dot-Product Attention
Scaled Dot-Product Attention: α 1 , i = q i ⋅ k i d \alpha_{1,i} = \frac{q^i\cdot k^i}{\sqrt d} α1,i=d qiki
在这里插入图片描述
在这里插入图片描述

  1. 使用 softmax 做归一化
    softmax : α ^ 1 , i = e ( α 1 , i ) ∑ j e ( α 1 , j ) \hat\alpha_{1,i} = \frac{e^{(\alpha_{1,i})}}{\sum_je^{(\alpha_{1,j})}} α^1,i=je(α1,j)e(α1,i)
    在这里插入图片描述
    在这里插入图片描述
  2. α ^ 1 , i \hat\alpha_{1,i} α^1,i 点乘V
    b 1 = ∑ i α ^ 1 , i v i b^1 = \displaystyle\sum_i\hat\alpha_{1,i}v^i b1=iα^1,ivi
    b 2 = ∑ i α ^ 2 , i v i b^2 = \displaystyle\sum_i\hat\alpha_{2,i}v^i b2=iα^2,ivi

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    矩阵计算整体流程
    在这里插入图片描述

Multi-head self-attention

在这里插入图片描述

  • Multi-head是一个参数,将生成的q k v分成设置的 head 数,更多 head 会关注更多方向
  • 在已经有了足够关注的时候,设置更多的head会关注到noise(我的理解是这里和过拟合有点像)
  • 这里有人问 W 是哪来的?是设置了初始值之后网络自己学习的

一些细节上的问题

顺序问题

在这里插入图片描述

Decoder 部分

Attention 的可视化(是我比较好奇是怎么做的实验图,不想知道可以不看)

文本的attention可视化

  1. 如果能输出每一步的attention数值,自己用绘图工具画灰度图就可以。
  2. 现成工具tensorflow内建了可视化工具tensorboard
  3. facebook提供的pytorch版本:
    https://github.com/hila-chefer/Transformer-MM-Explainability
  4. DODRIO

参考文献

可以看下数据分析的部分

参考课程

李宏毅 Transformer

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值