15. 神经机器翻译结构优化
模型结构的设计是机器翻译系统研发中最重要的工作之一。在神经机器翻译
代,虽然系统研发人员脱离了繁琐的特征工程,但是神经网络结构的设计仍然耗
耗力。无论是像循环神经网络、Transformer 这样的整体架构的设计,还是注意力机
制等局部结构的设计,都对机器翻译性能有着很大的影响。
本章主要讨论神经机器翻译中结构优的若干研究方向,包括:注意力机制
改进、神经网络连接优化及深层模型、基于句法的神经机器翻译模型、基于结构
索的翻译模型优化。这些内容可以指导神经机器翻译系统的深入优化,其中涉及
一些模型和方法也可以应用于其他自然语言处理任务。
15.1 注意力机制的改进
注意力机制是神经机器翻译成功的关键。 Transformer 模型为例,由于使用了
自注意力机制,该模型展现出较高的训练并行性,同时在机器翻译、语言建模等
务上,该模型也取得了很好的表现。但是 Transformer 模型仍存在许多亟待解决的问
题,例如,在处理长文本序列时(假设文本长度为 N自注意力机制的时间复杂度
O(N
2
),当 N 过大时翻译速度很低。此外,尽管 Transformer 型的输入中包含
了绝对位置编码表示,但是现有的自注意力机制仍然无法显性捕获局部窗口下不
位置之间的关系。而且注意力机制也需要更多样的手段进行特征提取,例如,采
多头或者多分支结构对不同空间特征进行提取。针对以上问题,本节将介绍注意
机制的优化策略,并重点讨论 Transformer 模型的若干改进方法。
502 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
15.1.1 局部信息建模
使用循环神经网络进行序列建模时,每一个时刻的计算都依赖于上一时刻循
单元态。种模一定性,时具Inductive Bias
的特性
[791]
,即每一时刻的状态仅仅基于当前时刻的输入和前一时刻的状态。这种
纳偏置的好处在于,模型并不需要对绝对位置进行建模,因此模型可以很容易处
任意长度的序列,即使测试样本显著长于训练样本。
Self-Attention
Add & LayerNorm
Feed Forward Network
Add & LayerNorm
· · ·
Self-Attention
Add & LayerNorm
Feed Forward Network
Add & LayerNorm
1
n
1
n
编码器
Embedding
+
Absolute Position
词序信息
(a) 绝对位置编码
Self-Attention
Add & LayerNorm
Feed Forward Network
Add & LayerNorm
· · ·
Self-Attention
Add & LayerNorm
Feed Forward Network
Add & LayerNorm
1
n
1
n
编码器
Embedding
+
Absolute Position
词序信息
Relative
Position 1
· · ·
Relative
Position n
(b) 相对位置编码
15.1 绝对位置编码和相对位置表示
但是,Transformer 型中的自注意力机制本身并不具有这种性质,而且它直
忽略了输入单元之间的位置关系。虽然,Transformer 中引入了基于正余弦函数的绝
对位置编码(见第十二章),但是该方法仍然无法显性区分局部依赖与长距离依赖
1
针对上述问题,研究人员尝试引入“相对位置”信息,对原有的“绝对位置”
息进行补充,强化了局部依赖
[462, 552]
。此外,由于模型中每一层均存在自注意力机制
计算,因此模型捕获位置信息的能力也逐渐减弱,这种现象在深层模型中尤为明显。
而利用相对位置表示能够把位置信息显性加入到每一层的注意力机制的计算中,
而强能力
[464]
。图?? Transformer 中绝
对位置表示方法。
1
局部依赖指当前位置与局部的相邻位置之间的联系。
15.1 注意力机制的改进 503
1. 位置编码
在介绍相对位置表示之前,首先简要回一下自注意力机制的计算流程(见
十二章)。对于 Transformer 模型中的某一层神经网络,可以定义:
Q = xW
Q
(15.1)
K = xW
K
(15.2)
V = xW
V
(15.3)
其中,x 为上一层的输
2
W
Q
W
K
W
V
为模型参数,它们可以通过自动学习
到。此时,对于整个模型输入的向量序 x = {x
1
,... ,x
m
},通过点乘计算,可以得
到当前位置 i 和序列中所有位置间的关系,记为 z
i
,计算公式如下:
z
i
=
m
X
j=1
α
ij
(x
j
W
V
) (15.4)
这里,z
i
可以被看做是输入序列的线性加权表示结果。权重 α
ij
通过 Softmax 函数得
到:
α
ij
=
exp(e
ij
)
P
m
k=1
exp(e
ik
)
(15.5)
进一步,e
ij
被定义为:
e
ij
=
(x
i
W
Q
)(x
j
W
K
)
T
d
k
(15.6)
其中,d
k
为模型中隐藏层的维度
3
e
ij
实际上就是 Q K 的向量积缩放后的一个结
果。
基于上述描述,相对位置模型可以按如下方式实现:
相对位置表示Relative Positional Representation
[462]
。核心思是在够捕
全局依赖的自注意力机制中引入相对位置信息。该方法可以有效补充绝对位置
编码的不足,甚完全取代对位置编码。对于 Transformer 模型中的任意
层,假设 x
i
x
j
是位置 i j 的输入向量(也就是来自上一层位置 i j 的输
2
这里,KQV 的定义与第十二章略有不同,因为在这里的 KQV 是指对注意力模型输入进行
线性变换后的结果,而第十二章中 KQV 直接表示输入。但是,这两种描述方式本质上是一样的,
区别仅仅在于对输入的线性变化是放在输入自身中描述,还是作为输入之后的一个额外操作。
3
在多头注意力中,d
k
为经过多头分割后每个头的维度。
504 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
出向量),二者的位置关系可以通过向量 a
V
ij
a
K
ij
来表示,定义如下:
a
K
ij
= w
K
clip(ji,k)
(15.7)
a
V
ij
= w
V
clip
(
j
i,k
)
(15.8)
clip(x,k) = max(k, min(k, x)) (15.9)
w
3
w
3
w
3
w
3
w
2
w
1
w
0
w
3
w
3
w
3
w
2
w
1
w
0
w
1
w
3
w
3
w
2
w
1
w
0
w
1
w
2
w
3
w
2
w
1
w
0
w
1
w
2
w
3
w
2
w
1
w
0
w
1
w
2
w
3
w
3
w
1
w
0
w
1
w
2
w
3
w
3
w
3
w
0
w
1
w
2
w
3
w
3
w
3
w
3
6
5
4
3
2
1
0
0 1 2 3 4
5
6
j
i
15.2 相对位置权重 a
ij
[792]
其中,w
K
R
d
k
w
V
R
d
k
是模型中学习的参矩阵;clip(·, ·) 表示截
操作,由公式(??)定义。可以看出,a
K
a
V
是根据输入的相对位置信息(由
clip(j i,k) 定) w
K
w
V
进行量,示,
??所示。这里通过预先设定的最大相对位置 k,强化模型对以当前词为中心
的左右各 k 个词的注意力计算。因此,最终的窗口大小为 2k + 1。对于边缘位
置窗口大小不足 2k 的单词,采用了裁剪的机制,即只对有效的临近词进行
模。此时,注意力模型的计算可以调整为:
z
i
=
m
X
j=1
α
ij
(x
j
W
V
+ a
V
ij
) (15.10)
相比于公式(??)公式(??)在计算 z
i
时引入了额外的向量 a
V
ij
用它来表示位置
i 与位置 j 之间的相对位置信息。同时在计算注意力权重时 K 进行修改,同
样引入 a
K
ij
向量表示位置 i 位置 j 之间的相对位置。在公式(??)基础上,
注意力权重的计算方式调整为:
e
ij
=
x
i
W
Q
(x
j
W
K
+ a
K
ij
)
T
d
k
=
x
i
W
Q
(x
j
W
K
)
T
+ x
i
W
Q
(a
K
ij
)
T
d
k
(15.11)
15.1 注意力机制的改进 505
可以注意到,与 Transformer 只将位编码信息为模型的入不同,公
(??)和公式(??)将位置编码信息直接融入到了每一层注意力机制的计算中。
Transformer-XL
[552]
Transformer 中,模型的输入由词嵌入表示与绝对位置编
码组成,例如,对于输入层有,x
i
= E
x
i
+ U
i
x
j
= E
x
j
+ U
j
其中 E
x
i
E
x
j
表示词嵌入,U
i
U
j
表示绝对置编码(正弦函数)。将 x
i
x
j
代入
(??)中可以得到:
e
ij
=
(E
x
i
+ U
i
)W
Q
((E
x
j
+ U
j
)W
K
)
T
d
k
(15.12)
这里使用 A
abs
ij
表示公式(??)中等式右侧的分子部分,并对其进行展开:
A
abs
ij
= E
x
i
W
Q
W
T
K
E
T
x
j
| {z }
(a)
+E
x
i
W
Q
W
T
K
U
T
j
| {z }
(b)
+
U
i
W
Q
W
T
K
E
T
x
j
| {z }
(c)
+U
i
W
Q
W
T
K
U
T
j
| {z }
(d)
(15.13)
其中,abs 代表使用绝对位置编码计算得到的 A
ij
W
Q
W
K
表示线性变换矩
阵。为了引入相对位置信息,可以将公式(??)修改为如下形式:
A
rel
ij
= E
x
i
W
Q
W
T
K
E
T
x
j
| {z }
(a)
+E
x
i
W
Q
W
T
K
R
T
ij
| {z }
(b)
+
uW
T
K,E
E
T
x
j
| {z }
(c)
+vW
T
K,R
R
T
ij
| {z }
(d)
(15.14)
其中,A
rel
ij
为使用相对位置表示后位置 i j 系的表示结果,R 是一个固定
的正弦矩阵。不同于公式(??)公式(??) (c) 中的 E
T
x
j
(d) 中的 R
T
ij
采用了
不同的映射矩阵,分别为 W
T
K,E
W
T
K,R
,这两项分别代表了键 K 中的词嵌入
表示和相对位置表示,并且由于此时只采用了相对位置表示,因此公(??)
(c) (d) 部分使用了 u v 两个可学习的矩阵代替 U
i
W
Q
U
i
W
Q
,即查询 Q
中的绝对位置编码部分。此时公式中各项的含义为:(a) 表示位置 i 与位置 j
间词嵌入相关性,可以作是于内容的示,(b) 基于容的置偏
置,(c) 表示全局内容的偏置,(d) 表示全局位置的偏置。公式(??)中的 (a)(b)
两项的绝
[462]
,并置表
线性变换矩阵。同时,这种方法兼顾了全局内容偏置和全局位置偏置,可以更
好地利用正余弦函数的归纳偏置特性。
结构化位置表示Structural Position Representations
[793]
通过对输入句子进行依
存句到句树,叶子树中表示置,
506 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
并在此基础上利用相对位置表示的思想计算节点之间的相对位置信息。
基于连续动态系统Continuous Dynamic Model的位置编码
[553]
使用神经常微分
方程解器Solver)来建模位置信
[794]
,模型具有更好的归纳偏置能力,可
以处理变长的输入序列,同时能够从不同的数据中进行自适应学习。
2. 注意力分布约束
局部注意力机制一直是机器翻译中受关注的研方向
[25]
。通过对注意力权重的
可视化,可以观测到不同位置的词受关注的程度相对平滑。这样的建模方式利于
局建模,但一定程度上分散了注意力,导致模型忽略了邻近单词之间的关系。为
提高模型对局部信息的感知,有以下几种方法:
引入高斯约束
[555]
。如图??所示,这类方法的核心思想是引入可学习的高斯分布
G 作为局部约束,与注意力权重进行融合。
It
is
a
nice
day today
(a) 原始分布
It
is
a
nice
day today
(b) 高斯分布
D
i
It
is
a
nice
day today
(c) 修改后的分布
15.3 融合高斯分布的注意力分布
具体的形式如下:
e
ij
=
(x
i
W
Q
)(x
j
W
K
)
T
d
k
+ G
ij
(15.15)
其中,G
ij
表示位置 j 和预测的中心位置 P
i
之间的关联程度,G
ij
G 中的一
个元素,G R
m×m
。计算公式如下:
G
ij
=
(j P
i
)
2
2σ
2
i
(15.16)
中,σ
i
差,被义为 i D
i
半,
σ
i
=
D
i
2
。中心位置 P
i
和局部建模窗口 D
i
的计算方式如下:
P
i
D
i
!
= m ·Sigmoid(
p
i
v
i
!
) (15.17)
15.1 注意力机制的改进 507
其中,m 表示序列长度,p
i
v
i
为计算的中间结果,被定义为:
p
i
= I
T
p
Tanh(W
p
Q
i
) (15.18)
v
i
= I
T
d
Tanh(W
d
Q
i
) (15.19)
其中,W
p
W
d
I
p
I
d
均为模型中可学习的参数矩阵。
多尺度局部建模
[795]
。不同于上述方法直接作用于注意力权重,多尺度局部建模
通过赋予多头不一样的局部感受野,间接地引入局部约束(图??
h
l
i2
h
l
i1
h
l
i
h
l
i+1
h
l
i+2
head
1
head
2
head
3
h
l+1
i
15.4 多尺度局部建模
[795]
于是,在计算第 i 个词对第 j 个词的相关系数时,通过超参数 ω 控制实际的感
受野为 j ω,..., j + ω注意力计算中 e
ij
的计算方式与公式(??)相同,权重 α
ij
的具体计算公式为:
α
ij
=
exp(e
ij
)
P
j+ω
k=jω
exp(e
ik
)
(15.20)
之后在计算注意力输出时同样利用上述思想进行局部约束:
z
i
=
j+ω
X
j=jω
α
ij
(x
j
W
V
) (15.21)
其中,约束的具体作用范围会根据实际句长进行一定的裁剪,通过对不同的头
设置不同的超参数来控制感受野的大小,最终实现多尺度局部建模。
值得注意的是上述两种添加局部约束的方法都更适用于 Transformer 模型的底层
网络。这是由于模型离输入更近的层更倾向于捕获局部信息
[554, 555]
,伴随着神经网络
的加深,模型更倾向于逐渐加强全局建模的能力。类似的结论在针对 BERT 模型的
解释性研究工作中也有论述
[554, 796]
508 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
3. 卷积 vs 注意力
第十一章已经提到,卷积神经网络能够很好地捕捉序列中的局部信息。因此,
分地利用卷积神经网络的特性,也是一种进一步优化注意力模型的思路。常见的
法是在注意力模型中引入卷积操作,甚至用卷积操作替换注意力模型,如:
使用轻量卷积和动态卷积神经网络
[509, 535]
比如,分别在编码器和解码器利用轻量
卷积或动卷积神经络(见九章)替换 Transformer 的自意力机制,
时保码器-码注制,一度上模型信息
建模能力,同时提高了计算效率。
使用 1 维卷积注意力网络
[556]
(图??(b)可以使用一维的卷积自注意力网络1D-
CSAN)将关注的范围限制在相近的元素窗口中。其形式上十分简单,只需
先设定好局部建模的窗口大小 D,并在进行注意力权重计算和对 Value 值进行
加权求和时,将其限制在设定好的窗口范围内。
使用 2 维卷积注意力网络(图??(c)在一维卷积注意力网络的基础上,对多个
注意力头之间的信息进行交互建模,打破了注意力头之间的界限。1D-CSAN
关注区域为 1 ×D,当将其扩展为二维矩形 D ×N,长和宽分别为局部窗口的
大小和参与建模的自注意力头的个数。这样,模型可以计算某个头中的第 i
元素和另一个头中的第 j 个元素之间的相关性系数,实现了对不同子空间之间
关系的建模,所得到的注意力分布表示了头之间的依赖关系。
(a) 标准自注意力模型
注意力头
句子长度
(b) 一维卷积注意力模型
注意力头
句子长度
(c) 二维卷积注意力模型
注意力头
句子长度
15.5 卷积注意力模型示意图
[556]
15.1.2 多分支结构
在神经网络模型中,可以使用多个平行的组件从不同角度捕捉输入的特征,这种
结构被称为多分支Multi-branch结构。多分支结构在图像处理领域被广泛应用
[797]
在许多人工设计或者自动搜索获得的神经网络结构中也有它的身影
[798, 799, 800]
在自然语言处理领域,多支结构同样也有很多应用。一个典型的例子是,
十章介绍过为了更好地对源语言进行表示,编码器可以采用双向循环神经网络。
种模型就可以被看作一个两分支的结构,分别用来建模正向序列和反向序列的表示,
之后将这两种表示进行拼接得到更丰富的序列表示结果。另一个典型的例子是第
二章介绍的多头注意力机制。 Transformer 模型中,多头注意力将输入向量分割成
多个子向量,然后分别进行点乘注意力的计算,最后再将多个输出的子向量拼接
15.1 注意力机制的改进 509
通过线性变换进行不同子空间信息的融合。在这个过程中,多个不同的头对应着
同的特征空间,可以捕捉到不同的特征信息。
近几年, Transformer 的结构基础上,研究人员探索了更为丰富的多分支结构。
下面介绍几种在 Transformer 模型中引入多分支结构的方法:
基于权重的方法
[801]
。其主要思想是在多头自注意力机制的基础上保留不同表示
空间的特征。传统方法使用级联操作并通过线性映射矩阵来融合不同头之间的
信息,而基于权重的 Transformer 直接利用线性映射将维度为 d
k
的向量表示映
射到 d
model
维的向量。之后,将这个 d
model
维向量分别送入每个分支中的前馈
神经网络,最后对不同分支的输出进行线性加权。但是,这种模型的计算复杂
度要大于标准的 Transformer 模型。
基于多分支注意力的方法
[800]
。不同于基于权重的 Transformer 模型,多分支注意
力模型直接利用每个分支独立地进行自注意力模型的计算(图??。同时为了
避免结构相同的多个多头注意力机制之间的协同适应,这种模型使用 Dropout
方法在训练过程中以一定的概率随机地丢弃一些分支。
LN LN
Multi-Head Attention
···
Multi-Head Attention
FFN
以概率
p 丢弃
以概率
p 丢弃
15.6 多分支注意力模型
基于多单元的方法例如,为了进一步加强不同分支的作用,基于多单元的 Trans-
former 模型进行了序列不同位置表示结果的交换,或使用不同的掩码策略对不
同分动,间的
[799]
。本上,
多单思想成学分相似,类似训练中同练多编码器。
外,
[802]
此外,??节中曾提到过,利用卷积神经网络可以与自注意力机制形成互补。
似的想法在多分支结构中也有体现。如??示,可以使用自注意力机制和卷积
经网络分别提取全局和局部两种依赖关系
[544]
。具体的做法是将输入的特征向量切
成等同维度的两部分,之后分别送入两个分支进行计算。其中,全局信息使用自
意力机制进行提取,局部信息使用轻量卷积网络进行提取
[509]
。此外,由于每个分
的维度只有原始的一半,采用并行计算方式可以显著提升系统的运行速度。
510 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
input
Embedding
Attention
Conv
Embedding
FFN
output
15.7 基于自注意力和卷积神经网络的 2 分支结构
15.1.3 引入循环机制
Transformer
元,
分序列中的不同位置。但是,循环神经网络并非没有其存在的价值,这种网络也
常适用于处理序列结构,且其结构成熟、于优化。因此,有研究人员尝试将其
Transformer 型融合。这种方式一方面能够发挥循环神经网络简单高效的特点,另
一方面也能够发挥 Transformer 模型在特征提取方面的优势,是一种非常值得探索的
思路
[460]
Transformer 模型中引入循环神经网络的一种方法是,对深层网络的不同层使
用循环机制。早在残差网络提出时,研究人员已经开始尝试探讨残差网络成功背后的
原因
[803, 804, 805]
本质上,在卷积神经网络中引入残差连接后,神经网络从深度上隐性地
利用了循环的特性。也就是,多层 Transformer 的不同层本身也可以被看作是一个处
理序列,只是序列中不同位置(对应不同层)的模型参数独立,而非共享。Transformer
编码器与解码器分别 N 个结构相同但参数独立的层堆叠而成,其中编码器包含 2
个子层,解码器包 3 个子层。同时,子层之间引入了残差连接保证了网络信息传
递的高效性。因此,一个自然的想法是通过共享不同层之间的参数,引入循环神
网络中的归纳偏置
[806]
。其中每层的权重是共享的,并引入了基于时序的编码向量用
于显著区分不同深度下的时序信息,如??示。在训练大容量预训练模型时同
也采取了共享层间参数的方式
[807]
另一种方法是,利用循环神经网络对输序列进行编码,之后通过门控机制
得到的结果与 Transformer 进行融合
[808]
。融合机制可以采用串行计算或并行计算。
15.1 注意力机制的改进 511
循环单元
循环单元
···
循环单元
1 时刻
输入
2 时刻
输入
n 时刻
输入
h
0
输出
(a)RNN
1
2
···
n
1 时刻
2 时刻
n 时刻
h
0
输出
(b) 原始 Transformer 模型
1
2
···
n
1 时刻
编码向量
2 时刻
编码向量
n 时刻
编码向量
h
0
输出
(c) 共享权重的 Transformer 模型
15.8 Transformer 中引入循环机制
15.1.4 高效的自注意力模型
除了机器翻译,Transformer 模型同样被广泛应用于自然语言理解、图像处理、
音处理等任务。但是,自注意力机制的时间复杂度是序列长度 N 的平方项,同时其
对内存(显存)的消耗巨大,尤其当处理较长序列的文本时,这种问题尤为严重。
此如何提高 Transformer 模型的效率也受到了广泛的关注。第十四章已经从模型推断
Transformer 系统法, Transformer
变种模型。
性,
因此其时间复杂度较高。一个自然的想法就是限制自注意力机制的作用范围,大
上可以分为如下几种方式:
分块注意力顾名思义,就是将序列划分为固定大小的片段,注意力模型只
对应的片段内执行。这样,每一个片段内的注意力计算成本是固定的,可以大
大降低处理长序列时的总体计算时间
[809, 810]
跨步注意力该模型是一种稀疏的注意力机制,通常会设置一个固定的间隔,
就是说在计算注意力表示时,每次跳过固定数量的词,并将下一个词纳入注意
力计算的考虑范围内
[811]
和分片段进行注意力计算类似,假设最终参与注意力
计算的间隔长度为 N/B次参与注意力计算单词数为 B那么注意
计算复杂度将从 O(N
2
) 缩减为 O(N/B ×B
2
),即 O(NB)
内存缩注意力种方主要想是使一些作,如卷积、化等
序列进行下采样subsampled来缩短序列长度。例如,使用跨步卷积Stride
Convolution来减少 Key Value 的数量,即减少表示序列长度的维度的大小,
512 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
Query 的数量保持不变,从而减少了注意力权重计算时的复杂度
[810]
其计算复
杂度取决于跨步卷积时步幅的大小 K,形式上可以理解为 K 单元做一次
特征融合后,将关注的目标缩减为 N/K,整体的计算复杂度为 N
2
/K。相比
于使用前两种方式对局部进行注意力计算,该方式仍是对全局的建模。
在不同的任务中,可以根据不同的需求使用不同的注意力模型,甚至可以采用多
种注意力模型的结合。比如,对分类任务中的某些特殊标签, BERT 中的 <CLS>
需要对全局信息进行整合,因此可以使用全局注意力。而对于其他位置,则可以使
用局部注意力提高计算效率。同样的,也可以针对多头机制中的不同注意力头采
不同的计算方式,或者对不同的头设置不同的局部窗口大小,以此来增大感受野,
提高模型计算效率的同时使模型保留全局建模能力。
由于上述方法都是基于预先设定好的超参来限制注意力机制的作用范围,因
可以称这些方法是静态的。除此之外还有以数据驱动的方法,这类方法通过模型
学习注意力机制的作用范围。比如,可以将序列分块,并对序列中的不同单元进
排序或者聚类,之后采用稀疏注意力的计算。下面对部分相关的模型进行介绍:
Reformer 模型在计算 Key Value 时使用相同的线性映射,共享 Key Value
的值
[545]
降低了自注意力机制的复杂度。进一步,Reformer 引入了一种局部敏
感哈希注意力机制Locality Sensitive Hashing AttentionLSH Attention,其提
高效率的方式和固定模式中的局部建模一致,减少注意力机制的计算范围。
于每一个 Query,通过局部哈希敏感机制找出和其较为相关的 Key,并进行注
意力的计算。其基本思路就是距离相近的向量以较大的概率被哈希分配到一个
桶内,距离较远的向量被分配到一个桶内的概率则较低。此外,Reformer 中还
采用了一种可逆残差网络结构The Reversible Residual Network)和分块计算前
馈神经网络层的机制,即将前馈层的隐藏层维度拆分为多个块并独立的进行计
算,最后进行拼接操作,得到前馈层的输出,这种方式大幅度减少了内存(显
存)占用。
Routing Transformer 过聚类算法对序列中的不同单元进行分组,分别在组内
进行自注意力机制的计算
[812]
。该方法是将 Query Key 映射到聚类矩阵 S
S = QW + KW (15.22)
其中,W 为映射矩阵。为了保证每个簇内的单词数量一致,利用聚类算法将 S
中的向量分配
N 个簇中,其中 N 为序列长度,即分别计算 S 中每个向量
与质心(聚类中心)的距离,并对每个质心取距离最近的若干个节点。
另外,在注意力机制中对计算效率影响很大的一个因素 Softmax 函数的计算。
15.1 注意力机制的改进 513
第十二章已经介绍过自注意力机制的计算公式为:
Attention(Q,K,V) = Softmax(
QK
T
d
k
)V (15.23)
由于 Softmax 函数的存在,因此首先要进行 QK
T
的计算得到 N ×N 的矩阵,
时间复杂度便是 O(N
2
)。假设能够移除 Softmax 操作,便可以将注意力机制的计算
调整为 QK
T
V,由于矩阵的运算满足结合律,可以先进行 K
T
V 的运算,得到 d
k
×d
k
的矩阵,再左乘 Q在长文本处理中,由于多头机制的存在,一般有 d
k
N所以
最终的计算复杂度便可以近似为 O(N),从而将注意力机制简化为线性模型
[728, 813]