大家都知道目前研究界主流的多語言翻譯模型主要在英語相關(guān)的語對上進行訓練。這樣的系統(tǒng)通常在英語相關(guān)的語向(有監(jiān)督語向)上表現(xiàn)不錯,而在非英語方向(零資源方向)的翻譯效果不佳。針對這個問題,字節(jié)跳動的研究者們近期提出了mRASP2,通過引入對比學習,輔以對齊增強方法,將單語語料和雙語語料囊括在統(tǒng)一的訓練框架之下,旨在充分利用語料,學習更好的語言無關(guān)表示,并由此提升多語言翻譯性能。實驗結(jié)果表明mRASP2在有監(jiān)督、無監(jiān)督、零資源的場景下均取得翻譯效果的提升。其中有監(jiān)督場景平均提升 1.98 BLEU,無監(jiān)督場景平均提升 14.13 BLEU,零資源場景平均提升 10.26 BLEU。論文地址:https://arxiv.org/abs/2105.09501隨著全球化進程不斷加快,人們在進行外交、外貿(mào)、旅游等活動時都離不開跨語言交際。然而傳統(tǒng)的人工翻譯由于其價格昂貴、實時性差等缺陷,只適用于少部分場景。機器翻譯的出現(xiàn)打破了這些限制,大大擴充了翻譯的應(yīng)用場景?,F(xiàn)代機器翻譯模型通過神經(jīng)網(wǎng)絡(luò)模型把輸入的句子轉(zhuǎn)化為另一種語言的句子。目前主流的神經(jīng)機器翻譯是基于“編碼器-解碼器”結(jié)構(gòu),如下圖所示,編碼器將源語言的句子編碼成為連續(xù)空間中的某個向量,而解碼器從這個向量出發(fā)去生成目標語言的句子。“編碼器-解碼器”的翻譯過程和人類翻譯過程很類似:對于人類來說,將一句話從一個語言翻譯成另一個語言,也是先將原句的意思看懂,在腦子里形成一個句意的概念,再從句意出發(fā),輸出成另一種語言的文字。這樣帶來的效果是,意思相近的句子經(jīng)過編碼器后,其向量表示會分布在連續(xù)空間的相鄰位置。比如下圖中的"Mary is loved by John"和"John loves Mary"這兩句話是相同的意思,因此它們在編碼器輸出后的高維空間中,向量的分布比較接近;而"Mary loves John"的意思相反,因此其向量的分布就和之前兩句話相距較遠。傳統(tǒng)的機器翻譯只能支持單個語向,而多語言機器翻譯的模型有能力同時支持多個翻譯語向。多語言機器翻譯由于其低部署成本、有遷移學習效果等優(yōu)點,在近幾年引起研究者和工程師們的廣泛關(guān)注。作為mRASP2的前置工作,mRASP主要提出了“機器翻譯預(yù)訓練”的思路來達到高效利用不同語對的語料的目的。mRASP提出了基于平行詞典的對齊替換(RAS),額外引入了詞級別的對齊信息。實驗證明,RAS的確拉近了同義詞的高維表示,也間接拉近了同義句的高維表示。mRASP2在此基礎(chǔ)上引入對比學習拉近同義句表示,顯式地拉近同義句表示的距離。在實際情況中,單語語料的數(shù)量遠遠大于平行語料的數(shù)量。對于傳統(tǒng)的單向機器翻譯模型而言,可以通過回譯技術(shù)(back-translation)利用單語語料來增強翻譯效果。而對于多語言翻譯來說,雖然回譯技術(shù)(back-translation)的方法依然有效,但是流程長且繁瑣。mRASP2將單語雙語放在統(tǒng)一框架下訓練,充分且簡單地利用廣泛存在的各種語料。mRASP2在多語言翻譯的multilingual Transformer模型之上,在編碼器(Encoder)端的頂部加入了對比學習任務(wù)。這樣的設(shè)計是基于一個經(jīng)典的假設(shè):不同語言中同義句的編碼后的表示應(yīng)當在高維空間的相鄰位置。因為不同語言中的同義句對應(yīng)的句意是相同的,也就是上文提到的“編碼”過程的輸出是相同的。比如“早上好”和“Good morning”這兩句話對于懂中文和英文的人來說,理解到的意思是一樣的,這也就對應(yīng)了“編碼后的表示在高維空間的相鄰位置”。mRASP2在傳統(tǒng)的交叉熵損失(cross entropy loss)的基礎(chǔ)上,加入了對比損失(contrastive loss),以多任務(wù)形式進行訓練。圖中橙色的箭頭指示的是傳統(tǒng)使用交叉熵損失(Cross Entropy Loss, CE loss)訓練機器翻譯的部分;黑色的部分指示的是對比損失(Contrastive Loss, CTR loss)對應(yīng)的部分。交叉熵損失函數(shù)的目的就是使目標端輸出的分布與真實分布盡可能一致。也就是說,對應(yīng)目標輸出的每個位置的真實分布(id_0: 0.0, id_1: 0.0, ......, id_true: 1.0, ......, id_N: 0.0),模型輸出的token概率分布要盡可能接近該真實分布。注意每個位置的交叉熵損失是獨立的,因此CE loss是詞級別(token-level)的。對比學習最早被應(yīng)用在圖像領(lǐng)域,通過縮小與正樣本間的相似度/距離,擴大與負樣本間的相似度/距離,使得正樣本與錨點之間的距離遠遠大于負樣本與錨點之間的距離。顯然,對于自然語言處理任務(wù)來說,對比損失是序列級別(sequence-level)的。在mRASP2的訓練過程中,對訓練數(shù)據(jù)里的每一個樣本點(即一個平行句對),它的“錨點”是該樣本點的源端句子的向量表示,即公式中的R(x^i),“正例”是該樣本點的目標端句子的向量表示,即公式中的R(x^j),“負例”是同一個數(shù)據(jù)批次(batch)下其他樣本點的目標端句子的向量表示的集合,即公式中的R(y^j)。具體的損失函數(shù)如下,其中sim(.,.)是相似度函數(shù),在本文中,作者使用的是比較經(jīng)典的余弦相似度。每個句子的向量表示R(*)是編碼器最后一層輸出的隱變量(hidden states)的平均向量。
文中的
是“溫度”,它是一個重要的超參數(shù),控制著模型區(qū)分正負例的難度,溫度越低,難度越小。在本文的實驗中,溫度被設(shè)置為0.1。
多任務(wù)訓練
在mRASP2的訓練過程中,作者將兩部分損失函數(shù)結(jié)合起來進行多任務(wù)訓練,最終的損失函數(shù)如下:- |s|指的是序列的平均長度,因為CE loss是詞級別(token-level)的,而CTR loss是序列級別(sequence-level)的,因此兩者的絕對數(shù)值之間存在比例關(guān)系,其乘數(shù)即序列的平均長度|s|。
詞對齊數(shù)據(jù)增強方法 ,又稱對齊增強(Aligned Augmentation, AA),是從mRASP的隨機對齊變換(Random Aligned Substitution, RAS)方法發(fā)展而來的。如圖所示,圖(a)表示了對平行語料的增強過程,圖(b)表示了對單語語料的增強過程。其中,圖(a)中原本的英語單詞被替換成中文對應(yīng)的單詞;而圖(b)中原本的中文單詞被分別替換成英文、法語、阿拉伯語、德語。mRASP的RAS等價于第一種替換方式,它只要求提供雙語的同義詞詞典;而第二種替換方式需要提供包含多種語言的同義詞詞典。值得提一句,讀者最終使用對齊增強方法的時候,可以只采用(a)的做法或者只采用(b)的做法。mRASP2的多語言翻譯效果逼近或者超過單向模型當前最高水平;另外它還直接支持無監(jiān)督翻譯和零資源翻譯。作者將翻譯的場景分為有監(jiān)督方向、無監(jiān)督方向、零資源方向。訓練數(shù)據(jù)包括PC32: 包含32個英語相關(guān)語對的平行語料)和MC24(newscrawl單語語料,由21個在PC32中的語言,另外加上3個語言荷蘭語(Nl), 波蘭語(Pl), 葡萄牙語(Pt)組成。上表展示了mRASP2在有監(jiān)督方向上的翻譯效果。表中展示的是tokenized BLEU。對比多語言翻譯系統(tǒng)的基線模型m-Transformer, mRASP2在表中的10個方向上都有顯著的提升。相比一些預(yù)訓練+微調(diào)的工作,mRASP2也在大部分方向上超過了它們的效果。其中,適應(yīng)模塊方法(Adapter)介于統(tǒng)一多語言模型和單向模型之間。對于英語->羅馬尼亞語(En->Ro)方向,我們采取了和以往工作一樣的操作:將羅馬尼亞語的特殊符號去掉。在有監(jiān)督(英語相關(guān))方向上,mRASP2在大多數(shù)方向上都超過了其他工作,其中包括單向模型和預(yù)訓練+微調(diào)的模型。“無監(jiān)督方向”指的是:至少一端在訓練階段只見過單語語料。在本實驗中,荷蘭語、葡萄牙語、波蘭語(Nl, Pt, Pl)這三個語言都沒有出現(xiàn)在平行句對中,我們僅僅是提供了這三個語種的單語語料。由此可見,英語<->荷蘭語/葡萄牙語/波蘭語這幾個語向中,源端或者目標端是沒在訓練階段出現(xiàn)過的,也就是說,這幾個語種沒有在訓練階段顯式地和其他語言建立聯(lián)系。我們也研究了兩端都只見過單語語料的情況:荷蘭語<->葡萄牙語(Nl<->Pt)方向。對于英語->X方向和荷蘭語<->葡萄牙語方向,m-Transformer和mRASP顯然無法進行翻譯,而mRASP2取得了不錯的效果。mRASP2在無監(jiān)督方向上遠遠超過基線模型m-Transformer。表中展示的是tokenized BLEU。對于荷蘭語<->葡萄牙語的方向,mRASP2僅僅依靠這兩種語言的單語語料就取得了還不錯的效果。表中的平均分數(shù)是除了荷蘭語<->葡萄牙語(Nl<->Pt)之外的方向平均得到的。上表展示了mRASP2在無監(jiān)督方向上的優(yōu)越翻譯性能。實驗結(jié)果表明:依靠多語言性能,mRASP2能同時實現(xiàn)多個方向的無監(jiān)督翻譯。在如今的機器翻譯領(lǐng)域存在著一類零資源翻譯的問題:當我們只有英語到其他語言之間的平行語料時,我們能否支持非英語語對之間的直接翻譯?mRASP2通過引入對比學習,巧妙地做到了這一點。上表展示了mRASP2在零資源方向上的效果,表中展示的是de-tokenized BLEU(https://github.com/alvations/sacremoses)。表中的Pivot是橋接模型,其結(jié)果是我們由m-Transformer經(jīng)過“X語言->英語->Y語言”的兩步翻譯得到的。注意荷蘭語(Nl)在平行語料中沒有出現(xiàn)過。實驗結(jié)果表明:mRASP2在零資源場景下表現(xiàn)卓越,甚至能夠比肩很強的橋接模型。上表總結(jié)了mRASP2的幾個關(guān)鍵技術(shù)點對最終效果的影響。其中mRASP只使用了平行句對和對齊增強;mRASP2 w/o MC24只使用了平行句對、對齊增強、對比損失;mRASP2 w/o AA只使用了平行句對、對比損失。作者將mRASP2的關(guān)鍵技術(shù)點分為3個,分別是: (i) 對比損失函數(shù) (ii) 詞對齊數(shù)據(jù)增強方法 (iii) 單語語料,并且通過對比實驗研究了這三個技術(shù)點的主要效果。主要結(jié)論如下:- 對比學習并不會降低有監(jiān)督場景的性能,并且對零資源場景下的翻譯性能有重大提升:對比1和3或者2和4,加入對比損失函數(shù)后,有監(jiān)督方向的效果基本持平,而零資源方向提升了接近10個BLEU
- 單語語料的引入對所有場景的翻譯性能都有明顯提升:對比4和5,加入單語語料之后,mRASP2可以很好地支持無監(jiān)督方向。
由此我們可以看出,對比學習的作用主要體現(xiàn)在:在不影響其他翻譯方向的前提下,提升了零資源方向的翻譯效果。可視化: 對比學習能更好地拉近多語言表示對齊語義空間作者從ted測試集過濾構(gòu)建了15個語種的平行數(shù)據(jù)集Ted-M,共2284組,然后獲得這些同義句在不同語言的語義空間中的向量后,用T-SNE降維,并且畫出了其分布,如下圖所示??梢灾庇^地看出,mRASP2有效地對齊了不同語言的語義空間。上圖是T-SNE降維后的二維核密度分析的分布圖。藍色的線是英語,橙色的線是日語,綠色的線是德語。這張圖表明了句意的表示被mRASP2拉近了。Ted-M對應(yīng)的2284組同義句的散點圖如下圖所示,每一個點都代表一個句子。圖中畫出了4組同義句的點(id分別為1, 100, 1200, 2000),可以看出德語、日語和英語這三種語言的同義句幾乎是完全重合在一起的。上圖是多語言平行語料Ted-M的二維散點圖。我們可以看出同義句在不同語言(英、日、德)中的表示基本重疊在一起。圖例中的數(shù)字代表的是同義句的id。 本文主要介紹了mRASP2,該工作提出引入對比學習來增強多語言翻譯模型。該方法簡潔優(yōu)雅,在廣泛場景下取得了明顯的性能提升,可以大大緩解低資源語種訓練數(shù)據(jù)不足的問題。該算法即將在字節(jié)跳動的火山翻譯系統(tǒng)中落地。論文:https://arxiv.org/abs/2105.09501
代碼:https://github.com/PANXiao1994/mRASP2火山翻譯在線體驗:http://translate.volcengine.cn
可快速得到任意機翻模型的mRASP:
https://zhuanlan.zhihu.com/p/352583626手把手教你用mRASP快速得到任意翻譯模型:
https://zhuanlan.zhihu.com/p/353070757雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。