NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE【论文笔记】

一、摘要

  神经机器翻译是最近提出的机器翻译的一种方法。与传统的统计机器翻译不同,神经机器翻译旨在建立一个单一的神经网络,可以联合调整以最大化翻译性能。最近提出的用于神经机器翻译的模型通常属于一系列编码器 - 解码器,并将源句编码成固定长度的矢量,解码器从该矢量生成翻译。我们推测对于提升基本的编码器-解码器结构的性能,固定长度向量的使用是一个瓶颈。并建议通过允许模型自动搜索与预测目标词相关的部分源句子来扩展这类模型。

二、介绍

  不像传统的基于短语的翻译系统,由很多分离的小组件构成,NMT尝试搭建和训练一个大的神经网络,可以读取一个句子然后输出正确的翻译。大多数提出的NMT方法都是属于encoder-decoder类型,encoder将原句编码为固定长度的向量,decoder根据编码向量输出翻译。** 一个潜在的问题是需要压缩原句所有必要的信息为固定长度的向量。这会使得神经网络难以处理长句的问题。**
  为了解决这个问题,作者扩展了encoder-decoder模型,可以学习共同对齐和翻译。这个模型在翻译时每生成一个词的时间步,它就会在原句中讯寻找最相关的位置信息。然后,模型基于与这些源位置相关联的上下文向量和所有先前生成的目标词来预测目标词。
  这种方法与基本encoder-decoder最重要的区别是它不会尝试将整个输入句子编码为单个固定长度的矢量。相反,它将输入句子编码成矢量序列,并在解码翻译时自适应地选择这些矢量的子集。这使得神经翻译模型不必将源句子的所有信息(无论其长度)压缩成固定长度的矢量。 我们证明这允许模型更好地应对长句。

三、背景

  从概率的角度来说,翻译就等同于给定原句x找到目标句y的最大概率, a r g   m a x y p ( y ∣ x ) arg\ max_yp(y|x) arg maxyp(yx)。在NMT中,我们训练一个参数化模型来最大化这个条件概率。一旦模型学习到条件概率分布,给定一个原句我们就可以最大化条件概率生成相应的翻译。

3.1 RNN Encoder-Decoder

  这里简答的介绍下当前的框架,rnn encoder-decoder。然后我们会在这个框架的基础上学习 a l i g n 和 t r a n s l a t e align和translate aligntranslate。在encoder-decoder框架中,encoder读取输入句子,一个向量序列 x = ( x 1 , . . . , x T x ) x=(x_1,...,x_{T_x}) x=(x1,...,xTx),将其编码为 c c c。使用RNN最普遍的方法就是:
h t = f ( x t , h t − 1 ) h_t=f(x_t,h_{t-1}) ht=f(xt,ht1) c = q ( { h 1 , . . . , h T x } ) c=q(\{h_1,...,h_{T_x}\}) c=q({h1,...,hTx})
  其中 h t ∈ R n h_t\in R^n htRn 是时刻t的隐藏层状态, c c c 是根据隐藏层状态生成的向量。 f 和 q f和q fq 是非线性函数。给定上下文向量 c c c和所有之前预测的词 { y 1 , . . . , y t − 1 } \{y_1,...,y_{t-1}\} {y1,...,yt1},decoder预测下一个单词 y t y_t yt。换句话来说,解码器通过将联合概率分解为有序条件来定义翻译y的概率:
p ( y ) = ∑ t = 1 T p ( y t ∣ { y 1 , . . . , y t − 1 } , c ) , p(y)=\sum_{t=1}^Tp(y_t|\{y_1,...,y_{t-1}\},c), p(y)=t=1Tp(yt{y1,...,yt1},c),
  其中, y = ( y 1 , . . . , y T y ) y=(y_1,...,y_{T_y}) y=(y1,...,yTy),通过RNN,每个条件概率可以建模为:
p ( y t ∣ { y 1 , . . . , y t − 1 } , c ) = g ( y t − 1 , s t , c ) , p(y_t|\{y_1,...,y_{t-1}\},c)=g(y_{t-1},s_t,c), p(yt{y1,...,yt1},c)=g(yt1,st,c),
  其中 g g g 是非线性、多层函数,输出 y t y_t yt 的概率, s t s_t st 是RNN的隐藏层状态。

四、LEARNING TO ALIGN AND TRANSLATE

  本节作者提出了一个NMT的新框架,新框架的encoder由双向RNN组成,decoder用于在解码翻译期间模拟搜索源句子。

4.1 Decoder

  在新框架中,定义每个条件概率为:
p ( y i ∣ { y 1 , . . . , y i − 1 } , x ) = g ( y i − 1 , s i , c i ) , p(y_i|\{y_1,...,y_{i-1}\},x)=g(y_{i-1},s_i,c_i), p(yi{y1,...,yi1},x)=g(yi1,si,ci),
  其中, s i s_i si 是RNN时刻 i i i 的隐藏层状态:
