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

本文涉及的产品
云解析 DNS,旗舰版 1个月
语种识别,语种识别 100万字符
文档翻译,文档翻译 1千页
简介:

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

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

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

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

使命与愿景

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

F8 2017 | 技术负责人为你解析 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%。

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

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

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

底层发生了什么?

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

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

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

  • 缺乏语境。短语一般最多只有 7 到 10 个单词的长度

  • 短语的重新排序问题很大,尤其对于词序差异很大的语言,比如英语和土耳其语

  • 其统计模型难以扩展新功能

  • 泛化效果不好,非常依赖学习过的数据

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

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

  • 支持大段的语序重排(long distance reordering)

  • 连续、丰富的表达。我们把词语映射到矢量表示(词向量)。它们不再是独立的词语,而是一维空间中的点。不同点之间的距离,可被用来代表不同词语之间的语义相似性

  • 神经网络的扩展性非常好。我们可以把不同来源的信息整合进去,使我们得以很容易的把不同类型的表达结合到一起

  • 更通顺

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

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

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

对于原语句,我们用的是一个双向的神经网络。这意味着,我们既利用了前文中的词语,也用到了后文的词语。所以,编码器的输出,是一个利用了前后文所有语境的、对原句的表示。目标句子也使用 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),即只以一门语言表示的数据。所以我们把该数据填入这一小型机器翻译系统,然后获得翻译。很显然,翻译结果并不完美。

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

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

3. 大规模部署

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

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

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

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

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

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

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

谢谢。

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





本文作者:三川
本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 搜索推荐
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(下)
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(下)
20 0
|
1月前
|
机器学习/深度学习 存储 自然语言处理
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(上)
【电商搜索】现代工业级电商搜索技术-Facebook语义搜索技术QueSearch(上)
23 0
|
3月前
|
机器学习/深度学习 数据采集 自然语言处理
神经机器翻译(NMT)的关键组件
神经机器翻译(NMT)的关键组件
|
4月前
|
机器学习/深度学习 自然语言处理 算法
如何利用机器翻译技术进行跨语言沟通?
如何利用机器翻译技术进行跨语言沟通?【7月更文挑战第8天】
100 3
|
5月前
|
自然语言处理 算法
技术心得记录:机器翻译中的参数调整
技术心得记录:机器翻译中的参数调整
40 0
|
6月前
|
机器学习/深度学习 自然语言处理 网络架构
神经机器翻译(NMT)
神经机器翻译(NMT)
285 2
|
机器学习/深度学习 人工智能 自然语言处理
NLP机器翻译全景:从基本原理到技术实战全解析
NLP机器翻译全景:从基本原理到技术实战全解析
130 0
|
iOS开发
|
机器学习/深度学习 自然语言处理 算法
神经机器翻译的Subword技术
神经机器翻译的Subword技术
158 0
神经机器翻译的Subword技术
|
7天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
23 2

推荐镜像

更多