NLP领域最先使用Attention的论文Neural Machine Translation By Jointy Learning To Align And Translate解读

本文介绍神经机器翻译(NMT)及Attention机制的应用。NMT通过统一的神经网络进行翻译,而Attention机制允许模型在翻译时关注源句子的不同部分,解决长句子翻译难题。通过双向RNN编码器和自适应选择源句子向量的解码器,模型能够有效处理长句子翻译。

Neural Machine Translation By Jointy Learning To Align And Translate是Attention机制在NLP领域应用的开山之作, 本文是对这篇文章的阅读笔记(未完待续

0 摘要

神经机器翻译(NMT)是最近提出来的机器翻译方法,不同于传统的机器翻译方法,NMT的目的是建立一个统一的神经网络使得在此之上可以联合地调节以最大化翻译性能。最近提出来的神经机器翻译方法大多可归属于编码-解码家族,编码器将源句子编码为一个固定长的向量,解码器将基于这个定长的向量产生一个翻译。本文推测用固定长的向量来表示源句子是提高翻译性能的一个瓶颈,所以提出通过让模型自动地寻找源句子中与目标词相关的部分来提高翻译性能,且不用将这部分明确地做为一个硬片段。

1 Introduction

NMT是最近(2013,2014年)出现的神经机器翻译方法,不同于传统基于语法的翻译系统,NMT尝试构建和训练一个统一的、大规模的神经网络,它读取一个句子并输出一个正确的翻译。

现有的NMT模型大都属于一个编码-解码簇,编码器读取并编码一个源句子为一个固定长的向量,解码器根据这个像两个输出一个正确的翻译。整个编码-解码系统联合训练以最大化给定源句子的条件下目标句子的概率。

编码-解码方法存在的一个严重问题是,神经网络需要将源句子中的所有信息都压缩到一个向量中去,这使得神经网络在处理长句子时非常困难,尤其是那些比训练集中句子长的。有人证明基本的编码-解码框架的性能确实随着输入句子的长度的增加而减弱。

为了解决这一问题,本文扩展基本的编码-解码模型,联合地进行翻译和对齐。每产生一个词的时候,模型从源句子中寻找与其最相关的信息,然后基于上下文向量、这些源位置信息和前面已经产生的词来预测新的目标词。

这个方法与基本的编码-解码方法最大的不同是,它不需要讲整个输入句子编码为单个的固定长度向量,而是将源句子编码为一个向量序列,在解码时自适应地选择一个向量集合,这样神经翻译模型就不必将源句子的所有信息都编码为一个固定的向量,更易处理长句子。

2 背景:神经机器翻译

从概率角度讲,翻译等价于给定一个源句子x的前提下,寻找最大化条件概率p(y|x)的y。在神经机器翻译中,我们拟合一个参数化模型来最大化句子对的条件概率。模型一旦学习到了条件概率,给定一个源句子,它就会从源句子中搜索找到最大化条件概率的翻译。

2.1 RNN 编码-解码

RNN编码-解码框架2014年被提出。

在此框架中,编码器读取一个输入句子,也就是一个向量序列x=(x_{1},...,x_{T_{x}})并编码为一个固定长的向量 c, 其中最常用的方法是使用一个RNN,使得

h_{t}=f(x_t,h_{t-1}) \par c=q(\{h_{1},...h_{T_{x}}\})

其中h_{t}\in R^n是时刻t的隐藏状态,f,q是非线性函数,比如f可以是LSTM,q(\{h_{1},...h_{T_{x}}\})=h_{T}.

解码器通常是在给定上下文向量c和所有目前已经产生的词\{y_1,...y_{t-1}\}的前提下预测下一个词y_{t},换句话说,解码器将产生目标翻译的概率分解为产生序列中每个词的概率的乘积,即

p(y)=\prod_{t=1}^{T}p(y_t|\{y_1,...y_{t-1}\})

其中,y=\{y_1,...y_{t-1}\}.

若解码器是RNN,每个条件概率可建模为:

p(y_t|\{y_1,...y_{t-1}\}=g(y_{t-1},s_{t},c),
其中 g是非线性,可能是多层的函数,它计算的是y_t的概率。

3 同时学习对齐和翻译

这一部分提出一个NMT新架构,它用双向RNN做为编码器,解码器在源句子中进行模拟搜索。

3.1解码器

在这个新模型中,将条件概率定义为

p(y_t|\{y_1,...y_{t-1},x\}=g(y_{t-1},s_{t},c_t)

其中s_{t}是时刻 t 时解码RNN的隐层状态,计算方法如下

s_{t}=f(s_{t-1},y_{t-1},c_{i}).

注意,不同于现有的编码-解码方法,这里的概率公式对于不同的 y_{t} 用不同的上下文向量 c_{t}

### 关于注意力机制Attention Mechanism)的相关学术论文 在深度学习领域注意力机制已经成为许多模型的核心组成部分之一。通过引入注意力机制,模型能够更有效地聚焦于输入数据中的重要部分,从而提升性能并增强可解释性[^1]。 以下是几篇经典的关于注意力机制的研究论文: #### 1. **Neural Machine Translation by Jointly Learning to Align and Translate** 这篇论文首次提出了序列到序列(Seq2Seq)模型中加入注意力机制的方法。它展示了如何利用注意力机制来解决神经机器翻译任务中的长期依赖问题,并显著提高了翻译质量[^2]。 #### 2. **Attention is All You Need** 该研究介绍了Transformer架构,这是一种完全基于自注意力机制(Self-Attention)的新型网络结构。此论文证明了仅依靠注意力机制即可实现高性能的语言建模和其他NLP任务[^3]。 #### 3. **Hierarchical Attention Networks for Document Classification** 本文探讨了文档分类场景下层次化注意力建模方法的应用价值。作者设计了一种双层注意力框架——词级和句级别分别施加不同形式的关注权重计算逻辑,最终取得了优于传统CNN/RNN的结果表现[^4]。 #### 4. **Deep Reinforcement Learning with Double Q-Learning Combined With Multi-head Attention Mechanisms For Resource Allocation In Wireless Communication Systems** 本篇文章结合多头注意力机制改进强化学习算法,在无线通信资源分配方面进行了创新尝试。实验表明这种方法可以有效应对复杂环境下的动态优化挑战[^5]。 此外还有其他一些重要的工作也围绕着特定应用场景展开讨论比如图像识别、语音处理等领域内的变体版本开等等。这些研究成果共同推动了现代AI技术的展进程。 ```python import torch from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') text = "Replace me by any text you'd like." encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input) print(output.last_hidden_state[:,0,:]) # 输出CLS token对应的向量表示 ``` 上述代码片段展示了一个简单的例子,说明如何加载预训练好的BERT模型并通过其获取句子嵌入表示。这背后实际上就是运用到了自注意力机制来进行特征提取操作。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值