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]
。