encoder-decoder
encoder-decoder
The Encoder
编码器是一个RNN,它按顺序读取输入序列x的每个符号。当它读取每一个符号时,RNN的隐藏状态根据式(1)发生变化,读取序列的结束(用一个序列结束符号表示)后,RNN的隐藏状态是整个输入序列的汇总c。
The Decoder
该模型的解码器是另一个RNN,它通过预测给定隐藏状态h的下一个符号yt来训练生成输出序列。通过训练预测序列中的下一个符号,RNN可以学习序列上的概率分布。在这种情况下,每个时间步t的输出是条件分布.例如,可以使用softmax**函数输出一个多项分布(1-of-K编码)
对于所有可能的符号j = 1;…;K,其中wj为权矩阵W的行。通过结合这些概率,我们可以计算出序列x的概率
因此,decoder在t时刻的隐藏状态计算为:
类似地,下一个符号的条件分布是
对于给定的**函数f和g(后者必须产生有效的概率,例如使用softmax)。
提出的RNN的两个组成部分编码器-解码器联合训练,以最大限度地提高条件对数似然
每个(xn;yn)是训练集中的一个(输入序列,输出序列)对。
一旦训练了RNN编译码器,该模型可以用两种方式使用。一种方法是使用该模型生成给定输入序列的目标序列。另一方面,该模型可用于对给定的输入和输出序列进行评分,分数只是一个概率
2.3自适应记忆和遗忘的隐藏单位
除了提出一种新的模型体系结构外,我们还提出了一种新型的隐藏单元,它由LSTM单元驱动,但计算和实现起来要简单得多。图2给出了所提出的隐藏单元的图形化描述。
让我们来描述第j个隐藏单元的**是如何计算的。首先,计算复位门rj
其中是 logistic-sigmoid函数,[.]j表示向量的第j个元素。x和ht-1分别表示输入和前面的隐藏状态。Wr和Ur是需要学习的权重矩阵。类似地,
更新门zj的计算方法为
单元hj的实际**
在这个公式中,当重置门接近0时,隐藏状态被强制忽略以前的隐藏状态,并仅使用当前输入重置。这有效地允许隐藏状态在将来删除任何不相关的信息,从而允许更紧凑的表示。
另一方面,更新门控制从前一个隐藏状态转移到当前隐藏状态的信息量。这类似于LSTM网络中的记忆单元,帮助RNN记住长期信息。此外,这可能被认为是一个泄漏集成单元的自适应变体(Advances
in optimizing recurrent networks.)
由于每个隐藏单元都有单独的重置和更新门,每个隐藏单元将学习在不同的时间尺度上捕获依赖项。那些学习捕获短期依赖项的单元往往会有经常活动的重置门,而那些捕获长期依赖项的单元则会有经常活动的更新门。在我们的初步实验中,我们发现使用这种带有控制单元的新单元是至关重要的。我们无法得到有意义的结果与一个经常使用的tanh单位没有任何门控。
3 Statistical Machine Translation
在一个常用的统计机器翻译系统(SMT)中,该系统(尤其是译码器)的目标是找到一个给定源句e的译文f,使之最大化
其中右边第一项称为翻译模型,后面一项称为语言模型(Europarl: A parallel corpus for statistical machine translation.)
然而,在实践中,大多数SMT系统将log p(f | e)建模为具有附加特征和相应权重的对数线性模型:
其中和分别为第n个特征和权值,Z(e)是不依赖于权值的归一化常数。