F8 2017 | 技术负责人为你解析 Facebook 神经机器翻译

该讲座主题为 Facebook 机器翻译的两代架构以及技术挑战。

雷锋网消息:在昨日的 F8 会场,该讲座吸引了众多开发者到场,主讲者是 Facebook 语言翻译部门技术负责人 Necip Fazil Ayan。

Necip Fazil Ayan 首先介绍了 Facebook 翻译业务的使命和愿景,以及对机器翻译的应用。

使命与愿景

Necip Fazil Ayan:Facebook 希望推动建立一个真正的全球社区,即“连接世界”:每个人都能与全世界任意国家的人、任意语言内容自如交互。翻译,便是其中最关键的一环。

使命:通过打破语言障碍,让世界更开放、更紧密联结。

愿景:每一名用户都能用其语言无障碍的使用 Facebook。

Facebook 是怎么应用机器翻译的

有两种途径。

  1. “See translation”:当 Facebook 系统判断用户无法理解某个帖子时,便提供“翻译”选项。

    系统判断的依据很简单:对贴子的语言识别和对用户的语言预测。

  2. “Auto translation”: 当系统判断翻译质量很高时,会自动显示翻译结果,而不是原始语言。 这背后,是 Facebook 对平台上的每一条翻译都计算 confidence score(置信度),并据此预估翻译质量。这靠另一个单独的机器学习模型来实现。

Facebook 机器翻译的两代架构

目前,Facebook 绝大部分的翻译系统,仍是基于 phrase-based machine translation 架构,即“基于短语的机器翻译”。

在过去的十到十五年中,该架构被行业广泛采用。但在最近的几年,Facebook 正转向 neural net machine translation 架构,即神经网络机器翻译。据雷锋网了解,去年 6 月,Facebook 部署了第一个基于神经机器翻译的产品——德译英;拉开了从“基于短语”切换到神经机器翻译的大幕。至今,已有 15 个不同语言的翻译系统,迁移到了新的机器翻译架构;Facebook 平台上,超过 50% 的翻译出自基于神经网络的系统。

那么,为什么 Facebook 要转移至神经网络机器翻译?或者说,新架构的优点是什么?

首先,Necip Fazil Ayan 表示,神经机器翻译为 Facebook 带来翻译质量的大幅提升:

精确度(是否清楚表达了原句的意思)提升 20%,通顺程度(翻译语句听起来是否正常)提升 24%。

这是两代架构的翻译结果对比(土耳其语到英语)

左边是基于短语的机器翻译,大多数词语的意思是对的,但顺序不对劲。右边是神经网络机器翻译,大多数词语的意思也是对的,但语序更加自然。翻译出来的句子更容易理解、更通顺。

底层发生了什么?

我先谈谈基于短语的机器翻译。该系统学习词语之间的对应关系,然后把这些对应关系泛化到成串词语上,即短语。这些短语是从海量的句子翻译(原句+译句)中得来。给定一个新句子,该系统会根据已学到的短语翻译,试图找出一个最优分段方案。

短语越长,我们越不担心重新排列词序问题(local reordering)。数据越多,学习长短语的效果越好。

基于短语架构机器翻译的缺陷:

  • 缺乏语境。短语一般最多只有 7 到 10 个单词的长度
  • 短语的重新排序问题很大,尤其对于词序差异很大的语言,比如英语和土耳其语
  • 其统计模型难以扩展新功能
  • 泛化效果不好,非常依赖学习过的数据

再来看一看神经网络机器翻译系统。

神经机器翻译系统会考虑原句的整个语境,以及当次翻译过程中此前翻译出的所有内容。它的优点有:

  • 支持大段的语序重排(long distance reordering)
  • 连续、丰富的表达。我们把词语映射到矢量表示(词向量)。它们不再是独立的词语,而是一维空间中的点。不同点之间的距离,可被用来代表不同词语之间的语义相似性
  • 神经网络的扩展性非常好。我们可以把不同来源的信息整合进去,使我们得以很容易的把不同类型的表达结合到一起
  • 更通顺

至于为什么更多语境能起到积极作用,我想多解释一下:这里的任务,是根据语境预测下一个词语。当语境信息越丰富,预测就更准确。借助递归神经网络(RNN),我们的语言建模能力获得了无限制的提升。通过更大的视野,我们可以做出更好的决策。

对于翻译系统本身,我们也是用 RNN with attention。我们的架构包含编码器以及解码器。编码器的作用是把原语句转化为矢量表达;随后,解码器把后者转为另一个句子,这就是机器翻译的过程。

