論文閱讀:Dual Learning for Machine Translation

論文閱讀:Dual Learning for Machine Translation

問題提出:

目前在機器翻譯的領域,神經機器翻譯(NMT)快速發展,取得了很好的效果,但是爲了得到一個好的NMT的模型,需要大量的人工標記的訓練
集即雙語的語句對。人工標記大量的數據費時費力,本文的目的就是提出一種方案(dual learning)來解決這個問題,並且可以得到相比於NMT模
型更好的效果。

思考:

作者觀察到在機器學習的任務中,有許多任務是對偶存在的,比如:英漢互譯。現實中我們往往分別考慮兩個過程,即對於漢語翻譯成英語進行一個模型的訓練,
對於英語翻譯成漢語進行另一個模型的訓練。那這兩個模型之間是否存在着什麼關係呢?是否可以同時訓練這兩個過程,同時兩者之間可以相互的促進?假如前面
兩個問題是true的話,回到本文的初衷,新的模型又是如何解決大量標記數據的問題的呢?

思想:

Dual learning的整個過程可以看作兩個代理人的交流遊戲:
1. 第一個Agent 只懂得語言A,可以將語言A的信息通過一個有噪聲的信道發送給第二個Agent,這個有噪聲的信道可以使用一個翻譯模型將語言A翻譯成
第二個Agent懂得的語言B。
2. 第二個Agent只懂得語言B,她接收到第一個Agent發來的信息(已經被翻譯成語言B),然後她會對該信息進行判斷(比如語法是否正確,語句是否完整等),
注意她並不能準確的判斷該信息的正確性,因爲原始的信息對她來說是不可見的。之後她將此時的信息通過另一個有噪聲的信道再發送回第一個Agent,該信道使用另一個翻譯模型將語言B的信息轉換爲語言A。
3. 第一個Agent接收到B傳回來的信息後,就與原始的信息進行比對,看兩者的一致性。通過這個反饋(feedback),兩個Agent都可以知道兩個信道(兩個翻譯模型)是否執行的比較好(perform well)以及是否可以相互促進。
4. 當然也可以從第二個Agent開始。這兩個Agent通過這個閉環的過程,根據反饋可以不斷的提升兩個翻譯模型。
從上述描述中可以看出,儘管這兩個Agent都沒有與之標記的雙語的標籤,但是她們依然可以得到關於這兩個翻譯模型的反饋,並依據此反饋來提高模型的翻譯能力。由此也可以看出,我們並不需要大量的雙語對的訓練集(爲了加快模型的訓練速度,也可以先使用少量的雙語對訓練集進行模型的訓練——需要實驗的論證)。

算法過程:

有兩個單語言的集合DA和DB,分別是語言A的集合和語言B的集合,這裏注意DA和DB並不需要相互匹配,甚至不需要含有部分的匹配。現在假定我們已經有了兩個比較弱的翻譯模型,可以將語言A翻譯成語言B,也可以將語言B翻譯成語言A,我們的目標是使用單語言的集合來提高我們模型的翻譯準確率(這裏看出其實是不需要進行標記,是一個無監督學習過程)。
假設DA包含NA個句子,DB包含NB個句子。定義 表示兩個神經翻譯模型,分別是這兩個模型的參數。
假設我們已經有了兩個訓練好的語言模型,每個語言模型接受一個句子作爲輸入,然後輸出一個真值(real value)來表示該語句是否是一個自然的語句(natural sentence),注意它只是判斷一個句子是否正常,如是否符合語法,是否通順等,並不是進行翻譯。



第1行:算法的輸入,數據集DA和DB,初始化後的翻譯模型參數 (弱翻譯器),語言模型
超參數,beam search算法的大小參數(size),學習率
第2行到第17行:循環過程直至算法收斂
第3行:t 表示算法的迭代次數,每經過一次迭代,t的值加上1
第4行:例句SA和SB分別來自於DA和DB
第5行:令s爲SA(假定模型更新從A開始)
第6行:使用beam search算法,根據翻譯模型生成K個句子
第7行到第11行:for循環,1—K
第8行:令語言模型對第K個例句的回報爲
第9行:令第k個例句的交流回報爲
第10行:令第K個例句的整個回報爲
第12行:使用隨機梯度下降策略計算的下降梯度
第13行:使用隨機梯度下降策略計算的下降梯度
第14行:更新參數
第15行:令s爲SB
第16行:返回第6行繼續執行 (這裏返回後,第8行的回報計算式子使用來計算,第9行的也要相應的更換)


實驗驗證:

實驗的評測方法使用BLUE,baseline使用NMT和pseudo-NMT。

其中Large表示使用所有的數據集,Small表示使用整個數據集的10%,從表中可以看出,相比於baseline,有了很大的提高,尤其是
對於數據量相對較小時更加明顯。

進一步的,本文使用一些手段對原有的三個模型從語句向量的構造,硬件條件等方面進行改進(如:利用主流的框架實現NMT,但保證GPU爲單一變量),
得到下表:

結論依然不變。


拓展(extension):

本文述了對於兩個對偶的任務,可以使用對偶學習(dual learning),但並不侷限於兩個任務,因爲我們關心的是其中的反饋,
如果3個甚至更多個任務可以構成一個閉環,從理論上我們依然可以利用本文的思想(dual learning),使用無標籤的數據進行每個模型的
訓練。比如我們有一個英語語句X ,可以將其翻譯成漢語Y,然後再翻譯成法語語句Z,最後翻譯成英語 W ,通過比較X和W我們就可以
指出這三個翻譯模型翻譯的準確率,問題解決的關鍵點是這個閉環過程中的反饋(feedback)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章