NLP領域預訓練模型的現狀及分析

2020-12-02 雷鋒網

作者 |  王澤洋

單位 | 小牛翻譯

王澤洋 東北大學自然語言處理實驗室研究生,研究方向為機器翻譯。

小牛翻譯,核心成員來自東北大學自然語言處理實驗室,由姚天順教授創建於1980年,現由朱靖波教授、肖桐博士領導,長期從事計算語言學的相關研究工作,主要包括機器翻譯、語言分析、文本挖掘等。團隊研發的支持140種語言互譯的小牛翻譯系統已經得到廣泛應用,並研發了小牛翻譯雲(https://niutrans.vip)讓機器翻譯技術賦能全球企業。


預訓練的方法最初是在圖像領域提出的,達到了良好的效果,後來被應用到自然語言處理。預訓練一般分為兩步,首先用某個較大的數據集訓練好模型(這種模型往往比較大,訓練需要大量的內存資源),使模型訓練到一個良好的狀態,然後下一步根據不同的任務,改造預訓練模型,用這個任務的數據集在預訓練模型上進行微調。

這種做法的好處是訓練代價很小,預訓練的模型參數可以讓新的模型達到更快的收斂速度,並且能夠有效地提高模型性能,尤其是對一些訓練數據比較稀缺的任務,在神經網絡參數十分龐大的情況下,僅僅依靠任務自身的訓練數據可能無法訓練充分,預訓練方法可以認為是讓模型基於一個更好的初始狀態進行學習,從而能夠達到更好的性能。


一、預訓練方法發展

基於詞嵌入的預訓練方法

2003年,Bengio等人提出了神經語言模型(Neural Network Language Model)[1]神經語言模型在訓練過程中,不僅學習到預測下一個詞的概率分布,同時也得到了一個副產品:詞嵌入表示。相比隨機初始化的詞嵌入,模型訓練完成後的詞嵌入已經包含了詞彙之間的信息。2013年,Mikolov等人提出了word2vec工具,其中包含了CBOW(Continue Bag of Words)模型和Skip-gram模型[2-3],該工具僅僅利用海量的單語數據,通過無監督的方法訓練得到詞嵌入。

基於語言模型的預訓練方法

詞嵌入本身具有局限性,最主要的缺點是無法解決一詞多義問題,不同的詞在不同的上下文中會有不同的意思,而詞嵌入對模型中的每個詞都分配了一個固定的表示。針對上述問題,Peters等人提出了ELMo(Embedding from Language Model)[4],即使用語言模型來獲取深層的上下文表示。ELMo的具體做法是,基於每個詞所在的上下文,利用雙向LSTM的語言模型來獲取這個詞的表示。ELMo的方法能夠提取豐富的特徵給下遊任務使用,但是ELMo僅僅進行特徵提取而沒有預訓練整個網絡,遠遠沒有發揮預訓練的潛力,另外一個不足之處是,自注意力機制的Transformer模型結構,相比LSTM能夠更有效地捕獲長距離依賴,對句子中信息進行更充分的建模。

針對上述兩個問題,Radford等人提出了 GPT Generative Pre-Training)[5],即生成式的預訓練。GPT將LSTM換成了Transformer,獲得了更高的成績,但是由於使用的是單向模型,只能通過前面詞預測後面的詞,可能會遺漏信息。Devlin等人提出了BERT(Bidirectional Encoder Representations from Transformers)[6],即基於Transformer的雙向編碼器表示。BERT和GPT的結構和方法十分相似,最主要的不同之處在於GPT模型使用的是單向語言模型,可以認為是基於Transformer的解碼器表示,而BERT使用的基於Transformer的編碼器能夠對來自過去和未來的信息進行建模,能夠提取更豐富的信息。三個預訓練模型的圖如下所示:

BERT提出後大火,也許是因為BERT的效果太好。目前絕大多數的預訓練模型都是在BERT上改造而來。清華大學的王曉智和張正彥同學給出了目前的預訓練模型關係圖,這裡引用一下,如下圖所示:

下面主要介紹幾個BERT變種模型。


二、Cross-lingual Language Model Pretraining(XLM)[7]

