微信扫一扫
分享到朋友圈

学界 | 谷歌的机器翻译模型 Transformer,现在可以用来做任何事了

作者:机器之心 来源:机器之心 公众号
分享到:

08-16

选自GoogleAI

作者:Mostafa Dehghani 等 

机器之心编译

机器之心编辑部


去年,谷歌发布了机器学习模型 Transformer,该模型在机器翻译及其他语言理解任务上的表现远远超越了以往算法。今天,谷歌发布该模型最新版本——Universal Transformer,弥补了在大规模语言理解任务上具有竞争力的实际序列模型与计算通用模型之间的差距,其 BLEU 值比去年的 Transformer 提高了 0.9。在多项有难度的语言理解任务上,Universal Transformer 的泛化效果明显更好,且它在 bAbI 语言推理任务和很有挑战性的 LAMBADA 语言建模任务上达到了新的当前最优性能。


去年,谷歌发布了一种新的机器学习模型 Transformer(参见:),该模型在机器翻译及其他语言理解任务上的表现远远超越了现有算法。在 Transformer 之前,多数基于神经网络的机器翻译方法依赖于循环神经网络(RNN),后者利用循环(即每一步的输出馈入下一步)进行顺序操作(例如,逐词地翻译句子)。尽管 RNN 在建模序列方面非常强大,但其序列性意味着该网络在训练时非常缓慢,因为长句需要的训练步骤更多,其循环结构也加大了训练难度。


与基于 RNN 的方法相比,Transformer 不需要循环,而是并行处理序列中的所有单词或符号,同时利用自注意力机制将上下文与较远的单词结合起来。通过并行处理所有单词,并让每个单词在多个处理步骤中注意到句子中的其他单词,Transformer 的训练速度比 RNN 快很多,而且其翻译结果也比 RNN 好得多。然而,在更小、更加结构化的语言理解任务或简单的算法任务中(如拷贝一个字符串(如将输入「abc」转换为「abcabc」)),Transformer 则表现欠佳。相比之下,在这些任务中表现良好的模型(如神经 GPU 和神经图灵机)在大型语言理解任务(如翻译)中表现不好。


谷歌研究人员在《Universal Transformers》一文中使用一种新型高效的时间并行循环(parallel-in-time recurrence)方式(可在更广泛任务上产生更强大的结果)把标准 Transformer 扩展为计算通用(图灵完备)模型。研究者将该模型建立在 Transformer 的并行结构上,以保持其快速的训练速度。但是他们用单一、时间并行循环的变换函数的多次应用代替了 Transformer 中不同变换函数的固定堆叠(即,相同的学习变换函数在多个处理步骤中被并行应用于所有符号,其中每个步骤的输出馈入下一个)。关键在于,RNN 逐个符号(从左到右)处理序列,而 Universal Transformer 同时处理所有符号(像 Transformer 一样),然后使用自注意力机制在循环处理步骤(步骤数量可变)上,对每个符号的解释进行改进。这种时间并行循环机制比 RNN 中使用的顺序循环(serial recurrence)更快,也使得 Universal Transformer 比标准前馈 Transformer 更强大。


Universal Transformer 模型使用自注意力机制结合不同位置的信息,应用循环变换函数,以并行化方式重复为序列的每个位置细化一系列向量表征(如图自 h_1 到 h_m)。箭头表示操作间的依赖关系。


在每一步中,信息利用自注意力从每个符号(例如句中单词)传递到其他符号,就像在原始 Transformer 中一样。但是,现在这种转换的次数(即循环步的数量)可以提前手动设置(比如设置为固定数字或输入长度),也可以通过 Universal Transformer 本身进行动态设定。为了实现后者,谷歌研究人员在每个位置都添加了一个自适应计算机制,它可以分配更多处理步骤给较模糊或需要更多计算的符号。


用一个直观的例子来说明这是如何起作用的,比如这句话「I arrived at the bank after crossing the river」。在这个案例中,与没有歧义的「I」或「river」相比,推断「bank」一词最可能的含义需要用到更多的语境信息。当我们用标准 Transformer 对这个句子进行编码时,我们需要把同样的计算量无条件地应用于每个单词。然而,Universal Transformer 的自适应机制允许模型仅在更模糊的单词上花费更多计算,例如,使用更多步骤来整合消除单词「bank」歧义所需的额外语境信息,而在没那么模糊的单词上则花费较少的步骤。


