论文 Effective Approaches to Attention-based Neural Machine Translation 这篇论文主要介绍了神经网络翻译中的attention机制的集中改进方式,包括global / local attention以及 input-feeding机制,最后通过实验进行比较
本篇博文还将拓展神经网络翻译、注意力机制、soft / hard attention等内容
目录
论文 Effective Approaches to Attention-based Neural Machine Translation
Motivation(神经网络翻译概念)
Related work(attention机制)
Global Attention(与普通attention的区别)
global attention 缺点
Local attention
local-m
local-p
Input-feeding
Conclusion
soft / hard attention
Motivation(神经网络翻译概念) NMT(神经网络翻译)是一个以条件概率p(y|x)建模的神经网络,将源语句x1,…,xn翻译到目标语句y1,…,ym
NMT的基本形式包括两个组成部分:
1. 编码器 —— 计算每个源语句的表示 2. 解码器 —— 每次生成一个目标单词
文章图片
即Decoder 根据s和之前所预测的单词来预测下一个单词
NMT存在问题:
不过Encoder-Decoder有一个很大的问题就是encoder 和decoder之间的上下文向量的长度是固定的,这就可能导致网络无法解决长句子, 当句子的长度上升时, 传统的encoder-decoder模型表现急剧下降。
就好像一个翻译人员翻译一本书,他先通读全篇,当开始翻译时,前面的部分有的已经遗忘了。
Related work(attention机制)
文章图片
每一个时间步,attention将encoder的hidden states以及decoder当前的hidden state作为输入,最终得到context vector,然后将c和decoder端的hidden state 相连结作为softmax的输入,获得最终结果
attention的计算:
文章图片
输入是encoder的所有hidden states H,decoder在一个时间点上的hidden state h。
第一步:旋转H与h做点乘得到一个分数。
第二步:对分数做softmax得到一个合为1的权重。
第三步:将H与第二步得到的权重做点乘得到一个大小为(hid dim, 1)的context vector。
理解:是一种对齐,根据encoder的H和decoder位置 j 的h h_j,给予源句子每个单词位置不同的权重,着重考虑相关性大的位置,得到上下文向量c_i
However, there has been little work exploring useful architectures for attention-based NMT.
于是作者对之前的attention机制做出改进,提出了两种简单有效的attention机制:一种始终关注所有源词的全局(global)方法和一种每次仅查看源词子集的局部(local)方法
Global Attention(与普通attention的区别)
文章图片
左图,在每个时间步t,模型通过target stateh和 所有的source states h,产生可变长度对齐权重向量,根据,全局上下文向量 计算为所有源状态的加权平均值
Bahdanau et al. 2015中所介绍的attention和global attention机制确实很相似。在原理上是一样的,只不过在计算context vector c_t的流程中有些区别。
区别一: Bahdanau et al. (2015)所提出的原始attention 模型encoder端使用了双向RNN,而decoder使用了单层单向RNN。并且encoder端的 hh_s 是前向和反向hidden state的拼接,decoder端的hh_t是单层单向RNN的hidden states
但是global attention 的encoder和decoder都是多层单向RNN,encoder端的hh_s和decoder端的 hh_t使用的是LSTM最顶层的hidden states
文章图片
区别二: attention 机制主要是要计算encoder端的context vector,然后将c和decoder端的target hidden state 相连结(concatenation)作为softmax的输入,获得最终结果
只不过在计算context vector 时,两者稍微有点区别,global attention 在计算相似度score时使用的是 decoder的h h_t,而Bahdanau et al. (2015)所提出的原始attention 模型使用的是 h?1h_(t-1)即前一个隐藏状态
文章图片
文章图片
区别三: Bahdanau et al. (2015)所提出的原始attention 模型只有concatenation(如右),而global attention中试验了其他的alignment function,并且在随后实验中发现其他的函数有更好的效果
文章图片
文章图片
global attention 缺点 对于每一个target word,都需要关注源句子的所有单词,代价高,使翻译长语句或文章不切实际,所以提出local attention,使得每个target单词只focus on源句子中一小部分位置
Local attention 在时刻t为target word生成一个对齐位置p_t,上下文向量c_t通过窗口?,+[p_t-D,p_t+D]的源句子hidden states加权平均得到,其中D由经验选择。
文章图片
与global不同,权重a_t维度为固定维度的,即2D+1,由目标的state hh_t和窗口内的源state hh ?_s决定。Local attention有两个变种,Monotonic alignment (local-m)(单调) 和 Predictive alignment (local-p)(预测)
local-m 我们简单地设置 =p_t=t,假设源和目标大体上是单调对齐的,这个时候alignment vector a_t的计算和global attention 一致
local-p 不认为源序列和目标序列大致单调对齐,而是预测一个对齐位置
文章图片
W和v是用于学习预测位置的模型参数,S为源句子长度,∈[0,]p_t∈[0,S] ,为了使对齐点靠近 p_t,我们放置一个以p_t为中心的高斯分布,所以权重a_t为:
文章图片
Align函数与之前相同,标准差按照经验设置为 D/2,这里p_t应为实数,而s为以p_t为中心的窗口内的整数。
Input-feeding 在标准的机器翻译中,常常维护一个coverage集,来跟踪看哪些源词已经被翻译了。所以在attention NMT中,对齐应该考虑过去的对齐。为了解决这个问题,提出了input-feeding方法,每一步attention向量在下一个时间步与输入连接。该方法有两种效果:
① 使模型更完整的关注之前的选择 ② 我们创建了一个横向纵向都很深的网络
文章图片
Conclusion 在本文中,提出了两简单有效的注意力机制,关注全部源位置的global attention 和每个时间点只关注源句子子集的 local attention。
测试发现local attention相比于使用了dropout等技术的非注意力机制,高出了5.0个BLEU,在英语到德语的翻译中,我们的ensemble模型达到了state-of-the-art的成果。
发现注意力机制模型在很多情况下优于非注意力机制模型
P.S.
Global Attention 和 Local Attention 各有优劣,实际中 Global 的用的更多一点,因为:
① 当encoder不长时, local 计算量并没有减少 ② 位置向量 p_t 的预测并不非常准确,直接影响到Local Attention的准确率
soft / hard attention 作者的local和global attention思想实质上是从 soft 和 hard attention中得来,这部分下个博文再介绍
【课程理论|论文解读——神经网络翻译中的注意力机制 以及 global / local attention】
推荐阅读
- Python|Python之RFM建模分析
- 大数据|实用教程详解(模型部署,用DNN模块部署YOLOv5目标检测(附源代码))
- 人工智能|一文看懂CV中的注意力机制
- 数学建模|第二届长三角高校数学建模竞赛
- 2021深圳杯A题|常用的统计学指标及其含义
- 机器学习|目标检测网络-yolo
- 深度学习|毕设-卷积神经网络/深度学习/yolo
- 论文里SOTA性能的理解
- 深度学习|卷积神经网络CNN5