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

編者按git

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

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

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

1、Polyglot介紹

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

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

Polyglot雖然能實現多語種的多個NLP任務,可是在實際應用中的效果並不理想,緣由可能有如下幾個方面:分佈式

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

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

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

2、基於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加入沒考慮過的位置信息。
基於深度遷移學習的多語種NLP技術原理和實踐

圖1.transformer結構

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

基於深度遷移學習的多語種NLP技術原理和實踐
圖2. BERT結構

2.2 MLM

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

2.3 NSP

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

3、Multilingual BERT

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

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

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

基於深度遷移學習的多語種NLP技術原理和實踐
圖3. Multilingual BERT在XNLI上的效果

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

4、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比其餘模型取得了更好的效果,而且顯著提高了有監督和無監督的機器翻譯效果。

5、XLMR

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

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

圖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、百分點在實際業務數據上的實驗結果

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

6.1 主題分類任務上效果

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

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

6.2 情感分類任務上的效果

基於深度遷移學習的多語種NLP技術原理和實踐
情感分類任務是判斷一段文本所表達的情感是正面、負面或中立。實驗中分別對XLMR和BERT作了單語種任務的對比和跨語種任務的對比,能夠看到在單語種任務中BERT和XLMR的效果差異不明顯,而在跨語種任務中XLMR明顯優於Multilingual BERT。

6.3 NER任務上的效果

基於深度遷移學習的多語種NLP技術原理和實踐
NER任務是抽取一段文本中實體,實體包括人名、地名、機構名。在該實驗中,XLMR表現通常,無論是單語種任務仍是跨語種任務上,效果比Multilingual BERT要略差一些。

7、內容總結

Multilingual BERT使用特徵抽取能力更強的transformer做爲編碼器,經過MLM和NSP在超過100種語言上進行預訓練,但它的模型自己並無針對多語種進行過多優化。而XLM對Multilingual BERT進行了優化,主要是增長了TML預訓練任務,使模型能學習到多語種token之間的關聯關係。XLMR結合了XLM和RoBERTa的優點,採用了更大的訓練集,而且對低資源語種進行了優化,在XNLI、NER CoNLL-200三、跨語種問答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

相關文章
相關標籤/搜索