跨域預訓練語言模型(XLM)

XLM來自於Facebook ai的論文《Cross-lingual Language Model Pretraining》。目前多數語言模型都是單語義(monolingual)模型,比如BERT、XLNET、google的T5等等。期望有一種語言模型可以實現多種語言的融合,然後在一種語言訓練模型,通過XLM遷移到其他語言上。比如標註語料較多的英語,我們訓練好EN-》DE的翻譯模型,但是,像印地語這種比較少見的語言怎麼訓練它到DE的翻譯呢?這種情況下通過XLM就可以實現印地語到英語的遷移,然後再翻譯到DE的模型。

以上是XLM一個大致的描述。訓練XLM使用兩種方式:
1、無監督學習方式,僅僅依賴於各種語言的預料文本。
2、監督學習方式,使用平行語料的一個新的跨域語言模型。

我們通過XLM將任何句子編碼到一個共享的embedding空間。之前很多工作達到這樣的效果都需要大量的平行語料,也就是類似於翻譯語料的東西。但是發現有些人提出的無監督機器翻譯,不使用平行語料也可以獲得較高的BLEU。所以XLM也借鑑了這種思想。

接下來介紹XLM的三個重要組成部分:
其中的兩個完全無監督方式學習,其中的一個需要平行語料(parallel sentences)也就是需要通過監督的方式學習。如果無特殊說明,我們默認有N中語言{Ci},i=1...N{\{C_i\},i=1...N}nin_i代表CiC_i中句子的數量。

1、共享分詞詞典
所有語言通過BPE(Byte Pair Encoding)創建共享詞典,這樣共享了一些詞或者一些恰當的發音。學習BPE的時候,通過一定的概率在各個語言的數據集上採樣。然後將採樣的這些句子串聯起來。每一種語言的採樣概率如下:
採樣概率

上面的α=0.5\alpha=0.5,按照上面採樣增加了低資源語言的tokens數量,避免了字典向高資源語言偏移。

2、因果語言模型(CLM)
CLM模型就是通過前面的序列預測當前詞出現的概率。公式:P(wtw1,...wt1,θ)P(w_t|w_1,...w_t-1,\theta)

3、掩碼語言模型(MLM)
這個任務和BERT的處理方式類似,仍然是隨機掩蓋句子中15%的token,80%的時間使用[MASK]掩蓋,10%的時間從字典中隨機挑選一個詞,10%的時間保持不變。與BERT不同的是,輸入不再是一個句子對,而是一個256的長句子,去除了BERT的NSP任務。

4、翻譯語言模型(TLM)
CLM和MLM都是無監督學習方式,但是當存在平行語料時候,使用他們並不合適。這時候就需要翻譯語言模型TLM(Translation Language Modeling),TLM的引入可以提高XLM的效果。本文的TLM是MLM的一個擴展。我們將翻譯語料對連接,然後在源語言和目標語言中均做隨機mask。如下圖:
TLM

如上圖所示,如果預測英語中的mask,模型既可以關注周圍的英文單詞,也可以關注法語的翻譯,這樣可以使得模型將英語和法語對齊。並且在預測某個MASK英語單詞時候,如果英文信息不足以預測出這個單詞,法語上下文可以輔助預測。爲了便於對齊,mask法語時候,我們會對其中位置進行錯開。

5、跨域語言模型(XLM)
XLM的訓練如果是純無監督方式則,使用CLM、MLM。使用batch size爲64,每個句子由連續的256個字符組成。每個batch的數據採樣自同一種語言,採樣概率公式和1中的類似,只是α=0.7\alpha=0.7
XLM使用有監督方式則是MLM結合TLM或者CLM結合TLM。

以上是XLM中使用到的關鍵技術。
Facebook的最新論文《Unsupervised Cross-lingual Representation Learning at Scale》中使用RoBERTa,其中相對於本文的改進就是MLM那塊,一個是使用了動態masking技術。把預訓練的數據複製10份,每一份都隨機選擇15%的Tokens進行Masking,也就是說,同樣的一句話有10種不同的mask方式。
另一個是每次輸入連續的多個句子,直到最大長度512。
還有就是batch size增加到了8k。
使用更大容量的多語言文本數據集CommonCrawl data。訓練時間更久。在各種遷移任務上又獲得了state-of-art的效果。

接下來看看XLM怎麼應用:
1、跨語言分類
首先看在多語言分類上的表現,這裏使用數據集XNLI,它裏面有15種不同的語言,包括英語、法語、西班牙語、德語、希臘語、保加利亞語、俄語、土耳其語、阿拉伯語、越南語、泰語、中文、印地語、斯瓦希里語和烏爾都語。數據集中的部分示例如下:
XNLI
這裏的fine-tuning與bert的調優類似。取預訓練模型最後一層的第一個隱狀態送入線性分類器。我們首先利用XLM在英語NLI訓練數據集上進行調優,然後我們在其他語言上測試。測試結果如下:
多語言分類

這個表顯示了兩種類型的結果:無監督地利用單語義語料和利用平行語料的有監督MLM結合TLM。做了兩種baseline:TRANSLATE-TRAIN這一個是英語NLI訓練數據集翻譯成每種NLI,TRANSLATE-TEST是每個待測試的數據集翻譯成英文。這裏我們和mBert(multilingual BERT)做對比。
最後一組是衡量跨語言遷移的效果,這裏以Conneau的模型作爲baseline。可以看到XLM均獲得比較高的提升。

2、無監督機器翻譯
無監督機器翻譯做了三組:
英語-》法語;
英語-〉德語;
英語-》羅馬尼亞語。
訓練方法跟Lample提出方法一樣。與僅查找詞向量表不同,我們使用跨語言模型初始化整個模型。對於編碼器和解碼器,我們考慮使用不同方式的初始化方法:CLM預訓練,MLM預訓練,隨機初始化。這樣的話就有九種對比實驗。以使用跨語言詞向量(EMB)作爲baseline。
無監督機器翻譯

3、監督學習翻譯
監督學習對比了羅馬尼亞語和英語的翻譯效果。
分爲三組:
羅馬尼亞語翻譯成英文
羅馬尼亞語與英文互翻
使用反向翻譯技術的羅馬尼亞語與英語翻譯,模型在訓練語言模型時候使用單語語料。
監督學習翻譯
4、低資源語言模型
這裏以尼泊爾語爲例,這種語言在維基數據上只有100K句話,大約是海地語的6倍。Nepali和Hindi之間字母表上有很大重疊,語言關係比較近,而跟英語之間則關係不大,所以引入英語對於Nepali帶來的提升沒有引入Hindi帶來的提升多。
困惑度

5、無監督跨域詞嵌入
詞嵌入

這裏對比了三種方法:MUSE(facebook在2017年提出的一種語言模型)、Concat、XLM。三種評估方法:詞翻譯之間的cosine相似度、L2距離。還有一種新的評估跨語言cosine相似度方法SemEval’17。實驗發現XLM表現依然非常好。

項目地址:https://github.com/facebookresearch/XLM

發佈了200 篇原創文章 · 獲贊 65 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章