近期,字节跳动人工智能实验室在 EMNLP 2021 上发表了一篇关于在线更新机器翻译系统的论文。
机器翻译系统在线更新指的是使用单个翻译样本更新机器翻译系统。工业应用中对机器翻译系统在线更新的需求主要来自于两类场景:
在线修复 bad case。机器翻译系统不是完美无缺的,有时系统对某些输入会生成错误的译文,这样的输入我们称之为 bad case。快速修复 bad case 是机器翻译系统实际应用中的硬需求。而使用 bad case 及其对应的正确译文更新机器翻译系统为快速修复 bad case 提供了一种巧妙的思路。
使用流式生成的翻译数据增量更新机器翻译系统。机器翻译的训练数据不总是固定的,在一些场景中语言专家每天都会标注出新的机器翻译数据。使用这种流式生成的数据对机器翻译系统做全量的更新是成本很高的,而借助在线更新机器翻译系统的方法,对翻译系统做增量的更新不仅可以提升翻译性能,更新成本也大大降低。
当前主流的机器翻译系统都是基于神经网络搭建的,而参数众多结构复杂的神经网络模型难以做到在线更新。基于样本的机器翻译系统却很容易做到在线更新。在基于样本的机器翻译系统中,通常存在一个大规模的翻译语料库。给定一条源语言句子,生成对应翻译结果的过程中,需要从翻译语料库中检索出若干相似的翻译样本,并利用检索到的样本生成最终的译文。更新基于样本的机器翻译系统只需要更新翻译语料库就可以了,无需更新机器翻译模型的参数。
但是基于样本的机器翻译系统泛化性较差,在检索不到相似样本的情况下,很难生成高质量的译文。因此,最近一些工作将样本检索与神经机器翻译结合,在神经机器翻译模型解码的过程中检索相似的翻译样本辅助译文生成。这种样本检索机制赋予了机器翻译系统在线更新的能力。
在这个方向上,一个经典的工作是发表在 ICLR 2021 上的 kNN-MT[2]。kNN-MT 为神经机器翻译引入了词级别的样本检索机制,使得翻译系统在无需额外训练的情况下,显著提升多领域机器翻译和领域适应机器翻译的能力,同时具有了在线更新的能力。
但是 kNN-MT 仍然存在一些问题,使用固定的将神经机器翻译输出和样本检索进行组合的策略使得它难以适应多变的输入样本。如图1所示,带有领域内翻译语料库的 kNN-MT 领域内的翻译质量取得了明显提升,而通用领域翻译质量却剧烈下滑。造成这种现象的原因是,kNN-MT 过度依赖了检索到的样本,在检索到的样本与测试样本不相似时,检索到的样本对于机器翻译而言反而是噪声,从而降低了翻译质量。
这篇工作主要针对该问题[3],提出了一种动态结合样本检索和神经机器翻译的方法 KSTER (Kernel-Smoothed Translation with Example Retrieval),使得翻译系统在检索到相似样本的情况下能够提升翻译效果,在检索不到相似样本时,也能保持原有的翻译质量,同时保持在线更新的能力。
图1 带有领域内数据库的kNN-MT,在领域内数据和通用领域数据上的翻译效果。
在这篇工作的模型结构中,翻译系统由两个部分组成,分别是一个通用领域的神经机器翻译模型——采用经典的 Transformer 结构[1],和一个样本检索模块——用于执行相似样本检索、相似度计算和概率估计。自回归的机器翻译模型生成译文是按相似的方式逐词生成,因此只需考虑单步的解码过程。在解码生成译文的每一步中,翻译系统的两个部分都会产生一个下一个词对应的概率分布。这两个分布会根据一个混合系数进行线性插值,估计出一个混合的概率分布。下一个词将由这个混合的分布预测出。
为了在解码过程中进行样本检索,作者构建了一些词级别的翻译数据库。数据库中存储的是词级别的翻译样本,每一个样本是一个键值对 。这个键指的是目标端语言的句子中一个词出现的上下文的向量表示 ,值指的是对应的目标端语言的词 。使用一个通用领域上训练好的 Transformer 模型,对每一条训练数据做强制解码,即可计算出目标语言每个词的上下文相关向量表示,构造出一组词级别翻译样本以供检索。
样本检索
在解码的每一步中,NMT 模型会计算出一个基于模型的下一个词分布 。另外,NMT 模型会计算当前上下文的向量表示作为查询 ,从翻译数据库中检索Top- k 个 L2 距离最小的样本。
可学习的核函数
然后利用核密度估计根据检索到的样本估计出一个基于样本的分布 ,其中核函数是一个具有可学习带宽参数的高斯核或拉普拉斯核。带宽参数基于当前上下文和检索到的样本动态估计得出,主要是为了调整 的锐度。当检索出的 k 个样本只有几个头部样本与当前上下文相似时,低带宽的核密度估计会生成一个尖锐的分布,将绝大多数概率质量分配给头部样本,忽略尾部样本引入的噪声。
图3 核函数的带宽参数越小,估计出的分布越尖锐。
基于模型的分布 将和基于样本的分布 按一定权重 进行线性插值,得到一个混合分布 ,并由混合分布预测出下一个词。混合权重 决定了翻译系统预测下一个词是更多地依赖 NMT 模型的输出还是检索到的样本。如图4 所示,在解码的每一步中,混合权重都是不同的,根据当前上下文和检索到的样本估计出。翻译系统自适应地决定更多地依赖哪个部分。
图4 动态的混合权重。Memory 表示基于样本的分布权重 ,Translation 表示基于模型的分布权重 。
模型训练策略
在 KSTER 训练过程中,NMT模型参数是固定不变的,需要训练的部分只有一个带宽参数估计器和一个混合权重估计器。作者使用交叉熵损失函数对翻译系统整体进行优化,但只更新带宽参数估计器和混合权重估计器的参数。
由于训练翻译系统的数据与构建翻译数据库的数据是相同的,在训练时总能检索到 top 1 相似的翻译样本就是查询自身。而测试数据通常在翻译数据库中没有出现过。这种训练和测试的不一致性,导致翻译系统容易过度依赖检索到的样本,产生过拟合的现象。为了缓解训练和测试的不一致性,作者在训练时检索最相似的 k + 1 个样本,并把第 1 相似的样本丢弃,保留剩下的 k 个样本用于后续的计算。这种训练策略被称为检索丢弃,在测试时并不使用这种策略。
这篇工作在机器翻译领域适应和多领域机器翻译两种任务上进行了实验,KSTER 相比 kNN-MT 在两种任务上均有提升。
图6 多领域机器翻译任务上的实验结果
图7 不同领域的核函数带宽和混合权重分布
图8 检索不同数量样本 k 时,kNN-MT 和 KSTER 的翻译效果
图9 验证了检索丢弃这种训练策略的必要性。在不使用检索丢弃策略时,KSTER模型产生了严重的过拟合。而使用检索丢弃策略后,过拟合的现象得到明显缓解。
图9 检索丢弃训练策略有助于缓解过拟合
作者基于 KSTER 开发了一个基于在线干预机器翻译系统,用于展示翻译系统在线修复bad case的能力。图10 - 14 展示了一些具体的样例。
如 图10 所示,由于训练数据中没有出现过“字节跳动”这种新兴实体,以及“C位”这类新词,翻译系统对它们的翻译效果是不好的。
图10 Base 模型翻译结果
图11 KSTER 翻译结果
图12 向 KSTER 翻译数据库中添加以上样本
图13 添加样本之后KSTER的翻译结果
图14 KSTER 在相关样本上的翻译结果
本文主要介绍了 KSTER,一种有效的机器翻译系统在线更新方法。其在机器翻译领域适应和多领域机器翻译上均表现出优异的效果。同时展示了它的在线修复 bad case的能力。
参考文献
[1] Vaswani et al. "Attention is All You Need". Proceedings of the 31st International Conference on Neural Information Processing Systems.
[2] Khandelwal et al. "Nearest Neighbor Machine Translation". ICLR 2021: The Ninth International Conference on Learning Representations.
[3] Jiang et al. "Learning Kernel-Smoothed Machine Translation with Retrieved Examples". Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing.
雷锋网