文章目录

  • 前言
  • 摘要
  • 一、神经机器翻译
    • 1、机器翻译
    • 2、基于RNN的Encoder-Decoder架构
  • 二、文章贡献
  • 三、模型架构
    • 1.译码器:整体概述
    • 2.编码器:用于注释序列的双向RNN
  • 四、实验设置
  • 五、代码实现
  • 六、结果分析
  • 总结

前言

论文名:Neural Machine Translation By Jointly Learning to Align and Translate
论文作者:Dzmitry Bahdanau et.al.
期刊/会议名:ICLR 2015
本文作者:XMU_MIAO

摘要

  神经机器翻译(NMT)是近来提出的应用于机器翻译的一种方法。不同于传统的统计机器翻译(SMT),神经机器翻译致力于构建一个能够联合最大化翻译性能的网络。近来提出的神经翻译模型通常属于Encoder-Decoder类的,其将源句编码成一个定长的向量,而后译码器将该向量解码成翻译句。
  在本文中,我们推测使用定长向量是限制基础Encoder-Decoder\textbf{Encoder{-}Decoder}Encoder-Decoder架构性能的瓶颈。同时提出允许模型自动地(软)搜索与目标词相关的源句的各个部分,而不是显式地指定。 通过这种新方法,我们的翻译性能可与现有的最先进的基于短语的系统在英法翻译任务上相媲美。此外,定性分析表明,该模型得到源句词和目标词的(软)对准与我们的直觉很一致。


一、神经机器翻译

1、机器翻译

  从概率的观点看,翻译等同于找到一个在给定源句x\textbf{x}x找到条件概率最大(即:argmaxyp(y∣x)argmax_{\textbf{y}}p(\textbf{y}|\textbf{x})argmaxy​p(y∣x))的目标句y\textbf{y}y。在神经机器翻译中,我们使用平行训练语料库来拟合一个参数化的模型来最大化句子对的条件概率。翻译模型学习条件分布后,给定源句,通过搜索条件概率最大的句子,就可以生成相应的翻译。

