近些年來,神經機器翻譯得到了迅速發展,在特定翻譯場景下甚至可以媲美人類翻譯的水平。但是,在難以收集雙語資料的語言方向和專業領域的情況下,神經機器翻譯模型面臨著低資源問題,模型難以達到良好的效能。目前解決低資源問題的常用方法如預訓練、遷移學習和資料增強,都比較依賴輔助資料。而在面臨低資源問題時,輔助資料依然是較難獲取的。人類在學習時所需的資料遠少於神經機器翻譯模型,那麼神經機器翻譯是否可以像人類一樣學習?課程學習就是模仿人類的學習策略,有組織地利用有限的訓練資料,從而達到更高的模型效能。
許晨,東北大學自然語言處理實驗室博士二年級學生,導師是朱靖波教授和肖桐教授。研究方向主要包括低資源機器翻譯、語音翻譯。
一、背景介紹
1.1 機器翻譯
機器翻譯是利用計算機將句子從一種語言自動翻譯為另外一種語言的技術。隨著深度學習技術的發展,機器翻譯模型也在不斷改進。從一開始的基於迴圈神經網路的模型發展到基於卷積神經網路的模型,再到目前比較火熱的基於自注意力機制的機器翻譯模型,機器翻譯模型的能力已經有了非常大的提升。
圖1:機器翻譯的發展
在特定的語言方向和資料集上,機器翻譯甚至可以達到人類翻譯水平,在諸多場景下都發揮了巨大的作用。
圖2:機器翻譯的應用場景
1.2 低資源問題
但目前神經機器翻譯模型的效能與雙語資料的資料量十分相關,這導致在無法獲取充分資料量的情況下,神經機器翻譯模型無法達到理想水平。
圖3:資料量與模型效能的關係
除了一些常用的語言,如漢語、英語和西班牙語等,世界上大多數語言的使用人數都是非常少的。這些語言對應的翻譯資料也就難以獲取,導致了嚴重的低資源問題。
圖4:各個語言的使用人數
低資源問題不僅僅會出現在小語種翻譯上,在一些非小語種的專業領域翻譯中也會出現。比如在中英翻譯中,醫學、化學等領域的雙語資料也是相對難以獲取的。
圖5:富資源領域與低資源領域
1.3 目前的低資源翻譯方法
目前解決低資源問題的常用方法包括預訓練、遷移學習和資料增強等。其中,預訓練和遷移學習的核心思想是透過輔助資料來預先訓練模型的一部分引數,再使用這些引數初始化目標翻譯模型(圖6左邊所示)。資料增強則是透過輔助資料生成一些偽雙語資料來增加訓練資料的規模(圖6右邊所示)。
圖6:目前解決低資源問題的方法
然而,上述方法過度地依賴輔助資料。預訓練通常需要大量的單語資料,遷移學習需要和目標語言對比較相似的訓練資料,資料增強也同樣需要大量的單語資料。對於低資源語言來說,這些輔助資料通常也是難以獲取的。那麼,我們是否可以在不使用輔助資料的前提下,透過更高效地利用有限的雙語資料,來獲得更好的神經機器翻譯模型呢?
二、動態課程學習方法
人類在學習過程中,僅利用少量的資料就可以學習到很好的水平。受到人類學習策略的啟發,我們使用課程學習方法來解決低資源問題。
2.1 課程學習
課程學習受人類的學習策略啟發,是一種從易到難的學習方式。比如,人類在學習翻譯的過程中,一般會從簡單的單詞翻譯開始學習,然後再學習一些短語翻譯和簡單句子翻譯,最後學習一些困難的長句翻譯。透過這種循序漸進的方式,我們可以學習地更快更好。
圖7:循序漸進的學習方式
2.2 神經機器翻譯中的課程學習
課程學習將神經機器翻譯模型的訓練過程分成多個階段,每個階段都使用不同難度的訓練資料來訓練模型。
圖8:神經機器翻譯中的課程學習
在每個階段,模型的訓練目標是通過當前的訓練資料最佳化神經機器翻譯模型的負對數似然。
圖9:神經機器翻譯的訓練目標
那麼課程學習如何選擇每個階段的訓練資料呢?一般是基於兩個準則,分別是樣本難度和模型能力。我們定量地衡量每個樣本的難度值,然後基於當前模型的能力,來選擇一定比例的簡單樣本進行訓練。
在之前的工作中,樣本難度可以透過句子長度或單詞詞頻來衡量。一個句子越長或者包含的單詞詞頻越低,那麼這個句子的樣本難度就越高。對於模型能力,則是假設它的提升過程符合簡單的線性函式或平方根函式。
圖10:每階段訓練樣本的選擇與模型能力的關係
基於以上方法,可以看出,樣本難度在訓練過程中不會發生變化,所以只需要在訓練開始之前計算一次。這種方法被稱為靜態課程學習,好處在於比較方便,計算代價較小,但是存在兩個主要問題:
簡單的準則無法準確衡量樣本對於模型的難度。使用詞頻或句長來衡量難度的方式,對於人類來說比較直觀,但對於模型來說卻不一定適用。模型訓練過程是一個動態過程,樣本難度和模型能力都隨著訓練階段變化而變化。2.3 動態課程學習
為了解決以上兩個問題,我們提出了動態課程學習,模型在每個階段都要根據當前狀態重新衡量樣本難度。
圖11:動態衡量模型難度
我們希望樣本難度的計算方法滿足以下兩個條件:
和模型訓練相關。在訓練過程中動態計算。之前提到,每個階段的訓練目標是最佳化模型在訓練資料上的負對數似然。那麼是否可以直接使用負對數似然(預測損失)來衡量樣本難度?
雖然這種衡量方法是模型相關的,但是存在著一個問題,即預測損失只考慮到模型當前階段的絕對值。如果存在某個樣本在初始階段時的預測損失就比較大,那麼這個樣本可能一直得不到訓練。而對於預測損失比較小的樣本,則沒有進一步的下降空間。如果一直重複訓練預測損失較小的樣本,容易造成模型過擬合。
圖12:預測損失
為了避免以上問題,我們認為樣本的選擇需要同時考慮歷史訓練過程和模型當前的狀態,以此選擇能夠使模型在未來表現得更好的資料。為了滿足上面提出的需要,我們使用損失下降速度作為衡量樣本難度的標準。
如果一個樣本經過一輪的訓練,預測損失得到了明顯下降,那麼模型有可能在下一輪將它學習更好。而下降較慢的樣本,表明模型當前沒有充分的能力對其進行學習或者已經學習地很好,不需要再重複進行訓練。
圖13:損失下降速度
對於模型能力,我們同樣在訓練過程中動態地進行計算。這裡我們使用機器翻譯中常用的評價指標BLEU值來動態地計算模型能力。
圖14:動態模型能力計算
三、實驗結果
實驗使用Transformer模型,並將模型能力計算公式中的c0設為0.2,β設為0.9。以下為實驗使用的資料集。
表1:資料集
首先,我們實驗了靜態課程學習的方法。從表2中可以看出,無論是使用句長還是詞頻來衡量樣本難度,都無法提升模型水平。這可能是由於這些計算方法無法準確測量樣本難度和模型能力導致的。
表2:靜態課程學習的實驗結果
而動態課程學習的實驗結果表明,只通過預測損失加基於BLEU動態衡量模型能力的方法並沒有提升模型能力(表3 Loss+DMC),這和我們前面的猜測是一致的。在使用預測損失速度衡量樣本難度時,模型效能得到了明顯提升(表3 Decline+DMC)。
此外,我們考慮到,訓練過程中模型是基於batch的方法進行訓練的,這意味著樣本更新是基於batch中所有樣本的梯度。那麼,如果batch中的樣本難度相似,是否會使得梯度更穩定進而使模型更容易學習?實驗結果如表3最後一行,模型效能得到了顯著提升,尤其在資料量較少的集合上。
表3:所有實驗結果對比
從圖15可以看出,在不同大小的資料集上,動態課程學習的收斂速度明顯更快。在富資源場景下,動態課程學習方法可以加快模型收斂速度,但是隨著訓練次數增加,它們之間的效能差距也在逐漸減小。如何在更大規模的資料集上表現更好,也是我們未來工作的一個方向。
圖15:訓練次數與BLEU曲線
除此之外,動態課程學習雖然減少了困難樣本上的訓練次數(圖16左),但是其翻譯質量也得到了顯著提升(圖16右)。這表明,訓練次數並不是決定模型學習質量的關鍵因素,而是在於如何進行高效地學習。
圖16:不同長度句子的訓練次數與翻譯質量