NMT优化--Ensemble Decoding
理论部分
来自于nmt-book 6.1
一种在机器学习中常见的技术是不止为你的问题建立一个系统,而是多个并且将他们合并,这种技术叫ensemble of systems。对神经网络来说,一种策略是使用不同的初始值或者在训练进程中停在不同的点。
为什么这会有作用呢,一种直觉是每个系统都会犯不同的错。当两个系统同意一种观点时,他们很可能都是正确的,而不是都错的。就像人们在选举时一起开会投票。
将集成方法应用到神经机器翻译中,我们必须解决两个子问题:
- 产生备用子模型
- 合并他们的输出
生成候选模型
当我们训练一个神经翻译模型时,我们迭代地训练数据直到某些停止条件满足。这通常是对应用在验证集上的损失函数(cost function)如交叉熵,或对在验证集上的翻译表现(如BLEU)缺少改进。
在训练时,我们可以在一个固定的间隔(比如每10000个batch)输出一次模型。当训练结束时,我们可以再回来查看模型在不同阶段的性能。然后我们选择4个最好表现(通常是翻译的BLEU指标)的4个模型。这种在训练进程中选择不同检查点的操作就叫做检查点集成( checkpoint ensembling)
Multi-run ensembling 要求在完全不同的训练进程中建立系统。正如我们前面提到的,它能通过使用不同的随机初始值来完成,这将导致不同的局部最佳点。我们也随机的打乱训练数据,所以我们使用随机来得到不同的训练结果。
Multi-run ensembling通常运行得到更好的结果,但它也会花费更多的算力。注意multi-run ensembling也能使用checkpoint ensembling建立。我们首先应用checkpoint ensembling到每次运行中,然后合并这些ensembling而不是合并每次训练的最终检查点。
合并系统输出
神经翻译模型允许多个系统的深度合并。回忆一下模型首先是首先在所有可能的输出词上做一个概率分布,然后得到其中一个词。这是我们合并不同训练模型的地方。每个模型预测了一个概率分布然后我们将它们的预测合并。这种合并通过简单的在它们的概率分布上平均。平均后的概率分布用来选择输出词。
如下图所示,使用不同的系统有一些好处,尽管在我们生成它们的方式中,它们有相似的质量,所以这不是典型的做法。
使用从右到左的解码重新排序
另一个关于集成想法的微调是:不在开始时建立几个有不同随机初始值的系统,我们像以前一样先建立一组系统,然后再建立第二组系统并将输出的句子顺序倒置。第二组系统就叫做从右到左的系统( right-to-left systems)。
上面描述的深度集成不再适用于从左到右和从右到左的系统的组合,因为它们以不同的顺序生成输出。因此,我们不得不求助于重新排序。这包括几个步骤:
- 使用一个从左到右的集成系统来对每个输入生成一个n-best翻译候选列表。
- 使用每个从左到右和从右到左的系统来给候选翻译打分。
- 合并每个句子在不同系统的分数(简单平均),选择每个输入句子的最好输出
使用从右到左的系统给一个给定的候选句子打分需要强制解码,一种对输入句子进行推理的特殊模式,但预测给定的输出句子。这种模式实际上更接近于训练常规推理(其中也给出了输出转换)。
NMT优化--Ensemble Decoding相关推荐
- 清华NLP组年度巨献:机器翻译30年最重要论文阅读清单(下)
近日,清华大学NLP组总结了最近30年来机器翻译领域最重要的论文和学术文献目录,并在Github上公开放出. 此列表首先给出了30年来机器翻译领域必读的10篇最重要的论文,接下来的内容分为统计机器翻译 ...
- 清华NLP机器翻译论文精华汇总
传送门:https://github.com/THUNLP-MT/MT-Reading-List Machine Translation Reading List This is a machine ...
- AAAI 2021 | 时间序列相关论文汇总
会议介绍 AAAI的英文全称是 The Association for the Advance of Artificial Intelligence,中文意思是美国人工智能协会. 美国人工智能协会(A ...
- 开源库OpenNMT-py使用记录
一.准备 官网:http://opennmt.net/ python+torch版Github:https://github.com/OpenNMT/OpenNMT-py python+torch版说 ...
- 2021年三大顶会时间序列论文代码整理
作者:杰少,炼丹笔记嘉宾 2021年最新时间序列预测论文&代码整理 AAAI 2021 Deep Switching Auto-Regressive Factorization: Applic ...
- 美团搜索中查询改写技术的探索与实践
猜你喜欢 0.[免费下载]2022年1月热门报告盘点1.腾讯QQ信息流推荐业务实践2.小红书推荐中台实践3.微信视频号的实时推荐技术架构分享4.预训练模型在华为信息流推荐系统中的探索和应用5.腾讯PC ...
- 阿里云发布黑科技:面对海量的文本翻译任务,阿里翻译团队是如何解决的
对国际化企业来说语言问题是亟待突破的重要关口.面对海量的文本翻译任务,昂贵低效的人工翻译显然不能满足需求,利用计算机自动进行文本翻译的机器翻译才是解决这个问题的关键.阿里翻译团队在机器翻译领域做了大量 ...
- 黑科技揭秘:面对海量的文本翻译任务,阿里翻译团队是如何解决的
对国际化企业来说语言问题是亟待突破的重要关口.面对海量的文本翻译任务,昂贵低效的人工翻译显然不能满足需求,利用计算机自动进行文本翻译的机器翻译才是解决这个问题的关键.阿里翻译团队在机器翻译领域做了大量 ...
- 机器翻译领域最重要的论文和学术文献目录清单(清华大学NLP组)
转载自:http://blog.sina.com.cn/s/blog_56eb62d30102y694.html 参考资料:http://ju.outofmemory.cn/entry/326011 ...
最新文章
- ASP.NET 发邮件方法
- java中比较字符串的大小用String的compareTo()
- 天啊!NBA球星将举办第一届科技峰会!
- HTML 网页页面切换的各种变换效果
- CoAP学习笔记——服务器端繁忙时的处理请求流程
- LNMP搭建论坛(php)
- linux 路由表设置 之 route 指令详解【转】
- Windows 11正式发布!网友的这波吐槽,太搞笑了。。。
- backbone js学习笔记之第二篇Model层
- C中取得数组的地址,赋值给数组结构的字段
- mycat mysql 主从_Mycat实现Mysql主从读写分离
- SEO之关键词选择原则
- 拓扑结构计算机网络结构,什么是计算机网络的拓扑结构
- html设置鼠标指针形状为食指,cursor 把鼠标指针的形状弄成一只伸出食指的手
- 如何使用纯CSS将页面转换为繁体字
- Android系统快速编译方式ninja
- TP6----------阿里云短信包验证码登录
- 电台app开发,发掘声音经济
- get方法改成post
- STM32F429外部SPI下载算法