快捷搜索:

神经机器翻译,语境参数生成器

日期:2019-06-19编辑作者:澳门新葡8455手机版

原题目:EMNLP 2018 | 结合通用和专项使用NMT的优势,CMU为NMT引进「语境参数生成器」

原文:https://www.tensorflow.org/versions/r1.5/tutorials/seq2seq

选自arXiv

(全文99.9%由google翻译,自学使用)

作者:Emmanouil Antonios Platanios等

作者:Thang Luong,Eugene Brevdo,Rui Zhao(Google Research Blogpost,Github)

参与:白悦、刘晓坤

本课程的那个本子必要TensorFlow Nightly。 为了利用稳固的TensorFlow版本,请思索任何分支,如tf-1.4。

通用和专项使用 NMT 模型分别在形似语言对和罕见语言对的翻译中保有优势,但那也展示了各自的劣势,取决于参数共享的档案的次序。为此,CMU 的探讨者在本文中建议了一种在两个之间获得平衡艺术,无需退换 NMT 原有架构,而是引进新的组件 CPG,来可控地完毕不一致语言对模型之间的参数共享。该零件可无缝结合差异的 NMT,并在口径数据集上取安妥前最棒。商量者强调,该办法使大家更就像普适的中级语言。

就算使用那些代码库进行切磋,请引用此。

神经机译(NMT)没有需求单独练习或调治系统的其他部分就足以一贯建立模型源语言到指标语言的映照。那使得 NMT 快速上扬,并在大多左近境遇中中标应用 (Wu et al., 2015; Crego et al., 二零一六)。编码器-解码器抽象使构建将其他语言的源句映射到向量表示,再将向量表示解码到别的指标语言的系统在概念上变得平价。因而,大家建议了各个艺术来扩张这种多语言机译的架空 (Luong et al., 二零一六; Dong et al., 2016; 约翰逊 et al., 2017; Ha et al., 二〇一四; Firat et al., 二〇一六a)。

介绍(Introduction)

序列 - 序列(seq2seq)模型(Sutskever et al., 2014, Cho et al., 2014
)在机译,语音识别和文件摘要等各样职分中拿走了高大的打响。 本教程为读者提供了seq2seq模型的通盘理解,并出示了怎么伊始构建八个有竞争力的seq2seq模型。 我们注意于神经机译(NMT)的天职,它是seq2seq模型的首个测试平台。 包罗的代码是轻量级的,高素质的,生产就绪,并组成新型的钻研思路。 我们经过以下办法达成那些:

  1. 应用以来的解码器/集中力包装器(decoder / attention wrapper)API,TensorFlow 1.2多少迭代器
  2. 结合我们壮大的专门的工作知识,构造建设循环和seq2seq模子
  3. 为创立最佳的NMT模型和再次出现Google’s NMT (GNMT)系统提供技巧和法门。

大家信任提供人们可以轻巧再现的benchmarks是老大重大的。 由此,大家提供了一体化的实行结果,并在以下公开可用的多寡集上对模型举办预陶冶:

  1. 小规模:IWSLT Evaluation Campaign提供的阿尔巴尼亚语 - 土耳其语TED对话语言材质库(133K个句子对)。
  2. 大规模:WMT Evaluation Campaign提供的德英平行语言质地库(4.5M句子对)。

大家首先构建部分有关NMT的seq2seq模子的基本知识,解释怎样建商谈陶冶贰个vanilla NMT模型。 第二局地将珍视于塑造具备注意力机制的竞争性NMT模型。 然后,大家将探讨一些技巧和法门,以树立最棒NMT模型(包蕴进度和翻译品质),如TensorFlow最棒实践(批管理,分段),双向RubiconNN,波束寻觅(beam search [以此是吗?])以及使用GNMT集中力扩张到七个GPU。

