目录

神经机器翻译NMT

神经机器翻译的架构

神经机器翻译的青铜时代

现代神经机器翻译的序列模型

RNN Encoder

Decoder:循环语言模型

机器翻译的发展

神经机器翻译的四大优势

统计/神经机器翻译

神经机器翻译主要由工业界促进

Attention:朴素RNN&长序列

Attention机制

词语对齐

同时学习翻译和对齐

Scoring


  • 神经机器翻译NMT

神经机器翻译是用一个大型神经网络建模整个翻译过程的系统。

神经机器翻译的架构

神经机器翻译的青铜时代

80年代神经网络是个很边缘的领域,另外计算力也很有限。当时的NMT系统很简陋:词表四五十,固定的50个输入(二进制编码),固定的66个输出,一到三层隐藏层,150个单元。

90年代出现了一种类似RNN的更复杂的框架:

现代神经机器翻译的序列模型

一个RNN做encoder,另一个RNN做decoder。

实际系统中使用深层RNN:

这里的RNN可视作条件循环语言模型:

RNN Encoder

最后一个隐藏层的状态Y是整个原文的总结。

常见的encoder实际上加了一些扩展,比如GRU或LSTM。

Decoder:循环语言模型

常见的做法是把encoder的最后一层(最后一个时刻)作为decoder的第一层,这样就必须用LSTM保持中期记忆。

另一种做法是将encoder最后一层喂给decoder的每一层,这样就不会有记忆丢失的后顾之忧了。

机器翻译的发展

神经机器翻译的四大优势

  1. End-to-end training
    为优化同一个损失函数调整所有参数

  2. Distributed representation
    更好地利用词语、短语之间的相似性

  3. Better exploitation of context
    利用更多上下文——原文和部分译文的上下文

  4. More fluent text generation
    深度学习文本生成质量更好

统计/神经机器翻译

不同年份google翻译的效果测试:

神经机器翻译主要由工业界促进

2016-02 微软在Android和iOS上发布了离线NMT系统。

2016-08 Systran发布了NMT模型。

2016-09 Google发布了NMT系统,声称比得上人工翻译质量。

  • Attention:朴素RNN&长序列

朴素encoder-decoder的问题是,只能用固定维度的最后一刻的encoder隐藏层来表示源语言Y,必须将此状态一直传递下去,这是个很麻烦的事情。事实上,早期的NMT在稍长一点的句子上效果就骤降。

Attention机制

解决方法是将encoder的历史状态视作随机读取内存,这样不仅增加了源语言的维度,而且增加了记忆的持续时间(LSTM只是短时记忆)。

词语对齐

传统的SMT中需要显式地做双语对齐:

而attention model是在翻译的过程中隐式地对齐。

同时学习翻译和对齐

attention model成功地对齐了法语和英语,其中一小段语序的调整也反应出来了:

Scoring

在图示问号时刻,究竟应该关注哪些时刻的encoder状态呢?关注的强度是多少呢?

有一种打分机制,以前一刻的decoder状态和某个encoder状态为参数,输出得分:

然后softmax归一化分值转化为概率,这个概率称为对齐权值(alignment weights):

这个概率也代表模型应该将多少比例的注意力放在一个历史状态上:

加权和得到一个context vector,作为条件之一生成decoder的当前状态:

而分数的获得,是通过attention function进行的。attention function有多种选择,其中流行的是中间这种。Wa给了两个向量更复杂的interaction,而最后一种根本没有interaction。

有一些观点认为模型不应该注意所有的事情:

但这些观点并没有取得更好的成绩:

句子特别短的时候,模型的得分都不高。这纯粹是因为语料中的短句子本来就语义隐晦,比如某个专有名词作为标题。而有attention的模型在句子很长的时候,效果依然没有下降,说明了attention的重要性。

LSTM非常擅长生成自然的文本,但有时候译文与原文相去甚远,没有把注意力放在原文上。比如下面红色的名字不知道从哪里冒出来的:

加了attention好了很多,还是比不上人类,有时候会把同一个意思的词重复两遍:

