乾貨 | NIPS 2017:用於序列生成的推敲網路

微軟研究院AI頭條發表於2017-12-06

mmbizgif?wxfrom=5&wx_lazy=1


者按:NIPS 2017 正在美國長灘舉行,微軟亞洲研究院的多篇論文入選了本次大會。上週,中山大學-微軟亞洲研究院聯合培養博士吳酈軍應邀參加機器之心優質論文線上分享活動,就其中一篇有關推敲網路的入選論文進行了詳細講解。一起來看看吧!本文轉載自公眾號“機器之心”。

 

線上分享視訊回顧

640.png?wxfrom=5&wx_lazy=1

(以下為吳酈軍分享的文字整理)

?wx_fmt=png&wxfrom=5&wx_lazy=1


論文連結http://papers.nips.cc/paper/6775-deliberation-networks-sequence-generation-beyond-one-pass-decoding.pdf



摘要編碼器-解碼器框架在許多序列生成任務中都實現了非常好的效能,包括機器翻譯、自動文字摘要、對話系統和影象描述等。這樣的框架在解碼和生成序列的過程中只採用一次(one-pass)正向傳播過程,因此缺乏推敲(deliberation)的過程:即生成的序列直接作為最終的輸出而沒有進一步打磨的過程。然而推敲是人們在日常生活中的一種常見行為,正如我們在閱讀新聞和寫論文、文章、書籍一樣。在該研究中,我們將推敲過程加入到了編碼器-解碼器框架中,並提出了用於序列生成的推敲網路(deliberation networks)。推敲網路具有兩階段解碼器,其中第一階段解碼器用於解碼生成原始序列,第二階段解碼器通過推敲的過程打磨和潤色原始語句。由於第二階段推敲解碼器具有應該生成什麼樣的語句這一全域性資訊,因此它能通過從第一階段的原始語句中觀察未來的單詞而產生更好的序列。神經機器翻譯和自動文字摘要的實驗證明了我們所提出推敲網路的有效性。在WMT 2014英語到法語間的翻譯任務中,我們的模型實現了41.5的BLEU分值,即當前最優的BLEU分值。


?wx_fmt=png

一、引言


基於神經網路的編碼器-解碼器框架已經在序列生成任務上得到了廣泛的應用,其中包括神經機器翻譯、文字摘要、影象描述等。在這樣的框架中,編碼器將長度為m的源輸入x編碼成一個向量序列 {h1,h2,· · · , hm}。編碼器(通常是一個RNN)則基於來源的向量表徵和之前生成的詞來逐個詞地生成一個輸出序列。注意機制則是在生成每個目標詞時動態地關注x的不同部分,該機制可被整合進編碼器-解碼器框架中,從而提升長序列的生成質量。


儘管該框架已經取得了很大的成功,但還存在一個問題:在生成詞的時候只能利用生成的詞而不是未來的尚未生成的詞。也就是說,當解碼器生成第t個詞y_t時,只使用了小於t的y,而沒有明確考慮大於t的y。相反,真實的人類認知過程會以一種迭代式重新整理的方式利用包含過去和未來部分的全域性資訊。這裡給出兩個例子:(1) 思考一下當我們在閱讀一個句子時在句子中間遇到了一個不認識的詞。我們不會在此就停止閱讀。相反,我們會繼續讀完這個句子。然後我們回到這個未知詞並試圖使用其上下文(包括該詞之前和之後的詞)來理解它。(2)在書寫一份好的文件(或段落、文章)時,我們首先會建立一個完整的草稿,然後再根據對整個草稿的全域性理解來進行潤色。當潤色一個特定部分時,我們不會只看這部分之前的內容,而是會考慮這個草稿的全域性,從而評估這裡的區域性元素與全域性環境的契合程度。


我們將這個潤色過程稱為推敲(deliberation)。受人類認知行為的啟發,我們提出了推敲網路,該網路通過一個推敲過程可在序列解碼過程中同時檢查前後的內容,從而可以利用全域性資訊。具體而言,為了將這樣的過程整合進序列生成框架中,我們精心設計了我們的框架——它由一個編碼器E以及兩個解碼器D1 和D2 構成;其中D1 是一個第一階段解碼器(first-pass decoder),D2 是一個第二階段/推敲解碼器(second-pass/deliberation decoder)。給定一個源輸入x,E和D1 會像標準的編碼器-解碼器模型一樣聯合工作,從而生成一個粗略的序列yˆ 作為草稿和用於生成 yˆ 的對應的表徵

?wx_fmt=png

