引言

又为大家带来一篇经典论文的翻译,只翻译核心的部分。

摘要

在本文中,我们提出了一个新的神经网络模型,叫RNN编码器-解码器模型,它包含两个RNN。一个RNN编码符号序列到定长向量,另一个解码该向量到另一个符号序列。编码器和解码器是同时训练的以最大化给定源序列时目标序列的条件概率。在现存的对数线性模型中通过RNN编码器-解码器计算短语对的条件概率作为一个额外的特征,我们发现可以提升统计机器翻译系统的表现。我们定性地展示提出的模型可以学会语义和句法上有意义的语言上的短语表示。

1 简介

深度神经网络已经成功应用到很多领域,像目标识别和语言识别。甚至,最近很多研究表明神经网络也能成功应用到自然语言处理的很多任务中。包括但不限于:语言模型、语义监测和词嵌入抽取。在统计机器翻译领域(SMT),深度神经网络开始展现令人期待的结果。Schwenk总结了一种前馈神经网络成功使用在基于短语的SMT系统框架中。

继续神经网络用于SMT的研究,本文注重于一种全新的神经网络结构,它能作为传统的基于短语的SMT系统的一部分。该网络结构,我们称为RNN编码器-解码器,包含两个RNN分别作为编码器和解码器。编码器映射一个变长源序列到一个定长向量,解码器映射此向量表示到一个变长目标序列。这两个网络是同时训练的,用于在给定源序列时最大化目标序列的条件概率。此外,我们建议使用一个相对复杂的隐藏单元(就是GRU)来提升存储容量和训练的简单性。

在英法翻译任务中评估具有新隐藏单元的RNN编码器-解码器。我们训练模型学习一个英语短语到相应法语短语翻译概率。然后该模型作为一个标准的基于短语的SMT系统的一部分使用,来计算短语表中每个短语对的得分。评估结果得出这种通过RNN编码器-解码器计算短语对得分的方式,提升了翻译结果。

通过比较现有翻译模型和训练好的RNN编码器-解码器对短语计算的得分,这种定性分析表明RNN编码器-解码器更擅长于捕捉短语表中的语言性规律,间接解释了整体翻译性能的量化改进。进一步地分析显示RNN编码器-解码器学习了一种短语的连续空间表示,该种表示保存了短语的语义和句法结构。

2 RNN编码器-解码器

2.1 循环神经网络

循环神经网络(RNN)包含隐藏状态hhh和可选的输出yyy,应用在变长序列x=(x1,⋯,xT)x=(x_1,\cdots,x_T)x=(x1​,⋯,xT​)上。每个时刻ttt,RNN的隐藏状态h⟨t⟩h_{\langle t \rangle}h⟨t⟩​根据下式更新:

h⟨t⟩=f(h⟨t−1⟩,xt)(1)h_{\langle t \rangle} = f(h_{\langle t-1\rangle},x_t) \tag{1} h⟨t⟩​=f(h⟨t−1⟩​,xt​)(1)
其中fff是一个非线性激活函数。fff可以简单如元素级sigmoid函数或复杂如LSTM单元。
通过训练RNN来预测序列中的下一个符号,RNN能学到一个序列的概率分布。此时,每个时刻ttt的输出是条件分布p(xt∣xt−1,⋯,x1)p(x_t|x_{t-1},\cdots,x_1)p(xt​∣xt−1​,⋯,x1​)。比如,一个多项式分布(1-of-k哑编码)可以通过一个softmax激活函数输出:

p(xt,j=1∣xt−1,⋯,x1)=exp(wjh⟨t⟩)∑j′=1Kexp(wj′h⟨t⟩)(2)p(x_{t,j}=1 | x_{t-1},\cdots,x_1) = \frac{exp(w_jh_{\langle t \rangle})} {\sum_{j^\prime = 1} ^ K exp(wj^\prime h_{\langle t \rangle}) }\tag{2} p(xt,j​=1∣xt−1​,⋯,x1​)=∑j′=1K​exp(wj′h⟨t⟩​)exp(wj​h⟨t⟩​)​(2)
对所有可能的符号j=1,⋯,Kj=1,\cdots,Kj=1,⋯,K,其中wjw_jwj​是权重矩阵WWW的某行。通过结合这些概率(相乘),我们可以计算序列xxx的概率:

