對偶學(xué)習(xí)

最近了解了NLP的對偶學(xué)習(xí),幾篇論文分享一下。

Dual Learning for Machine Translation
  • NIPS 2016

This mechanism is inspired by the following observation: any machine translation task has a dual task, e.g., English-to-French translation (primal) versus French-to-English translation (dual); the primal and dual tasks can form a closed loop, and generate informative feedback signals to train the translation models, even if without the involvement of a human labeler.

現(xiàn)在的機器翻譯NMT系統(tǒng)多采用seq2seq模型,這種方法的一大缺點在于需要構(gòu)建大量的平行語料庫,非常耗時耗成本。本文提出了一種低資源的機器翻譯模型訓(xùn)練方法:對偶學(xué)習(xí)(dual learning),這中方法可以更有效地應(yīng)用單語料(包括源語言和目標語言),大大減少平行語料庫。這種思路很直觀,就是當語言A被翻譯成語言B后,再將語言B翻譯成語言A,這個過程是有噪聲的,因此經(jīng)過兩次翻譯后的語言A和原始語言A肯定會出現(xiàn)差異最小化,將差異最小化即可同時改進兩個翻譯模型的性能。同理,從語言B翻譯到語言A再翻譯到語言B也可以進行相同的過程。因此如果我們有了兩個已經(jīng)訓(xùn)練好了但不完美的翻譯模型,我們只需要將兩種語言的自由文本通過對偶學(xué)習(xí)的方式進行訓(xùn)練,就能改善兩個翻譯模型的性能。

算法的主要思想也借助了強化學(xué)習(xí)的思想,通過最大化reward來更新參數(shù)。假如我們現(xiàn)在已經(jīng)有了兩個翻譯模型P(.|s;\theta_{AB})P(.|s;\theta_{BA}),分別是將A翻譯成B和將B翻譯成A。同時我們還訓(xùn)練了兩種語言的語言模型LM_A(.)LM_B(.)。首先我們從語言A的語料庫中選取語句s,然后通過P(.|s;\theta_{AB})翻譯成B語言s_{mid},此時我們得到一個立即reward r_1=LM_B(s_{mid}),這個reward其實是衡量s_{mid}的流暢度。然后我們將s_{mid}重新翻譯會語言A,論文中稱之為重建,這部分的reward為r_2={\rm log}P(s|s_{mid};\theta_{BA})。總reward r = \alpha r_1 + (1 - \alpha) r_2,\alpha是一個超參數(shù)。

這個算法的思路還是比較直觀的,現(xiàn)在講講它的訓(xùn)練過程。最開始我們是沒有訓(xùn)練好的翻譯模型的,我們需要先用平行語聊訓(xùn)練翻譯模型,然后逐漸轉(zhuǎn)換到用單語料進行對偶學(xué)習(xí)。文中提到了一種soft-landing策略:剛開始的時候每個batch的一半是平行語料,一半是單語語料,此時的目標函數(shù)是翻譯模型的目標函數(shù)和r的加權(quán)和。隨著訓(xùn)練進行逐漸增大單語料的比例,直到全是單語料。

實驗結(jié)果和基于attention的NMT和pseudo-NMT進行了比較。發(fā)現(xiàn)在僅用10%語料的情況下,dual-NMT和前兩種方法使用全語料訓(xùn)練的結(jié)果不相上下,單獨看重建的指標,遠高于前兩種方法,同時在長句子翻譯的表現(xiàn)非常優(yōu)秀。對偶學(xué)習(xí)對于機器翻譯任務(wù)是非常有效的。

文中也提到了還有很多對偶的任務(wù)值得探索,如:語音識別和語音合成、圖片描述和圖片生成、問答和問題生成、檢索和關(guān)鍵字抽取。同時提到了對偶學(xué)習(xí)的本質(zhì)是構(gòu)成一個閉環(huán),讓我們能夠捕捉到反饋信號,所以作者也稱對偶學(xué)習(xí)為close-loop learning,該框架不拘泥與兩種語言的對偶任務(wù),還可以擴展到很多agent之間相互反饋。

Dual Supervised Learning
  • ICML 2017

In this work, we propose training the models of two dual tasks simultaneously, and explicitly exploiting the probabilistic correlation between them to regularize the training process.

上一篇文章只在NMT方面提出了對偶學(xué)習(xí),這篇文章是愛監(jiān)督學(xué)習(xí)下提出了對偶學(xué)習(xí)的范式:Dual Supervised learning(DSL)。

本文的出發(fā)點在于,很多對偶任務(wù)之間存在內(nèi)在的概率分布聯(lián)系:P(x,y)=P(x)P(y|x;\theta_{xy})=P(y)P(x|y; \theta_{yx})在傳統(tǒng)的監(jiān)督學(xué)習(xí)下,以上對偶性是無法得到保證的,本文給訓(xùn)練過程顯式地加入了上述約束:
\begin{align} {\rm objective\ 1}: {\rm min_{\theta_{xy}}}\ (1/n) \sum_{i=1}^n l_1(f(x_i;\theta_{xy}),y_i),\\ {\rm objective\ 2}: {\rm min_{\theta_{yx}}}\ (1/n) \sum_{i=1}^n l_2(g(y_i;\theta_{yx}),x_i),\\ s.t.\ P(x)P(y|x;\theta_{xy})=P(y)P(x|y; \theta_{yx}), \forall x,y \end{align}
l是兩個函數(shù)的差異函數(shù),fg是兩個對偶學(xué)習(xí)的模型本身。為了求解這個問題,使用拉格朗日乘數(shù)法,為兩個目標函數(shù)增加乘數(shù)項
l_{duality}=({\rm log}P(x)+{\rm log}P(y|x;\theta_{xy}) - {\rm log}P(y)-{\rm log}P(x|y; \theta_{yx}))^2
然后進行訓(xùn)練即可??梢钥闯?,這里中方法實際上只是在目標函數(shù)上加了一個正則項。只要能較好地估計P(x)P(y),算法就能同時提升兩個對偶任務(wù)的性能,思路也比較直觀。