s i = f ( s i − 1 , y i − 1 , c i ) s_i=f(s_{i-1},y_{i-1},c_i) si=f(si1,yi1,ci)
  这里与目前的encoder-decoder方法不同,对每一个目标词 y i y_i yi的概率,上下文向量 c i c_i ci 都是不同的。上下文向量 c i c_i ci 依赖于encoder将输入映射为序列 ( h 1 , . . . , h T x ) (h_1,...,h_{T_x}) (h1,...,hTx)。每个 h i h_i hi 包含关于整个输入序列的信息,其强烈关注于围绕输入序列的第i个词的部分。上下文向量 c i c_i ci 就是这些 h i h_i hi的加权和:
c i = ∑ j = 1 T x α i j h j c_i=\sum_{j=1}^{T_x}\alpha_{ij}h_j ci=j=1Txαijhj α i j = e x p ( e i j ) ∑ k = 1 T x e x p ( e i k ) \alpha_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^{T_x}exp(e_{ik})} αij=k=1Txexp(eik)exp(eij) e i j = a ( s i − 1 , h j ) e_{ij}=a(s_{i-1},h_j) eij=a(si1,hj)
  对齐模型用于评估位置 j j j 周围的输入和位置 i i i 的输出匹配的程度,这个分数基于RNN隐藏层状态 s i − 1 s_{i-1} si1 和输入句子的 h j h_j hj。我们将对齐模型 a a a 参数化为前馈神经网络,该网络与所提出的系统的所有其他组件共同训练。不像传统的机器翻译,对齐模型不视为一个隐含变量。相反,对齐模型计算一个soft alignment,允许损失函数的梯度回溯,这个梯度就可以用来训练这个对齐模型。
  概率 α i j \alpha_{ij} αij 或其相关能量 e i j e_{ij} eij 反映了 h j h_j hj 相对于先前隐藏状态 s i − 1 s_{i-1} si1 在决定下一状态 s i s_i si 和产生 y i y_i yi 时的重要性。直观地说,这在decoder实现了attention机制。decoder决定了哪部分原句更应该关注。通过这个attention机制,我们减轻encoder的负担,不必将原句中的所有信息编码成固定长度矢量。

4.2 Encoder:双向RNN

  普通的RNN只考虑了前向词的信息,而双向RNN考虑了前向和后向词的信息。

五、实验

  在WMT 14 的英语-法语数据集上训练。对比了传统的RNN encoder-decoder模型,同时也做了长度对比实验,下图是实验结果。可以看到随着句子长度的增加,RNNenc的BLEU 分数也随之下降,而作者提出的模型RNNsearch-50基本没什么变化。
在这里插入图片描述

五、总结

  这里只说一下不足之处。作者并没有做阉割实验,究竟是双向RNN的贡献大还是attention的贡献大,这在实验中没有体现。

### 关于注意力机制的相关论文 在深度学习领域,注意力机制已经成为许多研究的核心主题之一。以下是一些与注意力机制相关的经典和前沿论文: #### 经典注意力机制论文 1. **Neural Machine Translation by Jointly Learning to Align and Translate** 这篇论文首次引入了序列到序列模型中的注意力机制概念[^3]。它通过计算源句中每个词的重要性来动态调整翻译过程中的权重分配。 2. **Attention Is All You Need** 此论文提出了 Transformer 架构,完全基于自注意力机制构建而成,摒弃了传统的循环神经网络结构[^4]。Transformer 已成为自然语言处理领域的标准架构之一。 #### 局部注意力改进方向 根据最新研究成果,《Efficient Local Attention for Deep Convolutional Neural Networks》提出了一种名为高效局部注意力(ELA)的方法[^2]。该方法针对 Coordinate Attention 的不足进行了优化,并结合一维卷积和 Group Normalization 技术增强了特征表达能力。 以下是实现 ELA 方法的一个简化代码示例: ```python import torch.nn as nn class EfficientLocalAttention(nn.Module): def __init__(self, channels, groups=8): super(EfficientLocalAttention, self).__init__() self.group_norm = nn.GroupNorm(groups, channels) self.conv1d = nn.Conv1d(channels, channels, kernel_size=3, padding=1) def forward(self, x): x = self.group_norm(x) x = self.conv1d(x.permute(0, 2, 1)).permute(0, 2, 1) return x ``` #### 可视化注意力机制的研究 另一项重要工作来自 Ba et al., 提出了 Layer-wise Relevance Propagation (LRP),用于解释深度神经网络中的决策路径并可视化注意力分布[^5]。 --- ### 注意力机制的应用范围扩展 除了上述理论基础外,注意力机制还被应用于多个具体场景,例如时间序列预测、推荐系统以及强化学习等领域。这些应用进一步推动了其发展和技术成熟度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值