p(x)=∏t=1Tp(xt∣xt−1,⋯,x1)(3)p(x) = \prod_{t=1}^T p(x_t|x_{t-1},\cdots,x_1) \tag{3} p(x)=t=1∏T​p(xt​∣xt−1​,⋯,x1​)(3)

从这个学到的分布,可以直接通过在每个时刻迭代地生成一个符号来生成新序列(文本生成)。

2.2 RNN编码器-解码器

在本文中,我们提出了一种新的网络结构,能学会编码一个变长序列到定长向量表示,然后解码给定定长向量表示到一个变长序列。从概率学角度来看,这种新结构是一种通用方法来学习一个变长序列基于另一变长序列的条件分布,即p(y1,⋯,yT′∣x1,⋯,xT)p(y_1,\cdots,y_{T^\prime}|x_1,\cdots,x_T)p(y1​,⋯,yT′​∣x1​,⋯,xT​),这里要注意的是输入序列和输出序列的长度可以不同。

编码器是一个RNN,顺序地读取输入序列xxx的每个符号。随着读取的进行,RNN的隐藏状态根据公式(1)(1)(1)更新。在读完序列终止符(通过一个特殊符号标记)后,RNN的隐藏状态ccc就是整个输入序列的概括(或者说ccc编码了整个输入序列的信息)。

解码器是另一个RNN,训练通过给定隐藏状态h⟨t⟩h_{\langle t \rangle}h⟨t⟩​预测下一个符号yty_tyt​,以生成输出序列。然而,不同于2.1节描述的RNN,解码器RNN的yty_tyt​和h⟨t⟩h_{\langle t \rangle}h⟨t⟩​都是在给定yt−1y_{t-1}yt−1​和输入序列的概括ccc条件下得到。因此,在时刻ttt编码器的隐藏状态计算如下:
h⟨t⟩=f(h⟨t−1⟩,yt−1,c)h_{\langle t \rangle} = f(h_{\langle t-1 \rangle},y_{t-1},c) h⟨t⟩​=f(h⟨t−1⟩​,yt−1​,c)
同样,下一个符号的条件分布为:
P(yt∣yt−1,yt−2,⋯,y1,c)=g(h⟨t⟩,yt−1,c)P(y_t|y_{t-1},y_{t-2},\cdots,y_1,c) = g(h_{\langle t \rangle},y_{t-1},c) P(yt​∣yt−1​,yt−2​,⋯,y1​,c)=g(h⟨t⟩​,yt−1​,c)

fff和ggg为给定的激活函数(后者必须输出有效的概率,比如可以结合softmax函数)。

图1是模型结构展示。

RNN编码器-解码其的两部分(编码器和解码器)是同时训练来最大化以下对数似然条件概率的:
max⁡θ1N∑n=1Nlog⁡pθ(yn∣xn)(4)\max_{\theta} \frac{1}{N} \sum_{n=1} ^ N \log p_{\theta} (y_n|x_n) \tag{4} θmax​N1​n=1∑N​logpθ​(yn​∣xn​)(4)

其中θ\thetaθ是模型参数集合,每个(xn,yn)(x_n,y_n)(xn​,yn​)训练集中的一个(输入序列,输出序列)对。在我们的案例中,从输入到解码器的输出都是可微的,所以我们可以使用基于梯度的算法来设置模型参数。

一旦RNN编码器-解码器训练好后,模型能用于两个方面。一是给定输入序列来生成目标序列,二是用于给提供的输入和输出序列对打分,分数就是公式(3)和(4)计算出来的概率pθ(y∣x)p_\theta(y|x)pθ​(y∣x)。

2.3 适应性地记忆和遗忘的隐藏单元

