简略阅读《Machine Translation Testing via Pathological Invariance》

Machine Translation Testing via Pathological Invariance
 
ABSTRACT
 
随着深度神经网络性能的提高,机器翻译软件已经深入到我们的日常生活中。然而,机器翻译软件经常返回错误的翻译,这可能会导致有害的后果,如经济损失和政治冲突。此外,由于底层神经模型的复杂性,测试机器翻译系统提出了新的挑战。为了解决这个问题,我们引入了一种叫做PatInv的新方法。PatInv背后的主要直觉是,不同意义的句子不应该有相同的翻译。在这一总体思想下,我们提供了PatInv的两种实现方法:(1)使用掩码语言模型替换句子中的一个词;(2)根据句子的成分结构从句子中删除一个词或短语。然后,我们测试返回的翻译对于原始和修改的句子是否相同。我们使用PatInv对谷歌Translate和Bing Microsoft Translator进行了200个英语句子的测试。考虑两种语言设置:英语北印度语(En-Hi)和英语汉语(En-Zh)。结果表明,PatInv可以在谷歌Translate中准确地找到308个错误翻译,在Bing Microsoft Translator中准确地找到223个错误翻译,其中大部分是目前最先进的方法无法找到的。
 
1 INTRODUCTION
 
由于最近机器翻译软件翻译质量的提高,许多人已经开始在日常生活中依赖这种技术。例如,人们经常阅读来自其他国家的政治新闻或文章,访问有不同语言内容的网站。根据[73],2016年,谷歌Translate[2]拥有5亿用户,每天翻译超过1000亿单词。机器翻译系统之所以能得到如此广泛的应用,很大程度上是由于深度神经网络的出现,它现在常常是现代机器翻译软件的核心组件。神经机器翻译(NMT)模型正变得和人类翻译一样好。许多最近的NMT系统在质量分数(由谷歌定义)[77]和人类平等(由微软定义)[29]方面正在接近人类水平的表现。尽管最近有了这些改进,NMT系统并不像人们期望的那样可靠。深层神经网络是脆弱的;通常,当一个神经网络是根据本质上不同于它被训练来建模的例子进行评估时,它的表现并不好[6]。NMT模型也不例外;当对输入进行反向操作时,它们会产生错误的输出,比如句子中的一些字母大小写或注入语法错误(例如,I are studying)。然而,句子的语法错误并不是欺骗NMT模型的关键。很多情况下,NMT模型在语法和语义正确的输入中返回错误的翻译,例如微信,一个月活跃用户超过10亿的messenger应用程序[88]。当用户遇到错误的翻译时,可能会产生严重的有害后果,如经济损失、政治冲突、医疗误诊、社会问题或人身安全威胁等[19、47、54、55]。这些副作用促使我们需要创建系统来确保机器翻译软件的健壮性。
 
然而,测试NMT模型是非常困难的。首先,测试深度学习模型通常与测试传统软件有很大的不同,在传统软件中,系统核心概念或算法显示在源代码中。相反,神经网络的输出很大程度上依赖于它在训练过程中优化过的数百万个参数,使得这些模型本质上是黑盒子。第二,最近的人工智能(AI)软件的测试方法,机器翻译软件是一个子集,主要针对具有少量潜在输出的模型,如分类器。相比之下,简单地枚举大多数NMT模型的可能输出是一个棘手的问题[56],这使得机器翻译系统难以置信地难以测试。目前的自动评价标准是BLEU[58],它是通过比较系统输出的单词序列1和一组参考质量翻译来计算的。BLEU的一个主要缺点是它不能真正理解句子的意思。此外,有必要为机器翻译系统提供准确的参考翻译,以确定这样的度量,这在资源有限的许多情况下是禁止的。显然,需要有效的自动化系统来测试机器翻译软件。本文提出了一种新的测试方法PatInv,它的主要直觉是不同意义的句子不应该有相同的翻译。我们使用这种直觉来制定方法,自动产生相似的句子,但不同的意义。特别地,PatInv通过两种方法生成不同意义的句子:1)用非同义词替换句子中的一个词,2)从句子中移除有意义的词或短语。将原句和新生成的句子输入被测翻译系统;如果翻译完全相同,我们将其报告为可疑问题。我们在PatInv的实际实现中使用了一个基于BERT[20]的掩码语言模型来扰动句子中的单词,并使用一个单元解析器来识别核心单词和短语。然后使用同义词库[3]、WordsAPI[4]和NLTK库[10]来过滤同义词和语法不正确的句子。
 
为了评估PatInv的有效性,我们使用它来测试谷歌Translate和Bing Microsoft Translator的200句英语句子,这些句子来自于He等人发布的两篇文章类别(政治和商业)作为输入。没有使用可选的过滤步骤(即通过句子嵌入过滤,第3.2.1节),PatInv成功报告了452个病理不变量,平均精度为56.6%。当采用这种可选的过滤机制时,PatInv可以报告28个病理不变量,准确率为100%。表1显示了PatInv发现的一些错误翻译。我们发现,由于其概念上的新颖性,PatInv检测到一组独特的错误,其他方法没有发现。所有报道的病理不变量和源代码都已经发布[65]。本文的主要贡献如下
 
•我们引入了一种新的、广泛适用的黑盒方法来验证机器翻译软件。
•我们描述了一个使用BERT生成语法相似但语义不同的句子的实际实现,使用各种过滤器来避免生成无效的测试用例。
•我们对谷歌翻译和Bing微软翻译的200个句子进行了评估,有两个翻译设置。
•我们在谷歌翻译中成功找到308个错误的翻译,在Bing微软翻译中成功找到223个错误的翻译,并且准确率很高,其中大部分是目前最先进的翻译无法找到的
 
3 APPROACH AND IMPLEMENTATION
 
本节讨论PatInv的高级思想,并提供两种实现(PatInv- replace和PatInv- remove)。回想一下PatInv背后的主要直觉是不同意义的句子不应该有相同的翻译。因此,我们发现这样的问题,两个句子有不同的意义,但结果相同的翻译下的模型被测试。PatInv的输入是一个未标记的单语句子列表,而输出是一个可疑问题列表。对于每个输入句子,要么不检测到任何问题,要么返回一个可疑问题列表。一个可疑的问题包括1)原始句子2)一个生成的句子(语义不同)和3)它们的共享翻译。翻译错误有三种类型会导致问题:(1)原句翻译错误(2)生成的句子翻译错误(3)两个句子都翻译错误。
 
图1显示了两种实现的PatInv概述;我们使用来自数据集的源句子作为示例输入。综上所述,PatInv执行了以下四个步骤
 
(1)生成句法相似的句子。对于每个没有标记的句子,我们通过修改句子中的一个单词或短语来生成一个句法上相似的句子列表。
(2)通过句法和语义信息进行过滤。我们过滤掉那些新生成的句子与原句子具有相同含义的测试用例
(3)收集目标句。我们将原始句子和新生成的句子输入待测机器翻译系统,并收集它们的目标句子(即译文)。
(4)检测翻译错误。将新生成句子的翻译与原句子的翻译进行比较。如果任何翻译与原句匹配,就会被认为是一个潜在的问题,可能包含错误的翻译。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值