AI原来还可以在无监督的情况下进行双语翻译?

由于神经网络技术的发展,翻译自动化已经取得了长足的进步。然而传统上,训练这样的神经网络需要大量数据:通过数百万的逐句对照来展示人工如何翻译。两篇最新论文表明,在不需要平行文本(即同一段文本的不同语言版本)的情况下,神经网络也可以学会翻译。这样的进步可以帮助我们阅读更多不同语言的文档。

西班牙巴斯克大学计算机科学家Mikel Artetxe表示:“请想象一下,你给一个人大量的中文图书和大量的阿拉伯文图书,两者之间没有任何重叠,随后让这个人学习把中文翻译成阿拉伯文。这似乎是不可能的,对吧?但我们已经证明,计算机可以做到这点。”

大部分的机器学习系统是“受监督”的。计算机做出猜测并对比正确答案,随后调整流程。这种方法在训练计算机翻译英文和法文时效果很好,因为许多文档同时有这两种语言的版本。但对于小语种,或是缺乏平行文本的语言,这种方法就不是太好。这两篇论文已经提交至明年的ICLR大会,但还没有经过同行评审。论文专注于另一种方法:无监督机器学习。

首先,计算机在没有人工帮助的情况下创建双语词典。这是有可能的,因为语言的单词集群方式有很强的相似性。例如,“桌子”和“椅子”这样的单词在所有语言中都会经常同时出现。因此,如果计算机将这些常常共同出现的单词匹配起来,那么不同语言的图谱彼此之间很相像,仅仅只是叫法不同。计算机可以找到最佳方式,将一种叫法匹配至另一种。这样,你就有了一本双语词典。新论文提出的方法类似,但可以在句子层面进行翻译。

论文中使用了两种训练策略,分别为反向翻译和去噪声。在反向翻译训练中,一种语言的句子被粗略翻译成另一种,随后再反向翻译回来。如果反向翻译的句子与原始句子不同,那么神经网络就会调整,在下次翻译时力求让结果更接近。去噪声方法与反向翻译类似,但并不是将一个句子来回翻译,而是向句子中插入“噪声”(打乱单词或插入单词),随后再将翻译后的句子再翻译回来。通过两种方法的结合,神经网络就可以了解语言的更深层结构。

两篇论文的技术之间存在些许差异。在训练过程中,巴斯克大学的系统会更频繁地进行反向翻译。由Facebook计算机科学家Guillaume Lample及其同事设计的另一种系统在翻译过程中则加入了额外的步骤。在翻译至其他语言之前,两个系统都可以将原始语言的句子编码为更抽象的表述。不过,Facebook的系统会验证,中间的过渡“语言”是真正抽象化的。Artetxe和Lample均表示,通过应用对方论文中的技术,结果有所改善。

两篇论文提供了唯一的直接可比结果,即3000万句英文和法文之间的双向翻译。两种方法在两个方向上取得的双语评价演习得分(用来衡量翻译的准确性)均约为15分,与谷歌翻译相比要低。谷歌翻译采用了受监督的方法,得分约为40分。而人工翻译的得分通常超过50分。

不过,这要比逐词翻译的结果要好。论文作者表示,通过半监督方法,即在训练中加入数千个平行句子,系统的优化并不难。Artetxe和Lample表示,除了用于无平行文本的翻译之外,他们的系统还有助于语言的匹配,例如英文和法文之间的匹配。例如,现有材料很可能是一条新闻的不同语言版本,而配对结果可以用于新的领域,例如街头俚语或医学术语。Artetxe论文的合作者Eneko Agirre表示:“这还是在起步阶段,我们刚刚开辟了新的研究方向,因此还不知道未来究竟会通往何处。”

微软亚洲研究院科学家He Di的研究对这两篇论文产生了影响。他表示:“计算机可以在没有人工监督的情况下学会翻译,这令人震惊。”Artetxe表示,他提出的方法与Lample的方法非常类似,这令人惊讶。“但与此同时,这也是件好事。这意味着,这个方法确实是正确的方向。”这两篇论文同一天上传至arXiv

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1461
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

1092
来自专栏菩提树下的杨过

遍历文件夹所有文件(示例)

//要引用 using System.Collections.Specialized; public StringCollection GetAllFile...

2259
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

1172
来自专栏飞扬的花生

日志帮助类

 1.代码 using System; using System.Collections.Generic; using System.Linq; using S...

2039
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

2291
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2970
来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5885
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

2083
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

22210

扫码关注云+社区