402 Chapter 11. 基于卷积神经网络的模型 肖桐 朱靖波
11.3 局部模型的改进
在序列建模中,卷积神经网络可以通过参数共享,高效地捕捉局部上下文特征,
如图11.11所示。但是通过进一步分析可以发现,在标准卷积操作中包括了不同词和
不同通道之间两种信息的交互,每个卷积核都是对相邻词的不同通道进行卷积操作,
参数量为 K ×O,其中,K 为卷积核大小,O 为输入的通道数,即单词表示的维度
大小。如果使用 N 个卷积核,得到 N 个特征(即输出通道数),总共的参数量为
K ×O ×N。这里涉及卷积核大小、输入通道数和输出通道数三个维度,因此计算复
杂度较高。为了进一步提升计算效率,降低参数量,一些研究人员提出深度可分离卷
积(Depthwise Separable Convolution),将空间维度和通道间的信息交互分离成深度
卷积(Depthwise Convolution,也叫逐通道卷积)和逐点卷积(Pointwise Convolution)
两部分
[515, 516]
。除了直接将深度可分离卷积应用到神经机器翻译中
[504]
,研究人员提出
使用更高效的轻量卷积(Lightweight Convolution)和动态卷积(Dynamic Convolution)
来进行不同词之间的特征提取
[509]
。本节将主要介绍这些改进的卷积操作。在后续章
节中也会看到这些模型在神经机器翻译中的应用。
11.3.1 深度可分离卷积
根据前面的介绍,可以看到卷积神经网络适用于局部检测和处理位置不变的特
征。对于特定的表达,比如地点、情绪等,使用卷积神经网络能达到不错的识别效
果,因此它常被用在文本分类中
[497, 498, 507, 517]
。不过机器翻译所面临的情况更复杂,除
了局部句子片段信息,研究人员还希望模型能够捕获句子结构、语义等信息。虽然
单层卷积神经网络在文本分类中已经取得了很好的效果
[498]
,但是神经机器翻译等任
务仍然需要有效的卷积神经网络。随着深度可分离卷积在机器翻译中的探索
[504]
,更
高效的网络结构被设计出来,获得了比 ConvS2S 模型更好的性能。
深度可分离卷积由深度卷积和逐点卷积两部分结合而成
[518]
。图11.17对比了标准
卷积、深度卷积和逐点卷积,为了方便显示,图中只画出了部分连接。
给定输入序列表示 x = {x
1
,...,x
m
},其中 m 为序列长度,x
i
∈ R
O
,O 即输入
序列的通道数。为了获得与输入序列长度相同的卷积输出结果,首先需要进行填充。
为了方便描述,这里在输入序列尾部填充 K −1 个元素(K 为卷积核窗口的长度),
其对应的卷积结果为 z = {z
1
,...,z
m
}。在标准卷积中,若使用 N 表示卷积核的个数,
也就是标准卷积输出序列的通道数,那么对于第 i 个位置的第 n 个通道 z
std
i,n
,其标准
卷积具体计算如下:
z
std
i,n
=
O
X
o=1
K−1
X
k=0
x
i+k,o
W
std
k,o,n
(11.18)
其中,z
std
表示标准卷积的输出,z
std
i
∈R
N
,W
std
∈R
K×O×N
为标准卷积的参数。可
以看出,标准卷积中每个输出元素需要考虑卷积核尺度内所有词的所有特征,参数