这是一篇关于Attention的综述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是一篇关于Attention的综述相关的知识,希望对你有一定的参考价值。

参考技术A

     注意力机制是神经网络中的一个重要概念,当前研究人员已经在各种应用领域中对其进行了研究。本文将全面介绍注意力机制模型的结构以及当前的发展状况;并依据逻辑范畴对注意力机制模型进行了分类。

    注意力模型/Attention Model(AM)首先是在机器翻译中引入的,但是当前已经成为神经网络结中的一个重要概念。 作为在自然语言处理、统计学习、语音和计算机视觉中大量应用的神经体系结构的重要组成部分,注意力机制在人工智能(AI)社区中已变得极为流行。注意力原理可以使用人类生物系统进行解释。例如,我们的视觉处理系统倾向于有选择地将注意力集中在图像的某些部分,而忽略其它不相关的信息,从而有助于感知。同样,在涉及语言,言语或视觉的几个问题中,输入的某些部分与其他部分相比可能更相关。例如,在翻译和摘要任务中,只有输入序列中的某些单词可能与预测下一个单词相关。同样,在图像字幕问题中,输入图像的某些区域可能与在字幕中生成下一个单词更相关。 AM通过允许模型动态地关注输入中有助于有效执行手头任务的某些部分,从而融入了关联的概念。
     注意力机制在神经网络建模中迅速发展的原因主要有三个。第一,现在这些模型已经成为机器翻译、问答、情感分析、词性标注、选区解析和对话系统等多项任务的最新技术。第二,除了在主要任务上提高性能之外,它们还提供了其它一些优势。它们被广泛用于提高神经网络的可解释性(神经网络又被认为是黑箱模型),主要是因为人们对影响人类生活的应用程序中机器学习模型的公平性、问责制和透明度越来越感兴趣。第三,它们有助于克服递归神经网络(RNN)存在的一些问题,例如随着输入长度增加导致性能下降,以及输入的顺序处理导致计算效率降低。

    序列到序列的模型结构主要由编码器和解码器组成。

     为解决以上两个问题,AM允许解码器访问整个编码的输入序列 。其核心思想是在输入序列上引入注意权重α,以对存在相关信息位置集进行优先排序,从而生成下一个输出令牌

    本文将Attention Model共计分为四类: 基于多输入输出序列的分类、基于抽象层的分类、基于计算位置分类、基于多表示分类

    到目前为止,我们只考虑了涉及单个输入和相应输出序列的情况。当候选状态和查询状态分别属于两个不同的输入和输出序列时,这就需要使用一种不同的注意力模型。这种注意力模型大多数用于翻译、摘要、图像字幕和语音识别等。
    一个共同注意模型同时处理多个输入序列,共同学习它们的注意权重,以捕捉这些输入之间的相互作用。例如采用共同注意模型进行视觉问答,除了在输入图像上建立视觉注意模型外,建立问题注意模型也很重要,因为问题文本中的所有单词对问题的答案并不同等重要。此外,基于注意的图像表示用于引导问题注意,反之亦然,这本质上有助于同时检测问题中的关键短语和答案相关的图像的相应区域。对于文本分类和推荐等任务,输入是一个序列,而输出不是一个序列。在这个场景中,注意可以用于学习相同输入序列中每个令牌的输入序列中的相关令牌。换句话说,对于这类注意,查询和候选状态属于同一序列。
参考文献
[1]Jiasen Lu, Jianwei Yang, Dhruv Batra, and Devi Parikh. Hierarchical question-image co-attention for visual question answering. In NIPS, pages 289–297, 2016
[2] Zichao Yang, Diyi Yang, Chris Dyer, Xiaodong He, Alexander J. Smola, and Eduard H. Hovy. Hierarchical attention networks for document classification. In HLT-NAACL, 2016.

    在最一般的情况下,注意力权重只针对原始输入序列计算。这种类型的注意可以称为单水平。另一方面,注意力可以按顺序应用于输入序列的多个抽象层次。较低抽象级别的输出(上下文向量)成为较高抽象级别的查询状态。此外,基于权值是自上而下学习还是自下而上学习的,可以对使用多层次注意的模型做进一步的分类。我们举例说明了这一类别中的一个关键示例,该示例在两个不同的抽象层次(即单词级和句子级)使用注意模型进行文档分类任务。这个模型被称为“层次注意模型”(HAM),因为它捕捉了文档的自然层次结构,即文档由句子组成,句子由单词组成。多层次注意允许HAM提取句子中重要的单词和文档中重要的句子,如下所示。首先建立了一种基于注意的句子表示方法,并将一级注意应用于嵌入向量序列,然后它使用第二级注意来聚合这些句子表示形式,以形成文档的表示形式,这个文档的最终表示用作分类的特征向量任务。
