15.3 基于句法的神经机器翻译模型 529
15.3 基于句法的神经机器翻译模型
在统计机器翻译时代,使用句法信息是一种非常有效的机器翻译建模手段(见
第八章)由于句法是人类运用语言的高级抽象结果,使用句法信息(如句法树)
以帮助机器翻译系统对句子结构进行建模。例如,利用句法树提升译文语法结构的
正确性。在神经机器翻译中,大多数框架均基于词串进行建模,因此在模型中引入
句法树等结构也很有潜力
[829]
。具体来说,由于传统神经机器翻译模型缺少对句子结
构的理解,会导致一些翻译问题:
过度翻译问题,如:
“两//女孩” two girls and two girls
翻译不连贯问题,如:
“新生/银行/申请/上市” new listing bank
显然,神经机器翻译系统并没有按照合理的法结构生成译文。也就是说,模
型并没有理解句子的结构
[829]
。甚至对于一些语言差异很大的语言对,会出现将介词
短语翻译成一个词的情况。虽然可以通过很多手段对上述问题进行求解,但是使用
句法树是解决该问题的一种最直接的方法
[830]
那么在神经机器翻译中,如何将这种离散化的树结构融入到基于分布式表示的
翻译模型中呢?有以下两种策略:
将句法信息加入到编码器,使得编码器更加充分地表示源语言句子。
将句法信息加入到解码器,使得翻译模型能生成更符合句法的译文。
15.3.1 编码器使用句法信息
在编码器中使用句法信息有两种思路,一种思路是在编码器中显性使用树结构
进行建模,另一种思路是把句法信息作为特征输入到传统的序列编码器中。这两种
思路与统计机器翻译中基于句法树结构的模型和基于句法特征的模型十分相似(见
第八章)
1. 基于句法树结构的编码
使用句法信息的一种简单的方法是将源语言句子编码成一个二叉树结构
6
树节
点的信息是由左子树和右子树变换而来,如下所示:
h
p
= f
tree
(h
l
,h
r
) (15.51)
6
所有句法树都可以通过二叉化方法转化为二叉树(见第八章)
530 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
其中,h
l
h
r
分别代表了左孩子节点和右孩子节点的神经网络输出(隐藏层状态)
通过一个非线性函数 f
tree
(·,·) 得到父节点的状态 h
p
15.19 展示了一个基于树结构
的循环神经网络编码器
[830]
。这些编码器由下自上组成了一个树型结构,这种树结
的具形式析决定。 {h
1
,...,h
m
} 是输序列循环
单元(绿色部分){h
m+1
,...,h
2m1
} 对应着树中的节点(红色部分),它的输出
其左子节通过(15.51)计算得到。于注力模型,图中有的点都
与上下文向量的计算,因此仅需要对第十章所描述的计算方式稍加修改,如下:
C
j
=
m
X
i=1
α
i,j
h
i
+
2m1
X
i=m+1
α
i,j
h
i
(15.52)
h
1
h
2
h
3
···
h
m
h
m+1
h
m+2
···
h
2m1
15.19 编码器树结构建模
其中,C
j
代表生成第 j 个目标语言单词所需的源语言上下文表示。这样做的好处是
编码器更容易将一个短语结构表示成一个单元,进而在解码器中映射成一个整体。
如,对于英语句子:
I am having a cup of green tea.
可以翻译成:
“私//緑茶//飲んでいます。
在标准的英语到日语的翻译中,英语短语a cup of green tea只会被翻译为“緑
茶”一词。在加入句法树后,a cup of green tea会作为树中一个节点,这样可以更
容易地把这个英语短语作为一个整体进行翻译。
只是,这种自底向上的树结构表示方法也存在问题:每个树节点的状态并不能
包含树中其它位置的信息。也就是说,从每个节点上看,其表示结果没有很好地利
用句法树中的上下文信息。因此,可以同时使用自下而上和自上而下的信息传递方
式进行句法树的表示
[433, 831]
,这样增加了树中每个节点对其覆盖的子树以及周围上下
文的建模能力。如图15.20 所示,h
up
h
down
分别代表向上传输节点和向下传输节点
15.3 基于句法的神经机器翻译模型 531
的状态,虚线框代表了 h
up
h
down
会拼接到一起,并作为这个节点的整体表示参与
注意力模型的计算。显然,自下而上的传递,可以保证句子的浅层信息(如短距离词
语搭配)被传递给上层节点,而自上而下的传递,可以保证句子上层结构的抽象被
有效地传递给下层节点。这样,每个节点就同时含有浅层和深层句子表示的信息。
h
up
1
h
down
1
h
up
2
h
down
2
h
up
3
h
down
3
··· ···
h
up
m
h
down
m
h
up
m+1
h
down
m+1
h
up
m+2
h
down
m+2
··· ···
h
up
2m1
h
down
2m1
15.20 双向树结构编码模型
2. 基于句法特征的编码
除了直接对树结构进行编码以外,将单词、句法信息等直接转换为特征向量拼接
到一起,作为机器翻译系统的输入也是一种在编码器中使用句法信息的方
[832]
。这
种方法的优点在于,句法信息可以无缝融入到现有神经机器翻译框架,对系统结构
的修改很小。以基于循环神经网络的翻译模型为例,可以用如下方式计算输入序列
i 个位置的表示结果:
h
i
= tanh(W(
F
k=1
E
k
x
ik
) + Uh
i1
) (15.53)
其中,W U 是线性变换矩阵,F 代表了特征的数量;而 E
k
是一个特征嵌入矩阵,
它记录了第 k 个特征不同取值对应的分布式表示;x
ik
代表了第 i 个词在第 k 个特征
上的取值,于是 E
k
x
ik
就得到所激活特征的嵌入结果。 操作为拼接操作,它将所有
特征的嵌入结果拼接为一个向量。这种方法十分灵活,可以很容易地融合不同句法
特征,例如,词根、子词、形态、词性以及依存关系等。
此外,还可以将句法信息的表示转化为基于序列的编码,之后与原始的词串融
合。这样做的好处在于,并不需要使用基于树结构的编码器,而是直接复用基于序列
的编码器即可。而句法信息可以在对句法树的序列化表示中学习得到。如图15.21(a)
所示,对于英语句子I love dogs可以得到如图15.21(a) 所示的句法树。这里,使
532 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
w
i
表示第 i 个单词,如图15.21(b) 所示。通过对句法树进行先序遍历,可以得到
句法树节点的序列 {l
1
,...,l
T
},其中 T 表示句法树中节点的个数,l
j
表示树中的第 j
个节点,如图15.21(c) 所示。
S
VP
NP
NNS
dogs
VBP
love
NP
PRN
I
(a) 句法树
I
love
dogs
w
1
w
2
w
3
(b) 词序列
S
NP PRN
VP VBP
NP
NNS
l
1
l
2
l
3
l
4
l
5
l
6
l
7
(c) 句法序列
15.21 一个句子的句法树、词序列、句法树节点序列
在对句法树的树结构进行序列化的基础上,可以用句法树节点与原始的词信息
一同构造出新的融合表示 h
i
,并使用这种新的表示计算上下文向量,如下:
C
j
=
m
X
i=1
α
i,j
h
i
(15.54)
其中,m 是源语言句子的长度。新的融合表示 h
i
有如下几种计算方式
[829]
平行结构利用两个编码器分别对源语言单词序列和线性化的句法树进行建模,
之后在句法树节点序列中寻找每个单词的父节点(或者祖先节点),将这个单
词和它的父节点(或者祖先节点)的状态相融合,得到新的表示。如图15.22(a)
所示,图中 h
w
i
为词 w
i
在单词序列中的状态,h
l
j
为树节点 l
j
在句法节点序列
中的状态。如果单词 w
i
是节点 l
j
在句法树(图15.21(a)中的子节点,则将 h
w
i
h
l
j
向量拼接到一起作为这个词的新的融合表示向量 h
i
分层结构将句法表示结果与源语言单词的词嵌入向量进行融合,如图15.22(b)
所示,其 e
w
i
为第 i 词的词嵌入。类似地,如果单词 w
i
是节点 l
j
在句法
树(图15.21(a))中的子节点,则将 e
w
i
h
l
j
向量拼接到一起作为原始模型的
输入,这样 h
i
直接参与注意力计算。注意,分层结构和平行结构的区别在于,
分层结构最终还是使用了一个编码器,句法信息只是与词嵌入进行融合,因此
最终的结构和原始的模型是一致的;平行结构相当于使用了两个编码器,因此
15.3 基于句法的神经机器翻译模型 533
h
w
1
h
w
2
h
w
3
h
l
1
···
h
l
3
···
h
l
5
···
h
l
7
w
1
: I
w
2
: love
w
3
: dogs
l
1
: S
···
l
3
: PRN
···
l
5
: VBP
···
l
7
: NNS
h
l
1
h
w
1
h
l
5
h
w
2
h
l
7
h
w
3
h
1
: h
2
: h
3
:
词语 RNN
句法 RNN
(a) 平行结构
h
l
1
···
h
l
3
···
h
l
5
···
h
l
7
l
1
: S
···
l
3
: PRN
···
l
5
: VBP
···
l
7
: NNS
w
1
: I
w
2
: love
w
3
: dogs
e
w
1
e
w
2
e
w
2
h
w
1
h
w
2
h
w
3
h
1
: h
2
: h
3
:
句法 RNN
词语 RNN
(b) 分层结构
h
1
h
2
···
h
4
···
h
7
···
h
10
l
1
: S l
3
: NP
···
w
1
: I
···
w
2
: love
···
w
3
: dogs
h
1
: h
2
: h
3
:
混合 RNN
先序遍历句法树,得到序列:
S
l
1
NP
l
2
PRN
l
3
I
w
1
VP
l
4
VBP
l
5
love
w
2
NP
l
6
NNS
l
7
dogs
w
3
(c) 混合结构
15.22 三种对树结构信息的融合方式
534 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
单词和句法信息的融合是在两个编码器的输出上进行的;
混合结构首先对图15.21(a) 中句法树进行先序遍历,将句法标记和源语言单词
融合到同一个序列中,得到如图15.22(c) 所示序列。之后使用传统的序列编
器对这个序列进行编码,然后使用序列中源语言单词所对应的状态参与注意力
模型的计算。有趣的是,相比于前两种方法,这种方法参数量少而且也十分有
[829]
需要注意的是,句法分析的错误会在很大程度上影响源语言句子的表示结果。
果获得的句法分析结果不够准确,可能会对翻译系统带来负面的影响。此外,也有研
究发现基于词串的神经机器翻译模型本身就能学习到一些源语言的句法信
[833]
,这
表明了神经机器翻译模型也有一定的归纳句子结构的能力。除了循环神经网络结构,
也有研究人员探索了如何在 Transformer 中引入树结构信息。比如,可以将词与词之
间的依存关系距离作为额外的语法信息融入到注意力模型中
[834]
15.3.2 解码器使用句法信息
为了在解码器中使用句法信息,一种最直接的方式是将目标语言句法树结构进
行线性化,线性化后的目标语言句子就变成了一个含有句法标记和单词的混合序列。
这样,神经机器翻译系统不需要进行修改,可以直接使用句法树序列化的结果进行
训练和推断
[447]
。图15.23展示了一个目标语言句法树经过线性化后的结果。
S
.
VP
NP
a cat
had
NP
Jane
(Root(S(NP Jane)NP(VP had(NP a cat)NP)VP .)S)Root
15.23 句法树线性化示例
不过,直接使用序列化的句法树也会带来新的问题。比如,在推断时,生成的译
文序列可能根本不对应合法的句法树。此时,需要额外的模块对结果进行修正或者
调整,以得到合理的译文。
另一种方法是直接在目标语言端使用句法树进行建模。与源语言句法树的建模
不同,目标语言句法树的生成伴随着译文的生成,因此无法像源语言端一样将整个
句法树一起处理。这样译文生成问题本质上就变成了目标语言树结构的生成,从这
个角度说,这个过程与统计机器翻译中串到树的模型是类似的(见第八章)树结构
的生成有很多种策略,但基本的思想类似,可以根据已经生成的局部结构预测新的
局部结构,并将这些局部结构拼装成更大的结构,直到得到完整的句法树结构
[835]
15.3 基于句法的神经机器翻译模型 535
实现目标语言句法树生成的一种手段是将形式文法扩展,以适应分布式表示学
习框架。这样,可以使用形式文法描述句法树的生成过程(见第三章)同时利用分
布式表示来进行建模和学习。比如,可以使用基于循环神经网络的文法描述方法,
句法析过看作一个环神网络行过
[836]
。此外,也可学习
Multitask Learning出发,用多个解码器共同完成目标语言句子的生成
[837]
15.24
示了由一个编码器(汉语)和多个解码器组成的序列生成模型。其中不同解码器分
别负责不同的任务:第一个用于预测翻译结果,即翻译任务;第二个用于句法分析
任务;第三个用于语言理解任务,生成汉语上下文。其设计思想是各个任务之间能
够相互辅助,使得编码器的表示能包含更多的信息,进而让多个任务都获得性能提
升。这种方法也可以使用在多个编码器上,其思想是类似的。
汉语(源语言)
编码器
翻译任务
句法分析任务
语言理解任务
其他任务
英语(目标语言)
汉语句法标签
汉语上下文
15.24 融合句法信息的多任务学习
不过,融合树结构和目标语言词串的方法也存在问题:它会导致目标语言端的
序列过长,使得模型难以训练。为了缓解这个问题,可以使用两个模型,一个生成句
子,另一个生成树结构
[483, 838]
。以生成目标语言依存树为例,生成依存树的模型是一
个生成移进-规约序列的生成模型,称为动作模型。另一个模型负责预测目标语言词
序列,称为词预测模型,它只有在第一个模型进行移位操作的时候才会预测下一个
词,同时会将当前词的状态送入到第一个模型中。整个过程如图15.25所示,这里使
用循神经络构动作型和预测型。h
action
i
表示作模的隐状态,
h
word
i
表示词预测模型的隐藏层状态。动作模型会结合词预测模型的状态预测出“移
位”“左规约”“右规约”三种动作,只有当动作模型预测出“移位”操作时,词
预测模型才会预测下一时刻的词语;而动作模型预测“左规约”“右规约”相当于
完成了依关系预测(依存树见图15.25侧)。最后词预模型测出结束
<eos> 时,整个过程结束。
相较于在编码器中融入句法信息,在解码器中融入句法信息更为困难。由于树
结构与单词的生成是一个相互影响的过程,如果先生成树结构,再根据树得到译文
单词串,那么一旦树结构有误,翻译结果就会有问题。在统计机器翻译中,句法信息
536 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
词预测模型
h
word
1
h
word
2
h
word
4
···
动作模型
h
action
1
h
action
2
h
action
3
h
action
4
h
action
5
sos
移位 移位 左规约 移位 右规约
sos
移位 移位 左规约 移位
左规约生成
右规约生成
15.25 词预测模型和动作模型
究竟应该使用到什么程度已经有一些讨论
[372, 402]
。而在神经机器翻译中,如何更有效
地引入树结构信息以及如何平衡树结构信息与词串的作用还有待确认。如前文所述,
基于词串的神经机器翻译模型已经能够捕捉到一些句法结构信息
[833]
,虽然有些信息
是不容易通过人的先验知识进行解释的。这时,使用人工总结的句法结构来约束或
者强化翻译模型,是否可以补充模型无法学到的信息,还是需要进一步研究。