微软亚研:对深度神经网络中空间注意力机制的经验性研究

空间注意力(Spatial Attention)机制最近在深度神经网络中取得了很大的成功和广泛的应用,但是对空间注意力机制本身的理解和分析匮乏。

  • 论文:An Empirical Study of Spatial Attention Mechanisms in Deep Networks

  • 链接:https://arxiv.org/abs/1904.05873

摘要:空间注意力(Spatial Attention)机制最近在深度神经网络中取得了很大的成功和广泛的应用,但是对空间注意力机制本身的理解和分析匮乏。本论文对空间注意力机制进行了详尽的经验性分析,取得了更深入的理解,有些认知是跟之前的理解很不一样的,例如,作者们发现 TransformerAttention 中对 query 和 key 的内容进行比较对于空间注意力帮助很小,但对于 Encoder-Decoder Attention(编码器-解码器注意力)是至关重要的。另一方面,将可变形卷积(DeformableConvolution)与和 query 无关的 key saliency 进行适当组合可以在空间注意力中实现最佳的准确性-效率之间的权衡。本论文的研究结果表明,空间注意力机制的设计存在很大的改进空间。

引言

图 1. 不同的注意力因子的描述。采样点上方的颜色条表示其内容特征。当图中存在内容特征或相对位置时,表明该项将它们用于注意力权重计算。

注意力机制使神经网络能够更多地关注输入中的相关部分。自然语言处理(NLP)中最先研究了注意力机制,并开发了 Encoder-Decoder 模块以帮助神经机器翻译(NMT),当给定一个 query(例如,输出句子中的目标词),计算其输出时,会依据 query 对某些 key 元素(例如,输入句子中的源词)进行优先级排序。后来空间注意力模块被提出,用于建模句子内部的关系,此时 query 和 key 都来自同一组元素。重磅论文 Attention is All You Need 中提出了 TransformerAttention 模块,大大超越了过去的注意力模块。注意力建模在 NLP 中的成功,激发了其在计算机视觉领域中的应用,其中 Transformer Attention 的不同变体被应用于物体检测和语义分割等识别任务,此时 query 和 key 是视觉元素(例如,图像中的像素或感兴趣的区域)。

在给定 query,确定分配给某个 key 的注意力权重时,通常会考虑输入的三种特征:(1)query 的内容特征,可以是图像中给定像素的特征,或句子中给定单词的特征;(2)key 的内容特征,可以是 query 邻域内像素的特征,或者句子中的另一个单词的特征;(3)query 和 key 的相对位置。

基于这些输入特征,在计算某对 query-key 的注意力权重时,存在四个可能的注意力因子:(E1)query 内容特征和 key 内容特征;(E2)query 内容特征和 query-key 相对位置;(E3)仅 key 内容内容特征;(E4)仅 query-key 相对位置。在 Transformer Attention 的最新版本 Transformer-XL 中,注意力权重表示为四项(E1,E2,E3,E4)的总和,如图 1 所示。这些项依赖的属性有所区别。例如,前两个(E1,E2)对 query 内容敏感。而后两者(E3,E4)不考虑 query 内容,E3 主要描述显著的 key 元素,E4 主要描述内容无关的的位置偏差。尽管注意力权重可以基于这些因子被分解,但是这些因子之间的相对重要性尚未被仔细研究。此外,诸如可变形卷积和动态卷积(Dynamic Convolution)之类的流行模块虽然看起来与 Transformer Attention 无关,但也采用了关注输入的某些相关部分的机制。是否可以从统一的角度看待这些模块以及它们的运行机制如何不同等问题也未被探索过。