其中T_yˆ 是 yˆ 的長度。之後,推敲解碼器D2 以 x、yˆ 和 sˆ 為輸入,輸出經過精細處理後的序列 y。當D2 生成第t個詞 y_t 時,還有一個額外的注意模型被用於給每個yˆ_j 和 sˆ_j分配一個自適應權重β_j,其中 j ∈ [T_yˆ];而且 ?wx_fmt=png被饋送給D2。通過這種方式,目標序列的全域性資訊可以被用於生成過程中的精細處理。因為在優化推敲網路的過程中yˆ 的離散性會帶來困難,所以我們提出了一種基於蒙特卡洛的演算法來克服這種困難。


為了驗證我們的模型的有效性,我們在兩個有代表性的序列生成任務上進行了研究:

 

(1)神經機器翻譯(NMT),即用神經網路來將源語言的句子翻譯到目標語言。標準的 NMT 模型由一個編碼器(用於編碼源句子)和一個解碼器(用於生成目標句子)組成,因為可以使用我們提出的推敲網路加以改善。在WMT' 14 英語→法語資料集上基於廣泛應用的單層GRU模型上實驗結果表明:相比於沒有使用推敲的模型,使用推敲可以將BLEU分值提升 1.7。我們還在漢語→英語翻譯上應用了我們的模型,並且在 4 種不同的測試集上平均實現了 1.26 的BLEU提升。此外,在 WMT' 14 英語→法語翻譯任務上,通過將推敲應用於深度LSTM模型,我們實現了 41.50 的BLEU分值,這個成績是這一任務的全新紀錄。


(2)文字摘要,即將長文章歸納為短摘要的任務。這個任務可以使用編碼器-解碼器框架,因此也可以使用推敲網路來精細處理。在Gigaword資料集上的實驗結果表明推敲網路可以將ROUGE-1、ROUGE-2 和ROUGE-L 分別提升 3.45、1.70 和 3.02。


?wx_fmt=png

二、框架


在這一節,我們首先會介紹推敲網路的整體架構,然後再介紹各個組分的詳細情況,最後還會提出一種用於訓練推敲網路的端到端的基於蒙特卡洛的演算法。

?wx_fmt=png

圖 1:推敲網路的框架:藍色、黃色和綠色部分分別表示編碼器 E、第一階段解碼器 D1 和第二階段解碼器 D2。為了可讀性,這裡省略了 E 到 D1 的注意模型。

?wx_fmt=png演算法 1:用於訓練推敲網路的演算法


?wx_fmt=png

三、將推敲網路應用於神經機器翻譯


我們使用兩種不同的網路結構評估了推敲網路:(1)淺模型,基於名為 RNNSearch的有廣泛應用的單層GRU模型;(2)深度模型,基於類似於GNMT 的深度LSTM模型。這兩類模型都是在Theano中實現的。

?wx_fmt=png

表1:英語→法語翻譯的 BLEU 分值

?wx_fmt=png

表2:漢語→英語翻譯的 BLEU 分值

?wx_fmt=png

表 3:漢語→英語翻譯的案例研究。注意第二個例子中的“……”表示一個常見句子“(the two sides will discuss how to improve the implementation of the cease-fire agreement)雙方將討論如何改進落實停火協議”。

?wx_fmt=png

 表 4:推敲網路與不同的深度 NMT 系統(英語→法語)之間的比較


?wx_fmt=png

四、將推敲網路應用於文字摘要


我們進一步驗證了推敲網路在文字摘要上的有效性,這是編碼器-解碼器框架得到了成功應用的另一種真實應用。

?wx_fmt=png

表 5:文字摘要的 ROUGE-{1, 2, L} 分值


?wx_fmt=png

五、結論和未來工作

在這項研究中,我們提出了用於序列生成任務的推敲網路,其中會使用一個第一階段解碼器來生成一個原始序列,然後再使用一個第二階段解碼器來潤色這個原始序列。實驗表明我們的方法在機器翻譯和文字摘要任務上可以實現比幾種基準方法遠遠更優的結果,而且我們的方法還在WMT' 14 英語→法語翻譯任務上實現了新的單個模型的當前最佳結果。

 

未來還有多個可以探索的有潛力的研究方向。首先,我們將研究如何將推敲的思想應用於序列生成之外的任務,比如改善GAN生成的影象的質量;其次,我們將研究如何細化、潤色不同層級的神經網路,比如RNN中的隱藏狀態或CNN中特徵圖;第三,我們還很好奇如果解碼器有更多階段(即多次打磨潤色生成的序列),生成的序列是否還會更好;第四,我們還將研究如何加速推敲網路的推理以及縮短它們的推理時間。


你也許還想


● 乾貨 | NIPS 2017線上分享:利用價值網路改進神經機器翻譯

● 大會|NIPS 2016:機器學習的盛典

● NIPS 2016:普及機器學習


640.png?

感謝你關注“微軟研究院AI頭條”,我們期待你的留言和投稿,共建交流平臺。來稿請寄:msraai@microsoft.com。


640.jpeg?


相關文章