預訓練模型綜述

本論文首發於我的微信公衆號【shinerise】
在這裏插入圖片描述

摘要:近年來,預訓練模型的出現將自然語言處理帶入了一個新的時代。本文概述了面向自然語言處理領域的預訓練模型技術。我們首先概述了預訓練模型及其發展歷史。並詳細介紹自然語言處理領域的經典預訓練模型,包括最經典的預訓練模型技術和現在一系列新式的有啓發意義的預訓練模型。然後梳理了這些預訓練模型在自然語言處理領域的優勢和預訓練模型的兩種主流分類。最後,對預訓練技術的未來發展趨勢進行了展望。

關鍵詞:深度學習、自然語言處理、預訓練模型

1 引言

在學術界,預訓練語言模型(PLMs,Pre-trained Language Models)的研究,已經成爲了一個非常火爆的課題,最近幾年迸發出許多可以改變整個自然語言處理(Neutral Language Processing,NLP)世界格局的文章,包括 BERT[1]、GPT2[2] 等,PLMs 技術逐漸發展成爲了 NLP 領域不可或缺的主流技術。

所謂的語言模型就是建模一個句子存在的可能性,我們提到的 PTMs 指的是利用大量在人們生活中出現過的文本來訓練,使模型在這些文本中,學習到每一個詞或字出現的概率分佈,以此來建模出符合這些文本分佈的模型。語言模型的預料的標籤就是它的上下文[3],這就決定了人們幾乎可以無限制地利用大規模的語料來訓練語言模型,這些大規模的預料,使 PTMs 得以獲得了強大的能力,進一步在下游相關任務上展現了其出色的效果。

​ 本文主要概述了自然語言處理領域的預訓練模型技術。第 2 節按時間順序簡要概述了預訓練語言模型的整個發展歷史;第 3 節詳細介紹自然語言處理領域的經典預訓練模型;第 4 節小結了預訓練模型的優點和其對比分類;第 5 節對自然語言處理領域的預訓練語言模型的未來發展趨勢進行展望。

2 預訓練模型發展歷史

​ 早期的 PTMs 技術的目標是學習好的詞嵌入。由於下游任務不再需要使用這些模型,因此它們在計算效率方面通常非常低,如 Skip-Gram[4] 和 GloVe[5]。雖然這些預先訓練的詞向量可以捕獲單詞的語義含義,但它們是上下文無關的,不能捕獲文本的高級概念,如語法和語義等。

​ 從 2016 年開始,大多數的研究都開始重視長時的上下文語義在詞嵌入中的作用和語言模型在大規模語料上提前預訓練這兩個核心觀點。Dai 和 Le[6] 使用語言建模和序列自編碼來改善循環神經網絡(RNN, Recurrent Neutral Language)的序列學習,可以被認爲是現代 PTMs 的開端。它系統地闡述了上游預訓練語言模型可以用於下游特定任務這個劃時代的思想,並用一系列分類任務的實驗來對比支持了這個觀點。從此以後,PTMs 漸漸步入了人們的視野。

​ 隨後,Ramachandran et al.[7] 拓展了上述方法,提出了利用預訓練的方法可以提高序列到序列(Sequence to sequence,Seq2Seq)模型 [8] 的準確性。它證明了在大量無監督數據上預訓練模型,並在少量有監督數據上微調模型這個思路對 Seq2Seq 模型同樣具有效性,並提出了 Seq2Seq 目標和語言模型目標聯合訓練以提高泛化能力的想法。使得 PTMs 技術進一步發展,展現了該方法在 NLP 領域中的通用性。

​ 隨着計算能力的發展,深層模型也不斷提高,PTMs 的體系結構由淺入深推進。在 [6] 中,Dai 和 Le 使用的是LSTM[9],它解決了 RNN 在處理時序模型時『back-propagation through time』的困難。然而,單向的 LSTM 僅能學習上文的語義信息,於是,巴伊蘭大學的學者在 [10] 中開創性地通過雙向 LSTM 將上下文的語義信息融入到了詞嵌入中,並且首先承接起了當時正流行的詞嵌入和語言模型之間的關係,展示了可以利用大量的無標註文本數據訓練出高質量的包含上下文信息的向量表示,並顯著超過使用傳統的詞向量的效果。

