论文阅读笔记--Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Trans

2021.1.27 Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation

本文时间较早,所介绍的GNMT是全球第一个正式上线的NMT系统,并达到了当时的SOTA的水平,GNMT使用了8层的LSTM的encoder、8层LSTM的decoder以及attention方法。作者充分考虑了NMT模型当时的弊端如训练速度、推断速度、未知词等问题,分别对上述问题进行了解决。
NMT最吸引人的特性就是其端到端的训练特性,这使得研究人员只关心模型结构设计和数据问题即可,但在当时,NMT也存在着较多的问题,作者总结为如下:过慢的训练和推断速度、无法有效的解决未登陆词、存在漏译等现象。
本系统即为解决上述问题,为了成功的训练8层的encoder和decoder,作者为GNMT引入了attention,同时为了解决并行性问题,仅将encoder的top连接到decoder的bottom;为了解决推断速度过慢,作者引入了低精度的推断算法并使用TPU进行加速;最后为了高效的解决未登陆词的问题,作者引入了子词单元。
本文的束搜索技术包括一个长度标准化过程来有效地处理在解码过程中比较不同长度假设的问题,以及一个覆盖惩罚来鼓励模型转换所有提供的输入。
总体的模型架构还是非常清晰的,encoder生成一个vector的list,包含每个隐藏层状态,拿到这些隐藏层状态后,decoder每次生成一个词,在这其中,attention机制可以使decoder自主的去选择encoder中其感兴趣的隐藏层状态.

模型总的架构图如下:

为了使8层的网络能够被训练,作者还为模型引入了residual connection

为了使模型能够准确的覆盖全部语义信息,作者在第一层使用了双向LSTM网络

由于模型较大,作者同时使用了模型并行和数据并行。
作者对未登陆词的解决进行了讨论,作者共探讨了两种方法,一种为Wordpiece

作者认为通过这种方法可以很好地兼容效率与模型的性能
作者的另一种方法是,将未登陆词转化为字符序列,并在前面加入一个特殊的标志符
在本系统中,作者还直接使用BLEU对训练过程中生成的句子进行评测,由于BLEU的函数性态不好,故作者使用强化学习的手段,并引入了GLEU评价,
为了节省推断时间,GNMT引入了量化推断,并由google所特有的硬件所支持。
为了减少量化误差,我们在训练过程中对模型添加了额外的约束,使得模型可以量化,对模型的输出影响最小。即对其操作数的范围进行限定:

具体到lstm内部,其所有要加速的变量全部使用16位的表示并限定上下界,所有的矩阵乘法都使用8位的表示,所有的激活函数也都使用16位蒸熟操作(decoder端的softmax也包含在内)。但不包含attention方法。
同时作者发现,这样的方法不仅对模型的性能没有损伤,而且还对性能有所提升,作者认为这个可能是由于边界的限制起到了一定的正则化作用。作者还特意提到,以上方法只在TPU上使用,当使用cpu和GPU时,依然使用全精度进行训练。

对于模型的解码器,不同于常规的极大似然估计,覆盖度惩罚和长度正则化被引入。通过长度标准化,作者的目的是必须比较不同长度的假设,因为如果没有长度正则化,则模型会偏向于产生较短的句子。

其中lp表示对长度的惩罚,即长度越大,该值越大,这是因为对数似然为负数,所以分母越大,得分函数的值越大。其中cp为覆盖度函数,这使得模型偏爱那些覆盖了源语言句子所有单词的翻译。其中pij表示目标语第j个词和第i个源语言词的attention得分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值