ICML 2018 | 模型層面的對偶學習

微軟研究院AI頭條發表於2018-07-10
編者按:很多人工智慧任務都具有對偶的性質,例如中文到英文翻譯和英文到中文翻譯、語音識別語音合成等。基於此,微軟亞洲研究院在2016年提出了對偶學習,利用任務互為對偶的特點從無標註的資料中進行學習。事實上,對偶性不僅存在於資料層面,也存在於模型的層面。因此微軟亞洲研究院在ICML 2018上提出了一個全新的角度——在模型層面來研究對偶學習。模型層面的對偶學習能夠利用一個模型來解決一組對偶任務,該方法在神經機器翻譯和文字分析兩個任務上都被驗證了其有效性。

多個任務聯合學習被機器學習領域廣泛地接受,特別是在資料不足,或者任務之間關聯性很強的場景下。研究人員提出了多種不同的學習框架,例如多工學習(multi-task learning)、遷移學習、對偶學習等。多工學習的思想是讓多個相關任務之間通過引數共享的方式實現特徵表述,或是關係表述的共享,其能夠成功的原因在於多個任務之間知識能夠互相傳遞,從而提升了模型的泛化能力遷移學習是另一種將知識在任務之間互相遷移的學習方法,目的是將一個已經學習好的模型遷移到另一個任務中。

微軟亞洲研究院機器學習組在NIPS 2016上提出的對偶學習事實上也是多個任務之間通過互相協作提高模型效能的工作。最初的對偶學習方法可以總結為資料層面的對偶,也就是所有的對偶資訊都是通過資料為媒介傳遞的。而在很多工中(例如神經機器翻譯、對話生成等),模型的不同部分已經具備了對偶的性質,以神經機器翻譯為例:通常的神經機器翻譯模型都是利用了編碼器-解碼器(encoder-decoder)的結構,我們在下圖抽象了以遞迴神經網路(LSTM)為例的神經機器翻譯過程。

ICML 2018 | 模型層面的對偶學習

圖1 標準的基於編碼器-解碼器神經機器翻譯的結構(黑色框表示一個單位時間的延遲)

神經機器翻譯過程可以用如下數學公式描述:

ICML 2018 | 模型層面的對偶學習

在原始任務中,編碼器ICML 2018 | 模型層面的對偶學習服務於編碼x而不需要任何外部條件;在對偶任務中,解碼器ICML 2018 | 模型層面的對偶學習用於解碼x,基於得到的文字資訊ZY。也就是說,給定一對對偶任務,原始任務的編碼器和對偶任務的解碼器高度相關,因為它們都是為了處理同一種語言,只是依賴的條件不同。

受到多工學習中共享表述的啟發,我們提出共享對偶任務中相關的模型引數,即對於神經機器翻譯,做如下設定:

ICML 2018 | 模型層面的對偶學習

ICML 2018 | 模型層面的對偶學習

我們將這種方法稱為模型層面的對偶學習(model-level dual learning,縮寫為MDL)。

除了類似於神經機器翻譯這種嚴格對稱的模型,模型層面的對偶學習同樣適用於非對稱的機器學習任務。以情感分類為例,原始任務是判斷一個句子具有積極情感還是消極情感,解決這個任務的網路結構是:輸入的句子會被長短期記憶網路(LSTM)逐詞編碼得到隱狀態,而後這些隱狀態會被輸入到一個全連線網路進行分類。對偶任務是給定一個標籤,生成具有特定感情色彩的回覆。在對偶任務中,標籤首先會被單詞嵌入投射到一個特定的空間,而後,另一個LSTM會基於這個標籤產生一個句子。在這個非對稱的任務中,原始任務的編碼器和對偶任務的解碼器可以被共享。這可以視為我們提出的模型的一種退化形式——只需要設定ICML 2018 | 模型層面的對偶學習

模型框架

我們考慮建立在兩個空間xy之間的對偶任務,其中,原始任務是學習對映f:xy,對偶任務是學習反向的對映g : yx。

對於對稱的場景,xy中的元素形式相同,因而有可能使用相同的模型結果來對對偶學習中的兩個任務進行建模。例如,在神經機器翻譯和Q&A中,xy中元素都是自然語言的句子,因此我們都可以用LSTM來為fg進行建模。

ICML 2018 | 模型層面的對偶學習

X-元素和Y-元素示意圖

