基於深度遷移學習的多語種NLP技術原理和實踐

編者按
百分點是國內最早佈局國際市場、併成功探索出一條海外之路的數據智能技術企業,目前百分點已服務海外多個國家,向亞洲、非洲、拉美等多個國家和地區提供國家級數據智能解決方案,幫助當地政府實現數字化和智能化轉型,對當地產生深遠影響。全球存在着幾千種語言,這是自然語言處理研究者們的巨大噩夢,因爲大多數語言都是數據稀疏的,研究者找不到足夠多的數據來單獨訓練成熟模型。不同於國內認知智能產品以中文爲主,百分點爲海外國家提供服務就必須解決多語種NLP的難題。本文中我們將會詳細介紹目前多語種NLP常用的工具、前沿的算法以及百分點在實際業務中的實驗結果等。

目錄
1. Polyglot介紹
2. 基於BERT的方法

  • Transformer
  • MLM
  • NSP
    3. Multilingual BERT
    4. XLM
    5. XLMR
    6. 百分點在實際業務數據上的實驗結果
  • 主題分類任務上效果
  • 情感分類任務上的效果
  • NER任務上的效果
    7. 內容總結

全球存在着幾千種語言,這就對NLP研究者帶來了巨大的難題,因爲在一個語種上訓練的模型往往在另外一個語種上完全無效,而且目前的NLP研究以英語爲主,很多其他語種上面臨着標註語料嚴重不足的困境。在跨語種NLP研究方面,業界已經做了不少研究,比較有代表性的有polyglot、以及近年來比較火的基於深度遷移學習的Multilingual BERT、XLM、XLMR等。

一、Polyglot介紹

Polyglot最早是由AboSamoor在2015年3月16日在GitHub上開源的項目,支持衆多語種的分詞、實體識別、詞性標註、情感分析等任務。

以NER任務爲例,Polyglot在實現某個語種的NER任務時,其實現方式大致爲:首先基於該語種的Wikipedia數據訓練該語種的分佈式詞向量;然後根據Wikipedia鏈接結構和Freebase屬性自動生成NER的標註數據;最後把NER當做一個word級別的分類任務,通過一個淺層的神經網絡進行學習。

Polyglot雖然能實現多語種的多個NLP任務,但是在實際應用中的效果並不理想,原因可能有以下幾個方面:

a. Polyglot是通過對多個單語種的數據分別進行對應任務的學習,並不支持跨語種的NLP任務;

b. Polyglot是通過Wikipedia鏈接結構和Freebase屬性來生成一些NLP任務的標註數據,可能存在生成的標註數據質量不高的問題;

c. Polyglot在一些NLP任務中使用的模型是淺層的神經網絡,有進一步的提升空間。

二、基於BERT的方法

BERT拋棄了傳統的LSTM,採用特徵抽取能力更強的Transformer作爲編碼器,並通過MLM(Masked Language Model, 遮掩語言模型)和NSP(Next-Sentence Predict)兩個預訓練任務,在海量數據上進行學習,相較於普通的語言模型,能夠學習到更好的文本表示。BERT採用pre-train+fine-tuning的方式,對於一個具體NLP任務,只需對BERT預訓練階段學習到的文本表示進行 fine-tuning就能達state-of-the-art的效果。

2.1 Transformer

Transformer模型是2018年5月提出的一種新的架構,可以替代傳統RNN和CNN,用來實現機器翻譯。無論是RNN還是CNN,在處理NLP任務時都有缺陷。CNN是其先天的卷積操作不太適合處理序列化的文本,RNN是不支持並行化計算,很容易超出內存限制。下圖是transformer模型的結構,分成左邊encoder和右邊的decoder,相較於常見的基於RNN+attention的encoder-decoder之間的attention,還多出encoder和decoder內部的self-attention。每個attention都有multi-head特徵,multi-head attention將一個詞的vector切分成h個維度,可以從不同的維度學到不同的特徵,相較於全體空間放到一起更加合理。最後,通過position encoding加入沒考慮過的位置信息。

圖1.transformer結構

BERT中使用transformer的encoder部分作爲編碼器,base版和large版分別使用了12層和24層的transformer encoder。

圖2.BERT結構

2.2 MLM

在BERT中,提出了一種叫做MLM的真正的雙向語言模型。不像傳統語言模型那樣給定已經出現過的詞,去預測下一個詞,只能學習單向特徵,MLM是直接把整個句子的一部分詞(隨機選擇)遮掩住(masked),然後讓模型利用這些被遮住的詞的上下文信息去預測這些被遮住的詞。遮掩方法爲:有80%的概率用“[mask]”標記來替換,有10%的概率用隨機採樣的一個單詞來替換,有10%的概率不做替換。

2.3 NSP