参考文献
[1]Shenjian Zhao and Zhihua Zhang. Attention-via-attention neural machine translation. In AAAI, 2018

    在第三类中,差异来自于输入序列计算注意力权值的位置。Bahdanau等人引入的注意,也被称为软关注。顾名思义,它使用输入序列所有隐藏状态的加权平均值来构建上下文向量。软权值方法的使用使得神经网络能够通过反向传播进行有效的学习,但也会导致二次计算代价。Xu等人提出了一个硬注意模型,其中上下文向量是根据输入序列中随机采样的隐藏状态计算的。这是通过注意权重参数化的多努利分布来实现的。硬注意模型有利于降低计算成本,但在输入的每个位置进行硬决策,使得得到的框架不可微,难以优化。因此,为了克服这一局限性,文献中提出了变分学习方法和策略梯度方法。
参考文献
[1] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473, 2014.
[2] Kelvin Xu, Jimmy Ba, Ryan Kiros, Kyunghyun Cho, Aaron Courville, Ruslan Salakhudinov, Rich Zemel, and Yoshua Bengio. Show, attend and tell: Neural image caption generation with visual attention. In ICML, pages 2048–2057, 2015.
[3] Thang Luong, Hieu Pham, and Christopher D. Manning. Effective approaches to attention-based neural machine translation. In EMNLP, pages 1412–1421, Lisbon, Portugal, September 2015. ACL.

    通常,在大多数应用中使用输入序列的单一特征表示。但是,在某些情况下,使用输入的一个特征表示可能不足以完成下游任务。在这种情况下,一种方法是通过多个特征表示捕获输入的不同方面。注意可以用来给这些不同的表示分配重要性权重,这些表示可以确定最相关的方面,而忽略输入中的噪声和冗余。我们将此模型称为多表示AM,因为它可以确定下游应用程序输入的多个表示的相关性。最终表示是这些多重表示及其注意力的加权组合重量。注意的好处是通过检查权重,直接评估哪些嵌入是特定下游任务的首选。
参考文献
[1]Douwe Kiela, Changhan Wang, and Kyunghyun Cho. Dynamic meta-embeddings for improved sentence representations. In EMNLP, pages 1466–1477, 2018.
[2]Suraj Maharjan, Manuel Montes, Fabio A Gonzalez, and Thamar ´ Solorio. A genre-aware attention model to improve the likability prediction of books. In EMNLP, pages 3381–3391, 2018.
[3]Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou, and Yoshua Bengio. A structured selfattentive sentence embedding. arXiv preprint arXiv:1703.03130, 2017.
[4]Tao Shen, Tianyi Zhou, Guodong Long, Jing Jiang, Shirui Pan, and Chengqi Zhang. Disan: Directional self-attention network for rnn/cnn-free language understanding. In AAAI, 2018

更多自然语言处理相关知识,还请关注 AINLPer公众号 ,极品干货即刻送达。

文献阅读21期:Attention mechanisms and deep learning for machine vision: A survey

[ 综述阅读·机器视觉 ] Attention mechanisms and deep learning for machine vision:
A survey of the state of the art

推荐理由:一篇较新的综述,主在介绍Attention和配套的深度学习机制在机器视觉领域的最新成果,作者把来龙去脉讲得较为明白,一篇好文

1.摘要&简介

  • 最近几年,NLP领域较火的用于上下文预测识别的Attention机制获得了学界很大的认可,这引起了很多其他领域学者的注意。其中博主认为最主要的原因是,我们生活当中很多数据都是需要经过推理得来的,这就意味着很多“未知情况”的预测是需要根据已有的上下文推理的。
  • 而上述这种需求,简单来说,恰好是Attention所擅长的事情,只要对已有的数据进行恰当的Embedding就能实现相应功能。
  • 基于以上这种思想,越来越多的计算机视觉领域专家也开始采用Attention机制。
  • 博主说:很多Sequence或Query基础的运算,也可以通过Attention机制来处理,你比如VRP问题,RCPSP问题,这种有先后时序和序列输出的问题,都能采用类似的方法来训练并求解。

