對比學習還能這樣用:位元組推出真正的多到多翻譯模型mRASP2

  • 2021 年 7 月 1 日
  • AI

AI科技評論報道
  作者 | 潘小小
編輯 | 陳大鑫
大家都知道目前研究界主流的多語言翻譯模型主要在英語相關的語對上進行訓練。這樣的系統通常在英語相關的語向(有監督語向)上表現不錯,而在非英語方向(零資源方向)的翻譯效果不佳。
針對這個問題,字節跳動的研究者們近期提出了mRASP2,通過引入對比學習,輔以對齊增強方法,將單語語料和雙語語料囊括在統一的訓練框架之下,旨在充分利用語料,學習更好的語言無關表示,並由此提升多語言翻譯性能。
實驗結果表明mRASP2在有監督、無監督、零資源的場景下均取得翻譯效果的提升。其中有監督場景平均提升 1.98 BLEU,無監督場景平均提升 14.13 BLEU,零資源場景平均提升 10.26 BLEU。
論文地址://arxiv.org/abs/2105.09501
接下來本文從三個方面介紹分析 mRASP2:
1、mRASP2 的背景和動機;
2、mRASP2的方法;
3、mRASP2 的實際效果和分析。
1

研究背景和動機

隨著全球化進程不斷加快,人們在進行外交、外貿、旅遊等活動時都離不開跨語言交際。然而傳統的人工翻譯由於其價格昂貴、實時性差等缺陷,只適用於少部分場景。機器翻譯的出現打破了這些限制,大大擴充了翻譯的應用場景。現代機器翻譯模型通過神經網路模型把輸入的句子轉化為另一種語言的句子。
目前主流的神經機器翻譯是基於「編碼器-解碼器」結構,如下圖所示,編碼器將源語言的句子編碼成為連續空間中的某個向量,而解碼器從這個向量出發去生成目標語言的句子。
「編碼器-解碼器」的翻譯過程和人類翻譯過程很類似:對於人類來說,將一句話從一個語言翻譯成另一個語言,也是先將原句的意思看懂,在腦子裡形成一個句意的概念,再從句意出發,輸出成另一種語言的文字。這樣帶來的效果是,意思相近的句子經過編碼器後,其向量表示會分布在連續空間的相鄰位置。
比如下圖中的”Mary is loved by John”和”John loves Mary”這兩句話是相同的意思,因此它們在編碼器輸出後的高維空間中,向量的分布比較接近;而”Mary loves John”的意思相反,因此其向量的分布就和之前兩句話相距較遠。
傳統的機器翻譯只能支援單個語向,而多語言機器翻譯的模型有能力同時支援多個翻譯語向。多語言機器翻譯由於其低部署成本、有遷移學習效果等優點,在近幾年引起研究者和工程師們的廣泛關注。
作為mRASP2的前置工作,mRASP主要提出了「機器翻譯預訓練」的思路來達到高效利用不同語對的語料的目的。mRASP提出了基於平行詞典的對齊替換(RAS),額外引入了詞級別的對齊資訊。實驗證明,RAS的確拉近了同義詞的高維表示,也間接拉近了同義句的高維表示。mRASP2在此基礎上引入對比學習拉近同義句表示,顯式地拉近同義句表示的距離。
在實際情況中,單語語料的數量遠遠大於平行語料的數量。對於傳統的單向機器翻譯模型而言,可以通過回譯技術(back-translation)利用單語語料來增強翻譯效果。而對於多語言翻譯來說,雖然回譯技術(back-translation)的方法依然有效,但是流程長且繁瑣。mRASP2將單語雙語放在統一框架下訓練,充分且簡單地利用廣泛存在的各種語料。


2

模型結構和細節

mRASP2在多語言翻譯的multilingual Transformer模型之上,在編碼器(Encoder)端的頂部加入了對比學習任務。
這樣的設計是基於一個經典的假設:不同語言中同義句的編碼後的表示應當在高維空間的相鄰位置。因為不同語言中的同義句對應的句意是相同的,也就是上文提到的「編碼」過程的輸出是相同的。比如「早上好」和「Good morning」這兩句話對於懂中文和英文的人來說,理解到的意思是一樣的,這也就對應了「編碼後的表示在高維空間的相鄰位置」。
訓練目標設計
mRASP2在傳統的交叉熵損失(cross entropy loss)的基礎上,加入了對比損失(contrastive loss),以多任務形式進行訓練。圖中橙色的箭頭指示的是傳統使用交叉熵損失(Cross Entropy Loss, CE loss)訓練機器翻譯的部分;黑色的部分指示的是對比損失(Contrastive Loss, CTR loss)對應的部分。
  • 交叉熵損失函數(CE loss)
