Bridging the Gap between Training and Inference for Neural Machine Translation
ACL代表Association for Computational Linguistics,即计算语言学协会。它是一个致力于自然语言处理研究的科学和专业组织。ACL的年会是自然语言处理研究领域的主要高影响力会议之一,与EMNLP并列。会议每年夏季在进行重要计算语言学研究的地点举行
EMNLP(Empirical Methods in Natural Language Processing)是自然语言处理和人工智能领域的一个领先会议。与ACL(Association for Computational Linguistics)和NAACL(North American Chapter of the Association for Computational Linguistics)一起,它是自然语言处理研究的三个主要高影响力会议之一。EMNLP由ACL的特别兴趣小组SIGDAT组织,并于1996年开始,基于一个早期的会议系列Workshop on Very Large Corpora(WVLC)
摘要
-------------------之前神经机器翻译是怎么做的,本文做出了那些改进。
神经机器翻译(NMT)以预测下一个词的方式,根据上下文词逐个生成目标词。在训练阶段,它使用真实的上下文词进行预测,而在推理阶段,它必须从头开始生成整个序列。这种提供上下文的差异会导致错误的累积。此外,基于词级别的训练要求生成的序列与真实序列严格匹配,这会导致对不同但合理的翻译进行过度纠正。在本文中,我们通过在训练过程中采样上下文词来解决这些问题,这些上下文词不仅来自真实序列,也来自模型预测的序列,其中预测的序列是以句子级别的最优方式选择的。在中文到英文和WMT'14英文到德文的翻译任务上的实验结果表明,我们的方法在多个数据集上都取得了显著的改进。
训练和推理阶段的不一致性:在训练阶段,模型使用真实的目标词作为上下文进行预测,而在推理阶段,模型需要使用自己预测的词作为上下文。这种不一致性会导致推理阶段出现错误累积的问题。
过度纠正问题(Overcorrection):传统的基于词级别的训练方法要求生成的序列与真实序列完全匹配,这会导致模型对于不同但合理的翻译进行过度纠正,限制了翻译的多样性。
曝光偏差(Exposure Bias):由于训练和推理阶段使用的上下文不同,导致模型在推理时可能遇到从未见过的情况,这被称为曝光偏差。
推理阶段:模型完成训练后,用于生成翻译或执行其他任务的阶段。
句子级最优:在评估翻译质量时,考虑整个句子的上下文,而不仅仅是单个单词。
引言
--------------------前人工作、存在的问题(产生错误累积)、如何解决(让模型在训练时就学会处理)
神经机器翻译(NMT)已经展示出了有希望的结果,并且最近引起了越来越多的关注。大多数NMT模型都符合编码器-解码器框架,包括基于RNN的(Sutskever et al. 2014; Bahdanau et al. 2015; Meng and Zhang 2019)、基于CNN的(Gehring et al. 2017)以及基于注意力的(Vaswani et al. 2017)模型,这些模型通过在前一个上下文单词的条件下预测下一个单词来派生目标单词的语言模型。在训练时,使用真实单词作为上下文,而在推理时,整个序列由结果模型自行生成,因此之前由模型生成的单词被用作上下文。结果,训练和推理中的预测单词来自不同的分布,即分别来自数据分布和模型分布。这种差异被称为曝光偏差(Ranzato et al. 2015),随着目标序列的增长,错误在序列中累积,模型必须在训练时从未遇到的条件下进行预测。
直觉上,为了解决这个问题,模型应该被训练以在推理时将面临的相同条件下进行预测。受DATA AS DEMONSTRATOR(DAD)(Venkatraman et al. 2015)的启发,一种解决方案是在训练中同时使用真实单词和预测单词作为上下文。NMT模型通常优化交叉熵损失,要求在词级别上严格匹配预测序列和真实序列。一旦模型生成了一个偏离真实序列的单词,交叉熵损失会立即纠正这个错误,并将剩余的生成过程拉回到真实序列上。然而,这会引发一个新问题。一个句子通常有多种合理的翻译,如果模型生成了一个与真实单词不同的单词,也不能说模型犯了错误。例如:
参考:We should comply with the rule.
候选1:We should abide with the rule.
候选2:We should abide by the law.
候选3:We should abide by the rule.一旦模型在第三个目标单词生成了“abide”,交叉熵损失将迫使模型生成“with”作为第四个单词(如候选1),以产生更大的句子级似然度,并与参考保持一致,尽管“by”才是正确的选择。然后,“with”将作为上下文来生成“the rule”,结果模型被教导生成“abide with the rule”,这实际上是错误的。翻译候选1可以被视为过度校正现象。另一个潜在的错误是,即使模型在生成“abide”之后正确预测了“by”,在生成后续翻译时,它可能会通过使用“by”不适当地产生“the law”(如候选2)。假设参考和训练标准让模型记住了短语“the rule”总是跟随单词“with”,以帮助模型从这两种错误中恢复,并创建像候选3那样的正确翻译,我们应该在前一个预测短语是“abide by”时提供“with”作为上下文,而不是“by”。我们将这种解决方案称为过度恢复策略。
在本文中,我们提出了一种方法来弥合训练和推理之间的差距,并提高NMT的过度校正恢复能力。我们的方法首先从其预测的单词中选择oracle单词,然后从oracle单词和真实单词中进行采样作为上下文。同时,oracle单词不仅通过逐字贪婪搜索选择,还通过句子级评估(例如BLEU)进行选择,这允许在交叉熵的成对匹配限制下有更大的灵活性。在训练开始时,模型以更大的概率选择真实单词作为上下文。随着模型的逐渐收敛,oracle单词被更频繁地选择为上下文。通过这种方式,训练过程从完全指导的方案变为较少指导的方案。在这种机制下,模型有机会学习如何处理在推理中犯下的错误,并且还具有从不同但合理的翻译中恢复过度校正的能力。我们在RNNsearch模型和更强大的Transformer模型上验证了我们的方法。结果表明,我们的方法可以在两种模型上显著提高性能。
1. Oracle Word的选择 Oracle Word Selection:本文提出了一种方法,在训练过程中,模型不仅从真实序列中选择上下文单词,也从模型自己预测的序列中选择。这些预测的单词被称为"oracle words",可以通过两种方式选择:一种是逐字贪婪搜索,另一种是基于整个句子的评估,如BLEU分数。
2. 采样与衰减Sampling with Decay:为了使模型逐渐适应在推理阶段使用自己预测的单词作为上下文,提出了一种采样机制,其中模型以一定的概率从真实单词和oracle单词中选择上下文单词。随着训练的进行,这个概率会发生变化,使得模型更频繁地使用oracle单词。
3. 训练过程的调整:通过这种方法,训练过程从完全依赖真实单词的指导逐渐过渡到更少的指导,模型有更多的机会学习如何处理推理阶段可能出现的错误,并且能够从过度校正中恢复。
4. 实验验证:作者在两个不同的模型上验证了该方法的有效性:RNNsearch模型和Transformer模型。实验结果表明,该方法能够显著提高这两种模型在机器翻译任务上的性能。
通过这种方法,模型在训练过程中更好地模拟了推理阶段的条件,从而减少了曝光偏差的影响,并提高了对不同但合理翻译的容忍度,最终提高了翻译的整体质量。
5. 曝光误差(Exposure Bias)是指在训练自然语言生成模型(如机器翻译、文本摘要等)时,模型通常使用真实的历史数据作为上下文来预测下一个单词,而在推理(生成)阶段,模型却需要使用自己生成的历史数据作为上下文。这种训练与推理间的不一致性会导致模型在实际应用中的表现下降。
6. 教师强制(Teacher Forcing)是一种训练循环神经网络的技术,特别用于序列生成任务。在教师强制中,模型在预测下一个单词时总是使用真实的前一个单词作为输入,而不是使用模型自己生成的前一个单词。这种方法可以加速训练过程并提高模型性能,但也可能加剧曝光误差问题,因为它加大了训练与推理间的不一致性。教师强制会加剧曝光误差,因为它使得模型在训练阶段总是依赖于真实的上一个词来预测下一个词。这导致模型在训练时没有机会学习如何从自己生成的错误中恢复。因此,当模型在推理阶段遇到自己生成的错误时,它可能无法有效地纠正这些错误,从而导致性能下降。
BLEU(Bilingual Evaluation Understudy)分数是一种广泛使用的指标,用于评估机器翻译系统生成的翻译质量。它通过比较机器翻译输出与一个或多个人类参考翻译之间的相似度来工作。
BLEU分数的计算主要基于两个方面:
N-gram精度:BLEU分数首先计算机器翻译输出中的n-gram(即连续的n个词)与参考翻译中的n-gram的匹配程度。这是通过计算共同出现在机器翻译输出和参考翻译中的n-gram的数量,并将其除以机器翻译输出中的n-gram总数来实现的。
短句惩罚(Brevity Penalty):为了避免系统偏向于生成较短的翻译(因为较短的翻译可能会有更高的n-gram匹配度),BLEU分数引入了一个短句惩罚因子。如果机器翻译输出的长度小于参考翻译的长度,这个因子会降低BLEU分数。
BLEU分数的范围是0到1(或者说0%到100%),其中更高的分数表示更好的翻译质量。尽管BLEU分数是一个有用的指标,但它也有一些局限性,比如它不能很好地捕捉到翻译的流畅性和自然性。因此,BLEU分数通常与其他评估方法结合使用来全面评估机器翻译的性能。
基于RNN的神经机器翻译
编码器(Encoder)
编码器的目的是处理输入序列(通常是一段文本),并将它转换成一系列的隐藏状态,这些状态随后可以被用于生成翻译。
双向门控循环单元(Bidirectional Gated Recurrent Unit - GRU)
- 双向GRU包括两个部分:一个负责处理输入序列从左到右(正向),另一个从右到左(反向)。这种双向结构允许网络同时捕捉前文(之前的单词)和后文(之后的单词)的上下文信息。
隐藏状态是神经网络内部的一个计算层,它帮助模型存储和处理序列数据(如文字或时间序列数据)的历史信息。在递归神经网络(RNN)中,这些隐藏状态充当了记忆单元,记录了到目前为止序列中所见信息的累积。
对于每个输入元素(比如一个句子中的词),隐藏状态会更新自己,以包含以下两部分信息:
- 当前元素的信息:这是通过输入元素的嵌入表示获得的。
- 前一个隐藏状态的信息:这包含了之前所有输入元素的历史信息。
在双向RNN(例如上文提到的双向GRU)中,会有两个隐藏状态序列:一个正向隐藏状态 ℎ→h 跟踪从第一个元素到当前元素的信息流,而一个反向隐藏状态 ℎ←h 跟踪从最后一个元素到当前元素的信息流。
隐藏状态的更新由GRU(门控循环单元)或LSTM(长短期记忆单元)等结构通过特定的数学运算来完成。这些运算涉及权重矩阵(在训练过程中学习得到的参数)、激活函数(如tanh或ReLU),以及门控机制(在GRU或LSTM中用于控制信息流的组件)。
编码器(Encoder)
编码器的功能是将输入词序列转换为数学表达式中的一系列向量,这些向量称为隐藏状态,每个状态都包含了有关输入序列的信息。
双向GRU编码器(Bidirectional GRU Encoder)
编码器的目标是将输入序列(例如,一个句子中的词序列)转换为一组隐藏状态。这些隐藏状态编码了序列中每个词的上下文信息。。
公式显示不出来,还是得用MD编辑。
注意力机制
方法:
实验分析
表格展示了中文到英文翻译任务中,不同NMT(神经机器翻译)系统的BLEU分数性能。在这里,BLEU分数是一种评价机器翻译质量的指标,百分比越高代表翻译质量越好。表格列出了四个不同的测试集(MT03、MT04、MT05和MT06)的结果,以及这些测试集的平均BLEU分数。
现有的端到端NMT系统
- Tu et al. (2016)提出的“Coverage”系统,其BLEU分数从33.69%到34.83%,平均为35.40%。
- Shen et al. (2016)的“MRT”(Minimum Risk Training)系统,BLEU分数范围在37.41%至36.80%,平均为37.88%。
- Zhang et al. (2017)的“Distortion”系统,BLEU分数从37.93%到35.77%,平均为37.73%。
本工作提出的端到端NMT系统
- “RNNsearch”是基准系统,其BLEU分数从37.93%到35.80%,平均为37.73%。
- 在“RNNsearch”基础上增加了“SS-NMT”(Scheduled Sampling for Neural Machine Translation),分数提高到38.82%到37.98%,平均为38.94%。
- “MIXER”系统进一步提高了BLEU分数到38.70%到38.38%,平均为38.87%。
- “OR-NMT”(Overcorrection Recovery for Neural Machine Translation)是作者的工作,它显著提高了性能,平均BLEU分数达到40.09%,其中在MT03至MT06的BLEU分数分别为40.40%、42.63%、38.87%和38.44%。
变换器(Transformer)架构的系统
- 基础的Transformer模型在四个测试集上的分数范围为46.89%至46.66%,平均为47.21%。
- 添加了“word oracle”(词级神谕)的Transformer模型的分数提高到47.42%至47.34%,平均为47.75%。
- 添加了“sentence oracle”(句子级神谕)后,Transformer模型的性能达到最高,平均BLEU分数为48.72%,单个测试集的分数从48.31%到48.45%。
在表格中,“†”、“††”、“*”和“**”表示与基准系统RNNsearch、SS-NMT、MIXER和Transformer相比,统计学上的显著性差异(p<0.01)。例如,“OR-NMT”在MT04测试集上的42.63††表示与RNNsearch相比具有显著性改善。
这个表格展示了,通过在训练时使用预测的词来模拟未来的使用环境,可以显著提高NMT系统的翻译质量,这也验证了作者的方法在改善机器翻译系统方面的有效性。此外,基于Transformer的方法(特别是引入句子级神谕词的方法)在所有测试条件下均表现最佳,这表明Transformer架构具有很高的优化潜力。
端到端(End-to-End)在机器学习和神经网络中,通常指的是一个处理流程或系统,它直接从输入数据(通常是原始数据)学习到期望的输出,而不需要任何手动干预或特征提取的中间步骤。换句话说,端到端的系统负责处理所有必要的任务,从最初的数据处理到最终的决策或预测。
以神经机器翻译(NMT)为例,端到端的系统会直接从源语言的文本学习到目标语言的翻译,整个过程不需要人为分解成子问题,如词法分析、句法分析、翻译规则的手动编写等。模型会自动学习如何从输入序列映射到输出序列,通常通过一个深度神经网络,如RNN、LSTM或Transformer来实现。
端到端学习的优点包括简化了训练流程,因为它直接从数据中学习任务的所有方面,避免了复杂的特征工程和传统的多阶段处理流程。这种方法也有助于发现数据中可能被人类专家忽视的复杂模式。不过,它也需要大量的数据来让模型学习到充分的映射关系,并且有时可能不如专门针对特定任务设计的系统那样解释性强。
这些图表展示了在中文到英文翻译任务中,不同因素对训练损失和验证集BLEU分数的影响。
训练损失曲线
- RNNsearch: 表示基线模型的训练损失曲线。
- WO (Word Oracle): 表示添加了词级神谕的RNNsearch模型的训练损失曲线。
- SO (Sentence Oracle, τ=0.5): 表示添加了句子级神谕和Gumbel噪声(温度τ设置为0.5)的RNNsearch模型的训练损失曲线。
图中可以看出,所有系统的损失在训练初期迅速下降,随着训练的进行,这种下降趋于平稳。基线模型(黑线)的损失下降最快,这可能是因为它只使用真实数据训练,没有引入预测不确定性。而引入了神谕词的模型(蓝线和红线)在初期损失下降速度较慢,但长期看趋于与基线模型相似的损失水平,说明引入预测不确定性可能导致了更稳定的训练过程。
验证集BLEU分数趋势
- 各条曲线代表在不同配置下模型的BLEU分数趋势,分别为RNNsearch、WO(不同的τ值)、SO(τ=0.5)。
- τ是Gumbel噪声的温度参数,调节采样的随机性。较低的τ值(如0.1)倾向于选择概率最高的词,而较高的τ值(如1.0)倾向于更均匀的采样。
从图中可以看到,在添加了词级神谕的模型(WO,蓝线)和句子级神谕的模型(SO,红线)的BLEU分数在经过初始阶段后,超过了基线模型(RNNsearch,黑线虚线)。随着τ的增大,WO系统的BLEU分数波动更大,这意味着增加噪声的随机性可能会在某些情况下提高BLEU分数,但也可能引入不稳定性。另一方面,SO系统(红线实线)显示出相对较高的BLEU分数和稳定性,这表明在句子级别考虑上下文可以提供更好的性能。
总结来说,这些曲线展示了随着训练的进展,模型性能如何变化,并指出了不同方法在训练动态上的效果。句子级神谕词(SO)似乎提供了对翻译质量最一致的提升,尤其是在结合适当的噪声水平(τ=0.5)时。这表明对长期稳定性和翻译质量至关重要的不仅仅是模型结构,还有训练过程中的随机性和上下文的综合考虑。
总结
端到端NMT模型在训练时一个词一个词地生成翻译,而不是在推理时由模型生成的前一个词作为上下文。为了减轻训练和推理之间的差异,当预测一个词时,我们用采样方案将基础真实词或先前预测词作为上下文。预测词,称为oracle词,可以通过词级或句子级优化生成。与词级oracle相比,句子级oracle可以进一步增强模型的过校正恢复能力。为了使模型充分暴露于参考环境,我们从基础真值词中抽取具有衰减的上下文词。我们通过两个强基线模型和实际翻译任务的相关工作验证了该方法的有效性,在所有数据集上都取得了显著的改进。我们还得出结论,句子级的神谕比词级的神谕更有