這個題目很拗口。我的本意是說這兩個東西:零樣本的機器翻譯,和無監督條件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。Zero-shot 機器翻譯 和 無監督條件GAN無監督學習zero-shot機器翻譯無監督條件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的方法實在太像了。
好方法總是能夠共享的。希望無監督這塊蛋糕能夠越做越大。
關注公衆号《沒啥深度》有關自然語言處理的深度學習應用