Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有
分类:G慧生活

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

这是最近几年非常流行的一个句子,试试看能不能读懂——

“Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae.”

虽然大部分单字都是拼写错误的,但似乎并不会影响我们理解它的意思。这说明:人在理解语言时是很强的,文本中即使漏掉一两个字母或者拼写错误,很多时候都不会影响人的阅读。

但对机器翻译系统来说,这些文本就几乎是不可理喻的了。甚至!一不小心还会造成恶劣的影响。近日在以色列就有一个案例,因为机器翻译的错误,一名建筑工人在他 facebook 上发了条状态后,「成功」进了局。

故事大概就是,这名建筑工人 10 月 15 日在自己的 facebook 上发了一条状态:“يصبحهم”并配了一张照片:

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

照片中他斜靠在一辆推土机上。这条状态的原意是“good morning”,但 facebook 的 MT 却将它和“يؤذيهم”混淆了,两者只差一个字母,但后者在希伯来语中的意思却是“attack them”。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

以色列警方此刻正监管网络来找一群称为“lone-wolf”的恐怖分子,所以立马就注意到了这条状态。

推土机+「宰了他们」,警方怀疑这个人很有可能要进行恐怖袭击,于是立即就逮捕了他。审问几个小时后才发现原来是机器翻译的乌龙。

一、噪声对机器翻译影响有多大?

在我们的文本当中,拼写错误是很常见的现象,而在自然语言处理的各种神经网路的训练系统中却并没有一个明确的方案来解决这类问题。大家能够抱希望的方式就是,通过在训练数据中引入噪声来减小翻译过程中噪声带来的破坏。

但是在训练数据集中引入噪声或者不引入噪声会带来多大的影响呢?在不同的语言机器翻译训练中引入噪声结果是否一致呢?似乎目前并没有对这一问题严格的研究。

最近来自 MIT 的 Yonatan Belinkov 和来自华盛顿大学的 Yonatan Bisk 就此问题在 arXiv 上发表了一篇有意思的论文。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

论文中,他们利用多种噪声讨论了目前神经网路机器翻译的脆弱性,并提出两种增强翻译系统的方法:结构不变词表示和基于噪声文本的训练。他们发现一种基于字母卷积神经网路的 charCNN 模型在多种噪声中表现良好。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

BLEU 为机器翻译结果与人工翻译结果对比值。可以看到随着文本中加入噪声的比例增加,机器翻译的结果快速下降。

二、模型

作者选择了三种不同的神经机器翻译模型以做对比,分别为:

1、char2char。 这是一个 seq-2-seq 的模型,它有一个複杂的捲积编码器、highway、循环层以及一个标準的循环解码器。细节参见 Lee 等人的研究。这个模型在德-英、捷克-英之间的语言对翻译上表现非常好。

2、Nematus。 这也是一个 seq-2-seq 的模型,在去年的 WMT 和 IWSLT 上是一种较为流行的 NMT 工具包。

3、charCNN。 作者用词表示训练了一个基于 character 卷积神经网路的 seq-2-seq 的模型。这个模型保留了一个单字的概念,能够学习一个依赖于字符的词表示。因为它可以学习词的形态讯息表示,所以这个模型在形态丰富的语言上表现非常好。

三、数据

数据集来源:作者选用了 TED 为 IWSLT 2016 準备的测试数据。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

噪声来源:分为自然噪声和人工噪声。 

1、自然噪声

由于上面的数据集没有带有自然噪声的平行语料库,

因此作者选择了其他的可用的语料库,例如:

法语: Max&Wisniewski 在 2010 年从 Wikipedia 的编辑历史中收集的「维基百科更正和解释语料库」,在本文中仅仅提取了单字更正的数据。

德语: 由 RWSE 维基百科修订数据集和 MERLIN 语言学习者语料库。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有
捷克语: 数据来源于非母语者手动注释的散文。
2、人工噪声

作者生成人工噪声的方法有四种,分别为交换、中间随机、完全随机和字母错误。

交换: 对一个字母个数大于 4 的单字,除了第一个和最后一个字母不变外,随机交换中间的任两个字母一次。

中间随机: 对一个字母个数大于 4 的单字,除了第一个和最后一个字母不变外,随机排列中间所有的字母。

完全随机: 所有单字的字母随机排列。

字母错误: 在单字中随机选取一个字母,用键盘中和它临近的字母替换

四、乾净文本训练翻译模型

作者首先测试了用乾净文本训练出的模型是否能够经受住噪声的考验。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

透过上表的结果,我们可以看出所有模型在有噪声BLEU 值都会显着下降。

或许透过下面这个例子,可以更明显地感受到人类理解噪声文本的能力与机器翻译的能力有多大差别。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