​ 接下來,2018 年,ELMo[11] 提出了一種上下文相關的文本表示方法,並在多個典型任務上表現驚豔,能有效處理一詞多義問題。其後,GPT[12],BERT 等預訓練語言模型相繼被提出,PTMs 技術開始在 NLP 領域大放異彩。

隨着 ELMo、GPT、BERT 等預訓練模型在 NLP 任務取得 SOTA(Start-of-the-Art)結果,一系列以 BERT 爲基礎的改進模型相繼被提出,預訓練模型在各種下游任務中遍地開花,如 MASS、UniLM、ERNIE、SpanBERT、RoBERTa、ALBERT、XLNet 等,這些模型的提出大大推動了NLP領域的進步。

3 經典預訓練模型

本節主要梳理了經典的預訓練模型,由於第一代 PTMs 更專注於詞向量的產生,本節重點梳理了第二代 PTMs,包括ELMo、GPT、BERT以及最近的新型預訓練模型。

3.1 ELMo模型

正如上文中提到的那樣,早期的 PTMs 無法解決一詞多義問題,無法理解複雜的語境;ELMo 在這種情況下應運而生,通過深層雙向語言模型來構建文本表示,有效解決了一詞多義問題[13]。

ELMo 從大規模的無監督的語料中,預訓練一個雙向的 LSTM 語言模型,它分爲兩個階段,第一個階段在大規模語料庫上利用語言模型進行預訓練,第二個階段是在做下游任務時,從預訓練網絡中提取對應單詞的網絡各層的詞嵌入作爲新特徵補充到下游任務中,它是一種典型的基於特徵融合的預訓練模型,它的模型結構如圖 3.1 所示。

img

圖3.1 ELMo 語言模型結構圖

該模型與之前的一些相似模型相比,首先它使用了雙向的兩層 LSTM,這與單向的語言模型相比,能夠更加容易的捕捉上下文的相關信息。其次,在上下層的 LSTM 之間有殘差連接,加強了梯度的傳播。另外,雙向語言模型的訓練目標是最大化前向和後向的聯合對數似然概率,這點源於模型雙向的特性。

img

圖3.2 ELMo語言模型訓練目標

ELMo 預訓練模型的主要貢獻是提出了深層雙向語言模型的重要性,能有效的提升模型的性能,並且與沒有 ELMo 的模型相比,使用 ELMo 增強的模型能夠更有效地使用更小的訓練集。

然而,ELMo 模型也有其侷限性,首先,它使用的特徵抽取器是 LSTM,LSTM 的特徵抽取能力是遠弱於 Transformer[14] 的。其次,它採用的模型拼接方式是雙向融合,這在後面被證明比 BERT 的一體化的融合特徵方式效果更弱。

3.2 GPT模型

ELMo 使業界意識到了基於大規模預料集預訓練的語言模型的威力,與此同時,Transformer 的提出被發現在處理長期依賴性任務方面比 LSTM 有更好的表現,它在機器翻譯等任務上取得的成果也被認爲是 LSTM 的替代品。在此背景下,OpenAI 的 GPT 預訓練模型被提出。

GPT 模型也採用了兩階段,第一階段利用無監督的預訓練語言模型進行預訓練,學習神經網絡的初始參數,第二階段通過有監督的微調模式解決下游任務,這是一種半監督的方法,結合了非監督的預訓練模型和監督的微調模型,來學習一種通用的表示法。

img

圖3.3 GPT 與 ELMo 的模型結構

