首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Google翻译如何运行?动图解析机器学习算法与神经网络模型

本文经授权转自

图1:谷歌机器翻译算法

许多年前,想要对一种陌生的语言进行翻译是一件非常耗时的事情。

现在,只需要将待翻译的词组、句子甚至大篇幅的文本放进谷歌翻译的翻译框就能轻易得到翻译结果。

但你清楚机器翻译背后的原理吗?

如果谷歌的翻译模型是针对非常短的文本进行翻译,那这个模型将很难起作用,因为短文本对应的翻译可能性太多了。

最理想的情况是能够教会计算机各种的语法规则并基于这些语法规则来进行翻译,这听上去容易但实际很难。

如果你曾经尝试过学习一门外语,你就会知道其中有许多意想不到的语法规则。然而,当我们尝试在计算机程序中加入这些语法规则后,最终的翻译质量却会下降(翻译结果比较生硬)。

现代的机器翻译系统采用了一种新的方法:

通过分析大量的语料数据,让系统从中自动地学习出相应的语法规则。

接下来我们一起来探索机器翻译系统这个“黑匣子”的背后原理。

深度学习模型能够在很多复杂的任务上取得不错的结果,然而,许多深度学习模型存在一个限制条件,就是模型的输入和输出通常要求固定的维数。先来了解一下这些模型:

RNN(Recurrent neural Network)

循环神经网络

下面讲讲LSTM (Long Short-Term Memory networks) 模型,这个模型能够处理变长的输入序列。

LSTM模型是一种特殊的循环神经网络 (RNN),能够捕捉和学习到长序列中的相关性。所有的RNN模型都是由相同的模型重复链式地组成的。

图2:被展开的循环神经网络模型

因此,LSTM模型中数据是在模块和模块之间传输的。例如,为了生成最后的ht,我们不是只用到了Xt,而是用了X0,X1,X2,…,Xt等一系列作为输入。

双向RNN模型

BRNN模型由两个普通的RNN模型组成,只不过这两个RNN模型处理输入序列的方向是相反的,一个是处理正向的序列,一个是处理反向的序列。这两个序列的输出与相反方向的输入之间没有连接关系。

图3:双向循环神经网络

BRNN模型优于单个RNN模型,为什么呢?这里举个例子。假设我们有一个包含了9个词的句子,我们希望预测句子中的第5个词是什么。

一种情况是我们只知道了前4个词词,另一种情况既知道了前4个词也知道了后4个词。显然,后一种情况下能让我们的预测结果更加准确。

Seq2Seq模型

现在我们来看看seq2seq模型,基础的seq2seq模型由两个RNN模型组成:一个用于对输入序列进行编码,一个用于对输出序列进行解码。

图4:Seq2Seq模型

这样我们也基于这个模型来实现一个翻译系统。

然而,我们还需要考虑一个小问题。谷歌翻译系统目前支持103种语言,因此我们应该有103×102种模型来处理其中任意两种语言之间的翻译,而这些模型的效果取决于翻译文本的热门与否和训练语料的数量。最理想的情况是只训练一种模型,这个模型能够将任意一种语言翻译成任意的另一种语言。

谷歌翻译算法

这个很棒的算法是谷歌的工程师在2016年底时提出的,采用了seq2seq模型框架。

唯一的区别在于,模型的编码器和解码器之间有一个8层的LSTM-RNN结构,这种结构采用了部分连接(非全连接)的方式来改善模型的运行速度和效果。

这个方法的核心在于,目前的谷歌翻译算法采用了一个统一的翻译系统,取代了数以万计的翻译子系统。

这个系统要求输入序列的开头是一个标志符,表示你希望翻译成的语言。

一种称为“Zero-Shot翻译”的方法既能够提升翻译质量,同时也能实现任意两种语言之间的翻译(可以是系统没有见过的语言)。

什么是更好的翻译?

有许多方法可以评估翻译质量的好坏,其中最常用和最有效的指标是BLEU(BilinguaL Evaluation Understudy)。

假设我们有两个翻译器给出的候选结果,如下:

候选 1:

Statsbot makes it easy for companies to closely monitor data from various analytical platforms via natural language.

候选 2:

Statsbot uses natural language to accurately analyze businesses’ metrics from different analytical platforms.

上面的这两个候选结果的意思是一样的 ,但是所用到的语法结构和翻译质量存在不同。

让我们看看翻译人员给出的参照翻译结果:

参照结果1:

Statsbot helps companies closely monitor their data from different analytical platforms via natural language.

参照结果2:

Statsbot allows companies to carefully monitor data from various analytics platforms by using natural language.

很明显,以参照结果为标准,候选1的翻译质量更好,是因为相较于候选2,候选1从字面上和参照结果更为接近。

BLEU指标的基本思想也是这样的,通过计算机器翻译的结果和参照结果的n-grams的匹配程度(忽略n-gram的相对位置信息)来衡量翻译质量(匹配的n-gram越多,翻译质量越好)。这里我们只考虑匹配的准确率,没有考虑召回率是因为参照结果比较多从而计算起来比较困难。

现在开始你也可以对复杂的机器翻译系统进行评估了。下一次使用谷歌翻译时,你就能想象到在这个系统的背后,是分析了数以百万计的文档后才最终得到这样一个最佳的翻译结果。

本文原文链接:

https://blog.statsbot.co/machine-learning-translation-96f0ed8f19e4

图1来源:谷歌机器翻译算法

图2来源:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

图3来源:https://www.semanticscholar.org/paper/Hybrid-speech-recognition-with-Deep-Bidirectional-Graves-Jaitly/5807664af8e63d5207f59fb263c9e7bd3673be79

图4来源:

https://research.googleblog.com/2016/09/a-neural-network-for-machine.html

谷歌神经网络翻译系统推荐阅读:

https://arxiv.org/abs/1609.08144

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180906A1BJLB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com