Facebook 推出即时翻译功能,让你用44种语言发帖

全球有超过 15 亿人使用 Facebook,用户来自不同国家和文化背景,说着数百种语言。这让很多 Facebook 用户在交流时显得颇为困难。于是 Facebook 推出了即时翻译功能,让你用44种语言发帖。


全球有超过 15 亿人使用 Facebook,但其中只有一半说英语。另外一半使用其他几百种语言进行交流,这让很多 Facebook 用户在交流时显得颇为困难。


但这种情况正在改变。如果你在刷 Facebook 的时候看到了一条外文帖子,Facebook 就会给你一个提示:你可以即时翻译这篇帖子。而从今天开始,很多 Facebook 还可以选择在发帖的时候将自己的帖子翻译成 44 种其他的语言,这样你的帖子就能在显示在其他语言使用者的信息流上时就会以他的语言显示。这是 Facebook 第一次公开测试其「多语发帖」功能,其目标是让全球用户都能更方便地跟朋友交流。「这就是我来到 Facebook 的原因,」主导 Facebook  即时翻译功能的土耳其人 Necip Fazil Ayan 说。


使用 Facebook 主页的名人和商业团体也可以使用这个即时翻译功能。每天,有超过 5000 个商业团体和名人的主页在 Facebook 上以各种语言发布超过 10000 篇帖子,而这些帖子将会展示在大约 7000 万用户的信息流里,其中有三分之一用户不使用英文。Ayan 关注了巴西球星小罗纳尔多的 Facebook 主页,小罗会在发布帖子时同时使用葡萄牙语、西班牙语和英语。「我只能看到英语,」Ayan 说。


Facebook 一直都在研究其平台上的即时翻译功能,因此,Facebook 的系统知道如何将「生快」翻译成西班牙语的「Feliz cumpleaños 」,而谷歌翻译就无法准确地翻译出「生快」。今年早些时候,Facebook 的系统知道了一些法语使用者在说英语中的「wow」时,会以法语发音「uau」代替,所以系统在翻译时就会准确地将「usu」翻译成「哇哦」。


另一方面,如果用户自己人工翻译帖子的话,这将会给 Facebook 翻译系统的机器学习增加大量数据,让这个翻译系统更加聪明。


Facebook 团队最近在其博客上发表了一篇文章,解释了这种多语言发帖功能是如何实现的:


Facebook:打造用多语种发帖的更好方法



人们在 Facebook 上交流和分享时会采用很多种不同的语言。全世界有 50% 的人不讲英语,而且大多数人只会说一种语言。正因如此,我们一直在思考,有没有什么办法可以消除 Facebook 上遇到的语言障碍。


Facebook 上很多主页都有来自各种文化背景的关注者,他们说着不同的语言,而主页君经常想要在他们之间分享信息。以前,他们常常会用不同的语言创建多条帖子,然后用 post targeting 为每个帖子选择特定的受众。还有的人将用多种语言写的不同版本的信息串成一篇长帖,但这种方法并不理想,因为人们需要查看一大段长文本才能找到自己理解的部分。而为每种语言的关注者单独编辑信息的方式 ,则会耗费额外的管理时间和精力。


有了这个多语言编辑器后,主页君和其他人就能用多种语言编辑帖子,而每个关注者会只看到自己熟悉的语言版本。这样,各种关注者都能更方便地与他们关注的品牌主页或个人进行交流。


从今年年初开始,所有主页都可以使用该编辑器。现在平均每天使用编辑器的主页大约为 5,000 个 ,编辑帖子次数达到  10,000 次,这些帖子每天的阅读量共计 7,000 万次,其中浏览由某种第二语言翻译的帖子数量达到 2,500 万次。我们非常激动,这个工具正在帮助越来越多的 Facebook 用户与他们说不同语言的朋友进行联络。


编辑器体验:使用机器翻译创建多语种帖子


建立编辑器组件的过程相对直接。作者在创建一个新帖子后,可以选择是否用其他语言编辑该帖。作者可以通过下拉菜单指定他们希望采用的语言。编辑器组件使用 React 提供额外的文本区域,Flux 则用来处理事件,维持状态,或者相应地升级 UI (用户界面)。在创建帖子的同时,多语言数据就会传送到服务器。


我们正在测试一项帮助作者创建多语言帖子的预填写功能,在该功能下,根据第一语言编辑的信息,使用机器翻译技术可以预填写用另一种语言编辑的信息。作者可以在这个翻译文本的基础上编写自己的翻译内容,也可以使用机器提供的翻译版本。机器翻译的这些内容由机器学习模型生成,而机器学习模型已经进行过了几十万或上百万次的各种语言之间的互译训练。Facebook 其他地方的翻译生成功能使用的是同一个系统,比如帖子和评论旁边出的 「See Translation (见翻译)」功能等。


