原文链接
本文发表于自然语言处理领域顶级会议 ACL 2018
摘要
目前为止,基于树模型的神经机器翻译领域(可通俗的理解为基于神经网络的机器翻译)取得了非常好的效果,但是他们都有一个主要的缺陷,就是在翻译的过程中只使用了一个最好的解析树来指导模型的翻译,这样一旦该树解析错误的话就会导致翻译错误。而在统计机器翻译领域(可通俗的理解为基于统计机器学习的机器翻译)中,基于森林的模型取得了非常不错的效果,但是很少有人尝试把基于森林的模型用于神经机器翻译领域,本文做了这样一个尝试,实验表明效果不错。
模型
Sequence-to-sequence model
假设我们有一个输入序列
(x0,...,xT)
(
x
0
,
.
.
.
,
x
T
)
,我们想要找出的目标序列为
y0,...,yt
y
0
,
.
.
.
,
y
t
,然后我们的约束条件是使概率
p(y0,...,yt|x0,...,xT)
p
(
y
0
,
.
.
.
,
y
t
|
x
0
,
.
.
.
,
x
T
)
达到最大,这样就是一个 Sequence-to-sequence 问题了。一般来说,Sequence-to-sequence model会采用一个RNN来作为encoder,将输入序列给转换成一个定长的包含上下文信息的向量
c
c
,然后用另一个RNN作为decoder来生成目标序列,计算公式如下:
其中 都是非线性激活函数,
ht
h
t
和
st
s
t
分别是encoder和decoder的RNN的隐含层状态,
et
e
t
是
xt
x
t
的embedding表示。(上图公式应该从下往上看)