EMNLP'21 | 基于相似样本检索的在线更新机器翻译系统
点击上方“AI遇见机器学习”,选择“星标”公众号
重磅干货,第一时间送达
来自:AI科技评论
机器翻译指的是使用机器将一种语言的文本翻译成另一种语言的文本。机器翻译技术对于促进不同国家的跨语言沟通有着重要的意义。
近期,字节跳动人工智能实验室在 EMNLP 2021 上发表了一篇关于在线更新机器翻译系统的论文。
论文地址:https://arxiv.org/abs/2109.09991
代码地址:https://github.com/jiangqn/KSTER
1
研究背景和动机
机器翻译系统在线更新指的是使用单个翻译样本更新机器翻译系统。工业应用中对机器翻译系统在线更新的需求主要来自于两类场景:
在线修复 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,在领域内数据和通用领域数据上的翻译效果。
2
模型结构
在这篇工作的模型结构中,翻译系统由两个部分组成,分别是一个通用领域的神经机器翻译模型——采用经典的 Transformer 结构[1],和一个样本检索模块——用于执行相似样本检索、相似度计算和概率估计。自回归的机器翻译模型生成译文是按相似的方式逐词生成,因此只需考虑单步的解码过程。在解码生成译文的每一步中,翻译系统的两个部分都会产生一个下一个词对应的概率分布。这两个分布会根据一个混合系数进行线性插值,估计出一个混合的概率分布。下一个词将由这个混合的分布预测出。
图2 模型结构
离线数据库构建
为了在解码过程中进行样本检索,作者构建了一些词级别的翻译数据库。数据库中存储的是词级别的翻译样本,每一个样本是一个键值对 。这个键指的是目标端语言的句子中一个词出现的上下文的向量表示 ,值指的是对应的目标端语言的词 。使用一个通用领域上训练好的 Transformer 模型,对每一条训练数据做强制解码,即可计算出目标语言每个词的上下文相关向量表示,构造出一组词级别翻译样本以供检索。
样本检索
在解码的每一步中,NMT 模型会计算出一个基于模型的下一个词分布 。另外,NMT 模型会计算当前上下文的向量表示作为查询 ,从翻译数据库中检索Top- k 个 L2 距离最小的样本。
可学习的核函数
然后利用核密度估计根据检索到的样本估计出一个基于样本的分布 ,其中核函数是一个具有可学习带宽参数的高斯核或拉普拉斯核。带宽参数基于当前上下文和检索到的样本动态估计得出,主要是为了调整 的锐度。当检索出的 k 个样本只有几个头部样本与当前上下文相似时,低带宽的核密度估计会生成一个尖锐的分布,将绝大多数概率质量分配给头部样本,忽略尾部样本引入的噪声。
图3 核函数的带宽参数越小,估计出的分布越尖锐。
自适应分布混合
基于模型的分布 将和基于样本的分布 按一定权重 进行线性插值,得到一个混合分布 ,并由混合分布预测出下一个词。混合权重 决定了翻译系统预测下一个词是更多地依赖 NMT 模型的输出还是检索到的样本。如图4 所示,在解码的每一步中,混合权重都是不同的,根据当前上下文和检索到的样本估计出。翻译系统自适应地决定更多地依赖哪个部分。
图4 动态的混合权重。Memory 表示基于样本的分布权重 ,Translation 表示基于模型的分布权重 。
模型训练策略
在 KSTER 训练过程中,NMT模型参数是固定不变的,需要训练的部分只有一个带宽参数估计器和一个混合权重估计器。作者使用交叉熵损失函数对翻译系统整体进行优化,但只更新带宽参数估计器和混合权重估计器的参数。
由于训练翻译系统的数据与构建翻译数据库的数据是相同的,在训练时总能检索到 top 1 相似的翻译样本就是查询自身。而测试数据通常在翻译数据库中没有出现过。这种训练和测试的不一致性,导致翻译系统容易过度依赖检索到的样本,产生过拟合的现象。为了缓解训练和测试的不一致性,作者在训练时检索最相似的 k + 1 个样本,并把第 1 相似的样本丢弃,保留剩下的 k 个样本用于后续的计算。这种训练策略被称为检索丢弃,在测试时并不使用这种策略。
3
实验结果和分析
这篇工作在机器翻译领域适应和多领域机器翻译两种任务上进行了实验,KSTER 相比 kNN-MT 在两种任务上均有提升。
图5 机器翻译领域适应任务上的实验结果
图6 多领域机器翻译任务上的实验结果
图7 展示了学到的带宽估计器和权重估计器在测试时估计出的带宽和权重分布。带宽估计器和权重估计器学到了在不同的解码步中估计出不同的核函数带宽和权重。不同领域带宽和权重的分布也各不相同。
图7 不同领域的核函数带宽和混合权重分布
图8 展示了在检索不同数量样本时,kNN-MT 和 KSTER 的翻译效果,在多个不同 k 的设定下,KSTER都稳定超过kNN-MT。
图8 检索不同数量样本 k 时,kNN-MT 和 KSTER 的翻译效果
图9 验证了检索丢弃这种训练策略的必要性。在不使用检索丢弃策略时,KSTER模型产生了严重的过拟合。而使用检索丢弃策略后,过拟合的现象得到明显缓解。
图9 检索丢弃训练策略有助于缓解过拟合
系统展示
作者基于 KSTER 开发了一个基于在线干预机器翻译系统,用于展示翻译系统在线修复bad case的能力。图10 - 14 展示了一些具体的样例。
如 图10 所示,由于训练数据中没有出现过“字节跳动”这种新兴实体,以及“C位”这类新词,翻译系统对它们的翻译效果是不好的。
图10 Base 模型翻译结果
同样的,当翻译数据库中没有存储包含有“字节跳动”和“C位”的样本时,即使具有相似样本检索的机制,KSTER 也无法翻译好相关的句子,产生了两个 bad case,如图11所示。
图11 KSTER 翻译结果
接下来,作者修正 bad case 的翻译结果,并把 图12 中的两个翻译样本添加至翻译数据库中,即用这两个样本更新翻译系统。这个过程只需数秒,可以做到近实时的更新。
图12 向 KSTER 翻译数据库中添加以上样本
如 图13 所示,在添加了以上样本后,翻译系统在生成译文时便可检索到相似的翻译样本,辅助译文生成,KSTER 翻译效果明显提高。在混合权重的可视化中,也可以看出在检索到相似样本时,翻译系统更多地依赖相似样本预测下一个词。
图13 添加样本之后KSTER的翻译结果
最后,如 图14 所示,作者输入两个带有“字节跳动”和“C位”但与翻译数据库中存储样本不同的句子,翻译系统依然可以准确地翻译这两个句子。这个现象表明,KSTER 对于 bad case 的修复是具有泛化性的,可以通过修复一个 bad case 实现修复一类 bad case。在混合权重的可视化中也可以看出,在翻译“字节跳动”和“C位”时(即生成"ByteDance"和"the central position"时),翻译系统更多地依赖检索到的样本,而在翻译其他部分时,翻译系统更多地依赖 NMT 模型输出。
图14 KSTER 在相关样本上的翻译结果
4
总结
本文主要介绍了 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.
欢迎关注我们,看通俗干货!
EMNLP'21 | 基于相似样本检索的在线更新机器翻译系统相关推荐
- 《中国人工智能学会通讯》——9.21 基于任务规划的资源卫星智能管控模式
9.21 基于任务规划的资源卫星智能管控模式 我国目前已建成包括高分.遥感.环境减灾.测绘和试验等多系列资源卫星系统,在轨运行的卫星 20 多颗.随着成像卫星的发展,成像卫星任务规划问题也逐渐引起重视 ...
- 基于正样本的表面缺陷检测
表面缺陷检测在工业生产中起着非常重要的作用,基于机器视觉的表面缺陷检测可以极大的提升工业生产的效率.随着近年来深度学习在计算机视觉领域的发展,卷积神经网络在诸多图像任务上都取得了显著的效果,然而这些方 ...
- 【音乐检索】基于matlab音乐检索系统【含Matlab源码 435期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[音乐检索]基于matlab音乐检索系统[含Matlab源码 435期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏 ...
- python全唐诗json文件基于作者姓名检索--以李白为例
python全唐诗json文件基于作者姓名检索--以李白为例 文件来源 单个文本分析 对全唐诗json文件进行整体分析 全部代码展示 因为是边做边写的博客,文中我发现我的文学水平急待加强! 全唐诗竟然 ...
- 基于少量样本的快速学习Few-shot learning
基于少量样本的快速学习Few-shot learning 背景 人工智能 神经网络的三次浪潮 深度学习 人工智能困境 人工智能 → 人类智能 定义及数值原理 机器学习定义 数值原理 数据增强 数据预处 ...
- 基于有效样本的类别不平衡损失CB-Loss
每天给你送来NLP技术干货! 干货 作者:Sik-Ho Tsang 来自:炼丹笔记 本文综述了康奈尔大学.康奈尔科技.谷歌Brain和Alphabet公司的基于有效样本数的类平衡损失(CB损失).在本 ...
- EMNLP 2018 | 基于短语和神经网络的无监督机器翻译
无监督机器翻译是目前热门研究方向之一.在仅依赖单语数据情况下,实现语种间的翻译是一个具有实际意义并极赋挑战的任务.文章<Phrase-Based & Neural Unsupervise ...
- 基于智能和视觉的火灾检测系统:调查 (论文翻译)
英文版论文原文:英文版论文链接地址 基于智能和视觉的火灾检测系统:调查 Intelligent and Vision-based Fire Detection Systems: a Survey Fe ...
- 基于Spring Boot的个人博客系统的设计与实现毕业设计源码271611
目 录 摘要 1 绪论 1.1研究意义 1.2开发背景 1.3系统开发技术的特色 1.4论文结构与章节安排 2个人博客系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 ...
最新文章
- 一段语音生成说话视频,连发际线都可以分好几种,网友:利好视频博主
- c++ STL unique , unique_copy函数
- pdb连接数_Oracle 19c 之多租户 PDB 连接与访问(三)
- 从 DevOps 到 Serverless:通过“不用做”的方式解决“如何更高效做”的问题
- FreeSql与SqlSugar性能测试对比
- php dedecms 记录访问者ip,dedecms实现显示访问者ip地址的办法
- zabbix远程mysql_zabbix action 执行远程命令
- HTML基础(part3)--常用标签之HTML标签
- websocket demo
- 如何基于Docker快速搭建Elasticsearch集群?
- 15款精美的 WordPress 电子商务网站模板
- 互联网运营数据分析(1):流量分析
- UITextfiled 的属性注释简介
- Oracle DML NOLOGGING
- 《Android移动应用开发》 复习题(一)
- c语言for死循环的作用,for循环死循环语句
- 秋天网站快速部署系统 一.入门使用
- 初二数学勾股定理,八年级上册思维导图简单清晰
- md格式 linux,Linux命令基本格式以及文件处理命令.md
- delphi res 使用
热门文章
- pop弹框 点击弹出外任意区域消失
- CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群
- js的Prototype属性 解释及常用方法
- 并行计算框架 Apache Hama
- JS操作iframe
- NumPy 高级索引
- 安装kashigari报错提示Consider using the `--user` option or check the permissions.
- log4j用法http://zengjinliang.javaeye.com/blog/171550
- 《因果学习周刊》第10期:ICLR2022中最新Causal Discovery相关论文介绍
- 斯坦福大学马超:探寻「隐式偏差」的完整理论框架