BERT另外一個創新是在雙向語言模型的基礎上增加了一個句子級別的連續性預測任務。這個任務的目標是預測兩個句子是否是連續的文本,在訓練的時候,輸入模型的第二個片段會以50%的概率從全部文本中隨機選取,剩下50%的概率選取第一個片段的後續的文本。考慮到很多NLP任務是句子關係判斷任務,單詞預測粒度的訓練到不了句子關係這個層級,增加這個任務有助於下游句子關係判斷任務。

三、Multilingual BERT

Multilingual BERT即多語言版本的BERT,其訓練數據選擇的語言是維基百科數量最多的前100種語言。每種語言(不包括用戶和talk頁面)的整個Wikipedia轉儲都用作每種語言的訓練數據。但是不同語言的數據量大小變化很大,經過上千個epoch的迭代後模型可能會在低資源語種上出現過擬合。爲了解決這個問題,採取在創建預訓練數據時對數據進行了指數平滑加權的方式,對高資源語言(如英語)將進行欠採樣,而低資源語言(如冰島語)進行過採樣。

Multilingual BERT採取wordpiece的分詞方式,共形成了110k的多語種詞彙表,不同語種的詞語數量同樣採取了類似於訓練數據的採樣方式。對於中文、日文這樣的字符之間沒有空格的數據,採取在字符之間添加空格的方式之後進行wordpiece分詞。

在XNLI數據集(MultiNLI的一個版本,在該版本中,開發集和測試集由翻譯人員翻譯成15種語言,而訓練集的翻譯由機器翻譯進行)上Multilingual BERT達到了SOTA的效果。

圖3.Multilingual BERT在XNLI上的效果

上面實驗結果的前兩行是來自XNLI論文的基線,後面四行是使用Multilingual BERT得到的結果。mBERT-Translate Train是指將訓練集從英語翻譯成其它語種,所以訓練和測試都是用其它語種上進行的。mBERT-Translate Test是指XNLI測試集從其它語種翻譯成英語,所以訓練和測試都是用英語進行的。Zero Shot是指對mBERT通過英語數據集進行微調,然後在其它語種的數據集中進行測試,整個過程中不涉及到翻譯。

四、XLM

XLM是Facebook提出的基於BERT進行優化的跨語言模型。儘管Multilingual BERT在超過100種語言上進行預訓練,但它的模型本身並沒有針對多語種進行過多優化,大多數詞彙沒有在不同語種間共享,因此能學到的跨語種知識比較有限。XLM在以下幾點對Multilingual BERT進行了優化:

a. XLM的每個訓練樣本包含了來源於不同語種但意思相同的兩個句子,而BERT中一條樣本僅來自同一語言。BERT的目標是預測被masked的token,而XLM模型中可以用一個語言的上下文信息去預測另一個語言被masked的token。

b. 模型也接受語言ID和不同語言token的順序信息,也就是位置編碼。這些新的元數據能幫模型學習到不同語言的token間關係。

XLM中這種升級版的MLM模型被稱作TLM(Translation Language Model, 翻譯語言模型)。XLM在預訓練時同時訓練了MLM和TLM,並且在兩者之間進行交替訓練,這種訓練方式能夠更好的學習到不同語種的token之間的關聯關係。在跨語種分類任務(XNLI)上XLM比其他模型取得了更好的效果,並且顯著提升了有監督和無監督的機器翻譯效果。

五、XLMR

XLMR(XLM-RoBERTa)同是Facebook的研究成果,它融合了更多的語種更大的數據量(包括缺乏標籤的的低資源語言和未標記的數據集),改進了以前的多語言方法Multilingual BERT,進一步提升了跨語言理解的性能。同BERT一樣,XLMR使用transformer作爲編碼器,預訓練任務爲MLM。XLMR主要的優化點有三個:

a. 在XLM和RoBERTa中使用的跨語言方法的基礎上,增加了語言數量和訓練集的規模,用超過2TB的已經過處理的CommonCrawl 數據以自我監督的方式訓練跨語言表示。這包括爲低資源語言生成新的未標記語料庫,並將用於這些語言的訓練數據量擴大兩個數量級。下圖是用於XLM的Wiki語料庫和用於XLMR的CommonCrawl語料庫中出現的88種語言的數據量,可以看到CommonCrawl數據量更大,尤其是對於低資源語種。

圖4.XLMR和XLM的訓練數據對比

b. 在fine-tuning階段,利用多語言模型的能力來使用多種語言的標記數據,以改進下游任務的性能。使得模型能夠在跨語言基準測試中獲得state-of-the-art的結果。

c. 使用跨語言遷移來將模型擴展到更多的語言時限制了模型理解每種語言的能力,XLMR調整了模型的參數以抵消這種缺陷。XLMR的參數更改包括在訓練和詞彙構建過程中對低資源語言進行上採樣,生成更大的共享詞彙表,以及將整體模型容量增加到5.5億參數。

