赞
踩
every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog
neural machine translation by jointly learning to align and translate阅读与思考
作为transformer的前传,同时,作为在nlp中第一篇注意力机制相关文章,还是很有必要一读。
本文的主要贡献是打破了此前翻译中encoder-decoder需将句子变换到一个固定的长度,采用自适应方法。
作者:
时间: arxiv第一版时间为2014年
神经机器翻译是一种新兴的机器翻译方法,自从2013年提出的相关文章开始。与传统的基于短语的翻译系统(例如,Koehn等人,2003)不同,它由许多单独调谐的小子组件组成,神经机器翻译试图构建和训练一个单一的大型神经网络,该神经网络读取句子并输出正确的翻译。
关于翻译有两种,一种是2003年左右的phrase-based translation system,一种是2013年的neural machine translation
绝大多数神经机器翻译都属于encoder-decoder。encoder用于读取句子并将其编码为固定长度的向量。然后,解码器从编码向量输出翻译。整个编码器-解码器系统由“语言对”的编码器和解码器组成,共同训练以最大化给定源句子的正确翻译概率
encoder-decoder的特点是encoder将输入编码为一个固定长度的向量,再经过decoder解码
编码为一个固定长度的向量存在一个潜在的问题,在处理长句子时存在困难,尤其是实际应用中的句子比训练时的句子要长
为了解决这个问题,本文对encoder-decoder进行了扩展,引入“学习对齐和翻译”(learns to align and translate jointly) 。每次提出的模型在翻译中生成一个单词时,它(软)搜索源句子中最相关信息集中的一组位置,然后,该模型根据与这些源位置和之前生成的所有目标单词相关的上下文向量来预测目标单词。
这里的表述按现在的看法是“注意力机制”,在此之前作者是如何考虑到这个点的?应该也好理解,一个句子中单词和单词之前之间是“关联”的,借助这种“关联”进而优化我们的目标,扩展到cv中,图中的某个物体同样存在“关联”,但是杯子即可放在桌上也可以放在地上,这种关联应该只和邻近周围相关,随着距离的增长,这种相关性应该没有句子中表现的那么明显。
这种方法与基本编码器解码器最重要的区别在于,它不试图将整个输入句子编码为单个固定长度的向量。相反,它将输入的句子编码成一个向量序列,并在解码翻译时自适应地选择这些向量的子集。这使神经翻译模型不必将源句子的所有信息(无论其长度如何)压缩到固定长度的向量中。我们证明了这可以让模型更好地处理长句子
从直觉上看,这也是合理的。编码为一个固定长度更为“呆板”,自适应的选取更加灵活
本文表明了提出的方法比此前编码为固定的长度的方法更好。此外,定性分析表明,所提出的模型在源句和相应的目标句之间找到了语言上似是而非的(软)对齐
这里原文是a linguistically plausible (soft-)alignment,这里plausible有“似乎是合理的”和“可靠的”两种翻译,这里是两种截然相反的情感,是表述作者对找到的这种对齐不确定还是确定呢?同时,文中表述为“软对齐”,那么是否有应对齐,如果有,又该作何解释?
从概率的角度来看,翻译相当于在给定源句子x的情况下,找到一个使y的条件概率最大化的目标句子y,即 a r g m a x y p ( y ∣ x ) argmax_y p(y | x) argmaxyp(y∣x)。在神经机器翻译中,我们使用并行训练语料库拟合一个参数化模型来最大化句子对的条件概率。一旦翻译模型学习了条件分布,给定一个源句子,就可以通过搜索使条件概率最大化的句子来生成相应的翻译
最近,一些论文提出使用神经网络直接学习这种条件分布(例如,Kalchbrenner和Blunsom, 2013;Cho et al., 2014;Sutskever et al., 2014;Cho et al., 2014;加拿大和墨西哥,1997年)。这种神经机器翻译方法通常由两部分组成,第一部分编码源句子x,第二部分解码为目标句子y。例如,(Cho et al., 2014a)和(Sutskever et al., 2014)使用两个循环神经网络(RNN)将变长源句子编码为固定长度的向量,并将向量解码为变长目标句子。
尽管是一种相当新的方法,神经机器翻译已经显示出有希望的结果。Sutskever等人(2014)报道,基于长短期记忆(LSTM)单元的RNN的神经机器翻译在英法翻译任务上达到了接近传统基于短语的机器翻译系统的最先进性能。例如,将神经组件添加到现有的翻译系统中,对短语表中的短语对进行评分(Cho et al., 2014a)或对候选翻译重新排序(Sutskever et al., 2014),可以超越以前最先进的性能水平。
表明基于神经网络的翻译有不错的情景,13年才有人进行这方面的尝试,作者14年就跟进,更有可能13年也开始尝试了。神经网络应该是12年左右开始爆发,跟进速度杠杆的
在这里,我们简要描述了Cho等人(2014a)和Sutskever等人(2014)提出的底层框架,称为RNN Encoder Decoder,在此基础上,我们构建了一个可以同时学习对齐和翻译的新架构
在Encoder - Decoder框架中,编码器将输入句子向量 x = ( x 1 , ⋅ ⋅ ⋅ , x T x ) x = (x1,···,x_{Tx}) x=(x1,⋅⋅⋅,xTx)序列)读入向量c。最常见的方法是使用RNN,如:
c = q ( h 1 , . . . , h T X ) c = q({h_1,...,h_{T_X}}) c=q(h1,...,hTX)
其中 h t ∈ R n ht∈Rn ht∈Rn为时刻t的隐藏状态,c为隐藏状态序列生成的向量。 F F F和 q q q是一些非线性函数。例如,Sutskever等人(2014)使用LSTM作为 f f f和 q ( h 1 , ⋅ ⋅ ⋅ , h T ) = h T q ({h_1,···,h_T}) = h_T q(h1,⋅⋅⋅,hT)=hT。
解码器通常被训练为在给定上下文向量c和所有先前预测的单词 y 1 , ⋅ ⋅ ⋅ , y t ′ − 1 {y_1,···,y_{t' - 1} } y1,⋅⋅⋅,yt′−1 的情况下预测下一个单词 y t ′ y_{t'} yt′。换句话说,解码器通过将联合概率分解为有序条件来定义翻译y上的概率:
式中 y = ( y 1 , ⋅ ⋅ ⋅ , y T y ) y = (y_1,···,y_{T_y}) y=(y1,⋅⋅⋅,yTy)。对于RNN,每个条件概率被建模为,
其中g是一个非线性的,可能是多层的函数,它输出yt的概率,st是RNN的隐藏状态。值得注意的是,可以使用其他架构,例如RNN和反卷积神经网络的混合(Kalchbrenner和Blunsom, 2013)
在本节中,我们提出了一种新的神经机器翻译架构。新架构由一个双向RNN作为编码器(第3.2节)和一个解码器组成,该解码器在解码翻译过程中模拟搜索源句子
在新的模型体系结构中,我们定义了每个条件概率
其中 s i si si是时间 i i i的RNN隐藏状态,由
应该注意的是,与上文的编码器-解码器方法不同,这里的概率取决于每个目标词 y i yi yi的不同上下文向量 c i c_i ci
上下文向量 c i c_i ci依赖于编码器将输入句子映射到的一系列注释 ( h 1 、 ⋅ ⋅ ⋅ 、 h T x ) (h_1、···、h_{T_x}) (h1、⋅⋅⋅、hTx)。每个注释都包含关于整个输入序列的信息,重点关注输入序列第i个单词周围的部分。我们将在下一节中详细解释如何计算注释
然后,上下文向量 c i c_i ci作为这些注释 h i h_i hi的加权和计算:
每个注释 h j h_j hj的权重 α i j α_{ij} αij由
其中,
是一个对齐模型,它对位置 j j j周围的输入和位置 i i i的输出匹配程度进行评分。分数基于RNN隐藏状态 s i − 1 s_{i -1} si−1和输入句子的第 j j j个注释 h j h_j hj。
我们将对齐模型 α \alpha α参数化为一个前馈神经网络,该网络与所提出的系统的所有其他组件共同训练。注意,与传统的机器翻译不同,对齐不被认为是一个潜在变量。相反,对齐模型直接计算软对齐,这允许代价函数的梯度反向传播。这个梯度可以用来联合训练对齐模型和整个翻译模型
软对齐可以进行反向传播,硬对齐无法进行反向传播?对齐模型是什么?
我们可以理解将所有注释的加权和作为计算期望注释的方法,其中期望超过可能的对齐。设 α i j α_{ij} αij为目标词 y i y_i yi与源词 x j x_j xj对齐或翻译的概率。然后,第 i i i个上下文向量 c i c_i ci是所有概率为 α i j α_{ij} αij的注释的期望注释
概率 α i j α_{ij} αij或其相关能量 e i j e_{ij} eij反映了注释 h j h_j hj相对于前一个隐藏状态 s i − 1 s_{i−1} si−1在决定下一个状态 s i s_i si和生成 y i y_i yi中的重要性。直观地说(Intuitively),这在解码器中实现了一种注意机制。解码器决定源句子中需要注意的部分。通过让解码器具有注意机制,我们减轻了编码器必须将源句子中的所有信息编码为固定长度向量的负担。使用这种新方法,信息可以分散在注释序列中,解码器可以相应地有选择地检索这些注释。
这里用了注意力机制的表述(mechanism of attention),相比之前的固定长度,这里自适应的选择确实是一大进步,牛
常见的RNN,如公式1所示,按照从第一个符号 x 1 x_1 x1到最后一个符号 x T x x_{T_x} xTx的顺序读取输入序列 x x x。然而,在我们提出的方案中,我们希望每个单词的注释不仅要总结前面的单词,还要总结后面的单词。因此,我们建议使用双向RNN (BiRNN, Schuster和Paliwal, 1997),该方法最近已成功用于语音识别(参见,例如,Graves等人,2013年)
双向RNN1997年就提出来了,amazing!!!,2013年被应用于语音识别
BiRNN由前向和后向RNN组成。前向RNN f → f^{→} f→按顺序读取输入序列(从 x 1 x_1 x1到 x T x x_{T_x} xTx),并计算前向隐藏状态序列( h 1 → h_{1}^{→} h1→,···, h T X → h_{T_X}^{→} hTX→)。反向RNN以相反的顺序(从 x T x x_{T_x} xTx到 x 1 x_1 x1)读取序列,从而产生一个向后隐藏状态序列( h T X → h_{T_X}^{→} hTX→,····, h 1 → h_{1}^{→} h1→)。
我们将前向隐藏状态 h j h_j hj和后向隐藏状态 h j h_j hj连接起来,得到每个单词 x j x_j xj的注释,即 h j h_j hj。这样,注释 h j h_j hj既包含前面的单词,也包含后面的单词。由于RNN倾向于更好地表示最近的输入,注释 h j h_j hj将集中在 x j x_j xj周围的单词上。解码器和对齐模型稍后将使用这个注释序列来计算上下文向量(公式5,6)
我们以英法翻译为例对所提出的方法进行了评价。我们使用ACL WMT ’ 14.3提供的双语并行语料库作为比较,我们还报告了Cho等人(2014a)最近提出的RNN Encoder–Decoder的性能。我们对两个模型使用相同的训练过程和相同的数据集
WMT ’ 14包含以下英法平行语料库:Europarl(6100万字)、news commentary(550万字)、UN(421万字)和两个抓取语料库,分别为90M和2.725亿字,共8.5亿字。按照Cho et al. (2014a)中描述的步骤,我们使用Axelrod et al.(2011)的数据选择方法将组合语料库的大小减少到3.48亿个单词除了上述并行语料库之外,我们不使用任何单语数据,尽管有可能使用更大的单语语料库来预训练编码器。我们将news-test-2012和news-test-2013连接起来形成一个开发(验证)集,并评估来自WMT ’ 14的测试集(news-test-2014)上的模型,该测试集由3003个未出现在训练数据中的句子组成
在通常的**标记化(tokenization)**之后,我们使用每种语言中最常见的30,000个单词的短列表来训练我们的模型。任何未包含在候选列表中的单词都被映射到一个特殊的令牌([UNK])。我们不对数据应用任何其他特殊预处理,例如小写或词干提取。
我们训练两种类型的模型。第一个是RNN Encoder–Decoder(RNNencdec, Cho等人,2014a),另一个是我们提出的模型,我们称之为RNNsearch。我们对每个模型进行了两次训练:第一次训练长度不超过30个单词的句子(RNNencdec-30, RNNsearch-30),然后训练长度不超过50个单词的句子(RNNencdec-50, RNNsearch-50)。
RNNencdec的编码器和解码器各有1000个隐藏单元。RNNsearch的编码器由前向和后向递归神经网络(RNN)组成,每个RNN有1000个隐藏单元。它的解码器有1000个隐藏单元。在这两种情况下,我们使用具有single maxout 隐藏层的多层网络来计算每个目标词的条件概率。
我们使用小批量随机梯度下降(SGD)算法来训练每个模型。每个SGD更新方向是使用80个句子的小批量计算的。我们对每个模型进行了大约5天的训练
一旦模型被训练,我们使用光束搜索来找到一个近似最大化条件概率的翻译。Sutskever等人(2014)使用这种方法从他们的神经机器翻译模型生成翻译 。
更多细节参见附录AB
在表1中,我们列出了以BLEU分数衡量的翻译性能。从表中可以清楚地看出,在所有情况下,提出的RNNsearch优于传统的RNNencdec。更重要的是,当只考虑由已知单词组成的句子时,RNNsearch的性能与传统的基于短语的翻译系统(Moses)一样高。这是一个重要的成就,考虑到除了我们用来训练RNNsearch和RNNencdec的平行语料库之外,Moses还使用了一个单独的单语语料库(418万个单词)
RNNsearch-50发现的四个样本比对。每个图的x轴和y轴分别对应于源句子(英语)和生成的翻译(法语)中的单词。每个像素以灰度(0:黑色,1:白色)表示第j个源词对第i个目标词的标注权值αij(见式(6))。(a)任意句子。(b-d)从测试集中随机抽取三个不含未知单词且长度在10 ~ 20个单词之间的句子样本
提出的方法背后的动机之一是在基本编码器-解码器方法中使用固定长度的上下文向量。我们推测,这种限制可能会使基本的编码器-解码器方法在处理长句子时表现不佳。在图2中,我们看到RNNencdec的性能随着句子长度的增加而急剧下降。另一方面,RNNsearch-30和RNNsearch-50对句子的长度更为健壮。特别是RNNsearch50,即使句子长度为50或更多,也没有表现出性能下降。RNNsearch-30甚至优于RNNencdec-50这一事实进一步证实了所提出模型优于基本编码器-解码器的优势(见表1)。
提出的方法提供了一种直观的方法来检查生成的翻译中的单词与源句子中的单词之间的(软)对齐。这是通过可视化Eq.(6)中的标注权重αij来实现的,如图3所示。每个图中矩阵的每一行都表示与注释相关的权重。由此我们可以看出,在生成目标词时,源句子中的哪些位置被认为更重要。
翻译中的单词与源句子之间的相关性即为对齐。
从图3的对齐可以看出,英语和法语之间的单词对齐在很大程度上是单调的。我们在每个矩阵的对角线上看到强权值。然而,我们也观察到一些非平凡的、非单调的排列。形容词和名词在法语和英语之间的顺序通常不同,我们在图3 (a)中看到一个例子。从这个图中,我们看到模型正确地将短语[European Economic Area]翻译成[zone ? economique europ ? een]。RNNsearch能够正确地将[zone]与[Area]对齐,跳过两个单词([European]和[Economic]),然后逐个查看一个单词,以完成整个短语[zone ? economique europ ? eenne]。
源单词和目标单词是否能正确对应上(翻译),“对齐”这个表述没得问题
例如,从图3 (d)中可以明显看出,与硬对齐相反,软对齐的强度是明显的。考虑源短语[The man]翻译成[l ’ homme]。任何硬对齐都会将[the]映射到[l '],将[man]映射到[homme]。这对翻译没有帮助,因为人们必须考虑[the]后面的单词,以确定它应该翻译成[le], [la], [les]还是[l ']。我们的软对齐通过让模型同时查看[the]和[man]自然地解决了这个问题,在这个例子中,我们看到模型能够正确地将[the]转换为[l ']。在图3中,我们观察到所有的案例都有类似的行为。软对齐的另一个好处是,它自然地处理不同长度的源和目标短语,而不需要反直觉的方式将一些单词映射到某处或从某处([NULL])(参见,例如Koehn, 2010的第4章和第5章)。
软对齐和硬对齐类似翻译中的“意译”和“直译”,类似于“meaning-to-meaning”和“word-to-word”,软对齐不需要考虑不同两种语言句子之间的不同长度。6
从图2中可以清楚地看到,所提出的模型(RNNsearch)在翻译长句方面比传统模型(RNNencdec)要好得多。这可能是由于RNNsearch不需要将长句子完美地编码为固定长度的向量,而只需要准确地编码输入句子中围绕特定单词的部分。
最近,Graves(2013)在手写合成的背景下提出了一种类似的将输出符号与输入符号对齐的方法。手写合成是一项任务,其中要求模型生成给定字符序列的手写。在他的工作中,他使用混合高斯核来计算注释的权重,其中每个核的位置,宽度和混合系数是从对齐模型中预测的。更具体地说,他的对齐被限制为预测位置,使得位置单调增加。
与我们的方法的主要区别在于,在(Graves, 2013)中,注释的权重模式只在一个方向上移动。在机器翻译的上下文中,这是一个严重的限制,因为(长距离)重新排序通常需要生成语法正确的翻译(例如,从英语到德语)。
另一方面,我们的方法需要为译文中的每个单词计算源句子中每个单词的注释权重。对于大多数输入和输出句子只有15 - 40个单词的翻译任务来说,这个缺点并不严重。然而,这可能会限制拟议方案对其他任务的适用性
自从Bengio等人(2003)引入了一种神经概率语言模型,该模型使用神经网络对给定固定数量的前一个单词的条件概率进行建模,神经网络在机器翻译中得到了广泛的应用。然而,神经网络的作用在很大程度上仅限于简单地为现有的统计机器翻译系统提供单个特征,或者对现有系统提供的候选翻译列表进行重新排序
例如,Schwenk(2012)提出使用前馈神经网络计算一对源短语和目标短语的分数,并将该分数作为基于短语的统计机器翻译系统的附加特征。最近,Kalchbrenner和Blunsom(2013)以及Devlin等人(2014)报道了将神经网络作为现有翻译系统的子组件的成功使用。传统上,神经网络训练为目标端语言模型,用于对候选翻译列表进行重新评分或重新排序
尽管上述方法被证明比最先进的机器翻译系统提高了翻译性能,但我们更感兴趣的是设计一个基于神经网络的全新翻译系统。因此,我们在本文中考虑的神经机器翻译方法与这些早期的工作完全不同。我们的模型不是使用神经网络作为现有系统的一部分,而是自己工作,直接从源句子生成翻译
经机器翻译的传统方法,称为编码器-解码器方法,将整个输入句子编码成固定长度的向量,然后从该向量解码翻译。根据Cho等人(2014b)和Pouget-Abadie等人(2014)最近的一项实证研究,我们推测使用固定长度的上下文向量在翻译长句子时是有问题的。
在本文中,我们提出了一种新的架构来解决这个问题。我们扩展了基本的编码器-解码器,让模型(软)在生成每个目标单词时搜索一组输入单词,或者编码器计算出的它们的注释。这使模型不必将整个源句子编码为固定长度的向量,并且还使模型只关注与生成下一个目标单词相关的信息。这对神经机器翻译系统在较长句子上产生良好结果的能力产生了重大的积极影响。与传统的机器翻译系统不同,翻译系统的所有部分,包括对齐机制,都是为了产生正确翻译的更好的对数概率而共同训练的。
我们在英法翻译的任务上测试了这个被称为RNNsearch的模型。实验表明,无论句子长度如何,所提出的RNNsearch显著优于传统的编码器-解码器模型(RNNencdec),并且对源句子的长度具有更强的鲁棒性。从我们调查RNNsearch生成的(软)对齐的定性分析中,我们可以得出结论,该模型可以正确地将每个目标词与源句子中的相关词或其注释对齐,因为它生成了正确的翻译。
也许更重要的是,所提出的方法实现了与现有的基于短语的统计机器翻译相当的翻译性能。这是一个惊人的结果,考虑到所提出的架构,或整个神经机器翻译家族,直到今年才被提出。我们相信这里提出的架构是朝着更好的机器翻译和更好地理解自然语言迈出的有希望的一步。
未来的挑战之一是更好地处理未知或罕见的单词。这将需要该模型得到更广泛的应用,并在所有上下文中与当前最先进的机器翻译系统的性能相匹配
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。