雷锋网 AI 科技评论按:3 月 15 日的文章《机器翻译新突破,微软中英新闻翻译达人类水平》中,我们介绍了微软亚洲研究院与雷德蒙研究院共同研发的新的机器翻译系统,微软称它在 newstest2017 的中-英测试集上达到了与人工翻译媲美的水平。
这则消息不仅引起了我们的好奇,让我们的编辑记者们感叹「人工智能这么快就又下一城」,同时也引起了一些读者的疑问。毕竟,我们时常见到新模型在公开测试中刷榜,能够和人类拿到同样的分数,但不一定换一个数据集就还能和人类媲美,尤其是对于灵活多变的人类语言而言;另一面,谷歌、搜狗、百度等互联网巨头都有自己神经网络翻译系统,大家都或多或少体验过,即便最新的模型都普遍使用了注意力机制,但翻译质量不尽如人意的地方仍时常出现,继续做出大跨步式的突破又谈何容易呢?
微软官方博客中提到,新的翻译系统中用到了四大技术:对偶学习、联合训练、推敲网络和一致性正则化,对应的论文也已经公开。雷锋网 AI 科技评论下面根据论文,结合以往的相关研究详细讲讲用在新翻译系统中的这四大技术到底是怎么回事,品味品味当这四项技术同时使用的时候,能够达到人类水准到底能不能算是「合情合理」。文末我们也会贴出一些微软提供的中文到英文翻译结果,不知道能否彻底打消可能的疑惑。
一,对偶学习 Dual Learning
深度学习模型的训练需要大量数据,这不仅是领域内的常识,也是限制在更多场景下使用深度学习的一大障碍。对偶学习的提出就主要是为了减少对数据的依赖。相比标签传播(Label Propagation)、多任务学习(Multi-task Learning)、迁移学习(Transfer Learning)这样利用数据相似性的解决方法,对偶学习(Dual Learning)利用的是 AI 任务中自然出现的对称性。比如:
机器翻译,有英翻中和中翻英的对称;
语音处理,需要语音转文字(语音识别),也有文本转语音(语音合成)的任务;
图像理解,图像描述(image captioning)与图像生成 (image generation)是一个对称的过程;
对话任务,问题回答(Question answering)与问题生成(Question generation);
按照传统的监督学习范式,这些对称的任务都需要分别训练,每个方向都需要大量有标签数据。那么考虑到任务的对称性,如果一个英文句子被翻译成英文,再从中文翻译成英文,还能跟一开始的句子非常相近的话,就可以认为「英翻中」和「中翻英」两个翻译器都表现很好。这也符合人们的常识。
微软亚研资深研究员秦涛博士就曾带领团队分别在 NIPS 2016 和 ICML 2017 发表「对偶学习」(https://arxiv.org/abs/1611.00179)和「对偶监督学习」(https://arxiv.org/abs/1707.00415 )两篇论文,介绍了对偶学习在无监督学习和监督学习两种模式下的形式及表现。雷锋网硬创公开课也曾邀请到秦涛博士给大家做了前一篇 NIPS 论文的详细分享。
对偶学习
NIPS 2016 对偶学习论文的范式示意图
如图,对于对偶学习,主任务 f 把无标注英文句子 x 翻译为中文 y,对偶任务 g 把中文 y 翻译回英文 x'。模型从过程中得到两个反馈,一个部分反馈是来自懂中文的智能体,评价中文 y 的质量如何(例如是不是一个通顺的中文句子);另一个反馈是来自懂英文的智能体,比较 x 和 x' 的相似度获得反馈。这样,一个流程结束以后,模型就可以获得完整反馈。
有了反馈,就可以把强化学习的一些方法直接用于训练更新模型 f 和 g 。论文中所用的方法为策略梯度 policy gradient,增加主任务 f 和对偶任务 g 中好的行为出现的概率,降低不好的行为出现的概率。另一方面,由于只有单一输入,由两个智能体自己产生反馈,不需要把翻译结果与输入对应的标签对比,所以这是一种无监督学习方法。
学习效果上,在使用了 1200 万个双语标注句的英法翻译实验中,相比于 2016 年时基于深度神经网络的机器翻译算法(NMT),对偶学习只需要其中 10% 的双语数据就可以达到 NMT 采用了全部数据进行训练的准确度。训练所需数据量可以减少 90%,很好地达成了预期效果。
根据秦涛博士介绍,对偶学习有一个问题是很难冷启动,即需要先对主任务和对偶任务的两个智能体进行一定的训练后才能够利用对偶学习进行联合反馈训练,否则模型收敛会很慢。
对偶监督学习
ICML 2017 对偶监督学习论文的范式示意图
仍以翻译任务为例,在监督学习中,当知道主任务 f 应该得到的正确翻译为 y 之后,就可以用最大似然准则更新 f,使 y 出现的概率越大越好。
对于对偶监督学习,需要主任务 f 和对偶任务 g 各自都能出现正确翻译 y 与 x,这样就会存在一个联合概率 P( x,y )。通过 f 和 g 都可以单独计算出这个联合概率 P(x,y)=P(x)P(y|x;f)=P(y)P(x|y;g) 。但如果 f 和 g 是根据监督学习分开训练的,就不能保证单独计算出的联合概率相同。
为了解决这个问题,论文中在 f 、g 两个任务分别的损失函数基础上,为对偶监督学习增加了一项正则化项,它的含义是将「通过 f 计算得到联合概率 P( x,y ) =P(x)P(y|x;f)」和「通过 g 计算得到联合概率 P( x,y ) =P(y)P(x|y;g)」两个概率的差值最小化,从而通过结构的对称性加强了监督学习过程,让两个互为对称的任务共同进行学习。(上图中间的式子) 这与 SVM 正则化项的区别在于,SVM 的正则化项与模型有关,与数据无关;但对偶监督学习中讨论的正则化项还与数据相关。由于具有了这样的正则化项,每个训练数据都能够参与到正则化项中,而且主任务、对偶任务的两个模型可以互相影响,共同提高。
根据论文中的测试,对偶监督学习模型在机器翻译、图像分类、句子情感分析三对任务中都取得了明显的提高。尤为让人印象深刻的是句子情感分析这一对任务:正向任务判断一个句子是正面还是负面情感,以及反向任务根据给定的正面/负面情感生成句子,任务中的信息损失非常严重,只留下了 1bit 的信息而已。测试结果中正向任务情感分类的错误率仅从基准模型的 10.1% 下降到对偶监督学习模型的 9.2%,作者们认为就和信息损失严重有关。
不过到了反向生成句子的时候,对偶监督学习模型展现出了强大的表现力,对简单短句的使用变少了,并且选用的单词、词语、句式表达出的情感更强烈、更具体。如下图
在这次新的机器翻译系统中,基于单语语言语料的对偶学习和基于双语语料的对偶监督学习都有使用,提升了语料的训练成效。
二,联合训练 Joint Training
即便有了对偶学习这样的可以提高数据利用效率的方法,高质量的双语训练数据毕竟还是越多越好 —— 而实际上这样的数据没有那么多。所以论文中还引入了联合训练,让中到英和英到中的两个互译模型生成新的数据,并把新生成的数据也当作训练数据,迭代进行训练。
具体做法如图所示,对于现有的双语语料库 D 中的语句对 (X,Y),用预训练过的一对翻译器把 X 翻译为 Y'、把 Y 翻译成 X',构成新的语句对 (X',Y')。在每轮迭代中,新生成的语句对会添加到现有的双语训练数据中,继续训练两个方向的两个模型;经过训练的模型会再一次翻译出新的(X',Y'),作为新的训练数据。同时也设计了半监督的训练损失,同时包含了两个方向模型的表现,以便能让一个模型的进步显式地帮助另一个模型的表现提高。
为了保证新生成的、即将用于下一轮训练的生成语句对的质量,生成的语句也要挑选出最好的一部分,而且选出的语句要经过神经网络翻译模型的翻译概率权重评分,以便最大程度减小不好的翻译语句带来的负面影响。那么,在一轮轮的迭代过程中,两个方向的翻译语句质量会越来越高、模型也被训练得更好,这样的迭代训练过程会进行到表现不能继续提高为止。