2、基于RNN的Encoder-Decoder架构

  该部分简要介绍由cho et.al.(2014a)和Sutskever et.al.(2014)提出的基于RNN的Encoder-Decoder架构。我们在此基础上提出一种能够同时学习对齐(源句词与目标句词的对齐)和翻译的架构。
  在Encoder-Decoder框架中,编码器端读取输入句子,一个向量序列x=(x1,...,xTx)\textbf{x}=(x_1,...,x_{T_x})x=(x1​,...,xTx​​)并得到向量ccc,最常见的方法是使用这样的RNNht=f(xt,ht−1)c=q({h1,...,hTx})h_t=f(x_t,h_{t-1})\\c=q(\{ h_1,...,h_{T_x} \})ht​=f(xt​,ht−1​)c=q({h1​,...,hTx​​})其中ht∈Rnh_t\in R^nht​∈Rn是ttt时刻的隐藏状态,ccc是从隐藏状态序列中得到的上下文向量,fff和qqq是某些非线性函数。例如:Sutskever et.al.(2014)使用LSTM\textbf{LSTM}LSTM作为fff,q({h1,...,hT})=hTq(\{ h_1,...,h_T\})=h_Tq({h1​,...,hT​})=hT​。
  译码器通常在给定上下文向量ccc和所有之前预测过的词{y1,...,yt′−1}\{y_1,...,y_{t^{'}-1}\}{y1​,...,yt′−1​}上训练来预测下一个词yt′y_{t^{'}}yt′​。换句话说,译码器通过将联合概率分解为有序条件在y\textbf{y}y上定义了一个概率:p(y)=∏t=1Tp(yt∣{y1,...,yt−1},c)p(\textbf{y})=\prod_{t=1}^{T}p(y_t|\{ y_1,...,y_{t-1} \},c)p(y)=t=1∏T​p(yt​∣{y1​,...,yt−1​},c)其中y=(y1,...,yTy)\textbf{y}=(y_1,...,y_{T_y})y=(y1​,...,yTy​​)。利用RNN,每一个条件概率又能表示为p(yt∣{y1,...,yt−1},c)=g(yt−1,st,c)p(y_t|\{y_1,...,y_{t-1} \},c)=g(y_{t-1},s_t,c)p(yt​∣{y1​,...,yt−1​},c)=g(yt−1​,st​,c)其中ggg是一个非线性、多隐藏层的用于输出yty_tyt​的概率。sts_tst​是RNN的隐藏层状态。

二、文章贡献

  • 首次在Encoder-Decoder模型中提出Attention Mechanism的概念,所提出的方法在一定程度上解决了翻译长句的问题
  • Attention Mechanism在后来的许多模型中得到广泛的应用,尤其是Transformer

三、模型架构

在这一部分,我们提出一种新的神经机器翻译的架构。新架构包含了一个双向RNN的编码器以及译码器,译码器在译码翻译过程中对源句进行搜索。

1.译码器:整体概述

在新的模型架构中,我们将每一个条件概率定义为p(yi∣y1,...,yi−1,x)=g(yi−1,si,ci)p(y_i|y_1,...,y_{i-1},\textbf{x})=g(y_{i-1},s_i,c_i)p(yi​∣y1​,...,yi−1​,x)=g(yi−1​,si​,ci​)其中sis_isi​为ttt时刻RNN的隐藏层状态,计算式为si=f(si−1,yi−1,ci)s_i=f(s_{i-1},y_{i-1},c_i)si​=f(si−1​,yi−1​,ci​)不同于已有的Encoder-Decoder方法,在这里,每个目标词yiy_iyi​的概率取决于不同的上下文向量cic_ici​
  上下文向量cic_ici​取决于注释序列,即编码器的隐藏层状态(h1,...,hTx)(h_1,...,h_{T_x})(h1​,...,hTx​​)。每一个注释hih_ihi​包含了整个输入序列的信息,尤其是第iii个输入词周围的信息。接下来我们详细介绍如何计算注释。
  上下文向量cic_ici​是的这些注释hih_ihi​的加权和:ci=∑j=1Txαijhjc_i=\sum_{j=1}^{T_x}\alpha_{ij}h_jci​=j=1∑Tx​​αij​hj​注释hjh_jhj​的权重αij\alpha_{ij}αij​的计算式为:αij=exp(eij)∑k=1Txexp(eik)\alpha_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^{T_x}exp(e_{ik})}αij​=∑k=1Tx​​exp(eik​)exp(eij​)​其中eij=a(si−1,hj)e_{ij}=a(s_{i-1},h_j)eij​=a(si−1​,hj​)为一个“对齐模型”,其计算输入序列中第jjj个位置元素与输出序列中第iii个位置元素的匹配程度的得分。
  我们将“对齐模型”aaa参数化为一个与模型其他部分一起训练的前馈神经网络。注意到传统神经机器翻译中,“对齐”并没有被考虑为一个隐含的变量,相反,“对齐模型”能够直接计算允许损失函数梯度通过的“软对齐”。该梯度可用于联合训练“对齐模型”和整个翻译模型。
  直接将所有来自编码器的注释hjh_jhj​相加得到的期望注释作为上下文向量可能太大。令αij\alpha_{ij}αij​为目标词yiy_iyi​从源词xjx_jxj​翻译得到或对齐的概率。第iii个上下文向量cic_ici​是所有注释与对齐概率αij\alpha_{ij}αij​分别乘积后相加得到的期望注释。
  概率αij\alpha_{ij}αij​或者说“能量”eije_{ij}eij​反映了注释hjh_jhj​相对于前隐藏状态si−1s_{i-1}si−1​在决定下一个状态sis_isi​和生成yiy_iyi​时的重要程度。直观上看,这实现了译码器的一种“注意力机制” 译码器能够决定关注源句中的哪部分内容。通过让译码器拥有“注意力机制”,我们就能将编码器从将源句的所有信息编码为一个定长的向量的限制中解放出来。使用这种新方法,信息可以分布在整个注释序列中,译码器可以相应有选择地检索这些注释信息。