與 ELMo 相比,GPT 模型沿襲了[6]中的方法,將語言模型預訓練後,把模型的參數作爲監督模型的起始點的做法,而又區別於 ELMo 模型,通過預訓練模型生成帶上下文信息的向量表示,然後作爲監督模型的特徵這一做法。另外,GPT 採用了 Transformer 中的解碼器結構,它堆疊了 12 個 Transformer 子層,這一點與 ELMo 使用的 LSTM 作爲特徵抽取器也是不同的。除此之外,爲了方便將語言模型的能力遷移到下游的各種任務中,GPT 採用的是遍歷式的方法[15],將結構化的輸入轉化成預訓練模型可以處理的有序序列(如圖3.4所示),而 ELMo 僅僅只是定製了一個確定的框架。GPT 與 ELMo 的模型對比結構如圖 3.3 所示。

img

圖3.4 (左) GPT 中的 Transformer 架構。(右)對不同任務進行微調
之後 GPT2 的出現改進了 GPT 的幾點不足, GPT2 希望能夠使模型不經過任何改變就可以在下游任務上獲得比較好的性能,這就使得 GPT2 的語言模型是通用的,不需要根據下游任務的不同微調其模型,另外,GPT2 在 GPT 的基礎上使用了更大的模型和更多的參數。

GPT 模型在公佈的結果中,一舉刷新了自然語言處理領域的 9 項典型任務,效果不可謂不驚豔。然而,GPT 本質上仍然是一種單向的語言模型,對語義信息的建模能力有限,這一缺點在後面 BERT 問世之後表現得非常明顯。

3.3 BERT 模型

BERT 也是一種典型的微調模型結構,與 GPT 模型類似,BERT 同樣通過堆疊 Transformer 子結構來構建基礎模型,模型結果與 GPT、ELMo 對比如圖 3.5 所示。BERT 使用的是基於 Transformer 的雙向預訓練語言模型,GPT 使用的是單向的 Transformer 結構,ELMo 使用獨立訓練的從左到右和從右到左的 LSTM 連接來生成下游任務。

img

圖3.5 BERT、GPT、ELMo 模型對比

與前面的 ELMo、GPT 等模型相比,BERT 的第一個創新是使用 Masked LM(MLM)來達到深層雙向聯合訓練的目的,這與 GPT 使用單向的生成式語言模型和 ELMo 使用獨立的雙向語言模型都不同。MLM 預訓練類似於一種完形填空的任務,即在預訓練時,通過隨機遮蓋輸入文本序列的部分詞語,在輸出層獲得該位置的概率分佈,進而極大化似然概率來調整模型參數。

BERT 的第二個創新是使用了 Next Sentence Prediction(NSP),這是一種用來捕捉句子間關係的二分類任務,這個任務可以從任何單詞語料庫中輕鬆生成。我們都知道,很多重要的下游任務,包括問答系統和自然語言推理等都是建立在理解兩個文本句子之間的關係的基礎上的,而語言建模並不能直接捕捉這些關係,NSP 解決了這個問題。具體來說,就是在構造任務的數據集時,會有 50% 的概率,選擇正樣本,即某句句子和其下一句句子的組合,50% 的概率在語料中選擇任意一句句子構成負樣本。

BERT 的表現是里程碑式的,在自然語言處理領域的 11 項基本任務中獲得了顯著的效果提升,它的出現建立在前期很多重要工作上,是一個集大成者。同時,BERT 的出現也極大地推動了自然語言處理領域的發展,許多後續研究一般也以 BERT 模型爲基礎進行改進。學界普遍認爲,從 BERT 模型開始,自然語言處理領域終於找到了一種方法可以像計算機視覺那樣進行遷移學習。

3.4 新式預訓練模型

BERT 的出現開啓了一個新時代,此後涌現出了大量的預訓練語言模型。這些新式的預訓練語言模型從模型結構上主要分爲幾大類:基於 BERT 的改進模型、XLNet 和以 MASS 爲代表的生成模型。下面簡單介紹這幾類模型。

