本文為計算所邵晨澤向雷鋒網(wǎng)AI科技評論投稿,未經(jīng)允許禁止轉(zhuǎn)載。
本文是對計算所馮洋組和騰訊微信AI團隊共同完成,被AAAI2020 錄用的論文《Minimizing the Bag-of-Ngrams Difference for Non-Autoregressive Neural Machine Translation》進行解讀,相關工作已開源。
論文:https://arxiv.org/pdf/1911.09320.pdf
代碼:https://github.com/ictnlp/BoN-NAT
研究背景:非自回歸模型
目前主流的神經(jīng)機器翻譯模型為自回歸模型,每一步的譯文單詞的生成都依賴于之前的翻譯結(jié)果,因此模型只能逐詞生成譯文,翻譯速度較慢。Gu等人[1]提出的非自回歸神經(jīng)機器翻譯模型(NAT)對目標詞的生成進行獨立的建模,因此能夠并行解碼出整句譯文,顯著地提升了模型的翻譯速度。
然而,非自回歸模型在翻譯質(zhì)量上與自回歸模型有較大差距,主要表現(xiàn)為模型在長句上的翻譯效果較差,譯文中包含較多的重復詞和漏譯錯誤等,如圖一所示:
圖一:NAT譯文中的重復詞和漏譯錯誤。NAT:非自回歸模型,AR:自回歸模型
造成非自回歸模型翻譯效果較差的一個主要原因為其訓練時所用的交叉熵損失函數(shù)不準確。一方面,詞級別的交叉熵損失對每個位置的預測結(jié)果進行獨立評估,難以建模序列依賴關系;另一方面,交叉熵損失要求模型的預測結(jié)果與參考譯文嚴格對齊,否則就難以評估模型的翻譯質(zhì)量。如圖二所示,
圖二:不對齊時,交叉熵損失無法給出準確的指導
當預測結(jié)果未與參考譯文對齊時,盡管兩者語義很相近,交叉熵損失還是會變得非常大,對模型給出錯誤的指導。
相關工作
針對上述的交叉熵損失函數(shù)不準確的問題,Gu等人[1]將其歸因為譯文的“多峰性”,即一個句子可能有多種正確的譯文,并提出引入隱變量來減小譯文的不確定性。隨后,離散隱變量[2,3]、變分自編碼器[4,5]、基于位置信息的隱變量[6,7]被引入到非自回歸模型中,均取得了明顯的效果提升。
隱變量的方法也有一定缺陷,即對隱變量的建模會降低非自回歸模型的翻譯速度,且隱變量難以完全消除譯文的不確定性,交叉熵損失不準確的問題仍然存在。
另一個思路為對非自回歸模型的訓練目標做改進,本文也是基于這個思路。Wang等人[8]直接在訓練目標中加入正則化項,以此來抑制模型的重復翻譯和漏譯錯誤。Shao等人[9]在模型中融入序列信息,改進強化學習算法來進行序列級訓練,用更準確的序列級指標來訓練模型。
上述方法的好處是能在不影響翻譯速度的前提下提升模型的翻譯質(zhì)量。然而,[8]僅針對在譯文中觀察到的問題做優(yōu)化,并未從根本上解決問題。由于序列級指標的離散性,[9]無法準確求得損失函數(shù)的梯度,需要使用強化學習算法來做梯度估計。另外,[9]所用的強化學習算法速度較慢,僅能用于模型的微調(diào)階段。
方 法
針對交叉熵損失不準確的問題,本文為非自回歸模型提出了一種基于n元組袋(Bag-of-Ngrams, BoN)的訓練目標,希望能最小化模型與參考譯文間n元組袋的差異。該訓練目標在n元組的層面上評估預測結(jié)果,因此能夠建模序列依賴關系;直接對n元組袋做優(yōu)化,對絕對位置不敏感,不受對齊約束的限制。如圖三所示,在預測結(jié)果未與參考譯文對齊時,該訓練目標也能準確地評估翻譯質(zhì)量。
圖三:基于n元組袋的訓練目標
本文提出的BoN訓練目標對模型與參考譯文間的n元組袋差異做定量評估,從而鼓勵模型生成更接近參考譯文的翻譯結(jié)果,下面對其做具體描述,主要分為三個步驟:BoN的定義和計算、BoN距離的定義和計算和訓練方法。
BoN的定義和計算 假設詞表大小為V,對于一個長度為T的句子Y=(y1,……,yn),一般都將它的n元組袋定義為一個長度為V^n的向量,記為BoNY,它的每一維代表某一n元組g=(g1,……,gn)的出現(xiàn)次數(shù),如下所示:
其中,1{}為指示函數(shù),若條件成立則取值為1,否則為0。對神經(jīng)機器翻譯模型來說,由于其建模了譯文在整個譯文空間上的概率分布,上面的定義并不直接適用。因此,我們考慮所有可能的譯文,將每個譯文的BoN按概率加權,用BoN的期望值來定義模型的BoN。假設模型參數(shù)為θ,從原文X到譯文Y的翻譯概率為P(Y|X, θ),則模型的BoNθ定義如下:
(2)式中對模型BoN的定義方法非常自然,但它也存在一個很大的問題:搜索空間是指數(shù)大小的,難以對其進行計算。我們利用非自回歸模型獨立預測各位置翻譯概率的特性,對(2)式做如下變換:
注意到,(3)式中2到3行的變換利用到了非自回歸模型獨立建模概率的特性,因此(3)式的推導僅對非自回歸模型有效。通過(3)式的變換,我們就不再需要遍歷所有可能譯文,匯總所有位置上n元組g的概率就能求得g的期望出現(xiàn)次數(shù)BoNθ(g)。下圖以二元組g=(‘get’,‘up’)為例,展示了模型BoNθ的計算方法。
圖四:對2元組(‘get’, ‘up’) 的期望出現(xiàn)次數(shù)的計算
BoN距離的定義和計算 在完成對參考譯文和模型的BoN定義后,我們可以選擇一種距離指標來衡量兩者BoN的差距,常用的距離指標有L1距離、L2距離、余弦距離等。注意到,n元組袋的長度為V^n,盡管我們在上文中對其每一維BoNθ(g)的計算做了簡化,但若要進行V^n次的計算來求得整個BoN向量,所需的計算量和存儲空間也是非常巨大的。因此,我們希望選擇一種合適的距離指標,使我們不需要計算整個BoNθ向量,進一步簡化計算。從上文(1)、(2)式的定義看,模型的BoNθ向量是稠密的,每個位置均為非零值;句子的BoNY向量是稀疏的,僅有幾個位置為非零值。利用這個性質(zhì),我們可以對兩個向量間L1距離的計算做簡化。首先,假設譯文長度為T,則兩個BoN向量的L1模長均為T-n+1:
基于此,兩個BoN向量間的L1距離如下所示:
直觀上看,(6)式中的min部分代表了模型與參考譯文在n元組層面上的匹配數(shù),匹配數(shù)越大,則兩者BoN向量間的L1距離越小。利用BoNY向量的稀疏性,min函數(shù)的大部分取值均為0,我們只需考慮BoNY非零的幾處位置,計算模型與參考譯文中n元組的匹配總數(shù),從而計算出兩者n元組袋的距離BoN-L1。訓練方法 上文中,我們給出了BoN的定義和快速計算BoN間L1距離的方法。在本節(jié),我們將對用BoN距離訓練非自回歸模型的方法做具體介紹。首先,為了保證訓練過程的穩(wěn)定性,我們將BoN距離歸一化后作為損失函數(shù):
與基于強化學習的序列級訓練方法[9]類似,我們可以先用交叉熵損失預訓練非自回歸模型,再用BoN損失對模型進行微調(diào),我們將這種方法命名為BoN-FT。
另外,由于本文提出的BoN損失在計算上非??焖偾抑苯涌蓪?,我們也可以將BoN損失與交叉熵損失加權來聯(lián)合訓練非自回歸模型,這種方法被命名為BoN-Joint。
結(jié)合上面兩種方法,我們可以先對模型進行聯(lián)合訓練,再單獨用BoN損失微調(diào)模型,這種方法被命名為BoN-Joint+FT。
實 驗
本文在WMT14 En-de、WMT16 En-Ro、IWSLT16 En-de三個數(shù)據(jù)集、五個翻譯方向上進行了實驗,結(jié)果如圖五所示。
圖五:三個數(shù)據(jù)集上的實驗,所提方法相對基線模型和強化學習方法均有明顯提升
對比BoN-FT與Reinforce-NAT[9],可以看到本文提出的BoN損失在序列級訓練上效果更好、速度更快。BoN-Joint方法相對BoN-FT也有明顯提升,表明讓BoN損失全程參與訓練的必要性,這也是BoN損失相對強化學習方法的優(yōu)勢:強化學習方法訓練速度過慢,一般只能用于微調(diào)模型。效果最好的為BoN-Joint+FT,該方法通過在最后階段的微調(diào),相對BoN-Joint也有微小提升,在WMT14 En-de數(shù)據(jù)集上達到了約5個BLEU值的提升。
本文還對BoN損失和交叉熵損失與翻譯質(zhì)量的相關性做了實驗驗證。我們在WMT14 En->De的開發(fā)集上進行實驗,將開發(fā)集的3000個句子隨機分為100組,每組30句。我們粗略地認為BLEU值能夠表示模型的翻譯質(zhì)量,計算模型在各組上的BoN損失、交叉熵損失和翻譯結(jié)果的BLEU值,并分別求出BoN損失、交叉熵損失與BLEU值的相關系數(shù),如表一所示。
表一:交叉熵損失和BoN損失與翻譯質(zhì)量的相關系數(shù)
表一顯示,在n=2的情況下,BoN損失與翻譯質(zhì)量的相關性最好,且顯著強于交叉熵損失。因此,BoN損失能更準確地評估模型的輸出結(jié)果,適用于非自回歸模型的訓練。我們也在不同句長情況下對相關性進行了分析,將開發(fā)集按句長分為兩組,每組包含1500個句子,并按上述方法計算BoN損失、交叉熵損失在長句組和短句組上的相關性,如表二所示。
表二:在不同句長下,交叉熵損失和BoN損失與翻譯質(zhì)量的相關系數(shù)
表二顯示,交叉熵損失在句長增大時,與翻譯質(zhì)量的相關性迅速下降,而BoN損失在長句下仍能保持較高的相關性。這種現(xiàn)象與我們的預期完全相符,在長句情況下,類似圖二的不對齊現(xiàn)象更加容易發(fā)生,因此交叉熵損失的準確性會進一步下降。BoN損失基于n元組袋來評估模型輸出,因此不受不對齊現(xiàn)象的影響。
結(jié) 論
本文針對非自回歸模型中交叉熵損失不準確的問題,提出了基于n元組袋的BoN損失。實驗顯示,BoN損失與翻譯質(zhì)量的相關性更強,用其對非自回歸模型進行訓練,能顯著提升模型的翻譯效果。在未來的工作中,一方面,我們希望能更進一步地對非自回歸模型的訓練方法進行探究;另一方面,我們希望能不局限于非自回歸模型,將本文所提的BoN損失應用到自然語言處理的更多任務中。
雷鋒網(wǎng)報道。
更多AAAI 2020解讀論文請參閱雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))其他文章:https://www.leiphone.com/special/custom/meetingVideo.html?from=SY