除了一个新颖的模型结构,我们也提出了一种新的隐藏单元(公式(1)中的fff),启发于LSTM单元但更易于实现和计算。图2是该隐藏单元的图形化描述。

先看第jjj个隐藏单元的激活值是如何计算的。首先,重置门(reset gate)rjr_jrj​计算如下:
rj=σ([Wrx]j+[Urh⟨t−1⟩]j)(5)r_j = \sigma \left(\left[W_rx\right]_j + \left[U_r h_{\langle t-1 \rangle} \right]_j \right) \tag{5} rj​=σ([Wr​x]j​+[Ur​h⟨t−1⟩​]j​)(5)

其中σ\sigmaσ是sigmoid函数,[.]j[.]_j[.]j​表示向量的第jjj个元素,xxx和ht−1h_{t-1}ht−1​分别是输入和前一个隐藏状态。WrW_rWr​和UrU_rUr​是学到的权重矩阵。

类似地,更新门(update gate)zjz_jzj​计算于:
zj=σ([Wzx]j+[Uzh⟨t−1⟩]j)(6)z_j = \sigma \left(\left[W_zx\right]_j + \left[U_z h_{\langle t-1 \rangle} \right]_j \right) \tag{6} zj​=σ([Wz​x]j​+[Uz​h⟨t−1⟩​]j​)(6)
(除了权重矩阵不同)

隐藏单元实际的激活值hjh_jhj​计算于:
hj⟨t⟩=zjhj⟨t−1⟩+(1−zj)h∼j⟨t⟩(7)h^{\langle t \rangle}_j = z_j h^{\langle t-1 \rangle}_j +(1-z_j) {\stackrel{\sim}{h}}^{\langle t \rangle}_j \tag{7} hj⟨t⟩​=zj​hj⟨t−1⟩​+(1−zj​)h∼​j⟨t⟩​(7)
其中
h∼j⟨t⟩=ϕ([Wx]j+[U(r⊙h⟨t−1⟩)]j)(8){\stackrel{\sim}{h}}^{\langle t \rangle}_j = \phi \left(\left[Wx\right]_j + \left[U(r \odot h_{\langle t-1 \rangle}) \right]_j \right) \tag{8} h∼​j⟨t⟩​=ϕ([Wx]j​+[U(r⊙h⟨t−1⟩​)]j​)(8)

在该公式中,当重置门近于0,当前隐藏状态强制忽略前一个隐藏状态,并用当前的输入重置。这可以有效地让隐藏状态抛弃任何将来发现的不相关的信息。从而是表示更紧凑。

另一方面,更新门控制前一个隐藏状态的多少信息会传递到当前隐藏状态。这类似于LSTM的记忆单元,可以让RNN记住长期信息。此外,这可以被认为是leaky-integration单元的一个适应性地变种。

因为每个隐藏单元有分开的重置和更新门,所以每个隐藏单元将学习捕获到不同时间范围的依赖。这些学习捕获短期依赖的单元倾向于使重置门频繁地激活,但学习长期依赖的单元几乎总是激活更新门。

在我们的初步实现中,我们发现使用带有门结构的单元很重要。否则无法用tanhtanhtanh得到有意义的结果。

统计机器翻译

在常用的统计机器翻译系统中,系统(解码器)的目标是找到一个翻译fff,在给定源语句e$下能最大化

p(f∣e)∝p(e∣f)p(f)p(f|e) \varpropto p(e|f)p(f) p(f∣e)∝p(e∣f)p(f)

其中式子右边的第一项(p(e∣f)p(e|f)p(e∣f))称为翻译模型,后者(p(f)p(f)p(f))称为语言模型。实际中,然而,大多数SMT系统建模log⁡p(f∣e)\log p(f|e)logp(f∣e)为具有额外特征和相应权重的对数线性模型:

log⁡p(f∣e)=∑n=1Nwnfn(f,e)+log⁡Z(e)(9)\log p(f|e) = \sum_{n=1}^N w_n f_n(f,e) + \log Z(e) \tag{9} logp(f∣e)=n=1∑N​wn​fn​(f,e)+logZ(e)(9)