基於 BERT 的改進模型有 ERNIE、SpanBERT、RoBERTa、ALBERT 等。ERNIE 引入了知識 Mask 策略,包括實體級 Mask 和短語級 Mask,用以取代 BERT 中的隨機 Mask[16]。SpanBERT 對 ERNIE 進行泛化[17],在無需外部知識的情況下隨機 Mask 跨度。RoBERTa 對 BERT 模型進行了一些更改,包括:1)使用更大的批次和更多的數據對模型進行更長的訓練;2)取消 NSP 任務;3)在更長的序列上訓練;4)在預訓練過程中動態更改 Mask 位置[18]。ALBERT 提出了兩個參數優化策略以減少內存消耗並加速訓練。此外,ALBERT 還對 BERT 的 NSP 任務進行了改進[19]。

XLNet 的提出是爲了解決 BERT 中存在的兩個問題[20]:1)BERT 認爲 Mask 的單詞之間是獨立的;2)BERT 使用了實際不存在的 [MASK] 符號,這會導致訓練與微調出現差異。因此 XLNet 基於排列語言建模(PLM)提出了一個自迴歸的方法,並引入了雙向自注意力機制和 Transformer-XL 實現模型。

MASS 把 BERT 推廣到生成任務[21],並設計統一了 BERT 和傳統單向語言模型框架 BERT+LM,使用 BERT 作爲編碼器,使用標準單向語言模型作爲解碼器。UniLM 進一步將雙向語言模型、單向語言模型、Seq2Seq 語言模型結合進行預訓練[22]。

4 預訓練語言模型小結

4.1 預訓練模型的優點

上文介紹了深度學習時代的部分預訓練模型,可以從它們中總結出預訓練模型的優點:

  • 在大型文本語料庫上的預訓練可以學習通用語言表示並幫助完成後續任務;
  • 預訓練提供了更好的模型初始化,這通常會帶來更好的泛化性能,並加速對目標任務的收斂;
  • 預訓練可以看作是一種正則化,以避免小數據的過擬合;

4.2 預訓練語言模型的對比分類

下面分別從特徵抽取和語言模型目標 2 個方面對預訓練語言模型進行分類。

PTMs 中的特徵抽取器通常採用 LSTM 和 Transformer(Transformer-XL),其中Transformer 又依據其 attention-mask 的方式分爲 Transformer-Encoder 和 Transformer-Decoder 兩部分。圖 4.1 是各種 NLP 特徵抽取器的對比。

img

圖4.1 NLP 特徵抽取器對比

基於上下文的 PTMs 從語言模型的目標方面可以分爲自迴歸語言模型(Language Modeling,LM),自編碼語言模型(Denoising Autoencoder,DAE)和排列語言模型(Permuted Language Modeling,PLM)。圖 4.2 對基於上下文的語言模型進行了對比總結。

img

5 總結與展望

雖然 PTMs 已經在很多 NLP 任務中顯示出了他們強大的能力,然而由於自然語言處理的複雜性,仍存在諸多挑戰。本文給出了 PTMs 在未來可能的幾個發展方向。

5.1 PTMs 的上限

目前,PTMs 並沒有達到其上限。大多數的 PTMs 可通過使用更長的訓練步長和更大數據集來提升其性能。目前 NLP 中的 SOTA 也可通過加深模型層數來更進一步提升,這將導致更加高昂的訓練成本。因此,一個更加務實的方向是在現有的軟硬件基礎上,設計出更高效的模型結構、自監督預訓練任務、優化器和訓練技巧等。

5.2 PTMs 的架構設計

對於 PTMs,Transformer 已經被證實是一個高效的架構。然而 Transformer 最大的侷限在於其計算複雜度(輸入序列長度的平方倍數)。受限於 GPU 顯存大小,目前大多數 PTM 無法處理超過 512 個 token 的序列長度。打破這一限制需要改進 Transformer 的結構設計,例如 Transformer-XL。

5.3 微調模型中的知識遷移

微調模型是目前將 PTM 的知識轉移至下游任務的主要方法,但效率卻很低,每個下游任務都需要有特定的微調參數。一個可以改進的解決方案是固定 PTMs 的原始參數,併爲特定任務添加小型的微調適配器,這樣就可以使用共享的 PTMs 服務於多個下游任務。