1.1.自注意力机制

  • 自注意力机制旨在为序列中的每个元素建立一个专门用于关系预测的网络(不觉得某种网络跟其思想很像么?)
  • 令一个含有n个实体的序列为 ( x 1 , x 2 , … x n ) \\left(\\mathbfx_1, \\mathbfx_2, \\ldots \\mathbfx_n\\right) (x1,x2,xn) by X ∈ R n × d \\mathbfX \\in \\mathbbR^n \\times d XRn×d,其中d为embedding之后的维度大小。自注意的目的是在对整个语境知识中的每一个元素进行编码后,捕捉所有n个元素之间的依赖关系。
  • 但完成上面这个过程,首先需要将一个序列转换为3中可学习的矩阵(是不是有点像CNN里的卷积核?哈哈!):Queries ( W Q ∈ R n × d q ) \\left(\\mathbfW^Q \\in \\mathbbR^n \\times d_q\\right) (WQRn×dq),Keys ( W K ∈ R n × d k ) \\left(\\mathbfW^K \\in \\mathbbR^n \\times d_k\\right) (WKRn×dk),Values ( W V ∈ R n × d v ) \\left(\\mathbfW^V \\in \\mathbbR^n \\times d_v\\right) (WVRn×dv)
  • 有了上述三个卷积核,啊不对,三个特征提取权重矩阵后,对原始序列 X \\mathbfX X进行如下运算,得到三个矩阵(注意,非常重要,Attention的基础思想):
    Q = X W Q , K = X W K  and  V = X W V \\mathbfQ=\\mathbfX \\mathbfW^Q, \\mathbfK=\\mathbfX \\mathbfW^K \\text and \\mathbfV=\\mathbfX \\mathbfW^V Q=XWQ,K=XWK and V=XWV
  • 有了上述三种预处理,那自注意力层的输出就可以表达为:
    Z = softmax ⁡ ( Q K T d q ) V (1) Z=\\operatornamesoftmax\\left(\\frac\\mathbfQ \\mathbfK^T\\sqrtd_q\\right) \\mathbfV\\tag1 Z=softmax(dq QKT)V(1)
  • 对于向量/序列中的某个元素,自注意机制从根本上找到查询与所有键的点积,然后通过softmax函数对该点积进行归一化,以获得注意图分数。现在每个元素都假定向量/序列中所有元素的加权和的值,其中所有权重都等于注意图得分。

1.2.带遮罩的自注意力机制

  • 自注意力机制原本旨在对当前时间戳上的实体的预测提供“过去依据”,但如果将未来的元素当成当下的预测参考,肯定会造成一些不好的影响(想象一下,你从未来穿越回来告诉现在的自己该怎么做,那还不得乱套了?),增加Mask的Self-attention如下:
    softmax ⁡ ( Q K T d q ∘ M ) (2) \\operatornamesoftmax\\left(\\frac\\mathbfQ \\mathbfK^T\\sqrtd_q \\circ \\mathbfM\\right)\\tag2 softmax(dq QKTM)(2)
    其中, ∘ \\circ 是Hadamard积,在预测向量/序列中的一个元素时,在掩蔽的自我注意中,未来元素的注意图分数被设置为0。

1.3.多头注意力机制

  • 虽然自注意力机制很好,但需要注意的是,元素之间的关系并不仅仅维系于“点到点”的层面,有时关系甚至会出现在“面到面”的层面(博主说人话:有时候一个句子里,不仅仅有字与字之间的关系,甚至有单词和单词的关系。在文章里,甚至有句子和句子的关系,在论文里,还有章节对章节的关系,这种层次化的关系,层层套娃,咱们需要一个套娃机来表示它。)
  • 一般来说,多头注意过程由多个自我注意单元组成,在原始Transformer结构中h=8。
  • 每个单元都由可学习权重矩阵构成: W Q i , W K i , W V i \\left\\\\mathbfW^Q_i, \\mathbfW^K_i, \\mathbfW^V_i\\right\\ WQi,WKi,WVi
  • 对于一个输入序列 X \\mathbfX X,原本的注意力机制层的输出为 Z \\mathbfZ Z,但多头注意力机制就不止这一个Z了,它是一箩筐Z: [ Z 0 , Z 1 , … Z h − 1 ] ∈ R n × h × d v \\left[\\mathbfZ_0, \\mathbfZ_1, \\ldots \\mathbfZ_\\mathrmh-1\\right] \\in \\mathbbR^n \\times h \\times d_v [Z0,Z1,Zh1]Rn×h×dv,而相应权重为: W ∈ R h ⋅ d v × d \\mathbfW \\in \\mathbbR^h \\cdot d_v \\times d WRhdv×d