其中fnf_nfn​和wnw_nwn​分别是第nnn个特征和权重。Z(e)Z(e)Z(e)是一个不依赖于权重的归一化常数。权重常被优化以最大化验证集上的BLEU得分。

在基于短语的SMT框架中,翻译模型log⁡p(e∣f)\log p(e|f)logp(e∣f)分解为源语句和目标语句中匹配短语的翻译概率。这些概率又被看成是对数线性模型(见公式(9)(9)(9))中额外的特征,并且通过最大化BLEU得分来加权。

自从Bengio等人提出了神经网络语言模型,神经网络已经广泛用于SMT系统。在很多情况下,神经网络被用于对翻译假设(n-best lists)重新打分。然而近来,越来越多学者关注于训练神经网络通过使用源句子的表示作为额外输入,来对翻译的句子(或短语对)进行打分。

3.1 用RNN编码器-解码器进行短语对评分

当调整SMT的解码器时,我们建议在短语对表上训练RNN编码器-解码器(见2.2节),并用它的得分(其实就是概率)作为公式(9)(9)(9)中的对数线性模型的额外特征。

当训练RNN编码器-解码器时,我们忽略原始语料库中每个短语对(归一化)的频率。这个措施为了:(1)减少从大短语表中根据归一化的频率随机选择短语对的计算消耗,(2)确保RNN编码器-解码器不是简单地学习根据短语频次来对它们进行排序。这样做的一个根本原因是,短语表中现有的翻译概率已经反映了短语对在原始语料库中的频率。RNN编码器-解码器具有固定的容量(capacity),我们试着确保模型的大多数容量集中于学习语言规律,比如,区分合理和不合理的翻译或学习合理翻译的多样性(概率集中区)。

一旦RNN编码器-解码器训练好后,我们为现有短语表中的每个短语对增加一个新的得分。这使新得分进入现有调整算法时只需要最小的额外计算消耗。

正如Schwenk指出的,可以用RNN编码器-解码器完全替代现有的短语表。在这种情况下,给定一个源短语时,RNN编码器-解码器需要生成(良好的)目标短语列表。然而这需要重复运行昂贵的采样程序。在本文中,因此我们只考虑为短语表中的短语对重新打分。

3.2 相关方法:机器翻译中的神经网络

在介绍实验结果之前,我们讨论一些提出在SMT中使用神经网络的近期工作。Schwenk提出了一个相似的打分短语对方法。但他用了具有固定输入和输出大小的前馈神经网络而不是基于RNN的神经网络。当它具体地用于为SMT系统短语打分时,短语的最大长度通常选得很小。然而,随着短语长度的增加或因为我们应用其他变长序列数据到神经网络,此时神经网络能处理变长输入和输出就很重要了。而RNN编码器-解码器正好可以应用这些场景。

与Devlin等人提出的应用前馈神经网络对翻译模型进行建模的思想类似,然而,通过一次预测目标短语中的一个单词,他们获得了重大提升。但是他们的方法仍然需要输入提前确定短语的最大长度。

尽管Zou et al提出的不完全是神经网络,他们提出了学习单词/短语的双语嵌入。他们用学到的嵌入去计算短语对的距离,作为SMT系统中短语对的额外分数。

Chandar等人训练一个前馈神经网络来学习如何匹配输入短语的词袋(bag-of-words)表示到输出短语。这与RNN编码器-解码器和Schwenk提出的模型很类似,除了他们输入的短语表示是词袋。Gao等人提出了一个类似的使用词袋作为短语表示的途径。Socher等人提出了类似的使用了两个循环神经网络的编码器-解码器模型,但是他们的模型受限于单语设置,比如,该模型重构了一个输入短语。最近,Auli等人提出了另一个使用一个RNN的编码器-解码器模型,其中解码器基于源语句或目标语句表示。