对于原语句,我们用的是一个双向的神经网络。这意味着,我们既利用了前文中的词语,也用到了后文的词语。所以,编码器的输出,是一个利用了前后文所有语境的、对原句的表示。目标句子也使用 RNN 来生成。在生成过程中的每一步,我们均充分利用了此前生成的词语,以及语境的某部分。重复这一步骤,我们便得到了最终的机器翻译结果。

挑战

1. 网络语言

首先是网络语言,我们称之为“Facebook 语言”。人们在社交网络上会使用俚语、造出来的动词,以及奇奇怪怪的拼写;还有用标点符号表情的,这直接让 Facebook 的语言识别和机器翻译系统失灵。

解决该问题的一个方案,被我们成为 sub-word units。

神经网络受到特定词汇量的限制,通常是训练阶段遇到过的词汇。对某些语言而言,这造成了非常大的麻烦,尤其是那些可以对现有词汇添加新成分、以生成一个新词汇的语言,比如土耳其语。由于这一点,我们不可能知道一个高质量翻译所需的全部词汇。

解决办法是把词汇分拆为更小的、更凝聚的单元。举个例子,可把单词 being、moving 拆成动词 +ing 的形式。这种方式,可用 sub-word 模型来生成新动词,比如 +ing 生成其它动词的进行时。对于 low resource 语言(LRC),这大幅提升了翻译效果,并且还能对非正式语言进行标准化。

2. low resource 语言

另一项主要挑战是 low resource 语言。正如我提到了,Facebook 支持超过 45 种语言,超过 2000 种翻译方向。训练一个翻译系统需要大量数据,不幸的是,对于许多语言我们并没有很多数据。

一个解决方案被我们成为 back translation。我们一般使用平行数据(parallel data)来训练这些系统。当我们只有少量平行数据,我们会用它来创建一个小型的翻译系统。另外,对于多门语言,我们有许多单语言数据(monolingual data),即只以一门语言表示的数据。所以我们把该数据填入这一小型机器翻译系统,然后获得翻译。很显然,翻译结果并不完美。

但把它们结合起来,我们可以训练更大的机器翻译系统。这种方法十分吸引人的一点,是它有两个翻译方向:它不仅生成英语到土耳其语的翻译系统,还能生成土耳其语到英语的翻译。另外,由于目标语句基于单语言数据,它会更加通顺。

3. 大规模部署

一项比较艰巨的挑战,是大规模部署机器翻译以及应用研究。我们需要训练非常多的翻译系统,并且快速地训练、快速地解码、快速地生成翻译。

一项加速计算过程的方案,名为 online vocabulary reduction (在线词汇缩减)。正如我之前提到的,在神经网络架构中,目标词汇是受限制的。词汇量越大,计算成本越高。

于是我们尽可能减小 output projection layer 的规模。

当你需要翻译一个特定语句,你可以观察句子中所有词汇的出现频率、排在最前的翻译选项,以对词汇进行筛选。

在这个例子中,你可以在活跃词汇库中忽略 and 和 move,因为对于该翻译,它们并没有对应到任意一个词汇。这使得计算时间大幅缩短,而并不牺牲翻译质量。

最后,我想说我们实现了许多提升,但仍有很长的路要走。对于 low resource 语言,我们需要做得更好,这是一个非常艰巨的挑战。我们需要开始翻译图像和视频。我们需要找到更高效地使用图像、视频中语境信息的方法。我们需要开发出私人订制的、符合语境的翻译系统。我对加入这趟“连接世界”的旅程感到万分激动并自豪。

谢谢。

本文作者:三川

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-08-22 15:16:46

F8 2017 | 技术负责人为你解析 Facebook 神经机器翻译的相关文章

jQuery技术内幕:深入解析jQuery架构设计与实现原理1

jQuery技术内幕:深入解析jQuery架构设计与实现原理 高 云 著 图书在版编目(CIP)数据 jQuery技术内幕:深入解析jQuery架构设计与实现原理 / 高云著. -北京:机械工业出版社,2013.11 ISBN 978-7-111-44082-6 I. j- II. 高- III. JAVA语言-程序设计 IV. TP312 中国版本图书馆CIP数据核字(2013)第221662号 版权所有·侵权必究 封底无防伪标均为盗版 本书法律顾问 北京市展达律师事务所     本书由阿里巴

[杭州线下活动]Techday44期--飞天技术汇-ECS实例解析与大数据投融资

