392 Chapter 11. 基于卷积神经网络的模型 肖桐 朱靖波
11.1.4 面向序列的卷积操作
对比于图像处理任务中二维图像数据,自然语言处理任务中主要处理一维序列,
如单词序列。由于单词序列长度往往是不固定的,很难使用全连接网络处理它,因
为变长序列无法用固定大小的全连接网络进行直接建模,而且过长的序列也会导致
全连接网络参数量的急剧增加。
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
e
9
(a) 循环神经网络的串行结构
0
e
1
e
2
e
3
e
4
e
5
e
6
e
7
e
8
e
9
0
0
2 2 2 2 2 2 2 2 2
0
0
3 3 3 3 3 3 3 3 3
0
0
4 4 4 4 4 4 4 4 4
0
(b) 卷积神经网络的层级结构
图 11.9 串行及层级结构对比(e
i
表示词嵌入,0 表示 0 向量,方框里的 2、3、4 表示层次编号)
针对不定长序列,一种可行的方法是使用之前介绍过的循环神经网络进行信息
提取,其本质也是基于权重共享的想法,在不同的时间步复用相同的循环神经网络
单元进行处理。但是,循环神经网络最大的弊端在于每一时刻的计算都依赖于上一
时刻的结果,因此只能对序列进行串行处理,无法充分利用硬件设备进行并行计算,
导致效率相对较低。此外,在处理较长的序列时,这种串行的方式很难捕捉长距离
的依赖关系。相比之下,卷积神经网络采用共享参数的方式处理固定大小窗口内的
信息,且不同位置的卷积操作之间没有相互依赖,因此可以对序列进行高效地并行
处理。同时,针对序列中距离较长的依赖关系,可以通过堆叠多层卷积层来扩大感
受野 (Receptive Field) ,这里感受野指能够影响神经元输出的原始输入数据区域的大
小。图11.9对比了这两种结构,可以看出,为了捕捉 e
2
和 e
8
之间的联系,串行结构
需要顺序地进行 6 次操作,操作次数与序列长度相关。而该卷积神经网络中,卷积
操作每次对三个词进行计算,仅需要 4 层卷积计算就能得到 e
2
和 e
8
之间的联系,其
操作数和卷积核的大小相关,相比于串行的方式具有更短的路径和更少的非线性计
算,更容易进行训练。因此,也有许多研究人员在许多自然语言处理任务上尝试使
用卷积神经网络进行序列建模
[497, 498, 500, 507, 508]
。
区别于传统图像上的卷积操作,在面向序列的卷积操作中,卷积核只在序列这
一维度进行移动,用来捕捉连续的多个词之间的特征。需要注意的是,由于单词通
常由一个实数向量表示(词嵌入),因此可以将词嵌入的维度看作是卷积操作中的
通道数。图11.10就是一个基于序列卷积的文本分类模型,模型的输入是维度大小为