在這項工作中,作者將預訓練方法擴展到多種語言並展示跨語言預訓練的有效性。筆者認為,這篇工作的創新點有兩個:設計了一個用於多語言分類的跨語種的語言模型訓練任務;將BERT作為模型初始化用到無監督機器翻譯上。

1、多語言分類任務

雖然BERT也經過了100多種語言的訓練,但並未針對跨語言任務進行優化,因此共享的知識有限。為了克服這個問題,XLM通過以下方式改造了BERT:

在BERT中,每個樣本是用一種語言構建的。XLM對它的改進是每個訓練樣本都包含兩種語言的相同文本。與BERT一樣,該模型的目標是預測被屏蔽的詞,但採用新的體系結構,該模型可以使用一種語言的上下文來預測另一種語言的詞。因為不同語種的被屏蔽詞是不同的(隨機)。改造後的BERT表示為翻TLM(Translation Language Model),而帶有BPE輸入的「原始」 BERT表示為MLM(Masked Language Model)。通過訓練MLM和TLM並在它們之間交替進行訓練來訓練完整的模型。

XLM說明訓練一種跨語言的語言模型對於資源匱乏的語言可能非常有好處,因為它們可以利用來自其他語言的數據,尤其是由於BPE預處理而產生的相似語言。

2、無監督機器翻譯

XLM做的另一個工作是,利用BERT初始化無監督模型的Encoder和Decoder。具體做法是在Transformer的Encoder端和Decoder端,進行隨機初始化、MLM初始化或者CLM初始化(具體如圖),共得到9種不同的結構。


三、Masked Sequence to Sequence pre-training(MASS) [8]

BERT的預訓練是在Transformer的Encoder上進行預訓練,所以BERT天然比較親和自然語言理解的任務,而很難應用於像機器翻譯這樣的語言生成類任務。

微軟的工作者認為BERT單純預訓練了Transformer的Encoder部分,但是對於端到端的任務,Encoder-Decoder是有關聯的,如果用BERT初始化Encoder端和Decoder端,兩端只是分別訓練好的沒有什麼聯繫。於是為了解決這個問題,微軟的工作中提出了MASS(Masked Sequence to Sequence pre-training)。

MASS是在Encoder端和Decoder端通過語言模型預訓練。與BERT不同的是mask掉的詞是k個(這k個詞是連續的),Decoder中只輸入前k-1個被mask掉的詞,預測被mask掉的k個詞。MASS的優勢有:

  • Encoder被強制去抽取未被屏蔽掉詞的語義,以提升Encoder理解源序列文本的能力。

  • Encoder端其它詞(在Encoder端未被屏蔽掉的詞)都被屏蔽掉,可以讓Decoder從Encoder端提取信息來幫助連續片段的預測。

  • Encoder預測連續的序列片段可以提升Encoder的語言建模能力。

MASS只需要無監督的單語數據進行預訓練。MASS支持跨語言的序列到序列生成(比如機器翻譯),也支持單語言的序列到序列生成(比如文本摘要生成、對話生成)。比如用MASS做英法的機器翻譯時,在一個模型裡同時進行英語到英語以及法語到法語的預訓練(單獨給每個語言加上相應的語言嵌入向量,用來區分不同的語言)。

至於效果,在WMT19中,MASS幫助微軟獲得了多項翻譯的冠軍,具體可以查看WMT19的榜單。


四、XLNet: Generalized Autoregressive Pretraining for Language Understanding

自回歸語言模型是單向的但是天然匹配自然語言生成任務,自編碼(BERT)可以融合雙向信息但是引入MASK導致預訓練和Fine-tuning階段的不一致。XLNET融合了自回歸語言模型和自編碼語言模型的優點。XLNET在模型方面的貢獻在於,隨然看上去仍然是從左向右的輸入和預測模式,但是其實內部已經引入了當前單詞的下文信息。

在預訓練階段,引入Permutation Language Model的訓練目標。簡單點來說就是固定當前要預測的詞,通過調換其餘詞的位置,將預測詞後邊的詞換到當先此的前邊,在隨機排列組合後的各種可能裡,再選擇一部分作為模型預訓練的輸入。這樣當前詞就能看到上下文的內容了,但是形式上看上去仍然是從左到右在預測後一個單詞。具體的實現可以看XLNET的論文。

