Neural Machine Translation By Jointy Learning To Align And Translate是Attention机制在NLP领域应用的开山之作, 本文是对这篇文章的阅读笔记(未完待续)
0 摘要
神经机器翻译(NMT)是最近提出来的机器翻译方法,不同于传统的机器翻译方法,NMT的目的是建立一个统一的神经网络使得在此之上可以联合地调节以最大化翻译性能。最近提出来的神经机器翻译方法大多可归属于编码-解码家族,编码器将源句子编码为一个固定长的向量,解码器将基于这个定长的向量产生一个翻译。本文推测用固定长的向量来表示源句子是提高翻译性能的一个瓶颈,所以提出通过让模型自动地寻找源句子中与目标词相关的部分来提高翻译性能,且不用将这部分明确地做为一个硬片段。
1 Introduction
NMT是最近(2013,2014年)出现的神经机器翻译方法,不同于传统基于语法的翻译系统,NMT尝试构建和训练一个统一的、大规模的神经网络,它读取一个句子并输出一个正确的翻译。
现有的NMT模型大都属于一个编码-解码簇,编码器读取并编码一个源句子为一个固定长的向量,解码器根据这个像两个输出一个正确的翻译。整个编码-解码系统联合训练以最大化给定源句子的条件下目标句子的概率。
编码-解码方法存在的一个严重问题是,神经网络需要将源句子中的所有信息都压缩到一个向量中去,这使得神经网络在处理长句子时非常困难,尤其是那些比训练集中句子长的。有人证明基本的编码-解码框架的性能确实随着输入句子的长度的增加而减弱。
为了解决这一问题,本文扩展基本的编码-解码模型,联合地进行翻译和对齐。每产生一个词的时候,模型从源句子中寻找与其最相关的信息,然后基于上下文向量、这些源位置信息和前面已经产生的词来预测新的目标词。
这个方法与基本的编码-解码方法最大的不同是,它不需要讲整个输入句子编码为单个的固定长度向量,而是将源句子编码为一个向量序列,在解码时自适应地选择一个向量集合,这样神经翻译模型就不必将源句子的所有信息都编码为一个固定的向量,更易处理长句子。
2 背景:神经机器翻译
从概率角度讲,翻译等价于给定一个源句子x的前提下,寻找最大化条件概率的y。在神经机器翻译中,我们拟合一个参数化模型来最大化句子对的条件概率。模型一旦学习到了条件概率,给定一个源句子,它就会从源句子中搜索找到最大化条件概率的翻译。
2.1 RNN 编码-解码
RNN编码-解码框架2014年被提出。
在此框架中,编码器读取一个输入句子,也就是一个向量序列并编码为一个固定长的向量
, 其中最常用的方法是使用一个RNN,使得
其中是时刻t的隐藏状态,
是非线性函数,比如
可以是LSTM,
.
解码器通常是在给定上下文向量和所有目前已经产生的词
的前提下预测下一个词
,换句话说,解码器将产生目标翻译的概率分解为产生序列中每个词的概率的乘积,即
其中,.
若解码器是RNN,每个条件概率可建模为:
,
其中 是非线性,可能是多层的函数,它计算的是
的概率。
3 同时学习对齐和翻译
这一部分提出一个NMT新架构,它用双向RNN做为编码器,解码器在源句子中进行模拟搜索。
3.1解码器
在这个新模型中,将条件概率定义为
其中是时刻 t 时解码RNN的隐层状态,计算方法如下
.
注意,不同于现有的编码-解码方法,这里的概率公式对于不同的 用不同的上下文向量