斯坦福CS224n NLP课程【十】——神经机器翻译NMT和注意力模型

机器翻译

  • 传统衡量机器对语言理解的测试之一
  • 同时涉及到语言分析与理解
  • 主要在欧洲,亚洲也在兴起

机器翻译的需求

  • Google每天翻译1000亿单词
  • Facebook研发了自己的翻译系统,因为通用的机器翻译系统无法适应社交领域
  • eBay用机器翻译来促进跨境交易

什么神经机器翻译

构造一个大型神经网络,我们可以以一种端到端的方式对这个网络进行训练和优化实现这个过程的系统,也可以说是用一个大型神经网络建模整个翻译过程的系统。

架构 抽象的架构就是一个encoder一个decoder:

 NMT :青铜时代

80年代神经网络是个很边缘的领域,另外计算力也很有限。当时的NMT系统只是个玩具:词表四五十,固定的50个输入(二进制编码),固定的66个输出,一到三层隐藏层,150个单元…… 90年代出现了一种类似RNN的更复杂的框架:

 

 现在NMT模型

之前课上也提到过,一个RNN做encoder,另一个RNN做decoder:

 

实际使用的系统更加复杂:最后一个隐藏层的状态Y是整个原文的总结。常见的encoder实际上加了一些extension,比如GRU或LSTM。

 可以将这些encoder decoder 看做以原文为条件的条件语言模型 与其他RNN相比这里使用的是条件概率模型

 Decoder:递归语言模型 常见的做法是把encoder的最后一层(最后一个时刻)作为decoder的第一层,这样就必须用LSTM保持中期记忆。另一种做法是将encoder最后一层喂给decoder的每一层,这样就不会有记忆丢失的后顾之忧了。

 MT的发展

基于短语的MT就是2016-11之前的Google翻译所采用的系统,其发展是缓慢的。神经网络兴起之后,出现了一种基于Syntax-based SMT(估计是换换词向量),发展也不快。但NMT的发展是最迅猛的:

 NMT的四大优势:

  • 1. end-to-end training 为优化同一个损失函数调整所有参数
  • 2. distributed representation 更好地利用词语、短语之间的相似性
  • 3.Better exploitation of context 利用更多上下文——原文和部分译文的上下文
  • 4.生成的文本更流畅 和上述的前三点有关
  • NMT还避免了传统MT中的黑盒子(reorder之类)模型
  • 但是也有缺点:
  • 无法显式利用语义或语法结构(依存句法分析完全用不上了,有些工作正在展开)
  • 无法处理好高阶文本概念,如篇章结构 连接子句 回指等等

统计/神经网络机器翻译

展示出一个中译英的ppt 其中,13年有所进步,14-16年又退步了并且停滞了3年。直到2017年才有质的飞跃。

 NMT主要是由工业界促进

  • 2016-02 微软在Android和iOS上发布了离线NMT系统,这对境外旅游人士特别有帮助。
  • 2016-08 Systran发布了NMT模型
  • 2016-09 Google发布了NMT系统,大肆宣传了一番,并且overclaim比得上人工翻译质量。

attention

朴素序列到序列 vanilla sequence to sequence encoder-decoder模型的问题 :

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

attention机制:解决方法是将encoder的历史状态视作随机读取内存,这样不仅增加了源语言的维度,而且增加了记忆的持续时间(LSTM只是短时记忆)。建立了源与翻译输出的一种隐式的对应关系

 这种机制也与人类译员的工作流程类似:不是先把长长的一个句子暗记于心再开始闭着眼睛翻译,而是草草扫一眼全文,然后一边查看原文一边翻译。这种“一边……一边……”其实类似于语料对齐的过程,即找出哪部分原文对应哪部分译文。而NMT中的attention是隐式地做对齐的。

词语对齐

传统的SMT中需要显式地做双语对齐 但是在attention model在翻译过程中隐式地对齐

 同时学习翻译和对齐

一个非常棒的可视化,显示attention model成功地对齐了法语和英语,其中一小段语序的调整也反应出来了:

 

 attention mechanism -打分

在图示问号时刻,究竟应该关注哪些时刻的encoder状态呢?关注的强度是多少呢? 有一种打分机制,以前一刻的decoder状态和某个encoder状态为参数,输出得分:

 

 

 

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

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

而分数的获得,是通过attention function进行的。attention function有多种选择,其中流行的是中间这种。W_a给了两个向量更复杂的interaction交互 但是最后一种方法没有这样的交互

 有一些观点认为模型不应该注意所有的事情,可能对长句子来讲比较有潜力:

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

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

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

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

更多attention 覆盖范围

在图片标题生成研究中,模型通过对图片不同区域的attention生成了不同的词语:如何保证不错过任何重要的区域呢?

 double attention:

一种思路是同时注意原文和译文:

 用之前模型中的语言学思想拓展attention

可以利用IBM2等模型中的position或fertility(丰富程度),因为一般而言一个词最多翻译为两三个词,如果生成了五六个词,那么模型可能在重复生成。

 Decoder

exhaustive search 穷举搜索 在decoding的时候,朴素想法是生成所有的翻译,用语言模型打分,然后挑最大的。但译文数量是词表大小的指数函数,无法实现。

 Ancestral Sampling 祖先采样

 Greedy search 贪婪搜索 贪婪地选取当前最可能的那个单词

 

 

beam search柱搜索 思想:首先生成T时刻的值 设beam大小的5 接下来生成T+1的词 对于刚才生成的长度为T的序列 T+1长度的序列中哪5个是最好的哪?我们将他们全部生成 此时有25个候选 如果我们重复这个过程 我们又需要处理指数个候选 实际上先在25个中选出最好的5个 之后便在这个5个基础上分别生成T+1时刻的5个概率分布 保持候选项为常数K并循环下去

 

效果对比 采样要采50轮才得到比贪心搜索稍好的结果,但很小的柱搜索轻松超越了它们。另外,基于短语的MT常用的柱搜索大小是100到150,可见NMT的优势。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值