自从人工智能火起来之后,除了翻译从业者之外,人类一直期待翻译被人工智能替代的一天。
机器学习在翻译领域确实很有用,但是它也有一些弱点,或者说不那么容易解决的难题。让你印象最深刻的,大概是他们并不是在翻译句子或者文章,而是在翻译词语,即便现在翻译软件越发智能,但他们逐字逐句翻译的倾向依然存在。这是目前的翻译模型存在的一个明显弊端。
据 Techcrunch 报道,最近,谷歌的技术团队写了一篇非常详细的博文去分析该问题的细节,而且给出了自己的解决方案。这篇文章的作者是谷歌自然语言处理部门的 Jakob Uszkoreit。
我们先来看看下面这个这两个句子:
I arrived at the bank after crossing the street.
I arrived at the bank after crossing the river.
在英文里面,bank 作为名词,有银行、岸、储库和浅滩等意思,在上面两个句子中,它很有可能不是同一个意思。假若让算法顺着一字一句翻译下来,它很有可能会选了一个错的词——因为即便是人类,如果你不读到最后,你是不会知道 bank 在这里是什么意思的。
这种模棱两可的情况俯拾皆是。对于人类而言,我们读完之后可能会在脑子里面重写了一下句子,比如把前提条件或者先发生的事情放到前面去,也就是将 After 从句提前。如果机器也能这么机智,它就不仅仅是智能了,而是“人工”了。还有一种方法,就是让机器翻译完之后,自己检查一遍有没有错,如果就重新再翻译一遍,然后再检查——光是听就觉得,要将神经网络调成这种思维模式,它会变得很低效。
谷歌用的解决方法叫注意力机制(attention mechanism),其将这个机制内嵌在一套叫变形器(Transformer)的系统当中。系统会拿句子中的每一个单词跟其他单词对照,看看其中一个会不会影响到另一个——比如究竟是“他(he)”还是“她(she)”在讲话,或者像上面的句子中的“bank”究竟是什么意思。
氪星读者们可以借助以下动图来意会一下:
想到将这种方法用在翻译上的,不仅是谷歌,还有一家名为 DeepL 的翻译公司。他们的创始人同样非常专注于研究这个领域,而且也提到过谷歌这篇博文引用的论文。更重要的是,它可能比谷歌的还好用。
理科生可能会发现,这个方法可能会造成一个副作用。由于算法会让系统去检查每一个词跟其他几个词之间的关系强弱,并给强弱关系打分,现实中很可能会出现以下情况:
在上面的句子中,它(it)究竟是指动物(animal),还是指那条街(street)呢?好像两者都可以诶,原来生活中语意不明指代不明的情况经常存在。要知道答案,可能还要根据上下文,也许只让机器以句子为单位分析,还是不够。这让我莫名想起了一个段子:
在家的女朋友打电话给对正在加班的程序员说:“下班回家买一个西瓜。如果在路上看到有包子,买两个。”
逻辑超强的程序员果然在路上看到了有包子卖,结果他买回了两个西瓜……
看来人工智能跟程序员一样,要好好调教调教。