专栏首页AI研习社Google Brain:NMT训练成本太高?用大规模神经机器翻译架构分析给出解决方案

Google Brain:NMT训练成本太高?用大规模神经机器翻译架构分析给出解决方案

编者按:十年前,Google Translate发布。当时,这项服务背后的核心算法还是基于短语的机器翻译。

而十年后的今天,更先进的神经网络机器翻译( Neural Machine Translation)技术已经使得翻译系统的速度和准确度有了大幅提升。Google发现,在多个样本的翻译中,神经网络机器翻译系统将误差降低了 55%-85%甚至以上。

虽然成就喜人,但这对研究人员来说却远远不够。在他们看来,NMT领域还有太多可提升的空间。

近日,来自Google Brain的四位研究人员Denny Britz, Anna Goldie , Thang Luong, Quoc Le就由NMT训练成本太高这一问题出发,对NMT 架构的超参数进行了大规模分析,并且对建立和扩展NMT构架提出了一些新颖观点和实用建议。研究人员表示,学界还未有过类似的研究。

同时,该论文也已提交了今年的ACL大会(Association for Computational Linguistics)。

以下是为 AI 研习社编译的部分论文内容。

摘要

在过去几年里,基于神经机器翻译(NMT)技术的产品系统被越来越多部署在终端客户端中,NMT本身也因此获得了巨大进步。但目前,NMT构架还存在着一个很大的缺点,即训练它们的成本太高,尤其是GPU的收敛时间,有时会达到几天到数周不等。这就使得穷举超参数搜索(exhaustive hyperparameter search)的成本和其他常见神经网络结构一样,让人望而却步。

为此,我们首次对 NMT 架构的超参数进行了大规模分析。我们报告了数百次实验测试的经验结果和方差数(variance numbers),这相当于在标准WMT英译德任务上运行超过250,000 GPU小时数的效果。从实验结果中,我们提出了有关建立和扩展NMT构架的创新观点,也提供了一些实用建议。

作为此次研究成果的一部分,我们也发布了一个开源的NMT框架,让研究员们能轻松使用该新技术,并得出最新试验结果。

研究结论

在研究过程中,我们通过梳理关键因素,以获得最新的实验结果。

有些研究人员可能并不认为“集束搜索调节(beam search tuning)和大多数架构变化同等重要”,以及“使用了当前优化技术的深度模型并不总是优于浅度模型”等说法,但通过实验,我们为这类说法给出了实验证据。

以下是实验收获总结:

  • 使用 2048 维的大型嵌入(embeddings)有最优实验结果,不过优势不大;仅有 128 维的小型嵌入似乎也有足够的能力去捕捉绝大多数必要的语义信息。
  • LSTM Cell 始终比 GRU Cell表现得好。
  • 2-4 层的双向编码器性能最佳。更深层的编码器在训练中不如2-4层的稳定,这一点表现得很明显。不过,如果能接受高质量得优化,更深层的编码器也很有潜力。
  • 深度 4 层解码器略优于较浅层的解码器。残差连接在训练 8 层的解码器时不可或缺,而且,密集的残差连接能使鲁棒性有额外增加。
  • 把额外的关注度参数化(Parameterized additive attention),会产生总体最优结果。
  • 有一个调适良好、具有长度罚分(length penalty)的集束搜索(beam search)很关键。5-10集束宽度搭配1.0长度罚分的工作效果好像不错。

我们还强调了几个重要的研究课题,包括:

  • 高效利用嵌入参数 (4.1)(4.1代表论文章节,下同)
  • 注意机制(attention mechanisms)作为加权跳过连接(weighted skip connections)(4.5),而不是记忆单元的角色作用,
  • 深度循环网络需要更好的优化方法(4.3),
  • 超参数变化(hyperparameter variations)还需要更具稳健性的集束搜索(4.6)。

此外,我们还专门发布了一个开源NMT框架,让大家能对该框架的创新点一探究竟,并进行可重复试验,同时我们还发布了所有实验配置的文件。

论文地址:https://arxiv.org/abs/1703.03906

开源地址:https://github.com/google/seq2seq/

本文分享自微信公众号 - AI研习社(okweiwu),作者:夏睿

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度|Google神经网络机器翻译上线历程回顾

    唯物按:作者陈村,剑桥大学自然语言处理(NLP)组, 现为机器学习语义分析工程师。 ? Google Translate 作为久负盛名的机器翻译产品,推出 10...

    AI研习社
  • 学不学吴恩达 deeplearning.ai 课程,看完这篇你就知道了

    AI 研习社按:本文的作者是 Thomas Treml,是一名具有社会学背景的数据科学自由职业者。他在 Medium 上分享了自己学习 deeplearning...

    AI研习社
  • 博客 | NLP应该如何学、如何教?斯坦福大学大牛Dan Jurafsky教授专访

    雷锋网 AI 科技评论按:自然语言处理是一个高度跨学科的领域,包含了语言学、计算机科学、统计学等等许多传统学科的内容。在课堂中,自然语言处理的教师者们要根据课程...

    AI研习社
  • 开发 | NMT训练成本太高?Google Brain用大规模神经机器翻译架构分析给出解决方案

    AI科技评论编者按:十年前,Google Translate发布。当时,这项服务背后的核心算法还是基于短语的机器翻译。 而十年后的今天,更先进的神经网络机器翻译...

    AI科技评论
  • 美团、小米和拼多多强势崛起!移动互联网进入MMP时代

    MMP是美团、小米和拼多多的简称,是移动互联网时代崛起的三家公司。在今年上半年,小米和拼多多相继上市。截止到目前,拼多多的市值约为220亿美金,相当于1508亿...

    光荣与梦想1987
  • ES6-简介

    envoke
  • Clojure 学习入门(13)—— binding

    Clojure里面是不支持变量的。Binding跟变量有点像,但是在被赋值之前是不允许改的,包括:全局binding, 线程本地(thread local)bi...

    阳光岛主
  • 笔记36 | android通讯之实现一个Messenger通讯例子

    项勇
  • ES6之module实现

    我们一般用script标签加载js,本来脚本是同步加载,用defer和async属性可以一步加载,两者的区别是,defer是渲染完执行,也就是DOM结构完全生成...

    wade
  • java反射技术的案例之泛型擦除

    正确理解泛型概念的首要前提是理解类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛...

    itlemon

扫码关注云+社区

领取腾讯云代金券