突破
性进展
2018年3月14日,微软研究院宣布,他们研发的中英机器翻译系统在newstest2017测试集上,达到了可与人类翻译媲美的水平。
newstest2017是去年WMT17大会上发布的通用新闻报道测试集,由产业界和学术界合作开发。
机器翻译是研究人员攻坚了数十年的领域,曾经很多人都认为AI永远达不到人类翻译的水平。此次的成果可谓突破性进展!
当然,需要说明的是:本次AI的“媲美人类翻译”只是在newstest2017这个总共2000多句新闻类语料的测试集上,测试的结果。距离“完全解决机器翻译的问题”还非常遥远。
微软团队自己也说,此次研究的目的是证明:将两种语言大量常见的大众新闻类互译语料,运用于机器翻译系统的训练,最终模型的表现,在同类语料的测试集上,可以“与人类媲美”。
换言之,当前的工作并不是说机器翻译在任何领域、任何类型的文本上都能够做到“信、达、雅”。
即使如此,也不得不承认,这是NLP领域的一次里程碑。在这一领域,人类朝着终极目标——用机器代替人类——又迈进了一步。
背后
的技术
微软的最新成果,得益于四大技术的支持,它们分别是:
在这四大技术中,对偶学习是一切的支柱和基础。
对偶学习是微软亚洲研究院首先提出的概念,至今历史不过数年。从某种意义上来讲,对偶学习可以看作是GAN的一种变体。
深度
学习的瓶颈
对偶学习最初是针对深度学习的一大痛点——需要大量标注数据——提出的。
深度学习的应用,主要集中在有监督学习上。而有监督的深度学习需要据大量标注数据。数据标注的成本非常之高。
在某些特定领域,标注数据甚至是不可能完成的任务。比如医疗领域的疑难杂症,本身样本就非常少,有钱也无法取得大量的有标签数据。
为了克服这一弱点,很多AI研究人员都在探索无需标注数据的无监督深度学习之路。
对偶
学习的提出
现实中,很多AI任务都是成对出现的。比如,中英互译,既要从中文翻译成英文,又要从英文翻译成中文。这样的任务就叫做对偶任务。
这一现象带来了一个启示:对偶任务可以互为环境,在没有人工标注的情况下,互相提供反馈信息。这些反馈信息可以直接用来训练模型。
充分地利用对偶结构,有望解决深度学习的瓶颈:“训练数据从哪里来,和环境的交互怎么持续进行下去”的问题。
基于以上的思考,微软的科学家们提出了一个新的学习范式:对偶学习。
对偶
学习原理
假设学习过程中有两个智能体A和B,A从事原任务:从x映射到y的学习任务;B从事对偶任务:从y再映射回x。
在一次对偶学习过程中,先用A的模型 f 将 x 映射成 y:y = f(x);再用B的模型 g 将 y 映射为 x': x' = g(y)。
然后,通过比较 x 和 x',就可以获得有效的反馈信号——如果 x = x',就说明 f 和 g 都是成功的模型,它们相差大,则说明 f 和 g 至少有一个不好。
将对偶学习引入机器翻译——
最开始的时候,我们首先需要有两个比较弱的模型 f 和 g。这两个模型可以是使用少量标注语料,用传统方法训练出来的。
然后,开始对偶学习训练,大致过程是这样的:
step 1)取一个英文句子 x,通过英译中模型 f,翻译为一个中文句子 y。 y 作为一个中文句子是不是符合语法,是不是通畅,x 到 y 之间的关系是否和英汉词典一致等等,都可以作为反馈信息。 step 2)用中译英模型 g 把 y 再翻译为英文句子 x'。 x'是否符合语法、通畅,x'与 y 的关系是否与英汉词典一致,以及 x'和 x是否相似等,都可以作为反馈信息。 step 3)利用这些反馈信息,使用各种具体的算法(例如 Policy Gradient)反复迭代,更新模型,直到最终 f 和 g 都令人满意。 step 4)step 1-3 不断循环,每次随机地抽选一个单语语句,做对偶学习,更新模型,然后再抽选下一个单语语句……直至过程收敛。
从理论上可以证明,只要机器翻译模型 f 和 g 的解码部分使用随机算法(比如 beam search),这个对偶学习过程就一定是收敛的。最终会学到两个稳定的模型 f 和 g。
而稳定模型 f 和 g 的有效性,也早就通过实验证实了:https://www.microsoft.com/en-us/research/wp-content/uploads/2017/12/6469-dual-learning-for-machine-translation.pdf
神奇的对偶学习,原理原来就这么简单。
生成
对抗网络(GAN)
前两年很火的生成对抗网络(Generative Adversarial Nets / GAN),其实也是一种对于对偶任务的实现。
它的目标是学习一个图像生成器。为了学习出高质量的生成器,就要有一个判别器,不断给生成器提供反馈信息(给生成器生成的图片打分)。
生成器和判别器通过相互对抗来演进更迭,最后获得一个有效的图像生成器。
很显然,GAN也可以用对偶学习的语言进行描述,生成器和判别器就相当于对偶学习中的两个智能体。
GAN只关心最终生成器的有效性,而标准的对偶学习会同时关心生成器和判别器。因此可以说GAN是对偶学习的一种特例。