论文阅读《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》
Abstract
这篇论文首次提出使用注意力机制(Attention)针对机器翻译问题。与传统的统计机器翻译(SMT)相比,神经机器翻译(NMT)旨在通过构建神经网络来提升翻译性能。近年来提出的NMT模型都是基于编码器和解码器:其将源语言编码为固定长度的向量后,利用解码器生成目标语言。该论文假设这种编码方式成为提高翻译性能的关键瓶颈,并提出了一种自动实现从源语言片段到目标语言软搜索的方法。经过实验验证了该方法在英法双语间的显著效果。
1 Introduction
现代神经机器翻译技术源自于Kalchbrenner、Blunsom等三人于2013年提出的基础研究。传统的方法通常是单独优化每个短语部分;相比之下,现代神经机器翻译技术则通过大规模的 neural network model 实现从 source language 到 target language 的 direct 转换。
大多数NMT模型主要采用编码器-解码器架构,在此架构下将输入序列转换为固定长度的向量表示,并通过解码器逐步生成目标语言序列。这种架构潜在的问题之一是,在处理过程中需要将整个输入序列的信息浓缩为固定长度的向量表示。对于较短的输入序列而言这一过程尚可接受,但对于较长的输入序列而言会导致较大的计算复杂度和性能下降。研究文献中对此类模型性能下降现象已有相关探讨,在现有研究中发现随着输入序列长度的增长基于传统编码器-解码器架构的表现效果会显著降低(如Cho et al., 2014b所分析)。
为了应对这一挑战,我们开发了一个扩展的编码-解码模型:自动化地进行对齐与翻译过程。在每次生成目标语言单词时,在源语料库中执行一组内容最相关的模糊搜索操作。这些来源位置信息结合当前已生成译文的最后一词即可推断出下一个目标单词的位置。
这种基于自动对齐和机器翻译的技术成功地将一个句子的信息分散存储在多个长度可变的向量中。特别地,在处理较长文本时这一方法显示出显著优势。对于英语至法语翻译任务而言,这个统一模型已接近传统基于短语对齐的翻译体系。(此前NMT一直难以超越SMT系统)
2 Background:Neural Machine Translation
在概率论的视角下,翻译本质上就是当给定源语句 x 时寻求使条件概率 y 达到最大值的过程,并最终得出目标语句。
用公式表示就是:

在NMT中,基于来自平行数据集的对应语料对调整模型参数,在翻译过程中使该条件概率得以最大化。
2.1 RNN encoder-decoder
概述由Cho(2014a)与Sutskever(2014)所提出的RNN基础架构——encoder-decoder模型。在此架构上开发出同时实现对齐与翻译的模型结构。
- 编码过程:在encoder-decoder架构中,将源文本转化为向量形式输入至编码器,并通过其处理得到上下文向量c。常见的做法是...

和


s_t代表t时刻的状态,在该模型中是一个由多组隐藏状态共同作用而生成的过程性的向量值输出结果。其中f和q分别代表两个非线性变换操作器的具体实现方式,在实际应用中通常采用门控神经单元(Gate Recurrent Unit, GRU)或长短期记忆网络(Long Short-Term Memory, LSTM)等算法进行具体计算以保证系统的稳定性和准确性。例如,在Sutskever(2014)的研究中使用LSTM作为f的具体实现形式以解决长短时记忆问题。

.
- 解码:解码器根据语境向量(context vector)和前面所有预测的单词

预测下一个单词

.
也就是:


。每个条件概率通过

。g是一个非线性潜在多层函数,

是RNN的隐藏状态。
3 LearningTo Align and Translate
这篇论文采用双向RNN架构作为编码器,并在翻译过程中模拟源语句搜索机制作为解码器。

3.1 Decoder
这里定义条件概率:

g是一个非线性潜在多层函数

是t时刻RNN的隐藏状态,

**其中

代表点乘**


是单词

的词嵌入向量。

是输出的重置门,控制之前状态的多少信息会被重置:


是更新门,允许每一个隐藏单元保留之前多少信息:

**其中:

是logistic sigmoid 函数**

取决于编码器将输入句子映射到的注释序列

每个注释Hi都涵盖整个输入序列的信息,并特别关注输入序列第i个单词附近的区域。


其中:

是对齐模型,它可以计算位置 j 周围的输入和位置 i 的输出匹配程度。

反应了注释

的重要程度,当

越大时说明注意力越集中,这就体现了注意力机制 。
3.2 Encoder:双向RNN用于序列注释
传统 RNN 在接收序列数据时会依次将数据传递给网络处理。而 BiRNN 则同时考虑到序列的时间依赖关系,在正序和逆序两个方向上进行信息提取。一个 BiRNN 通常包括两个独立的 recurrent 网络模块:前向 RNN 和后向 RNN。其中,前向 RNN 负责计算前层节点间的连接关系并生成相应的隐藏状态信息。

,反向RNN计算

。
因此

。
本部分原文:

