Attention

一、背景知识:

  • 大致趋势:
    • 1

      Attention

  • 本质:人类视觉感知场景时,不会从头到尾进行感知,而是根据观察注意特定的部分。
  • NLPattention计算方法:
    • 本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射

      Attention

  • 计算attention三步:
    • 第一步:将query和每个key进行相似度计算得到权重。常用的相似度计算函数有:点积、拼接、感知机等。
    • 第二步:使用softmax进行归一化
    • 第三步:将权重和相应的键值value进行加权求和得到最后的attention
    • (在目前NLP 一般key==value)

二、Attention is all you need

  • 论文亮点:
    • 1)不同于以往主流机器翻译使用基于RNN的seq2seq模型框架,该论文用attention机制代替了RNN搭建了整个模型框架。
    • 2)提出了多头注意力(Multi-headed attention)机制方法,在编码器和解码器中大量的使用了多头自注意力机制(Multi-headed self-attention)
    • 3)在WMT2014语料中的英德和英法任务上取得了先进结果,并且训练速度比主流模型更快。
  • 放缩点乘(scaled dot-Product attention):scaled dot-Product attention就是我们常用的使用点积进行相似度计算的attention,只是多除了一个(为K的维度)起到调节作用,使得内积不至于太大。

    Attention

  • 多头attention(Multi-head attention):
    • Query,Key,Value首先进过一个线性变换,然后输入到放缩点积attention,注意这里要做h次,其实也就是所谓的多头

      Attention

  • self-attention:
    • K=V=Q,比如输入一个句子,里面的每个词都要和句子里面的每个词进行attention计算。目的是学习句子内部的词依赖关系,捕获句子的内部结构。

      Attention

    • 使用self-attention的原因:
      • 一、每一层复杂度:当输入序列小于某个长度时,每一层的self-attention有优势。当序列太长,self-attenton也可以只跟限定距离内的词进行计算。
      • 二、并行:多个attention和cnn一样不依赖前一时刻的计算,可以并行
      • 三、长距离依赖:seif-attention和所有词都进行计算attention,所以不管中间多长距离,最大路径长度都是1,可以捕获长距离依赖关系。

三、Self-attention in NLP

  • Deep Semantic Role Labeling with Self-Attention
    • SRL作为一个序列标注问题,使用BIO标签进行标注。然后提出使用深度注意力网络(Deep Attentional Neural Network)进行标注,网络结构如下。在每一个网络块中,有一个RNN/CNN/FNN子层和一个self-attention子层组成。最后直接利用softmax当成标签分类进行序列标注。

      Attention

  • Simultaneously Self-Attending to All Mentions for Full-Abstract Biological Relation Extraction[7]:他们也是使用google提出包含self-attention的transformer来对输入文本进行表示学习,和原始的transformer略有不同在于他们使用了窗口大小为5的CNN代替了原始FNN。

四、总结

  • seif-attention可以是一般attention的特殊情况,在self-attention中,Q=K=V,每个序列的单元都和该序列中的所有单元进行attention计算。多头attention是捕获不同子空间的相关信息。seif-attention特点在于无视词之间的距离之间计算依赖关系,能学习一个句子的内部结构,实现也较为简单,也可以实现并行。并且self-attention可以被当做一个层和RNN,CNN,FNN进行配合,成功应用于其他NLP任务。

杂:

  • 残差连接:优化深度网络,整个网络使用了残差连接和对层进行了规范化(Add&Norm)
  • 点乘和叉乘;叉乘是直接对应乘在加起来,点乘是矩阵乘法,矩阵內积,坐标也是这样组成

    Attention

  • 主流的序列标注模型是BiLSTM-CRF模型,利用CRF进行全局标签优化。

资料: