机器翻译注意力机制及其PyTorch实现

news/2025/1/16 1:00:41/

前面阐述注意力理论知识,后面简单描述PyTorch利用注意力实现机器翻译

Effective Approaches to Attention-based Neural Machine Translation

简介

Attention-based-NMTuploading.4e448015.gif转存失败重新上传取消Attention-based-NMTuploading.4e448015.gif转存失败重新上传取消Attention-based-NMTuploading.4e448015.gif转存失败重新上传取消

Attention介绍

在翻译的时候,选择性的选择一些重要信息。详情看这篇文章 。

本着简单和有效的原则,本论文提出了两种注意力机制

Global

每次翻译时,都选择关注所有的单词。和Bahdanau的方式 有点相似,但是更简单些。简单原理介绍。

Local

每次翻译时,只选择关注一部分的单词。介于soft和hard注意力之间。(soft和hard见别的论文)。

优点有下面几个

  • 比Global和Soft更好计算
  • 局部注意力 随处可见、可微,更好实现和训练。

应用范围

在训练神经网络的时候,注意力机制应用十分广泛。让模型在不同的形式之间,学习对齐等等。有下面一些领域:

  • 机器翻译
  • 语音识别
  • 图片描述
  • between image objects and agent actions in the dynamic control problem (不懂,以后再说吧)

神经机器翻译

思想

输入句子x=(x1,x2,⋯,xn)x=(x1,x2,⋯,xn) ,输出目标句子y=(y1,y2,⋯,ym)y=(y1,y2,⋯,ym) 。

神经机器翻译(Neural machine translation, NMT),利用神经网络,直接对p(y∣x)p(y∣x) 进行建模。一般由Encoder和Decoder构成。Encoder-Decoder介绍文章链接 。

Encoder把输入句子xx 编码成一个语义向量ss (c表示也可以),然后由Decoder 一个一个产生目标单词 yiyilogp(y∣x)=m∑j=1logp(yj∣y<j,s)=m∑j=1logp(yj∣y1,⋯,yj−1,s)log⁡p(y∣x)=∑j=1mlog⁡p(yj∣y<j,s)=∑j=1mlog⁡p(yj∣y1,⋯,yj−1,s)但是怎么选择Encoder和Decoder(RNN, CNN, GRU, LSTM),怎么去生成语义ss却有很多选择。

概率计算

结合Decoder上一时刻的隐状态hj−1hj−1和encoder给的语义向量ss,通过函数ff ,就可以计算出当前的隐状态hjhj :hj=f(hj−1,s)hj=f(hj−1,s)通过函数gg对当前隐状态hjhj进行转换,再softmax,就可以得到翻译的目标单词yiyi了(选概率最大的那个)。

gg一般是线性变换,维数变化是[1,h]→[1,vocab_size][1,h]→[1,vocab_size]。p(yj∣y<j,s)=softmaxg(hj)p(yj∣y<j,s)=softmaxg(hj)语义向量ss​ 会贯穿整个翻译的过程,每一步翻译都会使用到语义向量的内容,这就是注意力机制

本论文的模型

本论文采用stack LSTM的构建NMT系统。如下所示:

训练目标是Jt=∑(x,y)−logp(y∣x)Jt=∑(x,y)−log⁡p(y∣x)

注意力模型

注意力模型广义上分为globallocal。Global的attention来自于整个序列,而local的只来自于序列的一部分。

解码总体流程

Decoder时,在时刻tt,要翻译出单词ytyt ,如下步骤:

  • 最顶层LSTM的隐状态 htht
  • 计算带有原句子信息语义向量ctct。Global和Local的区别在于ctct的计算方式不同
  • 串联ht,ctht,ct,计算得到带有注意力的隐状态 ^ht=tanh(Wc[ct;ht])h^t=tanh⁡(Wc[ct;ht])
  • 通过注意力隐状态得到预测概率 p(yt∣y<t,x)=softmax(Ws^ht)p(yt∣y<t,x)=softmax(Wsh^t)

Global Attention

总体思路

在计算ctct 的时候,会考虑整个encoder的隐状态。Decoder当前隐状态htht, Encoder时刻s的隐状态¯hsh¯s。

对齐向量αtαt代表时刻tt 输入序列中的单词对当前单词ytyt 的对齐概率,长度是TxTx, 随着输入句子的长度而改变 。xsxs与ytyt 的对齐概率如下:αt(s)=align(ht,¯hs)=score(ht,¯hs)∑Txi=1score(ht,¯hi),


http://www.ppmy.cn/news/607434.html

相关文章

大数据必学Java基础(三十六):深入了解关键词static

文章目录 深入了解关键词static 一、static修饰属性 二、static修饰方法 深入了解关键词static static可以修饰:属性,方法,代码块,内部类。

[JS][编程题]括号匹配

括号匹配 题目来源&#xff1a;牛客网 题目链接&#xff1a;括号匹配 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 256M&#xff0c;其他语言512M 题目描述 给定一个只包含括号的字符串&#xff0c;判断字符串是否有效。其中&#xff0c;括…

芯片封测技术

芯片封测技术 长电科技是全球领先的集成电路制造和技术服务提供商&#xff0c;提供全方位的芯片成品制造一站式服务&#xff0c;包括集成电路的系统集成、设计仿真、技术开发、产品认证、晶圆中测、晶圆级中道封装测试、系统级封装测试、芯片成品测试并可向世界各地的半导体客户…

Unity的小工具

最近项目工期紧&#xff0c;所以更新少了&#xff0c;不过我遇到一些问题&#xff0c;当我的UI/序列帧过多的时候&#xff0c;我需要去选中UI转换成Sprite&#xff0c;而且用shift选中的时候&#xff0c;文件夹中上百个文件&#xff0c;中间混进一个其他格式的文件我还得一个一…

芯片IP,SOC,FPGA智能卡

芯片IP,SOC,FPGA智能卡 华夏芯&#xff08;北京&#xff09;通用处理器技术有限公司&#xff08;以下简称“华夏芯”&#xff09;是创新的异构处理器 IP 提供商和芯片解决方案提供商&#xff0c;集团总部在北京&#xff0c;并分别在上海、纽约等地设有研发和销售中心。 华夏芯拥…

客快物流大数据项目(七十):Impala入门介绍

文章目录 Impala入门介绍 一、impala基本介绍 二、Impala与hive的关系

BP 神经网络

基于BP神经网络与遗传算法实现盾构砂浆性能优化方法技术 技术编号&#xff1a;14113655阅读&#xff1a;494留言&#xff1a;0更新日期&#xff1a;2016-12-07 11:00本发明专利技术公开了一种基于BP神经网络与遗传算法实现盾构砂浆性能优化方法&#xff0c;包括以下步骤&#x…