起初,让 Universal Transformer 仅重复应用单一学习函数来处理输入似乎是有限制性的,尤其是与应用不同函数的固定序列的标准 Transformer 相比。但是,学习如何重复应用单一函数意味着应用的数量(处理步骤)现在是可变的,而这是一个很重要的区别。如上所述,除了允许 Universal Transformer 对更模糊的符号应用更多的计算之外,它还允许模型根据输入的整体大小来调整函数应用的数量(更长的序列需要更多的步骤),或者基于训练期间学习到的其它特性来动态地决定将函数应用到输入的任何给定部分的频率。这使得 Universal Transformer 在理论上更加强大,因为它可以有效地学习对输入的不同部分应用不同的变换。而这是标准 Transformer 无法做到的,因为它由只应用一次的学习变换块(learned Transformation block)的固定堆叠组成。


尽管 Universal Transformer 在理论上更加强大,但研究人员仍关心实验性能。实验结果证明,Universal Transformer 确实能够从样本中学习如何复制和反转字符串,以及如何比 Transformer 或 RNN 更好地执行整数加法(尽管不如神经 GPU 效果好)。此外,在多项有难度的语言理解任务上,Universal Transformer 的泛化效果明显更好,且它在 bAbI 语言推理任务和很有挑战性的 LAMBADA 语言建模任务上达到了新的当前最优性能。但或许最令人感兴趣的是,Universal Transformer 在与基础 Transformer 使用相同数量参数、训练数据以相同方式进行训练时,其翻译质量比后者提高了 0.9 个 BLEU 值。在去年 Transformer 发布时,它的性能比之前的模型提高了 2.0 个 BLEU 值,而 Universal Transformer 的相对改进量是去年的近 50%。


因此,Universal Transformer 弥补了在大规模语言理解任务(如机器翻译)上具有竞争力的实际序列模型与计算通用模型(如神经图灵机或神经 GPU)之间的差距,计算通用模型可使用梯度下降来训练,用于执行随机算法任务。谷歌很高兴看到时间并行序列模型的近期进展,以及处理深度中计算能力和循环的增加,谷歌希望 Universal Transformer 可以帮助研究人员构建更加强大、更能高效利用数据的算法,泛化性能超越当前最优算法。


论文:Universal Transformers



  • 论文链接:https://arxiv.org/pdf/1807.03819.pdf

  • Universal Transformer 代码:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/research/universal_transformer.py


摘要:自注意力前馈序列模型已被证明在序列建模任务上效果显著,这些任务包括机器翻译 [31]、图像生成 [30] 和 constituency parsing [18],从而提供了可以替代循环神经网络(RNN)的令人信服的方案,尽管 RNN 至今仍是许多序列建模问题事实上的标准架构。然而,尽管取得了这些成功,像 Transformer [31] 这样的前馈序列模型却无法泛化至很多循环模型可以轻松处理的任务上(例如,在字符串或公式长度超过训练时模型观察到的类型时,复制字符串甚至简单的逻辑推断 [28])。此外,与 RNN 相比,Transformer 模型在计算上不通用,这限制了其理论表达能力。本论文提出了 Universal Transformer,它可以解决这些实践和理论缺陷。我们展示了它可以在多项任务中实现性能提升。Universal Transformer 不像 RNN 那样使用对句中单个符号的循环,而是使用每个循环步骤重复修改句子中所有符号的表征。为了结合句子不同部分的信息,该模型在每个循环步中都使用了自注意力机制。假设有充足的记忆,则其循环会使 Universal Transformer 成为计算通用模型。我们进一步使用自适应计算时间(adaptive computation time,ACT)机制,使模型动态调整句子中每个位置的表征被修改的次数。除了节省计算量以外,ACT 还能够提高模型的准确率。我们的实验结果表明,在许多算法任务及大量大规模语言理解任务中,Universal Transformer 的泛化性能大大增强,在机器翻译中的表现超越了基础 Transformer 及 LSTM,在 bAbI 语言推理及富有挑战性的 LAMBADA 语言建模任务中达到了新的当前最优性能。


参考链接:https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html.



本文为机器之心编译,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告 & 商务合作:bd@jiqizhixin.com

阅读9272
模型 
举报0
关注机器之心微信号:almosthuman2014

用微信扫描二维码即可关注
声明

1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“机器之心”微信公众号,文章版权归机器之心公众号所有。

评论
更多

文章来自于公众号:

机器之心

微信号:almosthuman2014

邮箱qunxueyuan#163.com(将#换成@)
微信编辑器
免责声明
www.weixinyidu.com   免责声明
版权声明:本站收录微信公众号和微信文章内容全部来自于网络,仅供个人学习、研究或者欣赏使用。版权归原作者所有。禁止一切商业用途。其中内容并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现头条易读网站上有侵犯您的知识产权的内容,请与我们联系,我们会及时修改或删除。
本站声明:本站与腾讯微信、微信公众平台无任何关联,非腾讯微信官方网站。