[论文翻译]Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation相关推荐

  1. Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation之每日一篇

    真正提出 Seq2Seq 的文章是<Sequence to Sequence Learning with Neural Networks>,但本篇<Learning Phrase R ...

  2. 论文学习笔记02(Learning phrase representations using rnn encoder-decoder for statistical machine translat)

    论文学习笔记 Learning phrase representations using rnn encoder-decoder for statistical machine translation ...

  3. 【Paper】Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

    论文原文:PDF 论文年份:2014 论文被引:11398(2020/11/08) 18225(2022/03/26) 论文作者:Kyunghyun Cho et.al. 文章目录 Abstract ...

  4. 论文翻译:Learning Invariant Representations and Risks for Semi-supervised Domain Adaptation

    摘要 监督学习的成功依赖于假设训练和测试数据来自相同的潜在分布,这在实践中往往是无效的,因为潜在的分布转移.鉴于此,现有的非监督域自适应方法大多集中于实现域不变表示和小源域误差.然而,最近的研究表明, ...

  5. 论文解读:On The Alignment Problem In Multi-Head Attention-Based Neural Machine Translation

    论文解读:On The Alignment Problem In Multi-Head Attention-Based Neural Machine Translation   机器翻译是自然语言处理 ...

  6. 【r-GAN】论文翻译 - Learning Representations and Generative Models for 3D Point Clouds

    摘要: 三维几何数据为研究表示学习和生成建模提供了一个很好的领域.在本文中,我们研究用点云表示的几何数据.介绍了一种具有最先进的重构质量和泛化能力的deep AutoEncoder (AE) 网络.学 ...

  7. 论文翻译 | Learning Calibrated Medical Image Segmentation via Multi-rater Agreement Modeling

    文章目录 Abstract and Contributions Motivation Overall Framework Expertise-aware Inferring Module Multi- ...

  8. [论文翻译] Learning Without Forgetting

    https://link.springer.com/chapter/10.1007/978-3-319-46493-0_37 Learning Without Forgetting Abstract ...

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

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

  10. 交通预测论文翻译:Deep Learning on Traffic Prediction: Methods,Analysis and Future Directions

    原文链接:[2004.08555v3] Deep Learning on Traffic Prediction: Methods, Analysis and Future Directions (ar ...

最新文章

  1. 用友云平台,真正的云原生架构,加速云应用落地
  2. 数据结构——栈——中缀表达式和后缀表达式
  3. const指针 常指针
  4. flex属性值----弹性盒子布局
  5. 【人物】徐小平:远离创业的3个死亡陷阱
  6. 看我如何发现Uber合作方网站XXE 0day漏洞并获得9000美元赏金
  7. SpringBoot启动yaml报错
  8. Android之shape属性详解
  9. linux 升级java_linux 升级jdk1.8
  10. 学习API 判断光驱是否为光盘
  11. tiptop 编译运行_putty终于让我的TIPTOP脱离虚拟机在64位上运行了。
  12. 无向图的邻接表表示法 及 深搜遍历DFS
  13. Flask之Web表单使用
  14. 顺序表的基本操作(含全部代码c)
  15. Win 7 配置FTP权限
  16. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(5):克拉默法则
  17. 打破第一范式的要求 (中英对照)Michael Rys 对 SQL Server 2005 中XML 的 评论——对微软SQL Server项目经理Michael Rys博士的采访
  18. sudo rm-rf引发的惨案——Linux硬盘的分区和挂载
  19. html中figure怎么调图片位置,HTMLfigure figcaption 标签定义图文并茂
  20. html设置径向渐变色,【前端Talkking】CSS系列-css3之径向渐变初探

热门文章

  1. SNS网站获取导入MSN联系人的方法
  2. 将你的blog变成英文版
  3. maven-dependencyManagement和dependencies区别
  4. hdu2046-饭卡
  5. django orm 以列表作为筛选条件进行查询
  6. Ztree 仿淘宝树结构完美实现 移动 右键增删改
  7. 无法从套接字读取更多的数据
  8. java多线程-CountDownLatch
  9. 读书笔记:《知道做到》
  10. IBatisNet之获取和操作SQL语句