不就以前,我阅读了Structure-Invariant Testing for Machine Translation,这篇论文提出了一项关于机器翻译软件系统的鲁棒性问题的检测的研究。下面我将从几方面来介绍我所理解的一些内容。
Structure-Invariant Testing for Machine Translation的主要内容
SIT主要是对机器翻译软件系统的鲁棒性问题的检测的研究。
SIT基于蜕变测试中的一个蜕变关系“结构不变性”来展开。
SIT主要步骤是选用原句、生成相似句、从翻译软件获得结果、成分解析并数值化句子差异、根据数值依照设定阈值筛选并发现问题。
SIT的效率较高,19秒能够处理2k+句子。对于Google/Bing Translate有70%的准确度,准确度有提升的空间(也可能是阈值选用的原因)。
对几个关键问题的理解
- 为什么机器翻译软件存在鲁棒性问题?
- 什么是结构不变性?
- 为什么要引入结构不变性?
- 如何运用结构不变性生成在语义与语法相似的语句?
- 如何量化句子的差异以判定机器翻译软件系统是否出现鲁棒性问题?
- SIT有什么优越性?有什么不足?
- SIT能有什么应用?
为什么机器翻译软件存在鲁棒性问题?
机器翻译软件系统其核心模块的构建中普遍采用了深度学习有关的方法或者技术。深度学习模型中每层维度一般偏高,这就导致了一个不充分的训练模型在向量空间中关于不同标签区域的界定有很大几率模糊不清。当输入的值处于边界附近,而后稍稍加以微小改变后,它在某层某个解有概率在边界附近摇摆,导致模型最终输出剧烈变化。
什么是结构不变性?
结构不变性用我的话来说是使用某种语言的句子在进行一些特定的且细微的词单位的修改后,其语义与语法上的结构在转换成它的对应翻译后通常不变。该性质,在我看来是一种在经验与统计意义上的对于这方面(机器翻译软件系统相关)的研究的切入点。
为什么要引入结构不变性?
我认为,结构不变性输入蜕变性质之一。其引入本文对于软件的鲁棒性的测试中有两个目的:
一是因为自然语言的关系与变化纷繁复杂,难以得到一种通用的测试定理为基准进行测试。所以,现阶段通过该方法控制变量,得到类似这样的一个在经验或者统计意义上较为正确的立足点,展开测试研究。二是自然语言有关测试的测试用例难以人工构建,引入该性质能够方便我们利用现有的少量样本生成大量的测试用例。
如何运用结构不变性生成在语义与语法相似的语句?
在这块SIT使用了BERT模型。BERT模型我以前接触过,使用过,也研究过其相关原理。
SIT依靠BERT的大语料训练,以及训练时的遮罩与双向反馈学习等技术来抑制词语替换后整个句子语义改变或者不符合语法或者使用上的习惯等问题。SIT通过依靠BERT后增加一层轻量的Classifier,来辅助生成预备替换的词语的候选列表。
如何量化句子的差异以判定机器翻译软件系统是否出现鲁棒性问题?
SIT使用了三种方式来获得对于句子差异判定的数值化方法:字符串差异分析、成分解析树分析、依存解析树分析。SIT通过直接对翻译软件输出的结果进行以上三种分析,并分别对比它们的效果。我认为,从数据是上来看,三种句子差异分析均过于片面。作者可以在接下来的工作中探究综合这三种方式判定的方法。
SIT有什么优越性?有什么不足?
作者对于这方面进行了探讨,这里不再赘述。我概括地认为,SIT的优越性在于其能够具备一定的检测多种类型的错误(未译、过译、有误调整、逻辑不清)的能力。但是,我认为其对于测试用例的生成方式与错误量化、检测的方法略为粗糙,导致了实验类型下准确度并不高。其修复、阈值的设定需要人工的参与也是其另一大不足。
SIT能有什么应用?
SIT主要应用于对于运用了AI模型的机器翻译软件系统的鲁棒性测试。通过SIT的自动检测与人工对训练样本的修复,机器翻译软件的鲁棒性能够有所提升。