預(yù)訓(xùn)練模型的過去、現(xiàn)在和將來之一
最近,隨著大數(shù)據(jù)和高性能硬件的發(fā)展,自回歸語言模型(GPT)和自編碼語言模型(BERT)等大規(guī)模預(yù)訓(xùn)練模型(PTM)已經(jīng)取得了巨大成功,不僅促進(jìn)了自然語言處理(NLP)任務(wù)的性能提升,也有效地提升了圖像處理任務(wù)的表現(xiàn)。大規(guī)模預(yù)訓(xùn)練模型的突出優(yōu)勢在于,能夠從海量未標(biāo)注的數(shù)據(jù)上學(xué)習(xí)語言本身的知識,而后在少量帶標(biāo)簽的數(shù)據(jù)上微調(diào),從而使下游任務(wù)能夠更好地學(xué)習(xí)到語言本身的特征和特定任務(wù)的知識。這種預(yù)訓(xùn)練模型不僅能夠充分利用廣泛的網(wǎng)絡(luò)資源,而且還能完美地解決人工標(biāo)記數(shù)據(jù)較為復(fù)雜的問題。因此,預(yù)訓(xùn)練模型幾乎成了NLP任務(wù)的標(biāo)配[1]。
本文將分為上下兩篇為讀者解讀預(yù)訓(xùn)練模型的誕生、代表性工作和未來發(fā)展方向。上篇主要介紹預(yù)訓(xùn)練的誕生和代表性工作,下篇主要介紹預(yù)訓(xùn)練模型的未來發(fā)展方向。相關(guān)內(nèi)容主要借鑒參考文獻(xiàn)[1]。
1、背景介紹
近些年,包括卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)和Transformer等模型在內(nèi)的深度神經(jīng)網(wǎng)絡(luò)已經(jīng)廣泛地應(yīng)用于各類應(yīng)用中。與依賴人工特征的傳統(tǒng)機(jī)器學(xué)習(xí)方法相比,深度神經(jīng)網(wǎng)絡(luò)能夠通過網(wǎng)絡(luò)層自動學(xué)習(xí)數(shù)據(jù)特征,從而擺脫了人工設(shè)計特征的局限性,極大地提升了模型的性能。
盡管深度神經(jīng)網(wǎng)絡(luò)促進(jìn)各類任務(wù)取得了極大的突破,但深度學(xué)習(xí)模型對數(shù)據(jù)較高的依賴性也帶來了極大的挑戰(zhàn)。因為深度學(xué)習(xí)模型需要學(xué)習(xí)大量的參數(shù),數(shù)據(jù)量少必定會造成模型過擬合和泛化能力差。為此,早期的AI研究者開始投身于為AI任務(wù)手工構(gòu)造高質(zhì)量數(shù)據(jù)集的研究中。最著名的是李飛飛團(tuán)隊的ImageNet圖像處理數(shù)據(jù)集,該數(shù)據(jù)集極大地促進(jìn)了圖像處理領(lǐng)域的快速發(fā)展。但是,自然語言處理領(lǐng)域處理的是離散的文本數(shù)據(jù),人工標(biāo)注工作較為復(fù)雜。因此,NLP領(lǐng)域開始關(guān)注海量未標(biāo)注的數(shù)據(jù)。
預(yù)訓(xùn)練模型的最初探索主要致力于淺層語義表示和上下文語義表示。最早關(guān)注的淺層語義表示是Word2Vec[2]等,為每個單詞學(xué)習(xí)一個固定的單詞編碼,而后在多個任務(wù)上都用相同的編碼,這樣表示方法必定帶來無法表示一詞多義的問題。為了解決上述挑戰(zhàn),NLP 研究者開始探索具有上下文語義的單詞詞嵌入表示[3][4][5]。到目前為止,具有代表性的詞嵌入表示是BERT和GPT系列的預(yù)訓(xùn)練模型,其中GPT-3的模型參數(shù)已經(jīng)達(dá)到了千億級別。預(yù)訓(xùn)練模型的發(fā)展歷程如圖1所示。
圖1 預(yù)訓(xùn)練模型的分類
1.1 遷移學(xué)習(xí)與監(jiān)督訓(xùn)練
為了解決標(biāo)注數(shù)據(jù)緊缺導(dǎo)致的過擬合和泛化能力差的問題,提出了遷移學(xué)習(xí)。遷移學(xué)習(xí)是受人類學(xué)習(xí)的啟發(fā),面對新問題時使用以前學(xué)到的知識去解決問題。它能夠從多元任務(wù)中學(xué)到重要的知識,并將其應(yīng)用到目標(biāo)任務(wù)中。因此,遷移學(xué)習(xí)能很好地解決目標(biāo)任務(wù)標(biāo)注數(shù)據(jù)緊缺的問題。
預(yù)訓(xùn)練早期的工作主要致力于遷移學(xué)習(xí)[6],依賴于先前的經(jīng)驗來解決新問題。在遷移學(xué)習(xí)中,可能原任務(wù)和目標(biāo)任務(wù)有不同的領(lǐng)域和任務(wù)設(shè)置,但是要求的知識是一致的[7]。所以,選擇一個靈活的方法將知識從原始任務(wù)遷移到目標(biāo)任務(wù)是很重要的。預(yù)訓(xùn)練模型的提出就是為了建立原任務(wù)和目標(biāo)任務(wù)的橋梁,先在多元任務(wù)上預(yù)訓(xùn)練獲得通用知識,然后使用少量目標(biāo)任務(wù)上的標(biāo)注數(shù)據(jù)進(jìn)行微調(diào),使得微調(diào)的模型能夠很好地處理目標(biāo)任務(wù)。
圖2 遷移學(xué)習(xí)將已有知識重用到目標(biāo)任務(wù)的原理圖
一般來說,遷移學(xué)習(xí)中存在兩種預(yù)訓(xùn)練方法:特征遷移和參數(shù)遷移。遷移學(xué)習(xí)初期被廣泛應(yīng)用在計算機(jī)視覺領(lǐng)域,在人類標(biāo)注的ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練的模型通過小數(shù)據(jù)集的微調(diào)就可以很好地應(yīng)用在下游任務(wù)中,這掀起了預(yù)訓(xùn)練模型(Pre-trained Model, PTM)的熱潮。受此啟發(fā),NLP 社區(qū)也開始探索針對 NLP 任務(wù)的預(yù)訓(xùn)練模型,最具有代表性的工作是 CoVE[8]。和圖像處理領(lǐng)域最大的區(qū)別在于,NLP 領(lǐng)域沒有人類標(biāo)注的大量數(shù)據(jù)集,因此 NLP 社區(qū)開始充分使用大量未標(biāo)注的數(shù)據(jù),并且在未標(biāo)注的數(shù)據(jù)上使用自監(jiān)督方法,能夠讓預(yù)訓(xùn)練模型學(xué)習(xí)到語言本身的特征。
1.2 自監(jiān)督學(xué)習(xí)與自監(jiān)督訓(xùn)練
遷移學(xué)習(xí)能夠分類為四種子設(shè)置:歸納遷移學(xué)習(xí)、直推式遷移學(xué)習(xí)、自學(xué)遷移學(xué)習(xí)和無監(jiān)督遷移學(xué)習(xí)。其中歸納遷移學(xué)習(xí)和直推式遷移學(xué)習(xí)是研究的核心,因為它們能夠?qū)⒈O(jiān)督學(xué)習(xí)中學(xué)到的知識遷移到目標(biāo)任務(wù)中。由于監(jiān)督學(xué)習(xí)需要大量的標(biāo)注數(shù)據(jù),因此越來越多的研究者開始關(guān)注大規(guī)模的無標(biāo)注數(shù)據(jù),并嘗試從無標(biāo)注數(shù)據(jù)中提取關(guān)鍵信息。
自監(jiān)督學(xué)習(xí)是從無標(biāo)注數(shù)據(jù)中提取知識的一種手段,它能夠利用數(shù)據(jù)本身的隱藏信息作為監(jiān)督,和無監(jiān)督有非常相似的設(shè)置。由于自然語言很難標(biāo)注且又存在大量未標(biāo)注的句子,所以NLP 領(lǐng)域的預(yù)訓(xùn)練模型主要致力于自監(jiān)督學(xué)習(xí),進(jìn)而大大促進(jìn)了NLP領(lǐng)域的發(fā)展。NLP任務(wù)早期的預(yù)訓(xùn)練模型就是廣為人知的單詞詞嵌入編碼。由于單詞通常存在一詞多義的問題 [4],進(jìn)一步提出了能夠捕獲單詞上下文語義信息的句子級別單詞詞嵌入編碼模型,這種模型幾乎成為當(dāng)前 NLP 任務(wù)的最常見模式,其中最具代表性的工作是自回歸語言模型(GPT)和自編碼語言模型(BERT)。受二者的啟發(fā),后期又提出了很多更高效的預(yù)訓(xùn)練模型,如 RoBERTa[9]、XLNET[10]、BART和T5[11]。
2、代表性工作
預(yù)訓(xùn)練模型成功的關(guān)鍵是自監(jiān)督學(xué)習(xí)與Transformer的結(jié)合,具有代表性的工作是 GPT 和BERT系列模型。后續(xù)的其他預(yù)訓(xùn)練模型都是這兩個經(jīng)典模型的變體。預(yù)訓(xùn)練模型的相關(guān)模型家族如圖3所示。
圖3 近年來的預(yù)訓(xùn)練模型家族
2.1 Transformer
Transformer是一個應(yīng)用自注意力機(jī)制的編碼-解碼器結(jié)構(gòu),它能夠建模輸入句子中不同單詞之間的關(guān)系。歸因于self-attention機(jī)制的平行計算,Transformer能夠充分利用增強(qiáng)的計算設(shè)備去訓(xùn)練大范圍模型。Transformer的編碼和解碼階段,self-attention機(jī)制可以計算所有輸入單詞的表示,Transformer的模型結(jié)構(gòu)如圖4所示。
在編碼階段,給定一個單詞,Transformer通過比較該單詞與輸入的其他單詞來計算注意力得分,每一個注意力得分顯示了其他單詞對該單詞表示的貢獻(xiàn)程度,然后該注意力得分被作為其他單詞對該單詞的權(quán)重來計算給定單詞的加權(quán)表示。通過喂入所有單詞表示的加權(quán)平均到全連接網(wǎng)絡(luò),可以獲得給定單詞的影響力表示。這個過程是整個句子信息回歸方法,在平行計算的輔助下,可以同時為所有單詞生成句子表示。在解碼階段,注意力機(jī)制是相似于編碼階段的,唯一不同的是,它一次只能從左到右解碼一個表示,并且每一步的解碼過程都會考慮以前的解碼結(jié)果。
由于突出的優(yōu)勢,Transformer逐漸成為自然語言理解和生成的標(biāo)準(zhǔn)網(wǎng)絡(luò)結(jié)構(gòu)。此外,它還充當(dāng)隨后派生的PTM的主干結(jié)構(gòu)。下文將介紹的GPT和BERT兩個模型,完全打開了大規(guī)模自監(jiān)督PTMs時代的里程碑??偟膩碚f,GPT擅長自然語言生成,而BERT更側(cè)重于自然語言理解。
圖4 Transformer的模型結(jié)構(gòu)
2.2 GPT
PTMs主要包含兩個階段,預(yù)訓(xùn)練階段和微調(diào)階段。GPT采用Transformer結(jié)構(gòu)作為模型骨架,應(yīng)用生成式預(yù)訓(xùn)練和鑒別式微調(diào)。理論上來說,GPT是第一個結(jié)合Transformer結(jié)構(gòu)和自監(jiān)督預(yù)訓(xùn)練目標(biāo)的模型,它在自然語言推理、問答任務(wù)和常識推理等多個NLP任務(wù)上都取得了重大的成功。
具體來說,給定一個無標(biāo)簽的大規(guī)模語料庫,GPT能夠優(yōu)化一個標(biāo)準(zhǔn)的自回歸語言模型,即最大化單詞在給定上下文情況下的預(yù)測條件概率。在GPT的預(yù)訓(xùn)練階段,每個單詞的條件概率由Transformer建模。GPT對特定任務(wù)的適應(yīng)過程是微調(diào)的,通過使用 GPT的預(yù)訓(xùn)練參數(shù)作為下游任務(wù)的起點。在微調(diào)階段,將輸入序列通過 GPT,我們可以獲得GPT Transformer 最后一層的表示。通過使用最后一層的表示和特定于任務(wù)的標(biāo)簽,GPT使用簡單的額外輸出層優(yōu)化下游任務(wù)的標(biāo)準(zhǔn)目標(biāo),GPT模型的具體結(jié)構(gòu)如圖5所示。
由于GPT有數(shù)億個參數(shù),在8個GPU上訓(xùn)練了1個月,這是 NLP歷史上第一個“大規(guī)模”的PTM,GPT的成功為后續(xù)一系列大規(guī)模PTM的興起鋪平了道路。
圖5 GPT模型結(jié)構(gòu)
2.3 BERT
BERT是另一個最具代表性的模型。與GPT相比,BERT 使用雙向深度Transformer作為主要結(jié)構(gòu),BERT的模型結(jié)構(gòu)如圖6所示。BERT模型包括預(yù)訓(xùn)練和微調(diào)兩個階段。在預(yù)訓(xùn)練階段,BERT應(yīng)用自編碼語言建模,受完形填空的啟發(fā),提出了一種Mask語言模型(MLM),將目標(biāo)詞用[MASK]符號遮蓋,目的是在預(yù)測該遮蓋詞時能夠同時考慮到上文和下文的全部信息。與GPT采用的單向自回歸語言建模相比,MLM 可以學(xué)習(xí)到深度雙向所有token的表示。
除了MLM任務(wù)之外,還采用下一句預(yù)測(NSP)的目標(biāo)來捕捉句子之間的話語關(guān)系,用于一些多個句子的下游任務(wù)。在預(yù)訓(xùn)練階段,MLM和NSP共同優(yōu)化BERT的參數(shù)。
預(yù)訓(xùn)練后,BERT可以獲得下游任務(wù)的穩(wěn)健參數(shù)。通過使用下游任務(wù)的數(shù)據(jù)修改輸入和輸出,BERT 可以針對任何 NLP 任務(wù)進(jìn)行微調(diào)。BERT 可以通過輸入單個句子或句子對有效地處理這些應(yīng)用程序。對于輸入,它的模式是用特殊標(biāo)記 [SEP] 連接的兩個句子,它可以表示:(1)釋義中的句子對;(2)蘊(yùn)涵中的假設(shè)-前提對;(3)問答中的問題-段落對;(4) 用于文本分類或序列標(biāo)記的單個句子。對于輸出,BERT 將為每個令牌生成一個token-level表示,可用于處理序列標(biāo)記或問答,并且特殊令牌 [CLS] 可以輸入額外的層進(jìn)行分類。
圖6 BERT模型結(jié)構(gòu)
2.4 GPT和BERT的子子孫孫
在GPT和BERT預(yù)訓(xùn)練模型之后,又出現(xiàn)了一些基于二者的改進(jìn),如RoBERTa和 ALBERT[12]。RoBERTa的改進(jìn)思路主要是去除了NSP任務(wù),增加了訓(xùn)練步數(shù)以及更多的數(shù)據(jù),并將[MASK]改變?yōu)閯討B(tài)模式。實證結(jié)果表明Roberta比BERT更好,并且RoBERTa 已經(jīng)指出 NSP 任務(wù)對于BERT的訓(xùn)練來說是相對無用的。
ALBERT是BERT的另一個重要變體,它的出發(fā)點是減少模型的參數(shù)。首先,它將輸入詞嵌入矩陣分解為兩個較小的矩陣;其次它強(qiáng)制所有 transformer 層之間的參數(shù)共享以減少參數(shù)量;第三,它提出了句子順序預(yù)測任務(wù)來代替BERT的NSP任務(wù)。但是,由于犧牲了空間效率,ALBERT 的微調(diào)和推理速度相對較慢。
除了 RoBERTa和ALBERT之外,近年來研究者們還提出了各種預(yù)訓(xùn)練模型以更好地從未標(biāo)注數(shù)據(jù)中獲取知識。一些工作改進(jìn)了模型架構(gòu)并探索了新的預(yù)訓(xùn)練任務(wù),如 XLNet[10]、UniLM[13]、MASS[14]、SpanBERT[15]和ELECTRA[16]。此外研究者嘗試在模型中整合更多的知識,如多語言語料庫、知識圖譜和圖像等。
3、小 結(jié)
由于NLP領(lǐng)域沒有公開的大規(guī)模標(biāo)注語料庫,所以預(yù)訓(xùn)練模型的提出使得NLP模型能夠充分地利用到海量無標(biāo)注的數(shù)據(jù),從而大大提升了NLP任務(wù)的性能。特別是,GPT和BERT預(yù)訓(xùn)練模型的出現(xiàn),讓NLP領(lǐng)域有了突飛式發(fā)展,同時,優(yōu)化與完善的預(yù)訓(xùn)練模型也如雨后春筍般涌現(xiàn),相關(guān)的探索工作將在下篇詳細(xì)介紹。
參考文獻(xiàn)
[1] Xu H, Zhengyan Z, Ning D, et al. Pre-Trained Models: Past, Present and Future[J]. arXiv preprint arXiv:2106.07139, 2021.
[2] T. Mikolov, I. Sutskever, K. Chen, G. S. Corrado, and J. Dean, “Distributed representations of words and phrases and their compositionality,” in Advances in neural information processing systems, pp. 3111–3119, 2013.
[3] 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, pp. 51–61, 2016.
[4] M. E. Peters, M. Neumann, M. Iyyer, M. Gardner, C. Clark, K. Lee, and L. Zettlemoyer, “Deep contex-tualized word representations,” arXiv preprint arXiv:1802.05365, 2018.
[5] J. Howard and S. Ruder, “Universal language model fine-tuning for text classification,” arXiv preprint arXiv:1801.06146, 2018.
[6] S. Thrun and L. Pratt, “Learning to learn: Introduction and overview,” in Learning to learn, pp. 3–17, Springer, 1998.
[7] S. J. Pan and Q. Yang, “A survey on transfer learning,” IEEE Transactions on knowledge and data engineering, vol. 22, no. 10, pp. 1345–1359, 2009.
[8] B. McCann, J. Bradbury, C. Xiong, and R. Socher, “Learned in translation: Contextualized word vectors,” arXiv preprint arXiv:1708.00107, 2017.
[9] Y. Liu, M. Ott, N. Goyal, J. Du, M. Joshi, D. Chen, O. Levy, M. Lewis, L. Zettlemoyer, and V. Stoyanov, “Roberta: A robustly optimized bert pretraining approach,” arXiv preprint arXiv:1907.11692, 2019.
[10] Z. Yang, Z. Dai, Y. Yang, J. Carbonell, R. R. Salakhutdinov, and Q. V. Le, “Xlnet: Generalized autoregressive pretraining for language understanding,” Advances in neural information processing systems, vol. 32, 2019.
[11] A. Roberts, C. Raffel, K. Lee, M. Matena, N. Shazeer, P. J. Liu, S. Narang, W. Li, and Y. Zhou,
“Exploring the limits of transfer learning with a unified text-to-text transformer,” 2019.
[12] Z. Lan, M. Chen, S. Goodman, K. Gimpel, P. Sharma, and R. Soricut, “Albert: A lite bert for self-supervised learning of language representations,” arXiv preprint arXiv:1909.11942, 2019.
[13] L. Dong, N. Yang, W. Wang, F. Wei, X. Liu, Y. Wang, J. Gao, M. Zhou, and H.-W. Hon, “Uni-
fied language model pre-training for natural language understanding and generation,” arXiv preprint
arXiv:1905.03197, 2019.
[14] K. Song, X. Tan, T. Qin, J. Lu, and T.-Y. Liu, “Mass: Masked sequence to sequence pre-training for language generation,” arXiv preprint arXiv:1905.02450, 2019.
[15] M. Joshi, D. Chen, Y. Liu, D. S. Weld, L. Zettlemoyer, and O. Levy, “Spanbert: Improving pre-training by representing and predicting spans,” Transactions of the Association for Computational Linguistics, vol. 8, pp. 64–77, 2020.
[16] K. Clark, M.-T. Luong, Q. V. Le, and C. D. Manning, “Electra: Pre-training text encoders as discriminators rather than generators,” arXiv preprint arXiv:2003.10555, 2020.