具體的損失函數如下:
交叉熵損失函數的目的就是使目標端輸出的分布與真實分布儘可能一致。也就是說,對應目標輸出的每個位置的真實分布(id_0: 0.0, id_1: 0.0, ……, id_true: 1.0, ……,  id_N: 0.0),模型輸出的token概率分布要儘可能接近該真實分布。注意每個位置的交叉熵損失是獨立的,因此CE loss是詞級別(token-level)的。
  • 對比損失函數(CTR loss)
對比學習最早被應用在影像領域,通過縮小與正樣本間的相似度/距離,擴大與負樣本間的相似度/距離,使得正樣本與錨點之間的距離遠遠大於負樣本與錨點之間的距離。顯然,對於自然語言處理任務來說,對比損失是序列級別(sequence-level)的。
在mRASP2的訓練過程中,對訓練數據里的每一個樣本點(即一個平行句對),它的「錨點」是該樣本點的源端句子的向量表示,即公式中的R(x^i),「正例」是該樣本點的目標端句子的向量表示,即公式中的R(x^j),「負例」是同一個數據批次(batch)下其他樣本點的目標端句子的向量表示的集合,即公式中的R(y^j)。具體的損失函數如下,其中sim(.,.)是相似度函數,在本文中,作者使用的是比較經典的餘弦相似度。

每個句子的向量表示R(*)是編碼器最後一層輸出的隱變數(hidden states)的平均向量。

文中的是「溫度」,它是一個重要的超參數,控制著模型區分正負例的難度,溫度越低,難度越小。在本文的實驗中,溫度被設置為0.1。

多任務訓練

在mRASP2的訓練過程中,作者將兩部分損失函數結合起來進行多任務訓練,最終的損失函數如下:
  • |s|指的是序列的平均長度,因為CE loss是詞級別(token-level)的,而CTR loss是序列級別(sequence-level)的,因此兩者的絕對數值之間存在比例關係,其乘數即序列的平均長度|s|。
  • λ是用於平衡兩個損失函數的因子
詞對齊數據增強方法
詞對齊數據增強方法 ,又稱對齊增強(Aligned Augmentation, AA),是從mRASP的隨機對齊變換(Random Aligned Substitution, RAS)方法發展而來的。
如圖所示,圖(a)表示了對平行語料的增強過程,圖(b)表示了對單語語料的增強過程。其中,圖(a)中原本的英語單詞被替換成中文對應的單詞;而圖(b)中原本的中文單詞被分別替換成英文、法語、阿拉伯語、德語。
mRASP的RAS等價於第一種替換方式,它只要求提供雙語的同義詞詞典;而第二種替換方式需要提供包含多種語言的同義詞詞典。值得提一句,讀者最終使用對齊增強方法的時候,可以只採用(a)的做法或者只採用(b)的做法。

3

實際效果和分析