除此之外,引入了Transformer-XL的主要思路:相對位置編碼以及分段RNN機制。實踐已經證明這兩點對於長文檔任務是很有幫助的;在預訓練階段極大擴充了數據規模,並對質量進行了篩選過濾。

相對於BERT模型,XLNET對於長文檔的應用有明顯的提升,因為Transformer天然對長文檔任務處理有弱點。上文提過,對於生成類的NLP任務,BERT仍然不能很好地處理。而XLNET的預訓練模式天然符合下遊任務序列生成結果。但是目前還沒有實驗證明。

五、結論

從BERT的各類變種就可以看出BERT和Transformer的火爆程度,筆者認為目前預訓練+下遊任務微調有一統自然語言領域的趨勢。預訓練不僅在低資源任務上有很高的提升作用,甚至在豐富資源的任務上對模型性能也有顯著的提高。如果沒有超越Transformer的特徵提取模型提出的話,相信在BERT上各類的改造會層出不窮,以適應不同類型的下遊任務。還有的預訓練模型在BERT基礎上引入知識圖譜等,讓BERT變得更加「有知識」,如清華大學的ERNIE[10]。

既然各類不同的任務對預訓練模型進行不同的改造,那能不能有一種預訓練模型,可以適應全部的NLP任務呢,近期谷歌剛剛發布了超大規模的T5(NLP Text-to-Text)[11]預訓練模型。它給整個 NLP 預訓練模型領域提供了一個通用框架,把所有任務都轉化成一種形式,無論什麼任務,直接拿來一個超大預訓練模型,然後主要工作就變成了怎麼把任務轉換成合適的文本輸入輸出,,比如德英翻譯,只需將訓練數據集的輸入部分前加上「translate German to English」。

另外的思路是,不是改造預訓練的模型,而是將龐大的預訓練模型進行壓縮,比如近期的alBERT,通過共享參數、引入單獨的詞嵌入層維度來減少BERT的參數。最終性能也登上GLUE第一(剛剛被T5超過)。還有通過知識蒸餾技術,訓練出的tinyBERT等,都是對BERT模型進行的模型壓縮。

參考文獻

[1] Bengio Y, Ducharme R, Vincent P, et al. A neural probabilistic language model. 

[2] Mikolov T, Chen K, Corrado G S, et al. Efficient Estimation of Word Representations in Vector Space. 

[3] Mikolov T, Sutskever I, Chen K, et al. Distributed Representations of Words and Phrases and their Compositionality. 

[4] Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018. Deep Contextualized Word Representations.

[5] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving Language Understanding by Generative Pre-Training. 

[6] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018.  BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.

[7] Guillaume Lample and Alexis Conneau. 2019. Cross-lingual Language Model Pretraining.

[8] Kaitao Song, Xu Tan, Tao Qin, Jianfeng Lu, and Tie-Yan Liu. 2019. MASS: Masked Sequence to Sequence Pre-training for Language Generation.

[9] Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, and Quoc V. Le. 2019. XLNet: Generalized Autoregressive Pretraining for Language Understanding.

[10] Zhengyan Zhang, Xu Han, Zhiyuan Liu1, Xin Jiang, Maosong Sun1, Qun Liu. ERNIE: Enhanced Language Representation with Informative Entities.

[11] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee,et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer.

雷鋒網(公眾號:雷鋒網)編輯

相關文章:

面向神經機器翻譯的篇章級單語修正模型