多语言 NMT 在此之前的干活可差不离分为二种范式。第贰个通用 NMT (约翰逊 et al., 2017; Ha et al., 2014) 对具备语言应用单一模型。通用 NMT 未有别的特定语言的参数化,在翻译大相径庭的言语和数码有限的场地下,这种情势过于轻便化且特别不利。通超过实际验证实,Johnson等人的秘诀(2017)在高样本复杂度情状下品质变差,由此在个其他数据设置中呈现不佳。Ha 等人建议的通用模型(二零一四)要求输入句子的新编码方案,这会招致过大的词汇量从而难以扩展。第两种范式,特定于种种语言的编码器-解码器 (Luong et al., 二〇一六; Firat et al., 2014a),每一种语言使用独立的编码器和平消除码器。这不允许跨语言共享音信,大概引致过度参数化,且在语言相似的状态下只怕危机。

基础知识(Basic)

在本文中,CMU 的研讨者在那三种办法之间赢得了平衡,建议了一种能够分别为各种语言学习参数的模子,同临时间也能在形似语言之间共享消息。商讨者使用了新的语境相关的参数生成器(CPG),它能够(a)泛化全部那个艺术;(b)减轻上述通用和独门语言编码器-解码器系统的难题。它将语言嵌入作为翻译的语境进行学习,并用它们为保有语言对转移共享翻译模型的参数。由此,它为那几个模型提供了各类语言单独学习参数的力量,同时也在形似语言之间共享音信。参数生成器是通用的,允许以这种方法巩固任何现成的 NMT 模型。其它,它兼具以下所希望的特征:

神经机译的背景(Background on Neural Machine Translation)

在过去,古板的基于短语的翻译系统经过将源语句拆分成八个部分然后将其逐句翻译来实施他们的天职。 这致使了翻译产出的不流利,并不像我们人类翻译的那么。 大家阅读整个源句子,掌握它的意味,然后产生一个翻译。 神经机器翻译(NMT)模仿的便是这种情势!

图片 1

图1.编码器 - 解码器架构 - 用于NMT的相似方法的例证。 编码器将源语句调换为经过解码器传递的“意义”向量以发生翻译。

具体来讲,NMT系统率先使用编码器读取源句子来营造“思想”向量,表示句子含义的数字种类; 解码器然后甩卖句子向量以发出翻译,如图1所示。那经常被叫作编码器 - 解码器种类布局。 NMT以这种办法缓慢解决了守旧的基于短语的方法中的局地翻译难题:它能够捕捉语言的漫漫依赖,比如性别协议; 语法结构等; 并通过谷歌神经机译系统(Google Neural Machine Translation systems)显示了更通畅的翻译。

NMT模型依据其特别的系统布局而有所区别。 对于种类数据,很自然的挑三拣四是大多数NMT模型所选拔的递归神经网络(LacrosseNN)。 编码器和解码器常常采取中华VNN。 可是,奥迪Q5NN模型在以下方面有所分裂:(a)方向性

  • 单向或双向; (b)深度 - 单层或多层; 和(c)类型 - 平常是经常奇骏NN,长时间长时间纪念(LSTM)或门控循环单元(GRU)。 有意思味的读者能够在这篇博文中找到有关PRADONN和LSTM的越来越多新闻。

在本教程中,大家以单向的深浅多层CR-VNN为例,将LSTM作为三个递归单元。 大家在图第22中学展现了那样模型的三个例子。在这些例子中,大家树立了几个模子,将源句子"I am a student"翻译成指标句子"Je suisétudiant"。 在高档期的顺序上,NMT模型由三个递归神经网络组成:编码器RAV4NN仅仅消耗输入的源单词而不作任何预测; 另一方面,解码器在估算下三个单词的还要处理对象语句。

欲理解越来越多音讯,我们向读者介绍本课程所依据的Luong (2016)。

图片 2

图2.神经机器翻译 - 三个纵深循环架构的例证,将源句子“I am a student”翻译成指标句子“Je suistétudiant”。 这里,“<s>”表示解码进程的起来,而“</ s>”表示解码器截至。

  1. 简言之:类似 Johnson 等人(2017)和 Ha 等人(二零一五)的点子,且与 Luong 等人(2015 年)和 Firat 等人(2014a)的秘诀相反,它只需稍作修改就能够采用于大部分存世的 NMT 系统,并且能够无缝地包容注意力层。
  2. 多语言:和事先同一,允许使用一样的单个模型进行多语言翻译。
  3. 半监理:能够使用单语数据。
  4. 可扩充:通过在语言间接选举择多量但可控的共享来压缩参数的数据,从而收缩大气多少的须求,如 Johnson等人所述(2017)。它还同意语言的解耦,防止对大量共享词汇必要,如 Ha 等人所述(2014)。
  5. 适应性强:无需完全重复磨炼就足以适应新语言。
  6. 现阶段开始进的格局:比成对 NMT 模型和 Johnson等人的模型具有更加好的性质。(2017 年)。事实上,该格局优于初阶进的天性。

