10.1
-
两种注意力提示:自主性的与非自主性的注意力。
-
考虑一个相对简单的状况,即只使用非自主性提示:
- 要想将选择偏向于感官输入,则可以简单地使用参数化的全连接层,甚至是非参数化的最大汇聚层或平均汇聚层。
-
“是否包含自主性提示”将注意力机制与全连接层或汇聚层区别开来。
- 在注意力机制的背景下,自主性提示被称为查询。 给定任何查询,注意力机制通过注意力汇聚将选择引导至感官输入(例如中间特征表示)。 在注意力机制中,这些感官输入被称为值。
- 更通俗的解释,每个值都与一个键(key)配对,这可以想象为感官输入的非自主提示。
- 可以通过设计注意力汇聚的方式,便于给定的查询(自主性提示)与键(非自主性提示)进行匹配,这将引导得出最匹配的值(感官输入)。
小结
- 受试者使用非自主性和自主性提示有选择性地引导注意力。前者基于突出性,后者则依赖于意识。
- 注意力机制与全连接层或者汇聚层的区别源于增加的自主提示。由于包含了自主性提示,注意力机制与全连接的层或汇聚层不同。
- 注意力机制通过注意力汇聚使选择偏向于值(感官输入),其中包含查询(自主性提示)和键(非自主性提示)。键和值是成对的。
- 可视化查询和键之间的注意力权重是可行的。
10.2
- Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。从注意力的角度来看,分配给每个值的注意力权重取决于将值所对应的键和查询作为输入的函数。
- 注意力汇聚可以分为非参数型和带参数型。
10.3
- 在某些情况下,并非所有的值都应该被纳入到注意力汇聚中。为了仅将有意义的词元作为值来获取注意力汇聚,可以指定一个有效序列长度(即词元的个数)。
- 一般来说,当查询和键是不同长度的矢量时,可以使用加性注意力作为评分函数。
- 使用点积可以得到计算效率更高的评分函数, 但是点积操作要求查询和键具有相同的长度d。
小结
- 将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作。
- 当查询和键是不同长度的矢量时,可以使用可加性注意力评分函数。当它们的长度相同时,使用缩放的“点-积”注意力评分函数的计算效率更高。
10.4
小结
- 在预测词元时,如果不是所有输入词元都是相关的,那么具有Bahdanau注意力的循环神经网络编码器-解码器会有选择地统计输入序列的不同部分。这是通过将上下文变量视为加性注意力池化的输出来实现的。
- 在循环神经网络编码器-解码器中,Bahdanau注意力将上一时间步的解码器隐状态视为查询,在所有时间步的编码器隐状态同时视为键和值。
10.5
- 与其只使用单独一个注意力汇聚, 我们可以用独立学习得到的h组不同的线性投影(linear projections)来变换查询、键和值。 然后,这h组变换后的查询、键和值将并行地送到注意力汇聚中。 最后,将这h个注意力汇聚的输出拼接在一起, 并且通过另一个可以学习的线性投影进行变换, 以产生最终输出。 这种设计被称为多头注意力。
- 对于h个注意力汇聚输出,每一个注意力汇聚都被称作一个头(head)。
- 在实现过程中通常选择缩放点积注意力作为每一个注意力头。
10.6
- 卷积神经网络和自注意力都拥有并行计算的优势, 而且自注意力的最大路径长度最短。 但是因为其计算复杂度是关于序列长度的二次方,所以在很长的序列中计算会非常慢。
小结
- 在自注意力中,查询、键和值都来自同一组输入。
- 为了使用序列的顺序信息,可以通过在输入表示中添加位置编码,来注入绝对的或相对的位置信息。
10.7
-
Transformer模型完全基于注意力机制,没有任何卷积层或循环神经网络层 。
-
Transformer的编码器和解码器是基于自注意力的模块叠加而成的:
- 源(输入)序列和目标(输出)序列的嵌入(embedding)表示
- 将加上位置编码(positional encoding)
- 再分别输入到编码器和解码器中
-
从宏观角度来看,Transformer的编码器是由多个相同的层叠加而成的,每个层都有两个子层。
- 第一个子层是多头自注意力(multi-head self-attention)汇聚;
- 第二个子层是基于位置的前馈网络(positionwise feed-forward network)。
-
在计算编码器的自注意力时,查询、键和值都来自前一个编码器层的输出。
-每个子层都采用了残差连接(residual connection)。
-
Transformer解码器也是由多个相同的层叠加而成的,并且层中使用了残差连接和层规范化。除了编码器中描述的两个子层之外,解码器还在这两个子层之间插入了第三个子层,称为编码器-解码器注意力(encoder-decoder attention)层。
-
基于位置的前馈网络对序列中的所有位置的表示进行变换时使用的是同一个多层感知机(MLP),这就是称前馈网络是基于位置的(positionwise)的原因。
小结
- Transformer是编码器-解码器架构的一个实践,尽管在实际情况中编码器或解码器可以单独使用。
- 在Transformer中,多头自注意力用于表示输入序列和输出序列,不过解码器必须通过掩蔽机制来保留自回归属性。
- Transformer中的残差连接和层规范化是训练非常深度模型的重要工具。
- Transformer模型中基于位置的前馈网络使用同一个多层感知机,作用是对所有序列位置的表示进行转换。