On the use of BERT for Neural Machine Translation论文阅读
Posted 雨宙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了On the use of BERT for Neural Machine Translation论文阅读相关的知识,希望对你有一定的参考价值。
摘要
- 本文研究了如何利用BERT预训练模型进行有监督的神经机器翻译
- 比较了将预训练的BERT模型与NMT模型整合的各种方法,并研究了用于BERT训练的单语数据对最终翻译质量的影响
- 文章使用WMT-14英语-德语、IWSLT15英语-德语和IWSLT14英语-俄语数据集进行这些实验。 除了标准的任务测试集评估,试集和注入噪声的测试集进行了评估,以评估BERT预训练的表示如何影响模型的稳健性
介绍
- 使用预训练的LM进行神经机器翻译是很有吸引力的
- R1:预训练的语言模型,如
ELMO
和BERT
,通过将从数据丰富的单语语料库中学到的先验知识转移到数据 频发的NLP任务,如QA、生物医学信息提取和标准基准,已被证明能够显著提高若干自然语言处理任务的质量 - R2:有研究表明,这些表征在预训练网络的不同层中含有句法和语义信息
- R1:预训练的语言模型,如
- 然而,上述工作的结果并不能直接相互比较,因为它们使用了不同的方法、数据集和任务。此外,预训练的LMs大多在低资源或无监督的NMT环境中显示出改进,而在有合理数据量的标准监督场景中的研究却很少
- 目前最先进的NMT模型依赖于Transformer模型,本篇文章研究如何将预训练的BERT模型用于基于Transformer的NMT,从而利用它们依赖于相同的架构这一事实
- 这项工作的目标是双重的。一方面,我们希望对不同的BERT+NMT架构进行系统的比较,以实现标准的有监督的NMT。此外,我们认为,使用预训练表征的好处在以前的研究中被忽视了,应该在域内数据集的BLEU分数之外进行评估❓。事实上,在巨大的数据集上训练的LM有可能在总体上更加稳健,并提高MT中领域适应的性能
相关工作
-
word representations
-
word2vec
-
ELMO
采用了Bi-LSTM
网络进行语言建模,并提出结合不同的网络层来获得有效的单词表示 -
BERT
模型被证明在各种NLP任务中具有出色的表现,有工作提出将其中Transformer的自注意机制替换为两个方向性的自注意模块
-
-
NMT
back translation
是迄今为止利用大型单语数据的最有效方式之一,但是缺点是只适用于目标语言的数据增强;而预训练的LM可以同时用于源语言和目标语言- 有工作使用在多语言语料库上训练的预训练MaskLM或跨语言MaskLM语言模型初始化整个编码器和解码器
-
文章的工作试图对上述一些NMT模型中加入预训练的LM的架构进行系统地比较,主要集中在应用于监督机器翻译的BERT预训练的LM表示
-
鲁棒性问题
- 数据增强的鲁棒性问题已被解决
- 本文研究了鲁棒性问题是否可以在模型级别而不是数据级别上解决
方法
-
典型的NMT模型采用编码器—解码器结构,编码器从源句形成上下文的单词嵌入,解码器从左向右生成目标翻译
-
预训练的LM,即BERT,可以为NMT的编码器部分注入先验知识,提供从大型单语语料库中学习的丰富的语境化词汇嵌入,此外,预训练的LMs可以被训练一次,然后在不同的语言对中重复使用
-
本篇文章着重于为NMT编码器重新使用BERT模型
-
基线模型:一个具有共享解码器输入输出嵌入参数的transformer大模型
-
基线模型,其中embedding层被BERT参数所取代,然后对模型进行微调
-
基线模型,编码器按Lample和Conneau的BERT参数进行初始化
-
基线模型,编码器由BERT参数初始化并冻结
-
-
BERT预训练相比NMT训练有以下优势
- 与NMT(双语任务)相比,它解决了一个更简单的单语(源句编码)任务
- 它有可能利用更大的数据,而NMT编码器只限于平行语料库的源语言部分,在巨大的数据集上训练的语言模型有可能在总体上更加稳健
- 由于BERT模型被训练为从其上下文中预测缺失的标记,它们的表示也可能对缺失的标记或嘈杂的输入更加稳健
-
即使NMT编码器的作用可能超出了源句编码,可能会在编码器层面编码“翻译相关”的信息,但是使用BERT预训练的LM对编码器进行更好的初始化可以使NMT学习更快
文章通过比较冻结BERT参数和微调BERT参数的设置,可以对编码器—解码器模型学习“翻译相关”信息的能力进行一些说明
一些想法:自编码器?预训练解码器?解码器冻结?
实验
预处理
机器翻译中分词方法:BPE(Byte Pair Encoding)
算法步骤:
- 准备足够大的训练语料
- 确定期望的subword词表大小
- 将单词拆分为字符序列并在末尾添加后缀
</w>
,本阶段的subword的粒度是字符,例如,low
的频率为5,那么我们将其改写为"l o w </w>":5
- 统计每一个连续字符对的出现频率,选择最高频合并成新的subword
- 重复第4步直到达到第2步设定的subword词表大小或下一个最高频的字节对出现频率为1
训练
-
对于预训练BERT模型,文章使用了三种不同规模和不同领域的单语语料库
-
NMT-src
:用于NMT模型训练的并行语料库的源部分使用
NMT-src
的动机是为了测试在对源语料库进行训练后,所得到的NMT模型是否更加强大 -
Wiki
(域外数据) -
News
(主要由域内数据组成)
-
-
预训练细节
- 只考虑BERT的
masked LM
任务 - 基于
token
频率来选择15%的标记进行掩盖,而不是均匀抽样 - 对掩盖的
token
没有选择MASK
标记而是选择了UNK
标记 - 只输入单句
- 在编码器端不使用[CLS]标记
- 只考虑BERT的
-
NMT训练
- 使用
WMT-14 English-German
数据集 - 使用
Transformer-Big
型
- 使用
评估
-
文章认为,预训练LM对于NMT模型的影响不能仅通过域内测试集上的BLEU性能来衡量,因此文章引入了额外的评估,对不同域外测试的影响
-
鲁棒性评估
- 向测试集添加噪声
- 在句子的开头(注明UNK.S)或句子的结尾(注明UNK.E)引入一个未知的字符
BLEU可以衡量candidate中有多少词出现在reference中,它有许多变种,根据
n-gram
可以划分为多种评价指标,常见的指标有BLEU-1
、BLEU-2
、BLEU-3
、BLEU-4
四种,其中n-gram
指的是连续的单词个数为n
举例:
candidate: the cat sat on the mat
reference: the cat is on the mat
以
BLEU-2
为例,对candidate中的5个词,the cat, cat sat, sat on, on the, the mat
,有3个词出现在reference中,所以b l e u 2 = 3 5 = 0.6 bleu_2=\\frac35=0.6 bleu2=53=0.6
CHRF和BLEU评价指标最大的不同之处在于,BLEU是单词级的,CHRF是字符级的,也就是基于字符n-gram计算的,
CHRF的计算公式:
chrF β = ( 1 + β 2 ) chr P ⋅ chr R β 2 ⋅ chr P + chr R \\operatornamechrF \\beta=\\left(1+\\beta^2\\right) \\frac\\operatornamechr P \\cdot \\operatornamechr R\\beta^2 \\cdot \\operatornamechr P+\\operatornamechr R chrFβ=(1+β2)β2⋅chrP+chrRchrP⋅chrR
- chr P \\operatornamechr P chrP是查准率,就是候选文和参考文匹配的字符级n-gram在候选文中占的比例
- chr R \\operatornamechr R chrR是查全率,就是候选文和参考文匹配的字符级n-gram在参考文中占的比例
- 建议查看噪声测试集和原始测试集之间句子的
c
h
r
F
chrF
chrF分布
- 在分析中,我们将报告∆(chrF)的分布和它的平均值作为一个总结。如果一个模型善于处理噪声,那么产生的句子将与无噪声的输入句子产生的句子相似。因此,∆(chrF)将更接近于零
结果
- 用BERT参数冻结编码器会导致翻译质量的大幅下降,然而,其他BERT+NMT架构在域内和域外测试集上大多比基线有所改善
- 结论是,由BERT编码的信息是有用的,但不足以执行翻译任务,文章认为,NMT编码器的作用是既要编码源句的特定信息,又要编码目标句的特定信息(这在BERT训练中是缺失的)
- 即使NMTSrc.FT(NMT编码器被初始化为在平行语料库的源部分上训练的BERT)也比基线有所改善,因此BERT预训练被认为可以为NMT模型提供一个更好的初始化方式
- FT和Emb结果相差不大,虽然Emb将NMT编码器的大小增加一倍
鲁棒性分析
- 用屏蔽的LM任务对编码器进行预训练并不能真正带来对鲁棒性的改善
IWSLT实验
探索在较低资源环境下对NMT进行屏蔽语言建模编码器预训练的潜力,结果是,在任何情况下,BERT预训练的模型都比基线有所改进
讨论
- BERT中的下一句预测任务对于提高性能是没有必要的—屏蔽语言建模任务足够
- 预训练编码器为NMT编码器提供了更好的初始化
- 随着训练数规模的减小,BERT预训练的影响更加重要
- BERT所编码的信息不足以进行翻译,因为NMT编码器既编码源句的特定信息,也编码目标句的信息
- 对编码器进行预训练使我们能够训练更大的模型
- 对BERT预训练编码器进行微调更方便:与重用BERT作为嵌入层相比,它的性能相似,解码速度更快
- BERT预训练模型似乎在不同的噪声和域测试集上表现得更好,然而,我们并没有设法获得明确的证据来证明这些模型更可靠
编码器在NMT中的作用?
总结
- 文章比较了BERT语言模型用于机器翻译的不同方法,特别是,文章认为,使用预训练的表示的好处不仅应该根据域内数据的BLEU评分来评估,还应该根据新域的泛化和鲁棒性来评估
- 对编码器进行微调会导致与重新使用编码器作为额外的嵌入层相当的结果,然而 ,前者的优点是保持与标准NMT设置相同的模型大小,而后者则为NMT模型增加了额外的参数,大大增加了模型的大小 ,在某些情况下可能是至关重要的
- 稳健性测试的结论尚不明晰,即使预先训练的BERT模型在有噪声的测试集上获得了更好的性能,它们似乎并没有比预期的更健壮,而且掩码LM任务的潜力没有被充分利用到机器翻译中
以上是关于On the use of BERT for Neural Machine Translation论文阅读的主要内容,如果未能解决你的问题,请参考以下文章
论文阅读 | COMPRESSING BERT: STUDYING THE EFFECTS OF WEIGHT PRUNING ON TRANSFER LEARNING
The best manual of how to use "The easiest Xdebug" addon for Firefox
Creating a keytab file for the Kerberos service account (using the ktutil command on Linux)
Tutorials on training the Skip-thoughts vectors for features extraction of sentence.
论文阅读 | What Does BERT Learn about the Structure of Language?