专栏首页机器之心视频 | NIPS 2017线上分享第二期:利用价值网络改进神经机器翻译

视频 | NIPS 2017线上分享第二期:利用价值网络改进神经机器翻译

在 NIPS 2017 大会正式开始前,机器之心将选出数篇优质论文,邀请论文作者来做线上分享,聊聊理论、技术和研究方法。上周,我们进行了线上分享的第二期,邀请到了中国科大—微软亚洲研究院联合培养博士生夏应策讲解了一篇有关神经机器翻译的 NIPS 论文。本文将对该论文内容进行简要介绍。

视频内容

线上分享视频回顾

神经机器翻译(Neural Machine Translation,NMT)基于深度神经网络,为机器翻译提供了端到端的解决方案,在研究社区中受到了越来越多的关注,且近几年已被逐渐应用到了产业中。NMT 使用基于 RNN 的编码器-解码器框架对整个翻译过程建模。在训练过程中,它会最大化目标语句对给定源语句的似然度。在测试的时候,给定一个源语句 x,它会寻找目标语言中的一个语句 y*,以最大化条件概率 P(y|x)。由于目标语句的可能数目是指数量级的,找到最优的 y*是 NP-hard 的。因此通常会使用束搜索(beam search)以找到合理的 y。

束搜索是一种启发式搜索算法,会以从左向右的形式保留得分最高的部分序列扩展。特别是,它保存了一群候选的部分序列。在在每个时间步上,该算法将都会通过添加新词的方法扩展每一个候选部分语句,然后保留由 NMT 模型评分最高的新候选语句。当达到最大解码深度或者所有的语句都完全生成的时候(即所有的语句都包含 EOS 符号后缀的时候),算法就会终止。

虽然 NMT 结合束搜索是很成功的,但也存在几个明显的问题,已经被研究过的包括曝光偏差(exposure bias)、损失评估失配(loss-evaluation mismatch)和标签偏差(label bias)。然而我们观察到,其中仍然有一个很重要的问题被广泛忽视,即短视偏差(myopic bias)。束搜索倾向于更关注短期奖励。例如,在第 t 次迭代中,对于候选语句 y_1,...,y_t-1(记为 y_<t),和两个词 w 和 w',当把 w 添加到 y_<t 的时候记为 y_<t+w。如果

则新的候选语句 y_<t+w 相比 y_<t+w』 更可能被保留,即使 w'是在第 t 次迭代中的真实翻译,或在未来的解码中能获得更高的分数。这种源于短视的搜索错误有时候在模型很好的情况下也会提供糟糕的翻译。

为了解决短视偏差,对每一个词 w 和每一个候选语句 y_<t,我们设计了一个预测模型以在把 w 添加到 y_<t 的时候,评估长期奖励。这个过程会跟随当前使用的 NMT 模型,直到解码完成。然后我们可以在每个解码步中应用这个模型输出的预测分数帮助寻找更好的 w,以提升长句翻译性能。这种预测长期奖励的模型,恰好和强化学习中的价值函数的概念相同。

在本研究中我们开发了一个基于神经网络的预测模型,即为 NMT 设计的价值网络。该价值网络将源语句与任何部分序列作为输入,并输出预测值以估计 NMT 模型生成这一部分序列的期望总回报(例如 BLEU 分值)。在所有解码的步骤中,我们不仅基于该部分序列的条件概率选择最优的候选译文,同时还基于价值网络估计翻译效果的长期回报。

该项工作的主要贡献如下。首先我们开发了一个考虑长期回报的解码方案,它会为机器翻译逐一生成译文,这在 NMT 中是比较新的方案。在每个步骤中,新的解码方案不仅考虑源语句的条件概率,同时还依赖于未来的预测回报。我们相信考虑这两个部分将导致更好的翻译效果。

其次,我们设计了一种新颖的价值网络。在 NMT 编码器-解码器层的顶部,我们为价值网络开发了另外两个模块,即一个语义匹配模块和一个上下文覆盖(context-coverage)模块。语义匹配模块旨在估计源语句与目标语句之间的相似度,该模块直接有助于翻译质量的提升。不过我们经常观察到,随着注意力机制使用更多的上下文信息,模型能生成更好的翻译 [14, 15]。因此我们构建了一个上下文覆盖模块来度量编码器-解码器层中的上下文覆盖范围。通过这两个模块的输出,模型最终的预测将由全连接层完成。

图 1:价值网络的架构

算法 1:价值网络训练

算法 2:NMT 中用价值网络的束搜索

图 2:在三种任务的测试集上的翻译结果

表 1 :整体表现

对价值网络的分析

我们进一步观察了学习到的价值网络,并做了一些分析从而有更好的理解。

首先,因为我们在解码过程中使用一种附加组件,它会影响到翻译过程的效率。也因为设计的价值网络架构类似于基础的 NMT 模型,所以其计算复杂性也类似于 NMT 模型,且两个流程可并行运行。

