在 NIPS 2017 大會正式開始前,機器之心將選出數篇優質論文,邀請論文作者來做線上分享,聊聊理論、技術和研究方法。上週,我們進行了線上分享的第二期,邀請到了中國科大—微軟亞洲研究院聯合培養博士生夏應策講解了一篇有關神經機器翻譯的 NIPS 論文。本文將對該論文內容進行簡要介紹。
線上分享視訊回顧
神經機器翻譯(Neural Machine Translation,NMT)基於深度神經網路,為機器翻譯提供了端到端的解決方案,在研究社群中受到了越來越多的關注,且近幾年已被逐漸應用到了產業中。NMT 使用基於 RNN 的編碼器-解碼器框架對整個翻譯過程建模。在訓練過程中,它會最大化目標語句對給定源語句的似然度。在測試的時候,給定一個源語句 x,它會尋找目標語言中的一個語句 y*,以最大化條件概率 P(y|x)。由於目標語句的可能數目是指數量級的,找到最優的 y*是 NP-hard 的。因此通常會使用束搜尋(beam search)以找到合理的 y。
束搜尋是一種啟發式搜尋演算法,會以從左向右的形式保留得分最高的部分序列擴充套件。特別是,它儲存了一群候選的部分序列。在在每個時間步上,該演算法將都會通過新增新詞的方法擴充套件每一個候選部分語句,然後保留由 NMT 模型評分最高的新候選語句。當達到最大解碼深度或者所有的語句都完全生成的時候(即所有的語句都包含 EOS 符號字尾的時候),演算法就會終止。
雖然 NMT 結合束搜尋是很成功的,但也存在幾個明顯的問題,已經被研究過的包括曝光偏差(exposure bias)、損失評估失配(loss-evaluation mismatch)和標籤偏差(label bias)。然而我們觀察到,其中仍然有一個很重要的問題被廣泛忽視,即短視偏差(myopic bias)。束搜尋傾向於更關注短期獎勵。例如,在第 t 次迭代中,對於候選語句 y_1,...,y_t-1(記為 y_<t),和兩個詞 w 和 w』,當把 w 新增到 y_<t 的時候記為 y_<t+w。如果
則新的候選語句 y_<t+w 相比 y_<t+w』 更可能被保留,即使 w'是在第 t 次迭代中的真實翻譯,或在未來的解碼中能獲得更高的分數。這種源於短視的搜尋錯誤有時候在模型很好的情況下也會提供糟糕的翻譯。
為了解決短視偏差,對每一個詞 w 和每一個候選語句 y_<t,我們設計了一個預測模型以在把 w 新增到 y_<t 的時候,評估長期獎勵。這個過程會跟隨當前使用的 NMT 模型,直到解碼完成。然後我們可以在每個解碼步中應用這個模型輸出的預測分數幫助尋找更好的 w,以提升長句翻譯效能。這種預測長期獎勵的模型,恰好和強化學習中的價值函式的概念相同。
在本研究中我們開發了一個基於神經網路的預測模型,即為 NMT 設計的價值網路。該價值網路將源語句與任何部分序列作為輸入,並輸出預測值以估計 NMT 模型生成這一部分序列的期望總回報(例如 BLEU 分值)。在所有解碼的步驟中,我們不僅基於該部分序列的條件概率選擇最優的候選譯文,同時還基於價值網路估計翻譯效果的長期回報。
該項工作的主要貢獻如下。首先我們開發了一個考慮長期回報的解碼方案,它會為機器翻譯逐一生成譯文,這在 NMT 中是比較新的方案。在每個步驟中,新的解碼方案不僅考慮源語句的條件概率,同時還依賴於未來的預測回報。我們相信考慮這兩個部分將導致更好的翻譯效果。
其次,我們設計了一種新穎的價值網路。在 NMT 編碼器-解碼器層的頂部,我們為價值網路開發了另外兩個模組,即一個語義匹配模組和一個上下文覆蓋(context-coverage)模組。語義匹配模組旨在估計源語句與目標語句之間的相似度,該模組直接有助於翻譯質量的提升。不過我們經常觀察到,隨著注意力機制使用更多的上下文資訊,模型能生成更好的翻譯 [14, 15]。因此我們構建了一個上下文覆蓋模組來度量編碼器-解碼器層中的上下文覆蓋範圍。通過這兩個模組的輸出,模型最終的預測將由全連線層完成。
圖 1:價值網路的架構
演算法 1:價值網路訓練
演算法 2:NMT 中用價值網路的束搜尋
圖 2:在三種任務的測試集上的翻譯結果
表 1 :整體表現
對價值網路的分析
我們進一步觀察了學習到的價值網路,並做了一些分析從而有更好的理解。
首先,因為我們在解碼過程中使用一種附加元件,它會影響到翻譯過程的效率。也因為設計的價值網路架構類似於基礎的 NMT 模型,所以其計算複雜性也類似於 NMT 模型,且兩個流程可並行執行。
其次,可以看到 NMT 的準確率在特定任務上有時對束搜尋的大小極為敏感。我們在英語到德語的翻譯上觀察到了這一現象。Zhaopeng Tu 等人的論文《Neural Machine Translation with Reconstruction》認為,這是因為 NMT 的訓練喜歡短小但不合適的翻譯候選內容。然而,我們證明,通過使用價值網路,我們可以極大地避免這一缺陷。我們用不同的束大小測試了該演算法的準確率,如圖 3 所示。可以看到,NMT-VNN 要比沒有價值網路的原始 NMT 更穩定:在不同大小的束搜尋下,它的準確率只有略微不同,但 NMT-BS 在束大小變大的情況下準確率下降了超過 0.5 個點。
圖 3:(a)英語到德語翻譯任務關於不同束搜尋的 BLEU 分值。(b)英語到德語翻譯任務關於不同超引數 α 的 BLEU 分值。
第三,在英語到德語的解碼過程中,我們測試了不同超引數α下的 NMT-VNN 的效能。從該圖我們可以看出當α處於 0.7 到 0.95 時,效能是比較穩定的,而採用更小的α效能會有一些降低。這表明我們的演算法對於超引數來說是魯棒的。
論文:Decoding with Value Networks for Neural Machine Translation
論文連結:https://papers.nips.cc/paper/6622-decoding-with-value-networks-for-neural-machine-translation.pdf
摘要:神經機器翻譯(NMT)近幾年正變得流行起來。在解碼的時候,束搜尋(beam search)能使得搜尋空間縮小和計算複雜度降低,因而被廣泛採用。然而,由於其在解碼時只向前計算一步,所以只能在每個時間步搜尋區域性最優,而通常不能輸出全域性最優的目標語句。受到 AlphaGo 的成功和方法論的啟發,在這篇論文中,我們提出了一種新方法,利用預測網路提升束搜尋準確率,即在第 t 步選取源語句 x、當前可用的解碼輸出 y_1,...,y_{t-1} 和一個候選詞 w 作為輸入,並預測部分目標語句(假如它由 NMT 模型完成)的長期價值(例如,BLEU 分值)。根據強化學習的實踐經驗,我們將這個預測網路稱為價值網路。具體來說,我們提出了價值網路的迴圈結構,並使用雙語資料訓練其引數。在測試過程中,當需要解碼詞 w 的時候,需要同時考慮由 NMT 模型給定的條件概率和由價值網路預測的長期價值。實驗證明,這種方法可以顯著提高多種翻譯任務的準確率。