ECS产品技术团队,针对弹性计算产品的深度解析~[杭州] [Techday44期]飞天技术汇-ECS实例解析与大数据投融资云栖TechDay查看详情活动介绍:时 间:12月14日 13:00-17:00地 点:杭州市良睦路1399号梦想小镇互联网村2号活动室13:00-13:30 签到13:30-14:30 议题:<ECS最有性价比实例解析> 讲师:胡晓博 (阿里云产品专家)14:30-15:30 议题:<云端高可靠.高性能企业级应用最佳实践>讲师:王志坤 (阿里云高级产品专家)1

4种后门技术知识的详细解析

以下的文章主要是介绍4种后门技术知识的讲解,曾经饱受木马.后门(以下统称后门)侵害的人们都不会忘记机器被破坏后的惨不忍睹的状况,于是人们展开了积极的防御工作,从补丁到防火墙,恨不得连网线都加个验证器,在多种多样的防御手法夹攻下.....一大批后门倒下了,菜鸟们也不用提心吊胆上网了-- 可是后门会因此罢休吗?答案当然是否定的.君不见,在风平浪静的陆地下,一批新的后门正在暗渡陈仓--1.反客为主的入侵者黑客A连接上了网络,却不见他有任何行动,他在干什么呢?我们只能看见他燃起一支烟,似乎在发呆--过了

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.8 静态属性和方法

2.8 静态属性和方法 在构造jQuery对象模块中还定义了一些重要的静态属性和方法,它们是其他模块实现的基础.其整体源码结构如代码清单2-3所示. 代码清单2-3 静态属性和方法 388 jQuery.extend({ 389     noConflict: function( deep ) {}, 402     isReady: false, 406     readyWait: 1, 409     holdReady: function( hold ) {}, 418     read

【14点正式开始】技术与架构,解析如何将大数据最快落地到实践

3月9日14点,业内首个结合技术与应用的在线大数据技术峰会即将展开,届时6位阿里技术大咖与4位行业资深实践者将从技术与业务两个方面,与大家探讨大数据如何最快落地到实践.较为有看点的是: 最深入的实践:本次在线峰会上,6个阿里规模的大数据实践将被深入分享,包括大数据平台的性能调优.流式增量计算.持续发布与演进.机器学习平台打造等.同时,在技术分享之外,你还可以与嘉宾进行问答互动,免费的学习机会就在这里! 最真实的应用:技术的价值在于赋能业务,然而真正结合起来并不简单,本次峰会上,地产.医疗.电商.

技术与架构,解析如何将大数据最快落地到实践

免费开通大数据服务:https://www.aliyun.com/product/odps 直播回顾: https://yq.aliyun.com/webinar/history?spm=5176.8067841.wnold.1.rLvSkQ 3月9日14点,业内首个结合技术与应用的在线大数据技术峰会即将展开,届时6位阿里技术大咖与4位行业资深实践者将从技术与业务两个方面,与大家探讨大数据如何最快落地到实践.较为有看点的是: 最深入的实践:本次在线峰会上,6个阿里规模的大数据实践将被深入分享,包

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.9 Sizzle.selectors

3.9 Sizzle.selectors 对象Sizzle.selectors包含了Sizzle在查找和过滤过程中用到的正则.查找函数.过滤函数,其中包含的属性见图3-1,源码结构见代码清单3-1. 3.9.1 Sizzle.selectors.order 表达式类型数组Sizzle.selectors.order中定义了查找单个块表达式时的查找顺序,依次是ID.CLASS.NAME.TAG.其中,CLASS需要浏览器支持方法getElementsByClass Name().查找顺序综合考虑了

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.5 jQuery.clean( elems, context, fragment, scripts )

2.5 jQuery.clean( elems, context, fragment, scripts ) 2.5.1 实现原理 方法jQuery.clean( elems, context, fragment, scripts )负责把HTML代码转换成DOM元素,并提取其中的script元素.该方法先创建一个临时的div元素,并将其插入一个安全文档片段中,然后把HTML代码赋值给div元素的innerHTML属性,浏览器会自动生成DOM元素,最后解析div元素的子元素得到转换后的DOM元素.

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 导读

   本书由阿里巴巴资深前端开发工程师撰写,从源代码角度全面而系统地解读了jQuery的17个模块的架构设计理念和内部实现原理,旨在帮助读者参透jQuery中的实现技巧和技术精髓,同时本书也对广大开发者如何通过阅读源代码来提升编码能力和软件架构能力提供了指导.     本书首先通过"总体架构"梳理了各个模块的分类.功能和依赖关系,让大家对jQuery的工作原理有大致的印象:进而通过"构造jQuery对象"章节分析了构造函数jQuery()的各种用法和内部构造过程:接