mRASP2的多語言翻譯效果逼近或者超過單向模型當前最高水平;另外它還直接支援無監督翻譯和零資源翻譯。
作者將翻譯的場景分為有監督方向、無監督方向、零資源方向。訓練數據包括PC32: 包含32個英語相關語對的平行語料)和MC24(newscrawl單語語料,由21個在PC32中的語言,另外加上3個語言荷蘭語(Nl), 波蘭語(Pl), 葡萄牙語(Pt)組成。
有監督翻譯方向
上表展示了mRASP2在有監督方向上的翻譯效果。表中展示的是tokenized BLEU。對比多語言翻譯系統的基準線模型m-Transformer, mRASP2在表中的10個方向上都有顯著的提升。相比一些預訓練+微調的工作,mRASP2也在大部分方向上超過了它們的效果。其中,適應模組方法(Adapter)介於統一多語言模型和單向模型之間。對於英語->羅馬尼亞語(En->Ro)方向,我們採取了和以往工作一樣的操作:將羅馬尼亞語的特殊符號去掉。
在有監督(英語相關)方向上,mRASP2在大多數方向上都超過了其他工作,其中包括單向模型和預訓練+微調的模型。
無監督翻譯方向
「無監督方向」指的是:至少一端在訓練階段只見過單語語料。在本實驗中,荷蘭語、葡萄牙語、波蘭語(Nl, Pt, Pl)這三個語言都沒有出現在平行句對中,我們僅僅是提供了這三個語種的單語語料。由此可見,英語<->荷蘭語/葡萄牙語/波蘭語這幾個語向中,源端或者目標端是沒在訓練階段出現過的,也就是說,這幾個語種沒有在訓練階段顯式地和其他語言建立聯繫。
我們也研究了兩端都只見過單語語料的情況:荷蘭語<->葡萄牙語(Nl<->Pt)方向。對於英語->X方向和荷蘭語<->葡萄牙語方向,m-Transformer和mRASP顯然無法進行翻譯,而mRASP2取得了不錯的效果。
mRASP2在無監督方向上遠遠超過基準線模型m-Transformer。表中展示的是tokenized BLEU。對於荷蘭語<->葡萄牙語的方向,mRASP2僅僅依靠這兩種語言的單語語料就取得了還不錯的效果。表中的平均分數是除了荷蘭語<->葡萄牙語(Nl<->Pt)之外的方向平均得到的。
上表展示了mRASP2在無監督方向上的優越翻譯性能。實驗結果表明:依靠多語言性能,mRASP2能同時實現多個方向的無監督翻譯。
零資源翻譯方向
在如今的機器翻譯領域存在著一類零資源翻譯的問題:當我們只有英語到其他語言之間的平行語料時,我們能否支援非英語語對之間的直接翻譯?mRASP2通過引入對比學習,巧妙地做到了這一點。
上表展示了mRASP2在零資源方向上的效果,表中展示的是de-tokenized BLEU(//github.com/alvations/sacremoses)。
表中的Pivot是橋接模型,其結果是我們由m-Transformer經過「X語言->英語->Y語言」的兩步翻譯得到的。注意荷蘭語(Nl)在平行語料中沒有出現過。
實驗結果表明:mRASP2在零資源場景下表現卓越,甚至能夠比肩很強的橋接模型。
對比學習起了什麼作用
上表總結了mRASP2的幾個關鍵技術點對最終效果的影響。其中mRASP只使用了平行句對和對齊增強;mRASP2 w/o MC24隻使用了平行句對、對齊增強、對比損失;mRASP2 w/o AA只使用了平行句對、對比損失。
作者將mRASP2的關鍵技術點分為3個,分別是: (i) 對比損失函數 (ii) 詞對齊數據增強方法  (iii) 單語語料,並且通過對比實驗研究了這三個技術點的主要效果。主要結論如下:
  1. 對比學習並不會降低有監督場景的性能,並且對零資源場景下的翻譯性能有重大提升:對比1和3或者2和4,加入對比損失函數後,有監督方向的效果基本持平,而零資源方向提升了接近10個BLEU
  2. 單語語料的引入對所有場景的翻譯性能都有明顯提升:對比4和5,加入單語語料之後,mRASP2可以很好地支援無監督方向。
由此我們可以看出,對比學習的作用主要體現在:在不影響其他翻譯方向的前提下,提升了零資源方向的翻譯效果。
可視化: 對比學習能更好地拉近多語言表示對齊語義空間
作者從ted測試集過濾構建了15個語種的平行數據集Ted-M,共2284組,然後獲得這些同義句在不同語言的語義空間中的向量後,用T-SNE降維,並且畫出了其分布,如下圖所示。可以直觀地看出,mRASP2有效地對齊了不同語言的語義空間。
上圖是T-SNE降維後的二維核密度分析的分布圖。藍色的線是英語,橙色的線是日語,綠色的線是德語。這張圖表明了句意的表示被mRASP2拉近了。
Ted-M對應的2284組同義句的散點圖如下圖所示,每一個點都代表一個句子。圖中畫出了4組同義句的點(id分別為1, 100, 1200, 2000),可以看出德語、日語和英語這三種語言的同義句幾乎是完全重合在一起的。
上圖是多語言平行語料Ted-M的二維散點圖。我們可以看出同義句在不同語言(英、日、德)中的表示基本重疊在一起。圖例中的數字代表的是同義句的id。 
其中id=1, 100的同義句組如下:
4

總結

本文主要介紹了mRASP2,該工作提出引入對比學習來增強多語言翻譯模型。該方法簡潔優雅,在廣泛場景下取得了明顯的性能提升,可以大大緩解低資源語種訓練數據不足的問題。
演算法即將在字節跳動的火山翻譯系統中落地。
文末附上傳送門
論文://arxiv.org/abs/2105.09501
程式碼://github.com/PANXiao1994/mRASP2

火山翻譯在線體驗://translate.volcengine.cn

可快速得到任意機翻模型的mRASP:

//zhuanlan.zhihu.com/p/352583626

手把手教你用mRASP快速得到任意翻譯模型:

//zhuanlan.zhihu.com/p/353070757

雷鋒網雷鋒網雷鋒網