这项工作将 Transformer Attention,可变形卷积和动态卷积视为空间注意力的不同实例(以不同注意力机制,涉及了注意力因子的不同子集)。为分析不同注意力机制和因子的影响,本文在广义注意力形式下对比了不同的注意力机制的各种因素,该调查基于多种应用,包括神经机器翻译语义分割和物体检测。本研究发现:(1)在 Transformer Attention 模块中,对 query 敏感的项,尤其是 query 和 key 内容项 E1,在 Self Attention(自注意力)中起着微不足道的作用。但在 Encoder-Decoder Attention 中,query 和 key 内容项 E1 至关重要;(2)尽管可变形卷积仅利用基于 query 内容和相对位置项的注意力机制,但它在图像识别方面比在 Transformer Attention 中对应的项 E2 更有效且高效;(3)在 Self Attention 中,query 内容和相对位置项 E2 以及仅考虑 key 内容的项 E3 是最重要的。将可变形卷积与 Transformer Attention 中仅考虑 key 内容的项 E3 进行适当组合会提供比 Transformer Attention 模块更高的精度,且在图像识别任务上具有低得多的计算开销。

本文中的观察挑战了对当前空间注意力机制的传统理解。例如,人们普遍认为,注意力机制的成功主要归功于对 query 敏感的注意力项 E1 和 E2,尤其是 query 和 key 内容项 E1。这种理解可能源于最开始 Encoder-Decoder Attention 模块在神经机器翻译中的成功。事实上,在最近的一些变体,如 Non-Local 模块和 Criss-Cross 模块中,仅有 query 和 key 内容项 E1 得到保留,所有其他项都被丢弃。这些模块在 Self Attention 应用中仍能很好地发挥作用,进而增强了这种理解。但是本文的研究表明这种理解是不正确的。本文发现这些仅具有 query 敏感项的注意力模块实际上与那些仅具有 query 无关项的注意力模块性能相当。本文的研究进一步表明,这种退化可能是源于注意力模块的设计,而不是 Self Attention 的固有特征,因为可变形卷积被发现在图像识别任务中能有效且高效地利用 query 内容和相对位置。

这一实证分析表明,深度网络中空间注意力机制的设计还有很大的改进空间。本文的研究结果在这个方向上取得了一些初步进展,希望这项研究能够激发关于建模空间注意力中的运行机制的进一步研究。

广义注意力形式

给定 query 元素和一组 key 元素,注意力函数根据注意力权重对 key 内容进行相应的聚合,其中注意力权重衡量了 query-key 的兼容性。为了允许模型处理来自不同特征子空间和不同位置的 key 内容,多个注意力函数的输出依照一组可学习的权重进行线性组合。令 q 索引某内容特征为 z_q 的 query 元素,并且 k 索引具有内容特征 x_k 的 key 元素,最终输出的注意力特征 y_q 被计算为:

表示第 m 个注意力函数中的注意力权重,key 元素遍历区域Ω_q,W_m 和 W'm 是可学习权重。通常,注意力权重在Ω_q 内被标准化到和为 1。

在这个广义注意力形式下,Transformer Attention 与可变形卷积、动态卷积的区别在如何计算 。Transformer 中 A_m 由 E1,E2,E3,E4 四项计算得到,形式为:

而可变形卷积的计算形式为(G 为双线性插值函数):

动态卷积也可以在进行微小修改后纳入广义注意力形式,详见论文。

Transformer Attention 中各项因子的对比

图 2.TransformerAttention 中四项的准确性–效率权衡(E1 对应 key 和 query 内容,E2 对应 query 内容和相对位置,E3 对应于仅考虑 key 内容,E4 对应于仅考虑相对位置)。这里数字对应着每项是否被激活(例如,0011 表示 E3 和 E4 被激活,w/o 表示不采用 TransformerAttention)。由于 Encoder-Decoder Attention 机制对于 NMT 是必不可少的,因此(d)中没有 w/o 设置。一些配置的结果在图中重叠,因为它们具有相同的精度和计算开销。研究中的关键配置以红色突出显示。图中还画出了本文中 Self Attention 的推荐配置「“0010 +可变形卷积”」。