ICML 2018 | 模型層面的對偶學習

原始模型,其中ICML 2018 | 模型層面的對偶學習

ICML 2018 | 模型層面的對偶學習

對偶模型,其中ICML 2018 | 模型層面的對偶學習

圖2 對稱條件下,模型層面的對偶學習模型結構的有向圖(黑色的框表示一個單位的延遲,圖中結點對應變數,有向邊對應運算元,其中箭頭指向的點為輸出,另一端為輸入)

在非對稱的場景中,xy中的元素不對等,甚至語義空間也不同,因此,原始和對偶任務的模型也不盡相同。例如,在情感分類的任務中,x是自然語言的集合,而y是標籤的集合,例如,y={0,1}。xy的異質性使得我們要使用不同的模型結構。

ICML 2018 | 模型層面的對偶學習

圖3 非對稱條件下模型層面對偶學習的框架

在模型層面的對偶學習中,原始模型和對偶模型的引數是共享的,意味著模型有著更少的引數,因此這種方法也可以看作是一種全新的模型壓縮的辦法。另外,對於給定的一對有標資料(x, y),模型的每一部分都被更新兩次,分別來自原始任務和對偶任務。因此,相比於標準的有監督學習,資料會被利用的更加充分。最後,由於引數的共享,兩個模型的複雜度被降低了,因此會有更好的泛化能力

模型層面對偶學習在神經機器翻譯中的應用

我們在神經機器翻譯任務中對模型層面的對偶學習方法進行測試,選用Transformer作為實驗的模型,Transformer是由一個基本模組不斷堆疊得到的一個完整模型。一個基本模組包括三個部分:(1)自我注意力機制,用於將底層的隱藏表達自適應地線性加權並提交給上一層;(2)編碼器-解碼器注意力機制:用於自適應地將編碼器端的隱藏表達加權得到相應地文字資訊;(3)非線性變換層,用於對自我注意力機制和編碼器-解碼器注意力機制的輸出進行非線性變換。

下圖展示了Transformer中的基本模組和前面介紹的模型的對應關係。

ICML 2018 | 模型層面的對偶學習

圖4 模型層面的對偶學習在神經機器翻譯任務中的模型結構

該實驗中,我們選擇了三個廣泛應用的資料集作為訓練資料:

  • IWSLT 2014的德英互譯的任務 (153k訓練資料),簡記為IWSLT De↔En;

  • LDC的中英互譯任務(1.25M訓練資料),簡記為Zh↔En;

  • WMT14的英德互譯任務(4.5M訓練資料),簡記為WMT En↔De。 

測試資料:

  • 對於IWSLT De↔En,我們選用和表1列出的對比演算法一樣的測試集;

  • 對於Zh↔En,我們選用NIST2004、2005、2006、2008和2012作為測試集;

  • 對於WMT En↔De,我們選取newstest14為測試集。

我們將所有的實驗模型設定為6個模組。對於IWSLTDe↔En任務,我們選擇transformer_small引數配置辦法,其餘兩個任務選擇的配置均為transformer_big。同時,我們使用對偶有監督學習作為對比演算法。

IWSLT De↔En的實驗結果如下表:

ICML 2018 | 模型層面的對偶學習

表1 IWSLT De↔En的實驗結果

在IWSLT De↔En任務中,我們得到了德文到英文的最佳結果34.71。相比於基準演算法Transformer,我們在原始任務德文到英文和對偶任務英文到德文上分別提高了1.85和0.90個點。相比於對偶有監督學習,我們的方法能夠分別獲得1.13和0.73個點的提升。

為了進一步探索新模型如何隨著模型複雜度變化而工作,我們研究了隨著網路模組數的變化,BLEU值的變化。我們分別測試了含有2、4、6、8個模組的模型的BLEU值(注意每個模組含有3層)。測試的結果如下圖所示:

ICML 2018 | 模型層面的對偶學習

圖5 BLEU隨著模型模組數的變化

通過實驗,我們發現:

(1)對於不同的模組數目以及不同的任務,我們提出的演算法都能夠提高模型的效能;

(2)當模型的模組數小於6的時候,在兩個方向的翻譯任務上,隨著模組數的增加,模型層面的對偶學習提升的效能(圖中綠色部分)會提升。這說明,雖然更深的模型有更強的表達力,但可能會受到過擬合的影響,特別是在資料量比較小的IWSLT資料集上。我們提出的方法能將對偶性引入模型中約束模型空間,並且能夠更加充分地利用資料;