XLMR在多個跨語言理解基準測試中取得了SOTA的效果,相較於Multilingual BERT,在XNLI數據集上的平均準確率提高了13.8%,在MLQA數據集上的平均F1得分提高了12.3%,在NER數據集上的平均F1得分提高了2.1%。XLMR在低資源語種上的提升更爲明顯,相對於XLM,在XNLI數據集上,斯瓦希里語提升了11.8%,烏爾都語提升了9.2%。

六、百分點在實際業務數據上的實驗結果

先明確兩個概念,單語種任務:訓練集和測試集爲相同語種,跨語種任務:訓練集和測試集爲不同語種。

6.1 主題分類任務上效果

模型訓練集(數據量)測試集(數據量)指標(F1)
XLMR-base英語(1w)英語(1w)0.716
法語(1w)0.674
泰語(1w)0.648
mBERT-base英語(1w)英語(1w)0.700
法語(1w)0.627
泰語(1w)0.465

主題分類是判斷一段文本是屬於政治、軍事等10個類別中哪一個。實驗中分別使用XLMR和Multilingual BERT在1w的英語數據上進行訓練,然後在英語、法語、泰語各1萬的數據上進行測試。可以看到無論是單語種任務還是跨語種任務上,XLMR的效果都優於Multilingual BERT,跨語種任務上的優勢更明顯。

6.2 情感分類任務上的效果

模型訓練集(數據量)測試集(數據量)效果(F1)
XLMR-base法語(9k)法語(1.5k)0.738
阿語(586)0.591
阿語(2.5k)阿語(586)0.726
法語(1.5k)0.425
mBERT-base法語(9k)法語(1.5k)0.758
阿語(586)0.496
阿語(2.5k)阿語(586)0.716
法語(1.5k)0.364

情感分類任務是判斷一段文本所表達的情感是正面、負面或中立。實驗中分別對XLMR和BERT做了單語種任務的對比和跨語種任務的對比,可以看到在單語種任務中BERT和XLMR的效果差別不明顯,而在跨語種任務中XLMR明顯優於Multilingual BERT。

6.3 NER任務上的效果

模型訓練集(數據量)測試集(數據量)指標(F1)
XLMR-base法語(5w)法語(3.4w)0.897
阿語(4k)0.525
mBERT-base法語(5w)法語(3.4w)0.916
阿語(4k)0.568

NER任務是抽取一段文本中實體,實體包括人名、地名、機構名。在該實驗中,XLMR表現一般,不管是單語種任務還是跨語種任務上,效果比Multilingual BERT要略差一些。

七、內容總結

Multilingual BERT使用特徵抽取能力更強的transformer作爲編碼器,通過MLM和NSP在超過100種語言上進行預訓練,但它的模型本身並沒有針對多語種進行過多優化。而XLM對Multilingual BERT進行了優化,主要是增加了TML預訓練任務,使模型能學習到多語種token之間的關聯關係。XLMR結合了XLM和RoBERTa的優勢,採用了更大的訓練集,並且對低資源語種進行了優化,在XNLI、NER CoNLL-2003、跨語種問答MLQA等任務上,效果均優於Multilingual BERT,尤其是在Swahili、Urdu等低資源語種上效果提升顯著。

在百分點實際業務數據的測試中,目前已經在英語、法語、阿語等常規語種上進行測試,無論是單語種任務還是跨語種任務,整體來看XLMR的效果要優於Multilingual BERT。想要實現在一種語種上進行模型訓練,然後直接在另外一種語種上進行預測這樣的跨語種遷移,仍需要相關領域進一步深入的探索。

Google近期發佈了一個用於測試模型跨語種性能的基準測試Xtreme,包括了對12種語言家族的40種語言進行句子分類、句子檢索、問答等9項任務。在Xtreme的實驗中,先進的多語言模型如XLMR在大多數現有的英語任務中已達到或接近人類的水平,但在其它語言尤其是非拉丁語言的表現上仍然存在巨大差距。這也表明,跨語言遷移的研究潛力很大。不過隨着Xtreme的發佈,跨語種NLP的研究肯定也會加速,一些激動人心的模型也會不斷出現,讓我們共同期待。

參考資料

[1] https://github.com/google-research/bert/blob/master/multilingual.md

[2] https://static.aminer.cn/misc/pdf/1911.02116.pdf

[3] https://www.lyrn.ai/2019/02/11/xlm-cross-lingual-language-model/

[4] https://arxiv.org/pdf/1410.3791v1

[5] https://github.com/google-research/xtreme

本文轉載自公衆號百分點(ID:baifendian_com)。

原文鏈接

https://mp.weixin.qq.com/s/ekXCHAvo1PiOerhNBWUQrg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章