2.编码器:用于注释序列的双向RNN

  通常RNN读取输入序列x\textbf{x}x按顺序从第一个符号x1x_1x1​读到最后一个xTxx_{T_x}xTx​​。在所提出的模型中,我们希望每个词的注释不仅能够概括序列中其之前词的信息,还能概括其之后词的信息。因而我们提出使用在语音识别(Speech Recognition)中成功应用的双向RNN(BiRNN)。
  一个BiRNN包含一个前向RNN和一个后向RNN。前向RNNf⇀f^\rightharpoonupf⇀从x1x_1x1​读到xTxx_{T_x}xTx​​,并计算一个前向的隐藏层状态序列(h1⇀,...,hTx⇀)(h^{\rightharpoonup}_1,...,h^{\rightharpoonup}_{T_x})(h1⇀​,...,hTx​⇀​),而后向RNNf↼f^\leftharpoonupf↼从xTxx_{T_x}xTx​​读到x1x_1x1​,最终得到一个后向隐藏状态序列(h1↼,...,hTx↼)(h^{\leftharpoonup}_1,...,h^{\leftharpoonup}_{T_x})(h1↼​,...,hTx​↼​)。
  我们通过将前向隐藏状态hj⇀h^{\rightharpoonup}_jhj⇀​和后向隐藏状态hj↼h^{\leftharpoonup}_jhj↼​连接得到词xjx_jxj​的注释,即:hj=[hj⇀T;hj↼T]Th_j=[h^{\rightharpoonup T}_j;h^{\leftharpoonup T}_j]^Thj​=[hj⇀T​;hj↼T​]T。通过这样的方式,注释hjh_jhj​就能够概括前向词与后向词的信息。由于RNN倾向于更好地表示周围的输入,因此注释hjh_jhj​将关注xjx_jxj​附近词的信息。译码器和“对齐模型”将稍后将使用此注释序列来计算上下文向量。

四、实验设置