(3)即便是對於具有8個模組的網路,我們的方法仍然能夠提升模型效能,儘管沒有6個模組帶來的提升明顯。在這種情況下,為了帶來更大的提升,我們需要引入更強的泛化效能的約束,例如採用對偶有監督學習

中英互譯的結果如下表:

ICML 2018 | 模型層面的對偶學習

表2 中英互譯的實驗結果

在中文到英文的翻譯任務中,模型層面的對偶學習利用更簡單的模型和更少的資料,再一次取得了最好的效果。在Transformer的演算法之上,我們的方法平均給每個資料集帶來1.21個點的效能提升,同時也超越了對偶有監督學習演算法的表現。對於英文到中文的翻譯任務,相比於基準演算法,我們的方法在每個資料集上平均取得0.69個點的增益。

最後,在WMT英德互譯的任務上,模型層面的對偶學習能夠在Transformer的基礎上將模型的效能進一步提升0.5個點。實驗結果如下表:

ICML 2018 | 模型層面的對偶學習

表3 WMT英德互譯的實驗結果

模型層面的對偶學習在情感分析中的應用

在情感分析中,原始任務是情感分類,對偶任務是帶有情感的句子生成。x是自然語言的集合,y是標籤的集合。因此,兩個空間的資料形式和語言完全不同。所以,我們要採用非對稱形式的模型層面的對偶學習。

我們在IMDB資料集上進行了驗證。我們選用標準的LSTM網路作為原始任務和對偶任務模型的基本單元。模型的單詞嵌入和情感標籤的嵌入表達均為500維,隱藏層節點數為1024,詞表的大小是10k,Dropout的值設定為0.5。我們將softmax矩陣和單詞嵌入矩陣(包括單詞的和情感標籤的)共享。實驗結果如下表:

ICML 2018 | 模型層面的對偶學習

表4 情感分析的實驗結果

在原始任務中,相比於標準的LSTM,模型層面的對偶學習能夠將錯誤率下降2.69個百分點;相比於對偶有監督學習,我們的方法也能將錯誤率下降1.79個百分點。在對偶任務中,模型層面的對偶學習能夠比對偶有監督學習下降3.19個點。

與對偶推斷的結合

對偶推斷是我們在IJCAI 2017上提出的將對偶性應用到推斷的過程中,用來提升已有對偶模型推斷/預測準確度的方法。為了進一步提升模型效果,我們將對偶推斷和模型層面對偶學習進行結合。

模型層面的對偶學習和對偶推斷結合的結果如下:

ICML 2018 | 模型層面的對偶學習ICML 2018 | 模型層面的對偶學習ICML 2018 | 模型層面的對偶學習分別對應原始任務和對偶任務的損失函式ICML 2018 | 模型層面的對偶學習ICML 2018 | 模型層面的對偶學習是經過驗證集確定的引數

我們在IWSLT德英互譯任務上驗證了模型層面的對偶學習和對偶推斷結合的效能,實驗結果如下表:

ICML 2018 | 模型層面的對偶學習

表5 模型層面對偶學習和對偶推斷結合在IWSLT德英互譯任務上的實驗結果(第三行表示標準的Transformer在標準推斷和對偶推斷的結果;第四行表示模型層面的對偶學習在標準推斷和對偶推斷下的結果)

可以看出,對偶推斷可以將我們提出的演算法在兩個任務上分別提升0.48個點(德文到英文)和0.19個點(英文到德文)。對偶推斷也能為標準Transformer分別帶來0.66和0.10個點的提升。

我們同樣在情感分類任務中測試了模型層面對偶學習和對偶推斷結合的效能。下表展示了對偶推斷在IMDB資料集的分類錯誤率:

ICML 2018 | 模型層面的對偶學習

表6 模型層面對偶學習和對偶推斷結合在情感分類任務上的實驗結果

從表格中可以看出,在使用了對偶推斷之後,我們可以將錯誤率下降0.45個點。

總結來說,模型層面的對偶學習可以與資料層面的對偶學習形成互補。這種新的方法利用模型層面的對偶性來設計網路結構,進而提升網路效能。同時,模型層面的對偶學習可以用一個模型解決一組對偶任務,能夠起到節省引數量的作用。

論文連結:

http://proceedings.mlr.press/v80/xia18a.html

相關文章