设置教程(Installing the Tutorial)

要安装本学科,您供给在系统上设置TensorFlow。 本教程必要TensorFlow Nightly。 要安装TensorFlow,请依照那边的安装表明实行操作。
假使设置了TensorFlow,您可以运作以下命令来下载本课程的源代码:

git clone https://github.com/tensorflow/nmt/

笔者首先介绍一个可用于定义和描述大繁多存世 NMT 系统模块化框架,然后,在第 3 节中,将基于该框架介绍本讨论的最首要贡献,即语境参数生成器(CPG)。小编还论证了该措施使大家更类似普适的高级中学级语言。

磨炼 - 怎么着树立大家的首先个NMT系统(Training – How to build our first NMT system)

先是,大家将深远探讨用实际的代码片断营造NMT模型的为主,我们将经过它更详细地演说图2。 大家将数据策动和总体的代码推迟到事后。 这一部分是指文件model.py

在底部,编码器和平化解码器凯雷德NNs接收以下输入:首先是源句子,然后是提示从编码调换来解码形式的边际标识"<s>" ,和指标语句。 对于教练,大家会给系统提供以下张量,这一个张量在时刻上是主要格式,蕴涵文字索引:

  • encoder_inputs [max_encoder_time,batch_size]:源输入单词。
  • decoder_inputs [max_decoder_time,batch_size]:目的输入单词。
  • decoder_outputs [max_decoder_time,batch_size]:目的输出单词,那些是decoder_input向左移动三个日子步,右侧加多一个句尾结束标志。
    此处为了进步功效,大家联合磨练两个句子(batch_size)。 测试稍有两样,所以大家稍后再谈谈。

论文:Contextual Parameter Generation for Universal Neural Machine Translation

嵌入(Embedding)

是因为单词的归类性质,模型必须首先查找源和对象的内置来寻找相应的词表示(word representations)。 为了使那一个放手层起成效,首先为每一种语言选拔一个词汇表。 平日,选拔词汇量V,唯有最频仍的V词才被视为唯一。 全体别的单词都转移为"unknown"标识,并赢得同等的松开。 嵌入权重,每一种语言一套,平常在教练中学习。

# Embedding
embedding_encoder = variable_scope.get_variable(
    "embedding_encoder", [src_vocab_size, embedding_size], ...)
# Look up embedding:
#   encoder_inputs: [max_time, batch_size]
#   encoder_emb_inp: [max_time, batch_size, embedding_size]
encoder_emb_inp = embedding_ops.embedding_lookup(
    embedding_encoder, encoder_inputs)

一样,我们得以营造embedding_decoder和decoder_emb_inp。 请注意,能够采用选用预练习词表示(举例word2vec或Glove vectors)来开头化嵌入权重。 一般的话,给定大批量的教练多少,我们得以起来学习那几个嵌入。

本文由澳门新葡8455手机版发布于澳门新葡8455手机版,转载请注明出处:神经机器翻译,语境参数生成器

关键词:

澳门新葡8455手机版DenseNet实力争冠,史上第贰遍

原标题:【深度学习模型哪个最像人脑?】MIT等人工神经网络评分系统,DenseNet实力争夺头名! 来源 | 新智元 编辑...

详细>>

几分钟黑入并开走特斯拉,法郎秒开特斯拉

原标题:黑客用价值约陆仟元RMB设备 几分钟黑入并开走特斯拉 原标题:600 法郎秒开特斯拉 Model S,那帮“高校派”黑...

详细>>

当贝叶斯,数据发掘之贝叶斯

倒计时8** 天** 1. 贝叶斯推理 --提供了推理的一种概率手段 --两个基本假设: (1)待考察的量遵循某概率分布 (2)可...

详细>>