英文原文:Google’s Transformer solves a tricky problem in machine translation
大数据文摘作品,作者 Devin Coldewey,编译白丁,大饼,钱天培。
I arrived at the bank after crossing the street.
I arrived at the bank after crossing the river.
拿到这两句话,你会怎么翻译呢?你觉得机器翻译又会怎么处理呢?
机器翻译的缺点
机器翻译虽然是一大利器,但也有一些缺点,比如说:按照“一个字一个字”顺序翻译的机器翻译模型往往会导致严重错误发生。
谷歌在其研究日志(Research blog)中发表了一篇趣味十足的文章,详细分析了这个问题并给出解决方案。
谷歌自然语言处理部门的 Jakob Uszkoreit 用以下两句话阐释了这个问题:
I arrived at the bank after crossing the street.
过了这条街,就到银行了。
I arrived at the bank after crossing the river.
过了这条河,就到对岸了。
(译者加注:“bank”为多义词,兼有“银行”和“河岸”之意。)
显而易见,“bank”一词在两句话中含义截然不同,但是后台算法很容易处理错 -因为不读完整个句子就无法判定句中“bank”的确切含义。类似这种多义词的现象比比皆是。
如果让我去翻译这句话,我一眼就能看出这两句话中”bank“的区别,但这对翻译系统来说就没那么简单了。如果修改神经网络,使其翻译完一句话后再检查是否有误,有问题的话就再重来一遍,就未免效率太低。
为此,谷歌提出了在转换器(Transformer)中建立关注机制(attention mechanism)作为解决方案。
该机制会将单词逐一与句中其他单词进行比对,并检查是否会影响其他词的词义 - 比如,检查说话人是“他”还是“她”,或者像“bank”这样的多义词在句中的确切含义。
在构建译文的过程中,关注机制会把句子中的每个单词与所有其他单词逐一比对。下图在一定程度上说明了这个比对过程的工作机制。
有意思的是,谷歌的方法也让我们有机会一窥其系统的内部逻辑:因为转换器(Transformer)会为每个单词与其他词的关系按对逐一打分,所以你可以看到它认为哪些词是相关的,或至少可能相关的:
(译者注:以上两句话的意思分别是:
那只动物没有穿过街道因为它太累了。
那只动物没有穿过街道因为它太宽了。
“it”这个单词在两句话里面分别指代“动物”和“街道”。)
酷吧?我觉得超酷啊。这是另一种多义词的情形:“it”既可能指代街道或也可能指代动物,而只有读到最后一个单词(“累”或者“宽”)才能明白到底指代的是什么。我们人类自动就能分辨,而机器仍需练习。看起来谷歌的这一系统已经学得相当好了。
最后,如果你觉得“关注机制”这个词眼熟,那你之前一定已经读过了 Techcrunch 对 DeepL 的报道。
DeepL 是一家机器翻译的初创公司。在报道中公司联合创始人表示他们致力于关注机制,甚至表示谷歌的日志是基于《关注就是一切》(Attention Is All You Need)这篇文章的,谷歌作了一定的修改。
然而,这位联合创始人还认为他们公司的办法非常有效 —— 甚至比谷歌的还好用。
如果你想进一步了解“关注机制”,不妨阅读 DeepL 发表的论文 Attention Is All You Need(https://arxiv.org/abs/1706.03762)。