由于最近学习的需要,对论文《Sequence to Sequence Learning with Neural Networks》进行了不地道的翻译,翻译存在许多问题,因此仅供自己参考。也希望大家在留言中提出意见,我会认真修改。
翻译全文如下:
利用神经网络进行序列到序列的学习
摘要
深度神经网络(DNNs)是一种功能强大的神经网络模型,在复杂的学习任务中取得了优异的性能。尽管当有大量标记的训练集可用时,DNNs工作良好,但它们不能用于将序列映射到序列。在本文中,我们提出了一种通用的端到端方法来进行序列学习,这种方法对序列结构做出了最小的假设。我们的方法使用多层长短时记忆(LSTM)将输入序列映射到一个固定维数的向量上,然后用另一个深度LSTM从向量上解码目标序列。我们的主要结果是,在WMT-14数据集的英法翻译任务中,LSTM生成的翻译在整个测试集上获得了34.8的BLEU分数,其中LSTM的 BLEU分数在词汇表外的单词上受到了惩罚。此外,LSTM对长句也没有困难。 相比之下,基于短语的SMT系统在同一数据集上的BLEU得分为33.3。当我们使用LSTM对上述SMT系统产生的1000个假设进行重新排序时,其中BLEU分数增加到36.5,接近于之前的技术水平。LSTM还学习了对词序敏感并且对主动和被动语态相对不变的合理的短语和句子表示。最后,我们发现颠倒所有源句(而不是目标句)中的单词顺序显著地提高了LSTM的性能,因为这样做在源句和目标句之间引入了许多短期依赖关系,使得优化问题变得更容易。
1介绍
深度神经网络(DNNs)是一种功能极其强大的机器学习模型,它在语音识别[13,7]和视觉对象识别[19,6,21,20]等难题上取得了优异的性能。DNNs功能强大,因为它们可以执行任意并行计算,只需要少量的步骤。DNNs强大功能的一个令人惊讶的例子是,它仅使用2个二次大小的隐藏层[27]就可以对n个n位数字进行排序。因此,虽然神经网络与传统的统计模型相适应,但它们学习的是复杂的计算。此外,当标记的训练集具有足够的信息来指定网络参数时,就可以使用监督反向传播对大的DNNs进行训练。因此,如果大的DNN存在一个参数设置,并且取得了很好的效果(例如,因为人类可以非常快速地解决任务),监督反向传播就会找到这些参数并解决问题。
尽管DNNs具有灵活性和强大的功能,但它只适用于输入和目标可以用固定维数向量合理编码的问题。这是一个重要的限制,因为许多重要的问题都是用长度未知的序列来表示的。例如,语音识别和机器翻译是顺序问题。同样,问答也可以看作是将表示问题的单词序列映射到表示答案的单词序列。因此,学习将序列映射到序列的与域无关的方法将非常有用。
序列对DNNs是一个挑战,因为它们要求输入和输出的维数是已知的和固定的。在本文中,我们证明了长短时记忆(LSTM)结构[16]的直接应用可以解决一般序列到序列的问题。我们的想法是使用一个LSTM来读取输入序列,一次一个步骤,以获得大的固定维向量表示,然后使用另一个LSTM从该向量中提取输出序列(图1)。 第二个LSTM本质上是一个循环神经网络语言模型[28,23,30],除了它以输入序列为条件。 LSTM成功获取具有长距离时间依赖性的数据的能力使得它成为这种应用的自然选择,因为输入与它们相应的输出之间存在相当大的时间滞后(图1)。
已经进行了许多相关的尝试来解决用神经网络对序列学习问题进行一般序列处理。 我们的方法与Kalchbrenner和Blunsom [18]密切相关,他们是第一个将整个输入句子映射到向量的方法,与Cho等人[5]非常相似。Graves[10]引入了一种新的可区分注意力机制,允许神经网络将注意力集中在输入的不同部分,Bahdanau等人成功地将这种思想的一个优雅的变体应用到机器翻译中[2]。连接序列分类是另一种流行的技术,用于将序列映射到具有神经网络的序列,尽管它假设输入和输出之间存在非单调对齐[11]。
图1:我们的模型读取输入句子“ABC”并产生“WXYZ”作为输出句子。 模型在输出句末标记后停止进行预测。 请注意,LSTM反向读取输入句子,因为这样做会在数据中引入许多短期依赖关系,这使得优化问题变得更加容易。