这个题目很拗口。我的本意是说这两个东西:零样本的机器翻译,和无监督条件GAN 其实很像,如果抛开二者的domain不同(一个是NLP,一个一般是在图像领域),这两者简直一模一样。
目录
- 无监督学习
- zero-shot机器翻译
- 无监督条件GAN
-
- 算法
- 相似
无监督学习
Yann Lecun多次提到这样的类比: 如果把“智能”(intelligence)比作一个蛋糕,那么无监督学习就是蛋糕本体,监督学习是蛋糕上的糖霜,而增强学习是蛋糕上的樱桃。我们知道如何得到糖霜和樱桃,但不知道怎样做蛋糕。 今天少样本甚至零样本的学习,都是在更基础的方向上(蛋糕本体)发力,而且取得了很好的效果。远的不说,最近的GPT3利用海量文本通过自(无)监督学习就在很多任务达到惊人效果。
回到机器翻译。现实生活中,很难保证有高质量的语言翻译的平行语料库,尤其是对小语种来讲。所以做零样本翻译非常有实用价值。
zero-shot机器翻译
前面有两篇文章介绍过这个方向。最近Facebook做出来的TransCoder是一个很好的应用。上一篇文章(TransCoder介绍)解释过具体的细节。大致上分这么三步走:
-
初始化MT
老的做法是直接用双语词典训练一个最简单的翻译模型;高级一点的做法是可以用MLM来初始化。
-
用单语料文本自学习一个DAE(Denoising auto-encoder)
好处是让翻译模型的encoder部分更加robust,而且decoder也学会了翻译(虽然是对单语言的"翻译")。
-
用back-translation来学会语言之间的翻译。
这也是最关键的一步。如下面右图所示,首先
从源语言x翻译到目标语言y,再翻译到源语言 x ^ \hat{x} x^,最后最小化李逵x和李鬼 x ^ \hat{x} x^的差距。下面我们看一下无监督条件GAN。
无监督条件GAN
无监督条件GAN包含了非常多种类的GAN,这里特指CycleGAN或者DualGAN。
先看一下CycleGAN能做什么,见下图:
从两种不同风格的图片出发(注意和zero shot machine translation一样,这里的图片是没有"对齐"的,也就是说这里不可能做监督学习),CycleGAN可以学会把一种风格的图片翻译成另外一种风格。比如图中的照片能够被“翻译”为莫奈,梵高等等风格。
怎么做到的?
算法
如上图,是不是非常眼熟?这个图和上面一个section的图简直如出一辙。图(a)是说假设我们有两个生成器G和F,G能够把X风格的图片转化为Y风格,F能反向转化。图(b)是说我们可以做一个GAN领域的"back-translation",就是说先利用G把x转为 y ^ \hat{y} y^,再利用F把 y ^ \hat{y} y^转为 x ^ \hat{x} x^,最后又(为什么要说又?)最小化李逵x和李鬼 x ^ \hat{x} x^的差距。这个差距在这个语境下被称为cycle-consistency loss。因为X和Y是对称的,所以对换X和Y的位置,我们得到了图 (c)。
这里如果把语境换成自然语言机器翻译,把X理解为源语言,Y理解为目标语言,一切都完美成立!
当然了,我们毕竟是在利用GAN搞事情,不能把判别器给扔掉了。所以以图(b)为例,我们用 D Y D_{Y} DY来判断 y ^ \hat{y} y^
- 是否是faked
- 是否是Y风格的。
这里的正例就来自Y domain的图片。一个高水平技术博客怎么可能没有公式充一下门面 :)
相似
做个表总结一下二者的对应关系。
Zero-shot MT | 无监督条件 GAN | |
---|---|---|
类型 | 无监督 | 无监督 |
语料 | monolingual corpus 无平行语料 | 单一风格图片,无图片对 |
领域 | NLP | CV |
方法 | Back Translation | CycleGAN |
LOSS | dual loss或者其他alias | Cycle-consistency loss |
用途 | 翻译 | 风格迁移 |
生成器 | Machine tranlator | 生成器 |
声明一下:
无监督条件GAN有非常多的方法,这里只是拿CycleGAN来作为代表。原因是它和zero-shot MT的方法实在太像了。
好方法总是能够共享的。希望无监督这块蛋糕能够越做越大。
关注公众号《没啥深度》有关自然语言处理的深度学习应用