作者:Greg Mehdiyev, Ray Hong, Jinghan Yu, Brendan Artley翻译:陈之炎校对:ZRX
本文约2800字,建议阅读12分钟
本文由Simon Fraser大学计算机科学专业硕士生撰写并维护,同时这也是他们课程学分的一部分。
本博由Simon Fraser大学计算机科学专业硕士生撰写并维护,同时这也是他们课程学分的一部分。
想了解更多关于该项目的信息,请访问:
sfu.ca/computing/mpcs
简介
看到这张照片时,首先映入眼帘的是什么?相信大多数人的眼神会被蓝色小鸭子吸引。对人类而言,显然这只蓝色小鸭子在图片中异常突出。不知何故,人类总是具备发现特定模式的能力,并会将注意力转移到那些与众不同的特征之上。
为什么会是这样子的?究竟是什么让我们注意到“蓝色鸭子“呢?
如果仔细观察这张照片,还会看到有其他不同特征的鸭子。例如,其中有三只鸭子面朝侧面而非正面向前。
是什么让蓝色鸭子比侧向鸭子更突出?是否能教会电脑学习这一特征呢?
这正是注意力机制解决的目标问题。“注意力机制是一种尝试行为,旨在有选择性地聚焦某些相关的事物,同时忽略深度神经网络中的其他事物。”⁷
从一般意义上说,注意力机制是对编码-解码器结构的改进。编码器-解码器模型利用神经网络将输入的编码特征转换成另一种编码特征。注意机力制组件赋予了神经网络在编码数据时对特定特征赋予 “注意力”的能力,它有助于解决神经网络中经常发生的梯度消失/爆炸问题。
编码器-解码器GIF 结构图
对注意力机制的实现可概述如下:
1. 为编码器中的每个状态分配一个分值: 对输入序列进行编码之后,称这部分编码为内部状态,可以为包含“注意力”的状态分配高的分值,为不包含任何相关信息的状态分配低分值,从而达到识别相关编码器状态的目的。
2. 计算注意力的权重: 在第一步得出的分值基础上计算出注意力权重。
3. 计算语境向量: 语境向量为包含第1步和第2步中信息的聚合向量。
4. 前馈: 将从语境向量中收集到的信息输入到编码器/解码器层中。
5. 解码: 解码器利用注意力机制解码信息。
这便是注意力机制的工作原理,接下来深入研究一些真实的应用程序!
常见用例
1. 自然语言处理(NLP)
自然语言处理是机器学习的一个子集,它赋予了计算机解释人类语言的能力,诸如翻译软件、聊天机器人和虚拟助手等工具均来自于这一研究领域。与自然语言处理相关的主要挑战之一是将句子中每个单词的上下文翻译为计算机所能理解的格式。
通常,使用编码器和解码器形式的两个RNNs/LSTMs来完成语境信息的翻译。编码器利用特征表示提炼出句子信息,解码器再将特征表示转换为摘要。
这种方法对短句子很有效,但是,由于存在梯度消失/爆炸的问题,对长句子来说就变得不那么准确了。如果没有注意力机制,对于复杂的人类语言来说,该方法的有效性便不太可靠了。例如,来看下面的句子。
例句
可以比较未包含注意力机制的模型与包含有注意力机制的模型来验证它的有效性。通过可视化文本,为更加 “重要”的单词