输入文本是乱七八糟的德语文本,但人类翻译仍然能够根据文本猜测到意思,而目前几个优秀的机器翻译模型则表现很差。

五、两种方法改进模型1、meanChar 模型

从上面的结果我们可以看到,三种 NMT 模型对单词的结构都很敏感。Char2char 和 charCNN 模型在字符序列上都有捲积层用来捕获字符 n-gram;Nematus 模型则基于由 BPE 获得的 sub-word 单元。因此所有这些模型对字符乱置产生的噪声都会敏感。

那幺可以透过对这样的噪声添加不变性来增强模型吗?

最简单的方法就是将一个单词的 embedding 的平均值作为这个单字的表示。作者将这种模型称之为 meanChar 模型,也即先将单词表示为一个平均 embedding 的单词表示,然后在使用例如 charCNN 模型的字级编码器。

很显然,根据定义 meanChar 模型对字符乱置不再敏感,但是对其

他类型的噪声仍然敏感。

用 Vanilla 文本训练 meanChar 模型,然后用噪声文本测试。结果如下表第一行所示,可以看出的是,meanChar 模型用在法语和德语中对 Scrambled 文本表现提高了 7 个百分点,但捷克语表现很糟糕,这可能是由于其语言複杂的形态。

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有
2、黑箱对抗训练

为了增强模型,作者採用了黑箱对抗训练的方法,也即用带噪声文本训练翻译模型。

首先用如上表,用噪声文本训练在某些语言上表现良好,但是不具有稳定的提高。这也很明显,meanChar 模型并不一定能解决 key 或者 Nat 噪声的问题。

那幺如果我们用更複杂的 charCNN 模型就会提高模型对不同种类噪声吗?作者将用于训练的 Scr 文本拆开来训练模型—

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有

发现:

1. 儘管模型在不同的噪声下仍然表现不一,但整体平均的表现有所提升。

2. 用 Rand 数据训练出的模型,对 Swap 和 Mid 文本测试结果都表现良好;而反之则不成立。这说明在训练数据中更多的噪声能够提高模型的鲁棒性。

3. 只有用 Nat 数据集来训练,才能提高 Nat 数据集测试的鲁棒性。这个结果表明了计算模型和人类的表现之间的一个重要区别——在学习语言时,人类并没有明确地暴露在噪声样本中。

4. 作者将三种噪声混合起来训练模型,发现虽然针对每一个样本的测试都表现略差,但整体上的鲁棒性却是最高的,而且对于多种噪声具有普遍性。

六、对结果的分析

从上面的结果可以看出,多种噪声同时训练 charCNN 的模型的稳定性更好。But why?

作者猜测可能是不同的捲积滤波器在不同种类的噪声中学到了稳定性。一个卷积滤波器原则上可以通过採用相等或接近相等的权重来捕获平均的操作。

为了检验这个猜测,他们分析了分别用 Rand 数据和 Rand+Key+Nat 数据训练的两个 charCNN 模型学习到的权重。针对每个模型,他们计算了 1000 个过滤器中每一个过滤器维度上的方差,然后对这些变量做以平均。结果如下图

Facebook翻译错误导致一名建筑工人被抓,机器翻译到底有
 

从图上可以看出,Rand 模型学到的权重方差要远小于混合噪声模型学到的权重方差。换句话说,混合噪声训练的模型学习了更多不同的权重,除了平均表示外,还有助于捕捉形态属性。

而另一方面,混合噪声模型中方差的变化则较大,表明不同字符嵌入维度的滤波器之间存在较大的差异。相比之下 Rand 模型中方差的变化就接近零。

另一方面,我们还看到合成噪声训练的模型没有一个在 Nat 数据的测试中表现较好的。这表明自然噪声合成噪声有很大的不同。作者人工地检测了德语的 Nat 数据集中大约 40 个样本后,发现在 Nat 数据集中最常见的噪声来源是语言中的语音或音韵错误和字母遗漏。这些在合成噪声中并没有,所以这表明要生成更好合成噪声可能需要更多关于音素以及相应语言的知识。

七、总结

让我们来看一看用 Rand+key+Nat 的 charCNN 模型来翻译一下前面那个混乱的德语翻译的结果吧:

“According to a study of Cambridge University, it doesn't matter which technology in a word is going to get the letters in a word that is the only important thing for the first and last letter.”

当然,其实他们的结果并不完美,但非常值得借鑒。

如作者所说:我们的目的有二:

1. 作为一个开始,让大家去谈论神经网络翻译的鲁棒性训练和建模技巧;

2. 促进大家去创造出更多更好的人工噪声,以应用到新的语言和任务中。

上一篇: 下一篇:
猜你喜欢
热门排行
精彩图文