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

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

目录

  • 相关介绍
    • Seq2Seq模型
    • softmax
    • RNN的局限性
    • 解决对策
    • 本文贡献(创新点)
    • 什么时候可以用transformer模型
  • 模型
    • Encoder 部分
      • 基本过程公式推导
      • Multi-head self-attention
      • 一些细节上的问题
        • 顺序问题
    • Decoder 部分
    • Attention 的可视化(是我比较好奇是怎么做的实验图,不想知道可以不看)
  • 参考文献
  • 参考课程

相关介绍

Seq2Seq模型

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

NLP之Seq2Seq

softmax

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

RNN的局限性

RNN 由于要考虑之前的所有信息,训练非常慢
【论文精读】transformer:Attention Is All You Need_第1张图片
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
【论文精读】transformer:Attention Is All You Need_第2张图片
与之相对的是 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三个向量
    【论文精读】transformer:Attention Is All You Need_第3张图片
    a乘以不同的权重矩阵生成:q,k,v(注意权重相加应为1)

【论文精读】transformer:Attention Is All You Need_第4张图片
【论文精读】transformer:Attention Is All You Need_第5张图片

这里 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
【论文精读】transformer:Attention Is All You Need_第6张图片
【论文精读】transformer:Attention Is All You Need_第7张图片

  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)
    【论文精读】transformer:Attention Is All You Need_第8张图片
    【论文精读】transformer:Attention Is All You Need_第9张图片
  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

    【论文精读】transformer:Attention Is All You Need_第10张图片
    【论文精读】transformer:Attention Is All You Need_第11张图片
    【论文精读】transformer:Attention Is All You Need_第12张图片
    矩阵计算整体流程
    【论文精读】transformer:Attention Is All You Need_第13张图片

Multi-head self-attention

【论文精读】transformer:Attention Is All You Need_第14张图片

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

一些细节上的问题

顺序问题

【论文精读】transformer:Attention Is All You Need_第15张图片

Decoder 部分

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

文本的attention可视化

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

参考文献

可以看下数据分析的部分

参考课程

李宏毅 Transformer

你可能感兴趣的:(深度学习,机器学习,人工智能,注意力机制,attention)