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