CS224N笔记——神经机器翻译与Attention机制相关推荐

  1. 【笔记3-7】CS224N课程笔记 - 神经网络机器翻译seq2seq注意力机制

    CS224N(七)Neural Machine Translation, Seq2seq and Attention seq2seq神经网络机器翻译 历史方法 seq2seq基础 seq2seq - ...

  2. 神经机器翻译的前世今生--转自散文网

    本文转自散文网,原文链接如下:http://sanwen.net/a/mjyslpo.html 神经机器翻译 2016-11-13 03:17雅译公司 推荐100次 1.     引言 神经机器翻译( ...

  3. [转]神经机器翻译(NMT)相关资料整理

    1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统取得了很大的进展.最近几年相关的论文,开源系统也是层出不穷.本文主要梳理了神经机器翻译入门.进阶所需要阅读的资料和论文,并提供了相关链 ...

  4. 神经机器翻译(NMT)详细资料整理

    1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统取得了很大的进展.最近几年相关的论文,开源系统也是层出不穷.本文主要梳理了神经机器翻译入门.进阶所需要阅读的资料和论文,并提供了相关链 ...

  5. 神经机器翻译系统资料

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统 ...

  6. 深度学习与自然语言处理教程(6) - 神经机器翻译、seq2seq与注意力机制(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

  7. 【CS224n】(lecture7)机器翻译NMT,seq2seq和attention

    学习总结 (1)NMT的优缺点: 和SMT相比: 优点: 更好的性能,翻译更流畅,能更好利用上下文,利用短语相似性. 通过"端到端"形式网络优化 不用特征工程,节约人力,对所有的语 ...

  8. 【TensorFlow实战笔记】对于TED(en-zh)数据集进行Seq2Seq模型实战,以及对应的Attention机制(tf保存模型读取模型)

    个人公众号 AI蜗牛车 作者是南京985AI硕士,CSDN博客专家,研究方向主要是时空序列预测和时间序列数据挖掘,获国家奖学金,校十佳大学生,省优秀毕业生,阿里天池时空序列比赛rank3.公众号致力于 ...

  9. 可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)

    可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)   序列到序列模型是深度学习模型,在机器翻译.文本摘要和图像字幕等任务中取得了很大的成功.谷歌翻译在2016年底开始在生产中使用这样的模型 ...

  10. 《Effective Approaches to Attention-based Neural Machine Translation》—— 基于注意力机制的有效神经机器翻译方法

    目录 <Effective Approaches to Attention-based Neural Machine Translation> 一.论文结构总览 二.论文背景知识 2.1 ...

最新文章

  1. 在Workload Automation中实现suspend分析
  2. 数据库和区块链的异同
  3. java判断request请求是手机还是pc终端
  4. 多域型SSL证书和通配型证书安装指南- iis 6.0 (windows 2003)
  5. php工场模式讲解,PHP设计模式之工厂模式详解
  6. 踩坑日记(二):记一次线上业务—Redis 的缓存雪崩
  7. 【基础数据库】经济行业分类
  8. Snagit 2020 Windows和macOS苹果版汉化版中文版汉化补丁Snagit中文网Snagit中文官网camsnag.com/snagit
  9. 【转载】你必须知道的10种国产编程语言
  10. 14_美年_图形报表,POI报表_运营数据统计_运营数据统计报表导出
  11. 大数据概论 (理论基础)
  12. 浙大MPA常规批复试上岸经验分享
  13. Android实现身份证识别
  14. MySQL-8.0 RESTART命令远程重启mysqld
  15. 2016年linux认证考试,2016年Linux认证考试复习要点辅导
  16. 石墨烯的加入,新量子装置使人类离第二次量子革命真正又近一步
  17. 你还在这样做:浏览器“记住用户名密码”?
  18. 科大讯飞杯”第18届上海大学程序设计联赛(H dfs暴力) L、动物森友会 (网络流题 延伸题 E、Sunscreen)
  19. Directory常用方法,不积硅步无以至千里
  20. python scipy integrate_使用scipy.integrate.odeint()计算衰减

热门文章

  1. 【Prison Break】第一天(3.27)
  2. C#获取程序运行时间
  3. 【Ubuntu操作系统】命令行解析函数getopt/getopt_long
  4. 【数码管识别】感兴趣区域提取和缩放的顺序问题
  5. 【LeetCode】【字符串】题号:*344. 反转字符串
  6. Pytorch——计算机视觉工具包:torchvision
  7. JS学习总结(2)——变量
  8. 使用XUtils进行文件的断点下载
  9. android 控件获取rect,Android自定义View圆形进度条控件(三)
  10. NER中的词汇增强方法(LatticeLSTM、CGN、FLAT、Simple-Lexicon)