神經結構搜索在機器翻譯中的應用

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • PTMs|2020最新NLP預訓練模型綜述
    由於篇幅原因,本文主要針對前面兩點進行梳理,即「目前主流的預訓練模型」和「預訓練模型的分類體系」。1. 背景「nlp、cv領域的傳統方法極度依賴於手動特徵工程」。「nlp領域的發展比cv領域相對緩慢的原因是什麼呢」?相比於cv領域,「nlp領域的劣勢在於有監督數據集大小非常小」(除了機器翻譯),導致深度學習模型容易過擬合,不能很好地泛化。
  • ImageNet 帶來的預訓練模型之風,馬上要吹進 NLP 領域了
    這些方法的出現預示著一個分水嶺時刻的到來了:這些預訓練語言模型有可能會在自然語言處理領域造成巨大而廣泛的影響,正如 ImageNet 預訓練模型在計算機視覺中所造成的影響一樣。從淺層到深度預訓練預訓練的詞向量已經統治了自然語言處理領域相當長一段時間。
  • AI資訊|分析現階段最有效的NLP預訓練模型!
    最新語言預訓練可以說是在自然語言處理領域帶來了很可觀的收益,其中包括最先進的模型如BERT,RoBERTa,XLNet,ALBERT和T5等。這些方法雖然在設計上有所不同,但在面對如情感分析和問題解答時,利用特定的NLP任務進行微調之前,都有著相同的想法,即利用大量未標記的文本來構建語言理解的通用模型。
  • 一文讀懂最強中文NLP預訓練模型ERNIE
    基於飛槳開源的持續學習的語義理解框架ERNIE 2.0,及基於此框架的ERNIE 2.0預訓練模型,在共計16個中英文任務上超越了BERT和XLNet, 取得了SOTA效果。本文帶你進一步深入了解ERNIE的技術細節。
  • NLP領域中的遷移學習現狀
    3、由淺入深在過去的幾年裡,NLP領域中最先進的模型變得越來越深入。僅僅兩年前,大多數任務上表現最佳的模型都還是2-3層的深度BiLSTM,只有機器翻譯領域表現最好的模型是與眾不同的16層(Wu 等人, 2016)。相比之下,目前的模型如BERT-Large和GPT-2由24個Transformer模塊組成,而最新的模型甚至會更深。
  • 復旦邱錫鵬超全NLP預訓練模型綜述論文:兩張圖帶你梳理完整脈絡
    我們知道 BERT、ALBERT、XLNet 等眾多優秀模型,但它們之間的關係、差別、分類到底是什麼樣的?這還是主流模型,如果沒讀過具體論文,我們是很難分清楚的,對於更多的變體與擴展,基本上就無能為力了。但近日復旦大學邱錫鵬等研究者發了一篇論文,它以兩張圖詳細展示了預訓練語言模型的現狀與分類。
  • 超越BERT、GPT,微軟提出通用預訓練模型MASS
    2018年開始,預訓練(pre-train) 毫無疑問成為NLP領域最熱的研究方向。藉助於BERT和GPT等預訓練模型,人類在多個自然語言理解任務中取得了重大突破。然而,在序列到序列的自然語言生成任務中,目前主流預訓練模型並沒有取得顯著效果。
  • 斯坦福發布重磅NLP工具包StanfordNLP,支持中文等53種語言
    新智元報導 來源:stanfordnlp.github.io編輯:肖琴【新智元導讀】斯坦福團隊最新發布一個NLP任務的軟體包StanfordNLP,通過Python接口為53種語言提供標記、依存句法分析等NLP任務的重要工具
  • 2019 年 NLP 領域都發生了哪些大事件?
    XLNet 是一種用於自然語言處理任務的預訓練方法,它在 20 種任務上相較於 BERT 有了進一步的提升。關於這份卓越的工作的總結,請參閱: https://medium.com/dair-ai/xlnet-outperforms-bert-on-several-nlp-tasks-9ec867bb563b。
  • 超強大自動NLP工具!谷歌推出AutoML自然語言預訓練模型
    今年早些時候,谷歌發布了AutoML自然語言(AutoML Natural Language),這是其Cloud AutoML機器學習平臺向自然語言處理領域的擴展。它可以從上傳或粘貼的文本、或谷歌雲存儲的文檔中提取關於人、地點和事件的信息,允許用戶訓練自己的自定義AI模型來對情緒、實體、內容和語法等進行分類、檢測和分析。此外,它還提供自定義實體提取功能,該功能可以在文檔中識別出標準語言模型未出現的特定於領域的實體。
  • NLP歷史突破!谷歌BERT模型狂破11項紀錄,全面超越人類!
    傳銷的靈感來自完形填空任務(泰勒,1953年),在MLM隨機掩蔽模型的輸入中,一些符號的目標是僅僅基於掩蔽詞的上下文來預測原始詞彙表id<span class=「BJH-hr」>辛至遠報導來源:arxiv,志虎。編者:新志遠編輯部。今天,NLP領域最重要的突破!
  • 怎樣預訓練GNN能實現更好的遷移效果?北郵等提出自監督預訓練策略
    機器之心報導 作者:小舟、陳萍 預訓練與微調之間的差異能否緩解?來自北京郵電大學、騰訊、新加坡管理大學和鵬城實驗室的研究者進行了分析研究,並提出了一種針對 GNN 的自監督預訓練策略。
  • ALBERT一作藍振忠:預訓練模型應用成熟,ChineseGLUE要對標GLUE
    今年石破天驚的預訓練語言模型,可謂是下半年的 ALBERT 預訓練模型。和 XLNet、RoBERTa 等不同。ALBERT 模型大幅減少了模型的參數量,卻仍然在 GLUE、SQuAD 2.0、RACE 榜單上達到了 SOTA。另一項引起業界關注的項目,則是中文預訓練語言模型評價基準 ChineseGLUE。
  • 資源| 史丹福大學NLP組開放神經機器翻譯代碼庫(附論文)
    除此之外,「為了鼓勵再現和增加透明」,他們還放出了他們用於訓練模型的處理過的數據以及可以通過他們的代碼庫使用的預訓練好的模型。發布地址:http://nlp.stanford.edu/projects/nmt/參與成員:Christopher D.
  • 性能媲美BERT,參數量僅為1/300,谷歌最新的NLP模型
    機器之心編輯部在最新的博客文章中,谷歌公布了一個新的 NLP 模型,在文本分類任務上可以達到 BERT 級別的性能,但參數量僅為 BERT 的 1/300。在過去的十年中,深度神經網絡從根本上變革了自然語言處理(NLP)領域的發展,但移動端有限的內存和處理能力對模型提出了更高的要求。人們希望它們可以變得更小,但性能不打折扣。
  • 預訓練圖像處理Transformer:華為諾亞、北大等提出IPT模型,刷榜多...
    Transformer 等模型在自然語言處理任務上展現出了強大的特徵學習能力,使用大量數據進行預訓練的策略獲得了成功。因此,很多研究都在考慮如何在計算機視覺領域發揮 Transformer 模型與預訓練的潛力。
  • 面向認知,智源研究院聯合阿里、清華等發布超大規模新型預訓練模型...
    來源:中國網科技日前,北京智源人工智慧研究院(以下簡稱智源研究院)聯合阿里、清華等多家單位發布超大規模新型預訓練模型「文匯」,旨在探索解決當前大規模自監督預訓練模型不具有認知能力的問題。與傳統AI訓練需要人工標註數據不同,面向認知的預訓練語言模型提供了一種全新的學習思路,即AI首先自動學習大量語言文字和圖像數據,記憶和理解其中的信息以及人類語言表述的規律後,再進一步學習專業領域知識,從而讓AI同時掌握常識和專業知識。此次發布的「文匯」是目前國內規模最大的預訓練模型,參數量級達113億。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    機器之心報導參與:一鳴昨日,機器之心報導了 CMU 全新模型 XLNet 在 20 項任務上碾壓 BERT 的研究,引起了極大的關注。而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。
  • 2019 年ML & NLP領域十大研究熱點
    和NLP修復NLG中的解碼錯誤增強預訓練模型高效、長程的Transformer更可靠的分析方法一、通用無監督預訓練1、發生了什麼?無監督預訓練也開始「入侵」以前由監督方法佔主導地位的領域。無監督預訓練可以在帶有更少標記樣本的數據上訓練模型,這為以前無法滿足數據需求的許多不同領域中的應用提供了新的可能性。3、接下來是什麼?無監督預訓練仍有很大的進步空間,儘管迄今為止它在單個領域都取得了很大進步,未來將重點放在如何更緊密地集成多模態數據,將是一個有趣的問題。
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術
    (https://ronxin.github.io/wevi/)預訓練詞向量:這裡有一份facebook的預訓練詞向量列表,包含294種語言。(https://github.com/facebookresearch/fastText/blob/master/pretrained-vectors.md)這裡可以下載google news的預訓練詞向量。