11.2 基于卷积神经网络的翻译建模 395
之间的依赖。即使是远距离依赖,也可以通过若干层卷积单元进行有效的捕捉,而
且其信息传递的路径相比循环神经网络更短。除此之外,模型同时使用门控线性单
元、残差网络和位置编码等技术来进一步提升模型性能,达到了和 GNMT 模型相媲
美的翻译性能,同时大大缩短了训练时间。
图11.12为 ConvS2S 模型的结构示意图,其内部由若干不同的模块组成,包括:
• 位置编码(Position Encoding):图中绿色背景框表示源语言端词嵌入部分。相比
于基于循环神经网络的翻译模型中的词嵌入,该模型还引入了位置编码,帮助
模型获得词位置信息。位置编码具体实现在图11.12中没有显示,详见11.2.1节。
• 卷积层与门控线性单元(Gated Linear Units, GLU):黄色背景框是卷积模块,这
里使用门控线性单元作为非线性函数,之前的研究工作
[502]
表明这种非线性函
数更适合于序列建模任务。图中为了简化,只展示了一层卷积,但在实际中为
了更好地捕获句子信息,通常使用多层卷积的叠加。
• 残差连接(Residual Connection):源语言端和目标语言端的卷积层网络之间,都
存在一个从输入到输出的额外连接,即跳接
[423]
。该连接方式确保每个隐藏层输
出都能包含输入序列中的更多信息,同时能够有效提高深层网络的信息传递效
率(该部分在图11.12中没有显示,具体结构详见11.2.3节)。
• 多步注意力机制(Multi-step Attention):蓝色框内部展示了基于多步结构的注
意力机制模块
[510]
。ConvS2S 模型同样使用注意力机制来捕捉两个序列之间不
同位置的对应关系。区别于之前的做法,多步注意力在解码器端每一个层都会
执行注意力操作。下面将以此模型为例对基于卷积神经网络的机器翻译模型进
行介绍。
11.2.1 位置编码
与基于循环神经网络的翻译模型类似,基于卷积神经网络的翻译模型同样用词
嵌入序列来表示输入序列,记为 w = {w
1
,...,w
m
}。序列 w 是维度大小为 m ×d 的矩
阵,第 i 个单词 w
i
是维度为 d 的向量,其中 m 为序列长度,d 为词嵌入向量维度。
和循环神经网络不同的是,基于卷积神经网络的模型需要对每个输入单词位置进行
表示。这是由于,在卷积神经网络中,受限于卷积核的大小,单层的卷积神经网络只
能捕捉序列局部的相对位置信息。虽然多层的卷积神经网络可以扩大感受野,但是
对全局的位置表示并不充分。而相较于基于卷积神经网络的模型,基于循环神经网
络的模型按时间步对输入的序列进行建模,这样间接的对位置信息进行了建模。而
词序又是自然语言处理任务中重要信息,因此这里需要单独考虑。
为了更好地引入序列的词序信息,该模型引入了位置编码 p = {p
1
,...,p
m
},其中
p
i
的维度大小为 d,一般和词嵌入维度相等,其中具体数值作为网络可学习的参数。
简单来说,p
i
是一个可学习的参数向量,对应位置 i 的编码。这种编码的作用就是对
位置信息进行表示,不同序列中的相同位置都对应一个唯一的位置编码向量。之后
将词嵌入矩阵和位置编码进行相加,得到模型的输入序列 e = {w
1
+p
1
,...,w
m
+p
m
}。