TransRepair: Automatic Testing and Improvement of Machine Translation(机器翻译的自动化测试和改进)

不久前我阅读了Automatic Testing and Improvement of Machine Translation这篇论文,它提出了一种在软件测试领域下机器翻译模型的一种自动测试方法(成为TransRepair)。下面我将从几个方面对这篇论文所说的内容进行总结。

Automatic Testing and Improvement of Machine Translation

TransRepair是一种对于机器翻译软件的一致性问题进行自动检测与自动修复的方法。

TransRepair提供了黑盒与灰盒两种方式对机器翻译软件的一致性问题进行修复。

TransRepair的主要步骤概括为测试用例的生成、测试准则(Test Oracle)生成、自动修复过程。

TransRepair提供了较为清晰、严谨且细致的测试用例生成算法。运用了4种句子差异的量化方法,并分别进行对比。

TransRepair提供了较为完整清晰的实验方案与多样化的结果。

TransRepair运用了类似上篇结构一致性原理作为断言。

我对一些关键问题的理解

  1. 什么是一致性问题?
  2. TransRepair如何生成测试用例?
  3. TransRepair如何验证测试用例的输出句子对的具备有一致性?
  4. 如何评价TransRepair的实验设计?
  5. TransRepair的对待阈值的方法与SIT有何不同?
  6. 对于TransRepair的自动修复,什么是黑盒?什么是灰盒?
  7. TransRepair有什么优势?有什么不足?

什么是一致性问题?

我个人概括为机器翻译软件系统对于一组有只特定词语上的不同但整体语义与结构相似的句子,所产生的对应翻译句集合中的某一句或者某几句在其中的某一个或者几个部分出现的语义、结构不一致现象。

TransRepair如何生成测试用例?

TransRepair对输入的原句进行某些词的替换,形成突变句组。为了进这项操作,TransRepair使用了词向量模型。对于该模型,我在研究BERT模型的时候附带进行了相关的了解。对于词向量模型,我的个人理解是:词向量模型将一个词的语义在使用向量的方式量化表示并在映射在某个向量空间上。通过词向量模型,我们得以使用数学的方法对词的语义以及词之间的关系进行研究。TransRepair通过计算向量之间的距离获得此之间的关联性。为了避免词向量模型所遇到的未考虑“词个体之于句整体”的不足, TransRepair在寻找到候选词后,还要将其带入到句子中做成分分析,以确定句子的语义与语法是否发生较大改变。

TransRepair如何验证测试用例的输出句子对的具备有一致性?

首先是,TransRepair使用了一套算法来量化测试用例一致性,该算法首先使用Widiff进行字符串成分的差异性的比较分析。为了增强算法对于句子相似度量化的可靠性,TransRepair通过构造原句与翻译句中的所涉及的差异成分的部分删除集合,并逐个分别取两个集合元素之间的元素进行的相似度计算,取其中的最大相似值。这样能够使得将相似度的变化尽量与被替换的词有关,减少其他部分个别词的突变对量化与判别带来的影响。TransRepair使用了4种不同的的方式来进行相似度的量化,有部分方法上一篇SIT也用到了。

如何评价TransRepair的实验设计?

TransRepair的实验设计比较有特点,它采取先提出问题并对问题的解决方法进行必要的探讨,以后的实验围绕着这四个问题进行设计并给出合适形式的实验数据。问题的提出在逻辑上是相互关联且递进的,而非离散的。实验从多个角度论证了该方法的有效性,从检测的准确度、检测的有效性、修复的有效性、与人工方式的对比等等。实验数据的呈现均比较直观,易于理解。

TransRepair的对待阈值的方法与SIT有何不同?

TransRepair采用人工手段辅助与统计学分析的方式,对于一致性判别这种关键的阈值是通过机器小步遍历运算的方式获得统计上的最优的结果,其阈值的设定逻辑比较有说服力。SIT的阈值设定方式大部分依照经验给出,说服力与可操作性不强。

对于TransRepair的自动修复,什么是黑盒?什么是灰盒?

TransRepair的自动修复的黑盒与灰盒的区别在于其自动修复算法中对于最佳的用于的修复的样例的选用的排序算法所用到的排序标签、修复的层的结构上。黑盒所对应的例子是Google Translate,由于该软件并未开源,其对于输入输出的相关参数均未知。所以只能对其输入与输出本身或者在其输入前或者输出后做文章。灰盒所对应的例子是Transformer(这个模型我以前接触、了解过),它的源码与训练集均可以获得,所以我们能获得其对于所产生结果的可能性的把握,因为这是神经网络本身输出的附带参数之一。我们也能在训练集甚至模型结构上对该模型进行修复操作。

TransRepair有什么优势?有什么不足?

TransRepair具有对于一致性问题自动检测、自动修复的优势。其方法过程与数据、可行度、准确度、可复现度较高,这与其实现方法定义准确,且其对于过程中使用到的现存各种方法缺陷与不足的考虑与弥补息息相关。TransRepair不足在于其效率,还有其方法的有效性仅限于一致性问题。