顺序对顺序学习的并行多尺度注意力
Abstract
在顺序学习中,自我注意机制被证明是非常有效的,并在许多任务中取得了显著的改善。然而,自我注意机制也并非没有缺陷。虽然自我注意可以模拟极长的依赖关系,但深层的注意力往往过于集中在单一的表征上,导致对局部信息的充分利用,并难以表征长序列。在这项工作中,本文探索了序列数据上的并行多尺度表征学习,努力捕捉长程和短程语言结构。为此,本文提出了并行多尺度注意(MUSE)和MUSE-SIMPLE。
- MUSE-SIMPLE包含了并行多尺度序列表征学习的基本思想,它借助自我注意和逐点变换,以不同的尺度并行编码序列。
- MUSE建立在MUSE-SIMPLE的基础上,探索将卷积和自我注意结合起来,从更多不同的尺度学习序列表示。
本文将重点放在机器翻译上,提出的方法在性能上比Transformer有了很大的提高,特别是在长序列上。
Introduction
Transformer的性能随着源句长度的增加而下降,特别是对于长序列。原因是注意力可能过度集中和分散,如图1(B)所示,只有少量的象征物被注意力代表
图1:左图显示,在去词化数据集上,随着句子长度的增加,性能大幅下降。右图显示了来自第三个编码层的注意图。正如所看到的,注意图过于分散,无法捕捉到足够的信息。例如,“[EOS]”对单词对齐几乎没有贡献,出人意料的是,它的关注度过高。
对于较短的序列,它可能工作得很好,但对于较长的序列,它造成了信息表示的不足,给模型完整地理解源信息带来了困难。在最近的工作中,将注意力限制在只关注部分序列的局部注意被用来解决这一问题。然而,它使自我注意失去了捕获长期依赖的能力,也没有证明按顺序对学习任务进行排序的有效性。
为了建立一个同时具有局部和全局context建模对序列学习的诱导偏差的模块,本文将自我注意与卷积相结合,提出了并行多尺度注意,称为MUSE。
- 它将输入编码为隐藏表示,然后并行应用自我注意和深度可分离的卷积变换。
- 卷积弥补了对局部信息的不充分使用,而自我注意则集中在捕获依赖关系上。
- 此外,这种并行结构具有高度的可扩展性,可以很容易地将新的变换作为新的并行分支引入,也有利于并行计算。
主要贡献如下:
- 注意机制单独存在权值分散的问题,不适合长序列表征学习。提出的方法试图解决这一问题,并在生成长序列方面取得了更好的性能。
- 提出了一种并行的多尺度注意,探索了一种简单而有效的方法,将卷积和自我注意成功地结合在一个模块中。
- MUSE在相同的训练数据和可比的模型大小下,在三个主要机器翻译任务上的得分超过了所有以前的模型,最先进的BLEU。
- MUSE-SIMPLE引入了并行表示学习,带来了可扩展性和并行性。实验表明,在GPU上推理速度可以提高31%。
MUSE:并行多尺度attention
将单词嵌入序列
(
x
1
,
.
.
.
,
x
n
)
(x_1,...,x_n)
(x1,...,xn)作为输入,将单词嵌入转移到隐藏表示
z
=
(
z
1
,
.
.
.
,
z
n
)
z=(z_1,...,z_n)
z=(z1,...,zn),解码器负责逐个token地生成文本序列
(
y
1
,
.
.
.
,
y
m
)
(y_1,...,y_m)
(y1,...,ym).
编码器用由N个MUSE模块进行堆叠,利用残差机制和层归一化来连接相邻的两层。
MUSE的三个组成部分:捕获全局特征的自注意力、用于捕获局部特征的深度可分离卷积、捕获表征特征的基于位置的前馈神经网络
MUE-simple是MUSE的简化版本,不包括间距操作:
全局语境表征的注意机制
用于局部上下文建模的卷积
在MUSE中引入卷积运算来捕捉局部上下文。为了学习同一隐藏空间中的上下文序列表示,选择深度卷积作为卷积运算,因为它包括两个独立的变换,即逐点投影变换和上下文变换。这是因为原始卷积算子是不可分的,但DepthConv可以共享具有自我注意机制的相同的逐点投影变换。本文选择了DepthConv的最佳变体动态卷积
每个卷积子模块包含具有不同核大小的多个单元。它们用于捕获不同范围的要素。核大小为k的卷积单元的输出为:
对于输入序列x,输出
o
o
o计算为:
启示
- 将CNN和self-attention进行组合形成一种独特的注意力的想法很好,可以作为一个创新点应用。