在English-French\textbf{English-French}English-French上评估了我们提出的模型。我们使用ACLWMT’14\textbf{ACL WMT'14}ACL WMT’14提供的双语平行语料。作为对比,我们也展示了Cho et,al.提出的基于Encoder-Decoder的RNN模型,对于两种模型,我们使用相同的训练步骤和数据集。

  • 数据集: 暂略
  • 对比模型: 一共训练了两种模型,Cho et.al.提出的基于Enocder-Decoder的RNN模型 (RNNencdec)\textbf{(RNNencdec)}(RNNencdec)和我们所提出的模型 (RNNsearch)\textbf{(RNNsearch)}(RNNsearch)。每个模型我们训练了两次:第一次在长度最长为30的句子上训练(RNNencdec-30\textbf{(RNNencdec-30}(RNNencdec-30和RNNsearch-30)\textbf{RNNsearch-30)}RNNsearch-30),第二次再长度最长为50的句子上训练(RNNencdec-50\textbf{(RNNencdec-50}(RNNencdec-50和RNNsearch-50)\textbf{RNNsearch-50)}RNNsearch-50)
  • 优化器: 使用批量SGD与Adadelta结合训练每一个模型,每一个SGD使用minibatch=80
  • 解码方式: 一旦模型训练完毕,使用Beam Search来找到条件概率近似最大化的翻译。

五、代码实现

暂略

六、结果分析

暂略

总结

  在基础Encoder-Decoder模型中,Encoder将输入序列编码得到一个定长的上下文向量,对于过长的句子,用定长的上下文向量表示输入句子可能会造成一定程度的信息损失,针对这个问题,作者提出了软搜索和“对齐模型”的概念,允许解码器选择性地在源句中搜索与目标词相关的部分,并在不同句子长度的数据集上对比基础Encoder-Decoder架构验证了所提模型的有效性。所提出的“对齐模型”即让解码器拥有了一种“注意力机制”,这也是注意力机制首次在翻译模型中被提出,注意力机制在之后的翻译模型中得到了广泛的应用,。

[论文阅读]Neural Machine Translation By Jointly Learning to Align and Translate相关推荐

  1. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(一)

    <Neural Machine Translation by Jointly Learning to Align and Translate>--基于联合学习对齐和翻译的神经机器翻译 作者 ...

  2. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(二)

    1.论文整体框架 1.1 摘要 神经机器翻译的任务定义: 传统神经机器翻译所用的编码器-解码器模型的缺陷: 本文提出一种能够自动搜索原句中与预测目标词相关的神经机器翻译模型: 所提出的模型的效果: 1 ...

  3. 《Neural Machine Translation by Jointly Learning to Align and Translate》阅读笔记

    个人总结 本文最大贡献是提出了注意力机制,相比于之前 NMT(Neural Machine Translation) 把整个句子压缩成一个固定向量表示的方法,对不同位置的目标单词计算每个输入的不同权重 ...

  4. 【论文泛读】4. 机器翻译:Neural Machine Translation by Jointly Learning to Align and Translate

    更新进度:■■■■■■■■■■■■■■■■■■■■■■■|100% 理论上一周更一个经典论文 刚刚开始学习,写的不好,有错误麻烦大家留言给我啦 这位博主的笔记短小精炼,爱了爱了:点击跳转 目录 准备 ...

  5. neural machine translation by jointly learning to align and translate

    1.论文出处 Dzmitry Bahdanau, KyungHyun Cho, Yoshua Bengio, "neural machine translation by jointly l ...

  6. 论文阅读:《Neural Machine Translation by Jointly Learning to Align and Translate》

    https://blog.csdn.net/u011239443/article/details/80521026 论文地址:http://pdfs.semanticscholar.org/071b/ ...

  7. Netural Machine Translation By Joinly Learning To Align And Translate

    参考论文:Netural Machine Translation By Joinly Learning To Align And Translate 这篇论文应该是attention系列论文的鼻祖论文 ...

  8. 《Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach》论文阅读笔记

    Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach 基本信息 研究目 ...

  9. 论文阅读Neural Machine Reading Comprehension: Methods and Trends

    神经机器阅读理解:方法和趋势 目录: 摘要 机器阅读理解(MRC):让机器根据给定的内容回答问题. 近几年随着深度学习的出现吸引了广泛的注意. 根据近几年这方面的研究,做了一个全面透彻的综合概述. 通 ...

最新文章

  1. 工作9年开发面试华为要薪1W,华为员工:我司没有这么低工资的岗.....
  2. Android Studio第十九期 - Glin架构
  3. php禁用cookie后session设置方法分析
  4. Web.XML配置详细说明
  5. c# 路径下的最近文件夹_C#8.0的两个有趣的新特性以及gRPC
  6. 数列分段`Section II`(洛谷-P1182)
  7. 阿里程序员常用的 15 个高效工具,大部分已开源!
  8. 普通二本,去了小公司,我也想改变
  9. BZOJ 3926: [Zjoi20150]诸神眷顾的幻想乡
  10. ffmpeg 合并 flv 文件
  11. SPDY协议 - v3
  12. Redis 过期策略和内存淘汰机制
  13. 百度网站诚信认证现在是个什么情况呢?
  14. java调用录像_java调用摄像头拍照录像
  15. 人一生要看的60本书
  16. QGIS 3.10 矢量样式设置
  17. Effective Java读书笔记---二、创建和销毁对象
  18. iOS与安卓的区别 浅谈ios为什么比安卓流畅
  19. 华硕x45vd安装黑苹果Yosemite 10.10.3记录
  20. JavaScript实现的环形图比较

热门文章

  1. Impala-shell命令
  2. 第三届蓝桥杯java本科解题报告
  3. 机房定位漏水与非定位漏水的区别?
  4. 20200402 转债notes
  5. 不锈钢刀具防霉方案预防发霉
  6. go convey 报错
  7. php 上传文件 type,php 上传文件 $_FILES[\'\'][\'type\']的值-wwwkljoel-ChinaUnix博客
  8. 小学生篮球训练方法 引 言 当前的小学篮球教学方法是比较枯燥的,体育教师主要给学生讲解理论知识,因此,篮球运动在小学生的心中不再是有趣的,而是没有意思的。体育教师只有反思自己枯燥的
  9. 学习数据库概论第四天
  10. 动态左侧二级下拉菜单 基于bootstrap js