储存多语言帖子:级联(Concatenation)  VS 作者翻译


构建多语言编辑器过程中,最困难的部分之一就是存储过程。因为存储过程会影响观看和编辑的过程和体验。现存的 Facebook 代码都基于一个假设,即帖子内容是只含有一种语言的单条信息。因此我们需要改变该假设,才能正确地处理含有多语言的帖子。


为此我们想出了两种可能可行的解决方案:

级联(concatenation)和作者翻译(author translation)。


第一种级联方法中,帖子中用所有语言编辑的信息都会存储在帖子的 TAO 对象上,同时元数据的对象会包含每条信息的字符范围信息。用这种方法编辑帖子时,还需要记录字符范围,以及每个范围的变化轨迹。如果要考虑 Facebook 上所有使用过的字符设置,这个过程可能会非常有难度。


第二种作者翻译方法中,我们会将第一条信息存储在帖子对象 上,并为每种另外的语言单独创建 TAO 对象,我们将这些额外的对象称为「作者翻译」。因为从概念上讲这些对象都是作者提供的原始帖子的翻译内容。这种编辑方法更加直接,作者能够选择在一篇帖子中同时编辑所有的语言版本。因此,我们决定使用作者翻译。


然后我们需要确保,就验证逻辑和处理逻辑而言,处理后的每条翻译内容都像一篇帖子。这就需要研发通用接口,将存储过程的细节从验证逻辑中抽离出来。这种分离可以使原始帖子和作者翻译之间的替换更加容易。我们还考虑了一个问题,如何处理一篇多语言帖子中的跨语言 mention (提到某人)。为了提高一致性,我们决定,作者翻译不能包括原始帖子中没有的 mention 。我们还实现了原始帖子上的一些多语言帖子元数据的缓存,以便加速时查看理解过程。


我们还必须保证,编辑器能够妥善支持每种类型的帖子。因为包含不同的状态更新,照片,视频,分享内容等的帖子,可能会有不同的代码执行流。而且,代码还在迅速演化的代码库中持续不断地变化。为了管理这些跨基础设施的依赖性,我们为多语言编辑器支持的每种类型的帖子都开发了严格的集成测试。我们与产品运营和支持团队一起努力,寻找对大多数产品使用案例来说,什么行为能产生结果,希望能够确保多语言帖子得到妥善保存。


你的关注者会看到什么 : 选择用哪种语言显示帖子。


最后一个难题是,选择哪种语言显示帖子。得到的反馈是,大多数页面还是偏向于向用粉丝们最熟悉的语言显示帖子,给用户最轻松顺畅的体验。所以我们决定让多语种帖子的围观者看见他们最熟悉的语言。例如,如果一个多语种帖子用英语和西班牙语发出来,那么英语用户看见的是英语,而西班牙语用户看见的是西班牙语。我们根据用户设置的语言偏好和用户所在区域,以及他们在帖子中最常用的语言(使用朴素贝叶斯分类器来确定系统能够识别的跨语言文本的概率分布),来决定出与帖子最相关的版本对关注者可见。如果发帖者和围观者使用的语言不同,那么我们就默认用发帖者的语言显示,围观者可以点击「see translation(看翻译)」工具条来选择自己的语言。


我们根据服务器上传的反馈,选出对围观者来说最好的信息,然后上传到客户端。这种方式保证了在不同平台上的体验一致,省去了修改手机设置的麻烦。由于app更新需要一些时间,用了这种方法后,迭代也更快了,同时也支持跨平台和旧app版本。


下一步


多语种发帖才刚刚起步。许多页面和同行已经开发出到达多语种用户方法—为了改变这中模式,让我们的工具更好用,我们会不断迭代更新我们的产品设计,为发帖者及其粉丝们提供最好的体验。


我们还计划使用多语种发帖来改善我们的机器翻译的训练数据,并向小语种用户开放这个工具,来完善我们的机器翻译系统。这让我们离在Facebook上打破语言障碍又近了一步。


如何使用多语种编辑器:如果你是测试团队的成员,可以在账户设置的语言设置上启用多语种编辑器。网页用户可以在这里(https://www.facebook.com/help/181155025579876)找到启用多语种编辑器指南。多语种编辑器目前只限在电脑页面上使用,但是可以在所有平台上显示。


入门Facebook机器翻译产业
机器之心
机器之心

机器之心编辑

返回顶部