10.2 编码器-解码器框架 353
10.2 编码器-解码器框架
说到神经机器翻译就不得不提编码器-解码器模型编码器-解码器框架Encoder-
Decoder Paradigm)。本质上,编码-解码器模型是描述输-输出之间关系的一
方式。编码器-解码器这个概念在日常生活中并不少见。例如,在电视系统上为了便
于视频的传播,会使用各种编码器将视频编码成数字信号,在客户端,相应的解
器组件会把收到的数字信号解码为视频。另外一个更贴近生活的例子是电话,它
过对声波和电信号进行相互转换,达到传递声音的目的。这种“先编码,再解码”
思想被应用到密码学、信息论等多个领域。
不难看出,机器翻译问题也完美的贴合编码器-解码器结构的特点。可以将源语
言编码为类似信息传输中的数字信号,然后利用解码器对其进行转换,生成目标
言。下面就来看一下神经机器翻译是如何在编码器-解码器框架下进行工作的。
10.2.1 框架结构
编码器-解码器框架是一种典型的基于“表示”的模型。编码器的作用是将输入
的文字序列通过某种转换变为一种新的“表示”形式,这种“表示”包含了输入序列
的所有信息。之后,解码器把这种“表示”重新转换为输出的文字序列。这其中的一
个核心问题是表示学习,即:如何定义对输入文字序列的表示形式,并自动学习
种表示,同时应用它生成输出序列。一般来说,不同的表示学习方法可以对应不
的机器翻译模型,比如,在最初的神经机器翻译模型中,源语言句子都被表示为
个独立的向量,这时表示结果是静态的;而在注意力机制中,源语言句子的表示
动态的,也就是翻译目标语言的每个单词时都会使用不同的表示结果。
10.5是一个应用编码器-码器结构来解决机器翻译问题的简单实例。给定
个中文句子“我///感到/满意”编码器会将这句话编码成一个实数向量 (0.2,1,6,
5,0.7,2),这个向量就是源语言句子的“表示”结果。虽然有些不可思议,但是神
经机器翻译模型把这个向量等同于输入序列。向量中的数字并没有实际的意义,
而解码器却能从中提取到源语言句子中所包含的信息。也有研究人员把向量的每
个维度看作是一个“特征”这样源语言句子就被表示成多个“特征”的联合,而且
这些特征可以被自动学习。有了这样的源语言句子的“表示”解码器可以把这个实
数向量作为输入,然后逐词生成目标语言句子“I am satisfied with you
在源语言句子的表示形式确定之后,需要设计相应的编码器和解码器结构。
当今主流的神经机器翻译系统中,编码器由词嵌入层和中间网络层组成。当输入
串单词序列时,词嵌入层会将每个单词映射到多维实数表示空间,这个过程也被
为词嵌入。之后中间层会对词嵌入向量进行更深层的抽象,得到输入单词序列的
间表示。中间层的实现方式有很多,比如:循环神经网络、卷积神经网络、自注意力
机制等都是模型常用的结构。解码器的结构基本上和编码器是一致的,在基于循
神经网络的翻译模型中,解码器只比编码器多了输出层,用于输出每个目标语言
置的单词生成概率,而在基于自注意力机制的翻译模型中,除了输出层,解码器
354 Chapter 10. 基于循环神经网络的模型 肖桐 朱靖波
源语言: 我 对 你 感到 满意
目标语言: I am satisfied with you
.2
-1
6
5
.7
-2
源语言句子的“表示”
编码器(Encoder
解码器(Decoder
10.5 使用编码器-解码器架构处理汉英翻译的过程
比编码器多一个编码-解码注意力子层,用于帮助模型更好地利用源语言信息。
现在,编码器-解码器框架已经成为了神经机器翻译系统的标准架构。当然,也
有一些研究工作在探索编码器-解码器框架之外的结构
[466]
但是还没有太多颠覆性的
进展。因此,本章仍然以编码器-解码器框架为基础对相关模型和方法进行介绍。
10.2.2 表示学习
编码器-解码器框架的创新之处在于,将传统基于符号的离散型知识转化为分布
式的连续型知识。比如,对于一个句子,它可以由离散的符号所构成的文法规则
生成,也可以直接被表示为一个实数向量记录句子的各个“属性”这种分布式的实
数向量可以不依赖任何离散化的符号系统,简单来说,它就是一个函数,把输入
词串转化为实数向量。更为重要的是,这种分布式表示可以被自动学习。或者从
种意义上说,编码器-解码器框架的作用之一就是学习输入序列的表示。表示结果学
习的好与坏很大程度上会影响神经机器翻译系统的性能。
10.6对比机器经机的表的区别。的统
器翻译(a通过短语或者规则组合来获得更大的翻译片段,直至覆盖整个句子。
本质是在离散结构间中组合过程。经机翻译b之不同,
它并没有所谓的“组合”的过程,整个句子的处理是直接在连续空间上进行计算
到的。这二者的区别也体现了符号系统与神经网络系统的区别。前者更适合处理
散化的结构表示,后者更适合处理连续化的表示。
实际上,编码器-解码器模型也并不是表示学习实现的唯一途径。比如,在第九
章提到的神经语言模型实际上也是一种有效的学习句子表示的方法,它所衍生出
预训练模型可以从大规模单语数据上学习句子的表示形式。这种学习会比使用少
的双语数据进行编码器和解码器的学习更加充分。相比机器翻译任务,语言模型
当于一个编码器的学习
4
可以无缝嵌入到神经机器翻译模型中。不过,值得注意的
4
相比神经机器翻译的编码器,神经语言模型会多出一个输出层,这时可以直接把神经语言模型
10.2 编码器-解码器框架 355
离散表示空间
(a) 统计机器翻译
离散表示空间
连续表示空间
(b) 神经机器翻译
10.6 统计机器翻译和神经机器翻译的表示空间
是,机器翻译的目的是解决双语字符串之间的映射问题,因此它所使用的句子表
是为了更好地进行翻译。从这个角度说,机器翻译中的表示学习又和语言模型中
表示学习有不同。不过,这里不会深入讨论神经语言模型和预训练与神经机器翻
之间的异同,在后续章节会有相关讨论。
还有一点,在神经机器翻译中,句子的表示形式可以有很多选择。使用单个
量表示一个句子是一种最简单的方法。当然,也可以用矩阵、高阶张量完成表示。
至,在解码时动态地生成源语言的表示结果。
10.2.3 简单的运行实例
为了对编码器-解码器框架和神经机器翻译的运行过程有一个直观的认识,这里
采用标准的循环神经网络作为编码器和解码器的结构,演示一个简单的翻译实例。
设系统的输入和输出为:
输入(汉语):我 <eos>
输出(英语)I am fine <eos>
这里令 <eos>End of Sequence表示序列的终止,<sos>Start of Sequence表示序
列的开始。
0
源语言句
子表示
eos
编码器
sos I am fine
I am fine eos
解码器
10.7 神经机器翻译的运行实例
中间层的输出作为编码器的输出。
356 Chapter 10. 基于循环神经网络的模型 肖桐 朱靖波
翻译过程的神经网络结构如图10.7所示,其中左边是编码器,右边是解码器。
码器会顺序处理源语言单词,将每个单词都表示成一个实数向量,也就是每个单
的词嵌入结果(绿色方框)在词嵌入的基础上运行循环神经网络(蓝色方框)在编
码下一个时间步状态的时候,上一个时间步的隐藏状态会作为历史信息传入循环
经网络。这样,句子中每个位置的信息都被向后传递,最后一个时间步的隐藏状
(红色方框)就包含了整个源语言句子的信息,也就得到了编码器的编码结果
——
源语言句子的分布式表示。
解码器直接把源语言句子的分布式表示作为输入的隐藏层状态,之后像编码
一样依次读入目标语言单词,这是一个标准的循环神经网络的执行过程。与编码
不同的是,解码器会有一个输出层,用于根据当前时间步的隐藏层状态生成目标
言单词及其概率分布。可以看到,解码器当前时刻的输出单词与下一个时刻的输
单词是一样的。从这个角度说,解码器也是一种神经语言模型,只不过它会从另
一种语言(源语言)获得一些信息,而不是仅仅生成单语句子。具体来说,当生成第
一个单词“I”时,解码器利用了源语言句子表示(红色方框)和目标语言的起始词
<sos>在生成第二个单词am时,解码器利用了上一个时间步的隐藏状态和已
经生成的“I”的信息。这个过程会循环执行,直到生成完整的目标语言句子。
从这个例子可以看出,神经机器翻译的流程其实并不复杂:首先通过编码器
经网络将源语言句子编码成实数向量,然后解码器神经网络利用这个向量逐词生
译文。现在几乎所有的神经机器翻译系统都采用类似的架构。
10.2.4 机器翻译范式的对比
对于不同类型的机器翻译方法,人类所扮演的作用是不同的。在统计机器翻
时代,往往需要人工定义所需要的特征和翻译单元,翻译中的每一个步骤对于人
说都是透明的,翻译过程具有一定的可解释性。而在神经机器翻译时代,神经机
翻译将所有的工作都交给神经网络,翻译的过程完全由神经网络计算得到。在整
神经网络的运行过程中并不需要人工先验知识,其中所生成的中间表示也只有神
网络自身才可以理解。有时候也会把神经机器翻译系统看作“黑盒”。所谓“黑盒”
并不是指神经网络计算的过程不可见,而是这种复杂的计算过程无法控制也很难
释。那么是神经机器翻译会魔法吗,不需要任何人为的干预就可以进行翻译吗?
实不然,相对于统计机器翻译,真正变化的是人类使用知识的形式。
在机不同期,参与中的不相同,10.5
述。具体来说,
在早期基于规则的方法中,规则的编写、维护均需要人来完成,也就是人类直
接提供了计算机可读的知识形式;
在统计机器翻译方法中,则需要人为的设计翻译特征,并且定义基本翻译单元
的形式,然后剩下的事情(比如翻译过程)交由统计机器翻译算法完成,也就
是人类间接的提供了翻译所需要的知识;
10.2 编码器-解码器框架 357
在神经机器翻译方法中,特征的设计完全不需要人的参与,但是进行特征提取
的网络结构仍然需要人为地设计,训练网络所需要的参数也需要工程师的不断
调整,才能发挥神经机器翻译的强大性能。
10.5 不同机器翻译范式中人类的作用
机器翻译方法 人类参与方式
基于规则的方法 设计翻译规则
传统统计方法 设计翻译特征
神经网络方法 设计网络架构
可见,不管是基于规则的机器翻译方法,还是统计机器翻译方法,甚至最新
神经机器翻译方法,人类的作用是不可替代的。虽然神经机器翻译很强大,但是
的成功仍然依赖人工设计网络结构、调参。纵然,也有一些研究工作通过结构搜
的方法自动获得神经网络结构,但是搜索的算法和模型仍然需要人工设计。道理
简单:机器翻译是人类设计的,脱离了人的工作,机器翻译是不可能成功的。