科研专栏
白话注意力机制-2
时间: 2020-11-16     作者: 小杰

Attention机制-2

注意后会发生什么呢?

Steven Hillyard和他的同事在1973年实验发现在刺激被注意的情况下,与被忽视的情况相比,相应的听觉事件相关电位(ERP)的幅度更大,在视觉空间注意的实验中也发现了类似的现象。

相对于刺激呈现在被忽视的一侧,刺激呈现在被要求注意的视野引起的神经元反应幅度更大下图分别展示了听觉(图1)和视觉(图2)注意产生的影响。

图1

图2

被注意的刺激与被忽视的刺激相比激发了更大的神经反应,并且在多个视觉皮层区域都观察到了这一现象。但问题是在神经加工过程中这一现象是如何产生的呢?John Duncan提出了一个选择注意的有偏竞争模型[3]:不同的刺激落入同一个视觉神经元的感受野内会造成两个刺激对神经元控制的竞争,注意可以有利于被注意的刺激夺得优先权(但究竟是如何帮助的仍然不清楚,可能是由于被注意的目标会受到自上而下注意信号的影响,因此可能会在视觉刺激呈现之前相关表征便得到了激活,叠加上刺激呈现后的神经元反应,使得最终的神经反应增强)。随后Sabine Kastner等人的实验对这一模型进行了验证,他们发现与每次只有一个刺激单独呈现相比,在空间集中注意缺失的情况下,同时呈现的临近刺激会相互干扰,而当引入注意后,同时呈现竞争刺激不再产生干扰。这种干扰减弱的现象被认为是注意削弱了分心刺激的影响。

Attention机制在人工智能领域的应用

无论是在计算机视觉、还是自然语言处理领域,都很容易看到注意力机制的身影。注意力机制通俗的讲就是把注意力集中放在重要的信息上,而忽略其他不重要的信息。其中重要程度的判断取决于应用场景和任务要求,使用注意力机制的神经网络可以更好的进行“自主学习”。

深度学习中的注意力机制从形式上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息;从结果上看,人类的注意力机制的影响表现为被注意的特征引起的神经元反应幅度更大;而在深度学习中,注意力机制表现为给不同位置的信息赋予不同的权重,权重的大小代表了不同位置的注意程度,被注意信息的表征强度更大;从这两方面看深度学习中的注意力机制很好的模仿了人类的注意力机制

简单来说,深度学习中的注意力机制就是通过一定的计算得到一组权重,而这组权重代表了各个信息的重要程度,那么使用这种权重与原始信息相乘就得到了注意力处理后的信息。

想通这一核心理念,那么所有的注意力机制都万变不离其宗。根据注意力的关注域的不同,我们可以将深度学习中的注意力机制分为空间域、通道域、层域、时间域和混合域等。空间域很容易理解,就是在一张图片中不同的位置赋予不同的关注程度;而通道域就是对图片或特征图的不同通道赋予不同的权重;层域、时间域也是类似的道理,仅仅是选择注意的信息不同。总结来说,核心思想就是帮助模型为输入图像或自然语言的各个部分分配不同的权重,提取更关键、更重要的信息,使得模型可以做出更准确的判断,同时不会给模型的计算和存储带来过多的负担。

注意力机制最早被应用到机器翻译的任务中,机器翻译是一个seq2seq的任务,也就是说由一个序列生成另一个序列的过程,在最开始的时候,该任务通常使用Autoencoder的方式:输入一个源语言的句子,经过编码器获得一个包含全部输入信息的中间语义向量,随后将该向量送入后续的解码器逐渐获得目标输出。比如输入的是英文句子:Tom love Jerry,逐步生成中文单词:“汤姆”,“爱”,“杰瑞”。但这种方式面临一个问题:所有的结果输出都由这个中间语义向量作为模型的输入。比如,在翻译“杰瑞”这个中文单词的时候,模型里面的每个英文单词对于翻译目标单词“杰瑞”贡献是相同的,很明显这里不太合理,显然“Jerry”对于翻译成“杰瑞”更重要,但是没有引入注意力机制的模型是做不到这点的。没有引入注意力的模型在输入句子比较短的时候问题不大,但是如果输入句子比较长,此时所有语义完全通过一个中间语义向量来表示,单词自身的信息已经消失,可想而知会丢失很多细节信息,这也是为何要引入注意力机制的重要原因。

我们已经直观的感受到了注意力的重要性,那么每个单词的注意力权重应该如何确定呢?对于使用RNN或LSTM作为Decoder的模型来说,每个时间步都会产生一个隐藏状态,如果要生成单词 y_i,我们是可以知道Target在生成y_i之前 i-1时刻的隐藏状态H_i-1,而我们的目的是要计算生成y_i时输入句子中的单词“Tom”、“love”、“Jerry”对y_i来说的注意力权重分布,那么可以用Target输出句子在i-1时刻的隐藏状态H_i-1去一一和输入句子中每个单词对应的RNN隐藏状态h_j进行对比,即通过函数F(H_i-1, h_j)来获得目标单词y_i和每个输入单词对应的对齐可能性,这个F函数在不同论文里可能会采取不同的方法,然后函数F的输出经过Softmax进行归一化就得到了符合概率分布取值区间的注意力权重分布。

在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Query和Source中的所有元素之间。而Self-Attention顾名思义,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制。

很明显,引入Self-Attention[1]后更容易捕获句子中单词之间的一些句法特征(比如图3展示的有一定距离的短语结构)或者语义特征(比如图4展示的its的指代对象Law)。从这个角度看Self-Attention(Transformer)在自然语言处理领域取得好的效果也就不足为奇了,它比以往的模型提供了更多的可能性,让模型自己去探索其中的规律

  

图3

图4

        在计算机视觉领域,注意力机制也得到了广泛的应用,比如图像描述和视觉问答任务[2]中,输入一张图片,人工智能系统输出一句描述句子,语义等价地描述图片所示内容。此时如果加入Attention机制能够明显改善系统输出效果,Attention机制在这里起到了类似人类视觉选择性注意的效果,在输出某个实体单词的时候会将注意力焦点聚焦在图片中相应的区域上,从而提高了模型的可解释性。

综上所述,注意力机制在人工智能领域被广泛的使用,且使得模型的表现得到了巨大的提升。因此,我们更应该深入挖掘大脑的工作机制,在进行一定程度抽象和简化的情况下引入当前的人工智能模型当中,做出更加类脑的人工智能模型,解决当前人工智能的一些瓶颈。


参考文献

[1] Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. In Advances in neural information processing systems (pp. 5998-6008).

[2] Anderson, P., He, X., Buehler, C., Teney, D., Johnson, M., Gould, S., & Zhang, L. (2018). Bottom-up and top-down attention for image captioning and visual question answering. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 6077-6086).

[3]Desimone, R., & Duncan, J. (1995). Neural mechanisms of selective visual attention. Annu Rev Neurosci, 18, 193-222. doi:10.1146/annurev.ne.18.030195.001205

本文为原创文章,请勿抄袭、粘贴式转载!