其次,可以看到 NMT 的准确率在特定任务上有时对束搜索的大小极为敏感。我们在英语到德语的翻译上观察到了这一现象。Zhaopeng Tu 等人的论文《Neural Machine Translation with Reconstruction》认为,这是因为 NMT 的训练喜欢短小但不合适的翻译候选内容。然而,我们证明,通过使用价值网络,我们可以极大地避免这一缺陷。我们用不同的束大小测试了该算法的准确率,如图 3 所示。可以看到,NMT-VNN 要比没有价值网络的原始 NMT 更稳定:在不同大小的束搜索下,它的准确率只有略微不同,但 NMT-BS 在束大小变大的情况下准确率下降了超过 0.5 个点。

图 3:(a)英语到德语翻译任务关于不同束搜索的 BLEU 分值。(b)英语到德语翻译任务关于不同超参数 α 的 BLEU 分值。

第三,在英语到德语的解码过程中,我们测试了不同超参数α下的 NMT-VNN 的性能。从该图我们可以看出当α处于 0.7 到 0.95 时,性能是比较稳定的,而采用更小的α性能会有一些降低。这表明我们的算法对于超参数来说是鲁棒的。

论文:Decoding with Value Networks for Neural Machine Translation

论文链接:https://papers.nips.cc/paper/6622-decoding-with-value-networks-for-neural-machine-translation.pdf

摘要:神经机器翻译(NMT)近几年正变得流行起来。在解码的时候,束搜索(beam search)能使得搜索空间缩小和计算复杂度降低,因而被广泛采用。然而,由于其在解码时只向前计算一步,所以只能在每个时间步搜索局部最优,而通常不能输出全局最优的目标语句。受到 AlphaGo 的成功和方法论的启发,在这篇论文中,我们提出了一种新方法,利用预测网络提升束搜索准确率,即在第 t 步选取源语句 x、当前可用的解码输出 y_1,...,y_{t-1} 和一个候选词 w 作为输入,并预测部分目标语句(假如它由 NMT 模型完成)的长期价值(例如,BLEU 分值)。根据强化学习的实践经验,我们将这个预测网络称为价值网络。具体来说,我们提出了价值网络的循环结构,并使用双语数据训练其参数。在测试过程中,当需要解码词 w 的时候,需要同时考虑由 NMT 模型给定的条件概率和由价值网络预测的长期价值。实验证明,这种方法可以显著提高多种翻译任务的准确率。

本文分享自微信公众号 - 机器之心(almosthuman2014)

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

原始发表时间:2017-11-22

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学界 | 中科大与微软提出Adversarial-NMT:将生成对抗网络用于神经机器翻译

    选自arxiv 作者:Lijun Wu, Yingce Xia 等 机器之心编译 参与:吴攀 生成对抗网络(GAN)与神经机器翻译(NMT)是当前人工智能研究的...

    机器之心
  • 《Nature》子刊:不仅是语言,机器翻译还能把脑波「翻译」成文字

    论文链接:https://www.nature.com/articles/s41593-020-0608-8

    机器之心
  • 前沿 | 首次大规模神经机器翻译架构分析结果出炉,LSTM 优于GRU

    选自arxiv 作者:Denny Britz等 机器之心编译 参与:微胖、蒋思源、吴攀 这样的实验只有谷歌级别的公司才能处理的了。这篇文章对大型 NMT 模型训...

    机器之心
  • 【MATLAB 从零到进阶】day4 MATLAB程序设计

    MATLAB作为一种程序设计语言,它提供了选择语句结构和循环语句结构,其中选择语句结构又包括:if/elseif条件转移语句结构,switch开关语句结构,tr...

    统计学家
  • JavaScript基础-第2章

    变量名以字母或下划线("_")开头 变量可以包含数字、从 A 至 Z 的大小写字母 JavaScript 区分大小写

    达达前端
  • python 函数参数的传递(参数带星号的说明)

    python中函数参数的传递是通过赋值来传递的。函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个...

    hbbliyong
  • 数据结构与算法 -2 :罗马数字与整数的相互转换

    例如,罗马数字2写做II,即为两个并列的1。12写做 XII,即为 X + II 。27 写做XXVII,即为XX+V+II。

    石璞东
  • Python高级进阶#012 pyqt5 QLineEdit文本事件应用

    1.程序中的三原色,其实就是现实生活中的美术三原色,程序中我们利用qcolor类来实现。

    刘金玉编程
  • 径向基神经网络

    1985年,Powell提出了多变量插值的径向基函数(Radical Basis Function,RBF)方法。1988年,Moody和Darken提出了一种...

    瓜大三哥
  • 用户画像

    开发画像后的标签数据,如果只是“躺在”数据仓库中,并不能发挥更大的业务价值。只有将画像数据产品化后才能更便于业务方使用。在本文中,Web端展示的数据都读取自My...

    朱小五

扫码关注云+社区

领取腾讯云代金券