红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

机器学习翻译和谷歌翻译算法

  • 2017-08-20
  • 本文字数:2483 字

    阅读完需:约 8 分钟

机器翻译引擎的基本原理

谷歌机器翻译

Zero-shot:零次

Training:训练

Google Neural Machine Translation:谷歌神经机器翻译

我们每天都在使用不同的技术,但却不知道它们的工作原理。事实上,了解机器学习引擎并不容易。 Statsbot 团队希望通过本博客中的数据故事使机器学习更加清晰易懂。今天,我们来探讨一下机器翻译并解释谷歌翻译算法如何工作。

几年前,翻译未知语言文本是非常耗时的。使用简单的词汇逐词逐字翻译之所以困难,是由于以下两个原因:1)读者必须知道语法规则,2)在翻译整个句子时,需要记住所有语言版本。

现在,我们不需要太多的努力就可以将短语、句子、甚至是大段文本放在谷歌翻译中来翻译。但大多数人并不在意机器学习翻译的引擎如何工作。这篇文章专为那些在意的人而写。

深度学习翻译的问题

如果谷歌翻译引擎将短句的译文保留,则它将会由于可能出现的各种变数而无法工作。最好的方法是教会计算机语法规则,并让它根据这些规则来翻译句子。这听起来很简单。

如果你曾经学过外语,你就知道规则总是有很多例外的。当尝试捕获程序中的所有这些规则、例外和例外中的例外时,翻译的质量就会下降。

现代机器翻译系统采用了不同的方法:它们通过分析大量的 __ 文档 __ 来分配文本中的规则。

创建一个属于你自己的简单的机器翻译器可以作为任何数据科学家应聘简历中的一个重大项目

让我们来研究一下被称之为“黑盒”的机器翻译器中隐藏的东西。深层神经网络可以在非常复杂的任务(语音或视觉对象识别)中取得优异的效果,但尽管十分灵活,它们只能用于输入维数和目标维数固定的任务。

循环 **** 神经网络

而这正是长短期记忆网络(LSTM)派上用场的地方,LSTM 能帮助我们处理不能被先验知道的序列。

LSTM 是一种特殊的循环神经网络(RNN),它能够学习长期性的依赖关系。所有 RNN 看起来都像一连串的重复模块。

一个展开的循环神经网络

因此,LSTM 将数据从一个模块传输到另一个模块,另外,为了生成Ht,我们不仅使用Xt,还使用所有之前的输入值X。要了解有关LSTM 的结构和数学模型的更多信息,请阅读这篇非常棒的文章“了解LSTM 网络”。

双向RNN

我们的下一步是双向RNN(BRNN)。BRNN 将常规RNN 的神经元分成两个方向。一个方向是正向的时间或向前的状态。另一个方向是负向的时间或向后的状态。但这两个状态的输出并不与相反方向状态的输入进行连接。

双向循环神经网络

为什么BRNN 比相对简单的RNN 更好?请想象有一个9 个字的句子,而我们要预测第五个字。我们可以知道前4 个字,或前4 个字和最后4 个字。当然,第二种情况预测的质量会更好。

序列到序列

现在我们可以认识序列到序列模型(也称为seq2seq)了。一个基本的seq2seq 模型由两个RNN 组成即:处理输入的编码器网络和产生输出的解码器网络。

序列到序列模型

最后,我们便可以制作出自己的第一个机器翻译器了!

但是,让我们先思考这一点。谷歌翻译目前支持103 种语言,所以我们应该为每种语言提供103x102 个不同的模型。当然,这些模型质量的好坏会因为语言的普及程度和训练这个网络所需的文件数量而有所不同。我们可以达到的最佳情况是使一个NN(神经网络)能将任何语言作为输入并将其翻译成任何其他语言。

谷歌翻译

该想法谷歌工程师在2016 年底就实现了。NN 的架构基于谷歌已研究的seq2seq 模型之上。

但唯一的不同是编码器和解码器之间有8 层LSTM-RNN,且层与层之间仍有残留的连接,并有一些精度和速度上的调整。如果你想更深入地了解它们,请参考谷歌的神经机器翻译系统

该方法的主要特点在于,现在谷歌翻译算法对于每对语言只使用一个系统,而不是一个庞大的集合。

该系统在输入句子的开头需要一个“令牌”以指定你要将短语翻译成的语言。

这一改变提高了翻译质量,甚至可以在系统从未见过的两种语言之间进行翻译,这种方法被称为“零次(Zero-Shot)翻译”。

什么是更好的翻译?

当谈到谷歌翻译算法的改进和更好的结果时,如何才能正确地评估第一个翻译备选比第二个更好?

这不是一个无关紧要的问题,因为对于一些常用的句子,虽然我们有专业翻译器的参考翻译,但这些翻译仍然有一些差异。

