中國數據存儲服務平臺

百分點認知智能實驗室出品:基于深度遷移學習的多語種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 主題分類任務上效果

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

6.2 情感分類任務上的效果

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

6.3 NER任務上的效果

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



未經允許不得轉載:存儲在線 » 百分點認知智能實驗室出品:基于深度遷移學習的多語種NLP技術原理和實踐
分享到: 更多 (0)
对战牛牛 浙江省体彩6十1中奖规则 幸运飞艇全国统一开奖号码 777766香港开奖结果 小说 股票涨跌幅度是看昨天的吗 查一下黑龙江11选5 山东快乐扑克3多久开一次 福彩广东36选7开奖结果 四川金七乐基本走势图 南京哪家配资公司好 足球混合投注 一肖平特如何计算 山西11选5台子 加拿大28火车判定方法 安徽11选5组3走势 股票配资亏损怎么算 江苏快三111最大遗漏