本文在機器翻譯、圖像處理(圖像分類和生成)、情感分析(情感分類和生成)方面做了實驗,驗證了方法有效性。其中后兩個任務(wù)雖然是對偶的但是從左到右的信息是有損的,而模型在這兩個任務(wù)上也獲得了不錯的效果。

Model-Level Dual Learning
  • ICML 2018

In this word, we propose a new learning framework, model-level dual learning, which takes duality of tasks into consideration while designing the architectures for the primal/dual models, and ties the model parameters that playing similar roles in the two tasks.

以上兩篇文章都僅關(guān)注了數(shù)據(jù)上的對偶性,這篇文章從模型的角度提出了對偶學(xué)習(xí)的范式,在這種范式下,對偶任務(wù)之間能夠做到參數(shù)共享。根據(jù)對偶任務(wù)的對稱性文章探索了兩種對偶范式:

  1. Symmetric Model-Level Dual Learning

這種情況下XY具有相同的形式,如機器翻譯。簡單來說,第一篇文章中的機器翻譯從XY和從YX是用了兩個不同參數(shù)的模型完成的,每個組件是單向的,即:
X \to {\rm \bf ENCODER}_{XY} \to {\rm \bf DECODER}_{XY} \to Y \to {\rm \bf ENCODER}_{YX} \to {\rm \bf DECODER}_{YX} \to X
而從模型上對偶的機器翻譯如下:
X \leftrightarrow {\rm \bf COMPONENT}_X \leftrightarrow {\rm \bf COMPONENT}_Y \leftrightarrow Y
這里的整個模型只有兩個雙向組件,以{\rm \bf COMPONENT}_X為例,如果數(shù)據(jù)從左側(cè)進入,則它為編碼器,若從右側(cè)進入,則它為解碼器,{\rm \bf COMPONENT}_Y同理。這樣就實現(xiàn)了之前{\rm \bf ENCODER}_{XY}{\rm \bf DECODER}_{YX}、以及{\rm \bf DECODER}_{XY}{\rm \bf ENCODER}_{YX}的參數(shù)共享。由于編碼器解碼器都采用一個模型,只需要形式上一致即可。這里的組建可以采用RNN、CNN或Transformer等。

  1. Asymmetric Model-Level Dual Learning

這中情況下XY不具有相同的形式或語義,如情感分析。但是還是可以相同的組件上面相同的組件描述,這里{\rm \bf COMPONENT}_XX編碼成語義向量,然后{\rm \bf COMPONENT}_Y是分類層。它的對偶任務(wù)首先將標簽的embedding(文中沒有詳細說明,猜測是隨機干擾,在訓(xùn)練時可能是前向傳播的結(jié)果)通過{\rm \bf COMPONENT}_Y映射到語義向量,然后用{\rm \bf COMPONENT}_X生成。

可以看出,只要組件的兩個方向計算的數(shù)學(xué)形式一致,就可以用于對偶學(xué)習(xí)。模型層面的對偶學(xué)習(xí)有幾點好處:第一,減少了參數(shù)總量;其次,給定一個訓(xùn)練pair(x,y),實際上參數(shù)訓(xùn)練了兩次,而且從兩個不同的方向訓(xùn)練的,實際上是資源利用了兩次,xy都參與了訓(xùn)練。

最后文章在機器翻譯和情感分析兩個任務(wù)上驗證了模型的有效性。實驗結(jié)果表明效果優(yōu)于之前的DSL框架以及其他模型。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 近日,谷歌官方在 Github開放了一份神經(jīng)機器翻譯教程,該教程從基本概念實現(xiàn)開始,首先搭建了一個簡單的NMT模型...
    MiracleJQ閱讀 6,725評論 1 11
  • 孩子長大了,會離開你,獨自去面對人生的風(fēng)風(fēng)雨雨。但他小時候的點點滴滴,已經(jīng)深深留在媽媽的心底,時不時就跑出來,用有...
    命自我立閱讀 255評論 0 2
  • 無約無束,無形無態(tài) 寂寞的自由自在 微乎其微,不可分拆 不計其數(shù)的拼成一塊 茫茫 徘徊于人海 我伴著風(fēng) 卷土而來 ...
    沐陽說閱讀 454評論 6 2
  • 序 本文主要講述一下nginx lua如何重置請求參數(shù)以及整理了幾類常量。 重置請求參數(shù) 獲取請求參數(shù) 當請求ur...
    go4it閱讀 1,373評論 0 1
  • 在這章我主要學(xué)習(xí)了一些柱形圖和條形圖的運用,其實我在做ppt的時候,關(guān)于這些圖形的運用還是非常不好的,平時都...
    秀麗有約閱讀 139評論 0 1

友情鏈接更多精彩內(nèi)容