Google翻译、百度翻译、有道翻译……我们使用过各种各样的在线翻译服务,但你清楚机器翻译背后的原理吗?在线翻译为什么要用深度学习?不同的神经网络模型在翻译过程中所起的作用有什么不同?
相比通用的模型,为什么支持103种语言的Google的翻译算法,可以实现任意两种语言之间的翻译转换?它独特的LSTM-RNN结构在其中所起的作用又是什么?让我们从头来学习一番。
作者 | Daniil Korbut
译者 | JeyZhang
读者不了解文本中用到的语法;
读者不可能为了翻译去学习所有的语言;
基于深度学习的机器翻译面临的问题
如果谷歌的翻译模型是针对非常短的文本进行翻译,那这个模型将很难起作用,因为短文本对应的翻译可能性太多了。最理想的情况是能够教会计算机各种的语法规则并基于这些语法规则来进行翻译,这听上去容易但实际很难。
循环神经网络 (RNN)
LSTM模型是一种特殊的循环神经网络 (RNN),能够捕捉和学习到长序列中的相关性。所有的RNN模型都是由相同的模型重复链式地组成的。
双向RNN模型
为了理解BRNN模型为什么会优于单个RNN模型,这里举个例子,假设我们有一个包含了9个词的句子,我们希望预测句子中的第5个词是什么。一种情况是我们只知道了前4个词词,另一种情况既知道了前4个词也知道了后4个词,显然,后一种情况下能让我们的预测结果更加准确(因为我们得知了更多的信息)。
Seq2Seq (Sequence to Sequence) 模型
https://research.googleblog.com/2016/09/a-neural-network-for-machine.html
这样我们也基于这个模型来实现一个翻译系统。
谷歌翻译算法
唯一的区别在于,模型的编码器和解码器之间有一个8层的LSTM-RNN结构,这种结构采用了部分连接(非全连接)的方式来改善模型的运行速度和效果。如果你想深入了解,可以阅读谷歌神经网络翻译系统这篇论文。
论文地址:
https://arxiv.org/abs/1609.08144
这个方法的核心在于,目前的谷歌翻译算法采用了一个统一的翻译系统,取代了数以万计的翻译子系统。
什么是更好的翻译?
当我们在谈及现在的谷歌翻译算法取得了更好的结果,我们是怎么评估新的算法取得的翻译效果更好的呢?
候选 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