【Science】无监督式机器翻译,不需要人类干预和平行文本

简介: 两篇新的论文表明,神经网络可以在不需要平行文本的情况下学习翻译,这是一个令人惊讶的进步,它将可以让人们可以读懂更多语言的文档。

因为神经网络,即一种以人脑为启发的计算机算法,自动的语言翻译取得了长足的进步。但是训练这样的网络需要大量的数据:通过数以百万计逐句对应的翻译来展示人类是如何做到这一点的。现在,两篇新的论文表明,神经网络可以在不需要平行文本的情况下学习翻译,这是一个令人惊讶的进步,它将可以让人们可以读懂更多语言的文档。

“想象一下,你给一个人很多中文书籍和大量的阿拉伯语书籍,这些书之间没有重叠,但这个人必须学会把中文翻译成阿拉伯语。这似乎是不可能的,对吧?”其中一项研究的第一作者,西班牙圣塞巴斯蒂安巴斯克大学(UPV)计算机科学家Mikel Artetxe说。 “但是,我们证明了,计算机可以做到这一点。”

大多数机器学习(神经网络和其他计算机算法都从经验中学习),是“监督式的”。计算机首先进行猜测,然后接收正确的答案,并相应地调整其处理过程。如果只是在两种常见的语言,比如英语和法语的翻译中使用这一技术,效果还是不错的,因为许多文档都以这两种语言存在。但是,对于罕见的语言或者那些虽然常见,但是缺乏平行语料库的语言来说,它的运行就不是很好。

这两篇论文都已经提交到2018ICLR,但是还没经过同行评议。两篇论文都聚焦另一种方法——无监督式的机器学习。首先,两项研究都分别在没有人类的帮助下构建了双语词典,也就是说,没有人会反馈给机器它们的猜测是否正确。 这是可能的,因为不同语言在词的汇聚方式上有很强的相似性。例如,桌子和椅子这些词在各种语言中都会频繁地出现。因此,如果一台计算机将这些同时发生的事像一个巨大的道路地图集一样汇集起来,统一到“城市”这一词汇下,那么不同语言的地图其实是彼此相似的,只是名称不同而已。然后,计算机可以找出将另一个地图叠加在一起的最佳方式。

于是,你就有了一个双语字典。

这两篇使用非常相似的方法的新论文也可以在句子层面进行翻译。它们都使用两种训练策略,称为反向翻译和去噪(Back translation and Denoising)。在反向翻译中,先把一种语言的句子大致翻译成另一种语言,然后再翻译回原来的语言。如果翻译后的句子与最初的句子不一致,则调整神经网络再次翻译,直到变得越来越接近。

去噪与反向翻译类似,但不是从一种语言到另一种语言然后再回来,而是从一种语言(通过重新排列或删除单词)中添加噪声,并尝试将其翻译回最开始的语言。这些方法的组合,能够教给网络更深层次的语言结构。

但是两种技术之间还是有着细微的差异。 UPV的系统在训练期间更频繁地进行反向翻译。由位于宾夕法尼亚州匹兹堡的 Facebook 计算机科学家Guillaume Lample和合作者创建的另一个系统在翻译过程中则增加了一个额外的步骤。在将一个语言解码为另一种语言之前,这两个系统都将其从一种语言编码为更抽象的表示,但Facebook系统的研究员认为,其系统的“中间语言”是真正抽象的。 Artetxe和Lample都表示,他们可以通过应用对方论文的技巧来改善结果。

两篇论文之间唯一可以直接比较的结果是从以包含了3000万句子的英法文本数据库中进行的翻译,两个系统都在双语评估替补评分(用来衡量翻译的准确性)上的得分都在15分左右 。这个数字还比不上谷歌翻译。谷歌翻译使用有监督的方法,在同类测试上的得分是40多左右,人类水平是50分左右。但是,这些方法都比词对词的翻译要好。

作者说这些系统可以很容易地通过半监督的方式得到改进,也就是在他们的训练中增加几千个平行语料的句子。

除了能够在没有多个平行文本的语言之间进行翻译之外,Artetxe和Lample都表示,如果平行文本都是同一类型,比如新闻报道,那么它们的系统可以帮助像英文和法文这样常见的配对,但是您想要翻译新的领域的文本,像街头俚语或医学术语,“这还在初始期,“Artetxe的合作作者Eneko Agirre说, “我们只是刚刚开辟了一条新的研究方法,所以我们不知道它在哪里前进。”

在北京,微软的计算机科学家Di He说:“即使在没有人类监督的情况下,计算机也可以学会翻译,这让人感到震惊。”Di He自己的工作也都被这两篇论文引用。 Artetxe说,他和Lample的方法在一天之内先后上传到arXiv,这一事实令人惊讶。 “但同时,这也很好。这意味着这个方法真的是朝着正确的方向发展。”

原文发布时间为:2017-11-30
本文作者:弗格森
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号
原文链接:【Science】无监督式机器翻译,不需要人类干预和平行文本

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言(二)
算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言(二)
153 0
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言(一)
算法竞赛入门【码蹄集新手村600题】(MT1240-1260)C语言
161 0
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1220-1240)C语言(二)
算法竞赛入门【码蹄集新手村600题】(MT1220-1240)C语言(二)
106 0
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1200-1220)C语言(三)
算法竞赛入门【码蹄集新手村600题】(MT1200-1220)C语言(三)
192 1
|
7月前
|
机器学习/深度学习 算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1200-1220)C语言(一)
算法竞赛入门【码蹄集新手村600题】(MT1200-1220)C语言
71 1
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言(三)
算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言(三)
110 1
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言(二)
算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言(二)
115 1
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言(一)
算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言
97 1
算法竞赛入门【码蹄集新手村600题】(MT1180-1200)C语言(一)
|
7月前
|
算法 C语言
算法竞赛入门【码蹄集新手村600题】(MT1160-1180)C语言(一)
算法竞赛入门【码蹄集新手村600题】(MT1160-1180)C语言
129 0