2.基于注意力机制的深度学习结构

  • 如上图所示,流行的深度注意模型的架构分为以下几个重要类:
    1. Single channel model
    2. Multi-channel model feeding on multi-scale data
    3. Skip-layer model
    4. Bottom-up/ top-down model
    5. Skip-layer model with multi-scale saliency single network

2.1.单信道模型(Single channel model)

  • 单信道模型是各种基于CNN的注意模型的主要结构,也被许多基于注意的研究所采用。几乎所有其他类型的CNN配置都可以看作是单信道模型的变体。
  • 研究表明,不同层次和尺度上的注意线索对注意力的影响是至关重要的。将CNNs的多尺度特征应用到基于注意的模型中是一个明显的选择。在下一种单通道模型,即多通道模型中,这些变化是沿着这条线进行的。

2.2.多信道模型(Multi-channel model)

  • 多通道模型的基本概念如图2b所示。这种模型通过多尺度数据输入训练多个模型来学习多尺度注意信息。多个模型通道是并行的,可以具有不同比例的不同配置。输入数据通过多个通道同时传送,然后将不同通道的特征融合并传送到统一的输出层,生成最终的注意力图。我们观察到在多通道模型中,多尺度学习发生在个体模型之外。在接下来讨论的配置中,多尺度学习在模型内部,这是通过组合来自不同卷积层层次结构的特征映射来实现的。

2.3.跨层际模型(Skip-layer model)

  • 图2c显示了中使用的一种常见的跳跃层模型。跳层模型不是从多尺度图像上的多个平行通道中学习,而是学习主通道中的多尺度特征图。多尺度输出从具有越来越大的接收场和下采样率的各个层学习。接下来,对这些输出进行融合,输出最终的注意力图。

2.4.自下而上/自上而下模型(Bottom-up/ top-down model)

  • 这种相对较新的模型配置称为自顶向下/自下而上模型,已用于基于注意的对象分割和实例分割。模型的结构如图2(d)所示,其中首先通过常见的自下而上卷积技术获得分割特征图,然后进行自上而下的细化,以便将从深层到浅层的数据融合到掩模中。这种配置背后的主要动机是产生高保真分割掩模,因为深层CNN层会丢失精细的图像细节。自下而上/自上而下的模型类似于跳层模型,因为不同的层相互连接。

2.5.多尺度显著单网络跳层模型(Skip-layer model with multi-scale saliency single network)

  • 图2(e)中所示的模型受深度监督模型的启发。该模型利用多层次、多尺度的基于注意的信息,通过深度监督技术进行学习。该模型与以前的模型的一个重要区别是前者提供了对隐藏层的组合直接监控,而不是只监控最后一个输出层,然后将监控的输出传播回以前的层。它利用了跳层模型2©的优点,即不从具有多尺度输入数据的多模型通道中学习。此外,它比多通道模型2(b)和自底向上/自顶向下模型2(d)更轻。研究发现,自底向上/自顶向下模型存在训练困难,而深度监督模型具有较高的训练效率。在下一节中,本文将对机器视觉中的各种注意机制和深度学习技术进行分类,并详细讨论每一类。

3.机器视觉中的注意力与深度学习

  • 机器视觉中的注意力研究主要分为三大类:
    1. Attention-based CNNs
    2. CNN transformer pipelines
    3. Hybrid transformers

3.1.Attention-based CNNs

  • 最近注意机制被应用于机器视觉应用的深度学习中,例如目标检测、图像字幕和动作识别。注意机制的核心思想是在卷积神经网络(CNNs)中定位特征映射中最显著的部分,以消除机器视觉应用中的冗余。
  • 通常,注意力是通过使用注意力Map嵌入到CNN中的。
  • 有的基于注意力Map的论文,以自学习的方式产生了其他信息,而对注意Map的监督很弱。
  • 有的论文引用其他技术,通过利用人类注意力数据或通过关注感兴趣区域(ROI)来指导CNN。

3.1.1.图像分类检索与目标检测