5.4 PTMs 的解釋性與可靠性

PTMs 的可解釋性與可靠性仍然需要從各個方面去探索,它能夠幫助我們理解 PTM 的工作機制,爲更好的使用及性能改進提供指引。

參考文獻

[1] M. C. Kenton, L. Kristina, and J. Devlin, “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,” 2017.

[2] A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, and I. Sutskever, “Language Models are Unsupervised Multitask Learners,” 2018.

[3] X. Qiu, T. Sun, Y. Xu, Y. Shao, N. Dai, and X. Huang, “Pre-trained Models for Natural Language Processing : A Survey,” 2020.

[4] Q. Le and T. Mikolov, “Distributed representations of sentences and documents,” 31st Int. Conf. Mach. Learn. ICML 2014, vol. 4, pp. 2931–2939, 2014.

[5] J. Pennington, R. Socher, and C. D. Manning, “GloVe : Global Vectors for Word Representation,” pp. 1532–1543, 2014.

[6] A. M. Dai and Q. V. Le, “Semi-supervised sequence learning,” Adv. Neural Inf. Process. Syst., vol. 2015-Janua, pp. 3079–3087, 2015.

[7] P. Ramachandran, P. J. Liu, and Q. V Le, “Unsupervised Pretraining for Sequence to Sequence Learning,” 2014.

[8] I. Sutskever, O. Vinyals, and Q. V. Le, “Sequence to sequence learning with neural networks,” Adv. Neural Inf. Process. Syst., vol. 4, no. January, pp. 3104–3112, 2014.

[9] S. Hochreiter and J. Schmidhuber, “Long Short-term Memory,” Neural Comput., vol. 9, pp. 1735–1780, 1997.

[10] O. Melamud, J. Goldberger, and I. Dagan, “context2vec: Learning Generic Context Embedding with Bidirectional {LSTM},” in Proceedings of The 20th {SIGNLL} Conference on Computational Natural Language Learning, 2016, pp. 51–61.

[11] C. Clark, K. Lee, and L. Zettlemoyer, “Deep contextualized word representations,” 2018.

[12] A. Radford and T. Salimans, “Improving Language Understanding by Generative Pre-Training,” pp. 1–12, 2018.

[13] Q. Liu, M. J. Kusner, and P. Blunsom, “A Survey on Contextual Embeddings,” 2020.

[14] A. Vaswani, “Attention Is All You Need arXiv:1706.03762v5 ,” no. Nips, 2017.

[15] T. Rocktäschel, E. Grefenstette, K. M. Hermann, T. Kočiský, and P. Blunsom, “Reasoning about entailment with neural attention,” 4th Int. Conf. Learn. Represent. ICLR 2016 - Conf. Track Proc., no. 2015, pp. 1–9, 2016.

[16] Y. Sun et al., “ERNIE: Enhanced Representation through Knowledge Integration,” 2019.

[17] M. Joshi, D. Chen, Y. Liu, D. S. Weld, L. Zettlemoyer, and O. Levy, “SpanBERT: Improving Pre-training by Representing and Predicting Spans.”

[18] Y. Liu et al., “RoBERTa: A Robustly Optimized BERT Pretraining Approach,” no. 1, 2019.

[19] L. E. Of, L. A. R. Epresentations, Z. Lan, and P. Sharma, “Albert: A lite bert for self-supervised learn- ing of language representations,” pp. 1–17, 2020.

[20] Z. Yang, Z. Dai, Y. Yang, and J. Carbonell, “XLNet : Generalized Autoregressive Pretraining for Language Understanding,” pp. 1–18.

[21] K. Song, X. Tan, T. Qin, J. Lu, and B. De-, “MASS : Masked Sequence to Sequence Pre-training for Language Generation,” 2019.

[22] L. Dong et al., “Unified Language Model Pre-training for Natural Language Understanding and Generation,” no. NeurIPS, 2019.

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