很多方法能部分解决这一问题,但最流行和最有效的指标是 BLEU (双语评估替补)。想象一下,有两个来自机器翻译器的备选:

备选 1:Statsbot makes it easy for companies to closely monitor data from various analytical platforms via natural language. (Statsbot 通过自然语言使企业能轻松地密切监控来自各种分析平台的数据。)

备选 2:Statsbot uses natural language to accurately analyze businesses’ metrics from different analytical platforms.(Statsbot 使用自然语言准确地分析企业来自不同分析平台的指标。)

虽然它们有相同的含义,但质量和结构都不同。

我们再看看来自两个人的翻译:

参考 1:Statsbot helps companies closely monitor their data from different analytical platforms via natural language. (Statsbot 通过自然语言帮助公司密切监测来自不同分析平台的数据。)

参考 2:Statsbot allows companies to carefully monitor data from various analytics platforms by using natural language. (Statsbot 通过使用自然语言使企业能够密切监控来自各种分析平台的数据。)

显然,备选 1 更好,与备选 2 相比,备选 1 包括更多共同的单词和短语。这就是 BLEU 方法的一个关键思想。我们可以将备选的 n-gram (N 元语法)与参考翻译的 n-gram 进行比较,并计算它们的匹配数(匹配数与它们的位置无关)。我们只使用 n-gram 精度,因为在多个参考时计算查全率很难,而且结果是 n-gram 分数的几何平均值。

现在你可以开始评估复杂的机器学习翻译引擎了。下次当你使用谷歌翻译翻译某些内容时,可以想像一下:在给你最好的翻译版本之前,其实谷歌翻译已经分析了数百万份文档。

查看英文原文 https://blog.statsbot.co/machine-learning-translation-96f0ed8f19e4


感谢蔡芳芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-08-20 19:004213

评论

发布
暂无评论
发现更多内容

AI应用如何进行测试?

互联网工科生

人工智能 AI

UML建模推荐Astah Professional for Mac激活最新

mac大玩家j

Mac软件 建模软件 建模工具

蚂蚁集团混沌工程 ChaosMeta V0.5 版本发布

ChaosMeta

云原生 测试 混沌工程 容灾 攻防演练

软件测试/测试开发丨Selenium Web自动化多浏览器处理

测试人

Python 软件测试 自动化测试 测试开发 selenium

Kruise Rollout:基于 Lua 脚本的可扩展流量调度方案

阿里巴巴云原生

阿里云 云原生

敏捷开发方法:快速响应需求变化的开发流程

高端章鱼哥

DevOps 敏捷开发 软件开发

2024中国(深圳)国际精密光学与检测展览会

吹吹晚风

2024中国(上海)国际电磁线及漆包线展览会

吹吹晚风

2024中国(上海)国际电机驱动及控制技术展览会

吹吹晚风

ACK 酷体验丨以 AI 为笔,描绘 9 月该有的样子

阿里巴巴云原生

阿里云 容器 云原生

研发管理的挑战

iSoftBook

周报 研发团队 云研发 研发效能管理 研发管理软件

OpenHarmony使用ArkUI Inspector分析布局

OpenHarmony开发者

OpenHarmony

业务不想停机,就得这么实现MongoDB迁移

NineData

mongodb 数据迁移 NineData MongoDB迁移 全量数据迁移

麒麟云容器运行时优化之容器停止优化

麒麟云

Kubernetes 云原生 银河麒麟云原生操作系统

2024上海国际粉末冶金原料制品及设备展览会

吹吹晚风

2024上海国际磁性元器件及智能生产技术展览会

吹吹晚风

开发指导—利用CSS动画实现HarmonyOS动效(二)

HarmonyOS开发者

HarmonyOS

服务器使用必备条件、操作步骤及实践步骤详解

天翼云开发者社区

服务器

服务器显卡:驱动高性能计算和人工智能应用

天翼云开发者社区

服务器

华润银行新一代国产供应链金融平台顺利投产上线 由腾讯云和中电金信联合打造

Geek_2d6073

我们把“高血压”小游戏真正做到了不用下载,点击即玩!!!

阿里巴巴云原生

阿里云 云原生

“AI+算力”为出海企业打上了一剂“强心针”

千流出海

媒体 采访 出海

数字先锋|携手九江市自然资源局,天翼云助力自然资源管理走向“智治”新路

天翼云开发者社区

人工智能 云计算

在线找 K8s 学习搭子,急!

阿里巴巴云原生

阿里云 云原生

【玩转鲲鹏DevKit系列】如何快速迁移软件包?

华为云开发者联盟

开发 华为云 鲲鹏 华为云开发者联盟 企业号9月PK榜

机器学习翻译和谷歌翻译算法_语言 & 开发_Daniil Korbut_InfoQ精选文章