(1)在 Self Attention 中,与和 query 无关项相比,query 敏感项起着很小的作用。特别是 query 和 key 内容项,该项对准确性的影响可忽略不计,而在图像识别任务中计算量很大。总的来说,Transformer Attention 模块带来的精度提升很大(从不带 Transformer Attention 模块的配置(「“w / o”」)到使用完整版 Transformer 注意力的配置(「“1111”」))。其中,query 无关项(从配置「“w / o”」到「“0011”」)带来的收益比 query 敏感项(从配置「“0011”」到「“1111”」)带来的收益大得多。特别地,query 和 key 内容项 E1 带来的性能增益可以忽略不计。删除它(从配置「“1111”」到「“0111”」)只会导致精度微弱下降,但能大大减少图像识别任务中的计算开销。

(2)在 Encoder-Decoder Attention 中,query 和 key 内容项是至关重要的。如果不用 E1 会导致精度明显下降,而仅使用配置「“1000”「提供的精度几乎与完整版本(配置「“1111”」)相同。这是因为 NMT 的关键步骤是对齐源语句和目标语句中的单词。遍历 query 和 key 内容对于这种对齐是必不可少的。

(3)在 Self Attention 中,query 内容及相对位置的项 E2 和仅有 key 内容项 E3 是最重要的。相应的配置「“0110”」提供的精度非常接近完整版(配置「“1111”」),同时在图像识别任务中节省了大量的计算开销。还值得注意的是,捕获显著性信息的仅有 key 内容项 E3 可以有效地提高性能,而几乎没有额外的开销。

本文的研究结果与人们普遍认知相反,尤其是人们认为 query 敏感项,特别是 query 和 key 内容项对于 Transformer Attention 的成功至关重要。实验结果表明,这仅适用于 Encoder-Decoder Attention 场景。在 Self Attention 场景中,query 和 k_ey 内容项甚至可以删除。

可变形卷积和 Transformer Attention 中 E_2 的对比

图 3. 可变形卷积和 Transformer Attention 中 E_2 的对比

(1)对于目标检测语义分割,可变形卷积在准确性和效率上都大大超过 E2 项。对于 NMT,可变形卷积在准确性和效率方面与 E2 项相当。在效率方面,可变形卷积不需要遍历所有关键元素。这种优势在图像上是显而易见的,因为涉及许多像素。在准确性方面,可变形卷积中的双线性插值基于特征图的局部线性假设。这种假设在图像上比在语言上更好,因为图像局部内容变化很缓慢,但语言中单词会发生突然变化。

(2)可变形卷积与仅有 Key 内容项(「“0010 +可变形卷积”」)的组合提供了最佳的准确性 - 效率权衡。其准确性与使用可变形卷积和完整的 TransformerAttention 模块(「“1111 +可变形卷积”」)相当,计算开销略高于仅有可变形卷积的开销(「“w/o +可变形卷积”」)。

动态卷积和 Transformer Attention 中 E_2 的对比

图 4. 动态卷积和 Transformer Attention 中 E_2 的对比。二者都利用了 query 的内容信息和相对位置。在表的后四行中,E_2 的空间范围也被限制到了一个固定大小,以进一步揭示其和动态卷积的区别。

(1)在机器翻译中,动态卷积和 Transformer Attention 的 E_2 项性能相当,且动态卷积计算量较低。但在物体检测和语义分割中,动态卷积比 E_2 性能显著下降。

(2)在对 E_2 限制空间范围与动态卷积和卷积核一致后,随着卷积核缩小,动态卷积和 Transformer Attention E_2 的性能都有所下降,但是 E_2 还是比动态卷积性能好且计算量更低。动态卷积在图片识别任务上表现欠佳的可能原因是该模块的许多细节是为了机器翻译设计的,可能不适用于图像识别任务。

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

理论注意力机制卷积微软亚洲研究院深度神经网络
3
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

双线性插值技术

双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。 双线性插值作为数值分析中的一种插值算法,广泛应用在信号处理,数字图像和视频处理等方面。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

Transformer-XL技术

Transformer-XL 预训练模型是对 Transformer 及语言建模的修正,这项前沿研究是2019年1月份公布。一般而言,Transformer-XL 学习到的长期依赖性比标准 Transformer 学到的长 450%,无论在长序列还是短序列中都得到了更好的结果,而且在评估时比标准 Transformer 快 1800 多倍。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

推荐文章
暂无评论
暂无评论~