?

自然語言處理預訓練模型的研究綜述

2020-12-07 08:20余同瑞韓曉臻李家輝
計算機工程與應用 2020年23期
關鍵詞:微調向量文本

余同瑞,金 冉 ,2,韓曉臻,李家輝,郁 婷

1.浙江萬里學院 大數據與軟件工程學院,浙江 寧波 315100

2.浙江大學 計算機科學與技術學院,杭州 310027

1 概述

自然語言處理(Natural Language Processing,NLP)是一門把語言學、計算機科學、數學等相關領域融為一體的交叉學科,該領域的相關應用如:機器翻譯、智能語音助手、文本自動分類等都取得了突破性的成就,這離不開預訓練技術的支持。預訓練技術是指預先設計網絡結構,并對編碼后的數據輸入到網絡結構中進行訓練,增加模型的泛化能力。預訓練技術最初是針對圖像領域的問題提出(如ResNET[1]、VGG[2]),因為效果良好,相關技術被應用到NLP 領域。預訓練后的模型可以直接根據下游任務需求進行微調,免去了從零開始的過程。

語言模型可以看作是一串詞序列的概率分布,因此在早期,研究人員提出了N-gram 模型[3],它是基于統計語言模型的算法,但是這種做法只能通過概率統計進行判斷,會使數據出現嚴重的稀疏性,無法考慮詞內部的關聯。

隨著深度學習技術的迅速發展,詞嵌入正式登上歷史的舞臺,Bengio 等人在 2003 年提出 NNLM 模型[4],隨后出現了一系列詞向量技術(如Word2Vec[5]、Glove[6]、FastTest[7]等)為文本提供了一種數值化的表示方法,但是無法解決一詞多義的問題。于是ELMo[8]應運而生,它采用雙向的長短期記憶網絡(Long Short-Term Memory,LSTM)進行進行預訓練,將詞向量由靜態轉化為動態,使其可以結合上下文來賦予詞義。GPT[9]首次提出了無監督的預訓練和有監督的微調,使得訓練好的模型能夠更好地適應下游任務。BERT[10]首次將雙向Transformer[11]用于語言模型,使得該模型相對GPT對語境的理解會更加深刻。自此進入了預訓練技術的新時代,為后續NLP領域的發展提供了更多可能性。

本文將按照預訓練模型的歷史發展順序進行概述,將預訓練技術的發展主要分為兩個階段,分別是基于概率統計的傳統預訓練模型階段和基于深度學習的預訓練模型階段。

2 傳統預訓練技術模型

在NLP 領域上,其發展趨勢可以概括為三階段:規則-統計-深度學習。一開始,研究人員的研究的重點放在如何設定語言規則上面,但是這個階段不能處理復雜的語言問題,因此沒有太大的應用價值。20 世紀70 年代后互聯網高速發展,豐富的語料庫和完善的硬件系統極大地推動了NLP的發展,它開始由理性主義向經驗主義過渡發展,讓實際應用更貼合人們的需求。N-gram采用的特征處理方法盡管還有很多不足,但是在NLP發展史上極具代表性。2006年后深度學習(Deep Learning,DL)[12]被應用于自然語言處理領域,出現了一批基于神經網絡(Neural Network,NN)的預處理模型,本章主要介紹一些早期具有代表性的經典預處理模型,并對它們進行分析比較。

2.1 統計語言模型

統計語言模型是基于語料庫對語句進行預處理,然后對下游任務進行基于概率的判別。N-gram是自然語言處理領域中具有顯著歷史意義的特征處理模型,基本思想是將文本內容按照字節大小為N的滑動窗口進行操作,形成長度是N的字節片段序列,然后對所有的序列的出現頻度進行統計,并且按照實現設定好的閾值進行過濾,形成了這個文本的特征向量空間。然后用訓練后的模型對語句進行概率評估,來判斷組成是否合理。Brants等人[13]經過測試發現,N-gram模型可以使用萬億個單詞進行訓練,并且模型性能會得到很好的提升。Cavnar[14]利用N-gram進行文本分類,在測試中取得了很好的成績。

然而若文本較長,詞匯鏈概率的計算復雜度很高,作者通過馬爾可夫的假設去減少關聯詞的數量來簡化算式。然而N-gram中n的取值對模型性能也會產生較為明顯的影響,所以為了平衡約束信息和數據稀疏性之間的關系,對于百萬級的數據,目前一般采用二元或者三元模型,但是其局限性也很明顯,就是無法建模更遠的關系,訓練中要是有些n元組未出現則需要使用平滑法[15]和回退法[16]來解決。

2.2 傳統預訓練模型分析

N-gram 模型是對文本特征進行預處理,它是將相鄰的n個詞作為一組進行編碼,這就導致它過于依賴訓練語料的豐富程度,否則就很容易出現數據稀疏問題,并且計算復雜度會隨著n的增加而產生指數級的增長。NNLM模型首次采用詞向量的思想,分布式表示的低維詞向量很好地解決了詞編碼帶來的離散問題,但是對于計算復雜度過高的問題仍然難以解決。Word2Vec模型的計算復雜度和選取的窗口大小無關,而是由詞典大小和詞向量維度來決定。通過在大型語料庫上進行訓練,利用訓練后的詞向量嵌入可以明顯改善很多下游任務。研究人員通過測試證實了使用詞嵌入的好處[17-18],但是靜態的詞向量對一詞多義等問題仍然無法解決,仍然屬于淺層語言模型,因此迫切需要更有效的模型對數據集進行更靈活的處理。

3 基于深度學習的預訓練模型

盡管Word2Vec 極大改善了對文本的處理任務,但是難以捕獲上下文的高級概念,如多義詞消除、句法結構等問題,為了解決這些問題,Zhou 等人[19]提出的方法是通過利用子詞信息來豐富它們的語義,Neelakantan等人[20]提出為每個詞義學習單獨的向量。ELMo等動態預訓練模型的提出很好地解決了這些問題,比如ELMo中的詞向量不再是簡單的向量對應關系,而是通過前后語境對多義詞進行理解,用其內部函數來表達。

3.1 基于淺層詞嵌入的預訓練模型

因為N-gram模型在詞與詞之間關系建模具有很大的局限性,2000 年,Xu 等人[21]試圖將 NN 引入到語言模型中,實驗表明基于NN的模型相較N-gram模型可以具有更好性能。于是NNLM 應運而出,它屬于淺層的預訓練模型,開創性地在模型中引入了詞向量的概念。如圖1所示,NNLM分為輸入層、隱藏層和輸出層三部分。

圖1 NNLM模型的結構

NNLM的目標是訓練出模型:

其中,wt表示詞序列中第t個單詞,表示第1個詞到第t-1 個詞組成的子序列。

模型需要滿足的約束條件是:

由式(2)可知模型中詞的概率都要大于0,并且由于該語言模型是通過每個詞的輸入來預測下個詞的輸出,因此式(3)要求向量中各個分量組成|V|維的概率值一定要有一個最大概率值。

針對之前詞袋模型中因為詞組的不規則分布帶來的數據稀疏問題,NNLM采用低維緊湊的詞向量保證詞之間完整的內部關系不會被影響,Wallach[22]則提出了單詞二元組相結合的超越詞袋主題模型以及Blei 等人[23]提出的LDA 主題模型,也是一種解決辦法。在相似上下文的語境中,基于神經網絡的模型性能顯著優于N-gram模型[24-25],不過缺點也很明顯,比如準確度低、計算復雜度高等問題。于是Mikolov等人[26]提出了循環神經網絡(Recurrent Neural Network,RNN)語言模型,將NNLM的映射層刪去,用來解決NNLM運行效率低,對于上下文預測準確度過低的問題。

NNLM的詞向量技術在Word2Vec模型的提出中起到了關鍵作用,詞向量為詞之間的潛在語法和語義相似性提供了很好的評價尺度,Collobert等人[18]研究表明將預訓練的詞嵌入未標記的數據中可以明顯改善許多NLP任務。

Word2Vec提出了兩個新的模型體系結構:Skip-gram和CBOW,其中Skip-gram模型是通過輸入特定詞向量,輸出上下文對應的詞向量。CBOW 是通過輸入某一特征詞的上下文對應詞向量來輸出特定向量。兩個模型基本思想相似,都是通過訓練學習得到權重矩陣,根據矩陣得到文本中詞所對應的詞向量,節省了再次訓練的時間和資源。它們在模型結構上與NNLM 相比,隱藏層無激活函數,輸入層與輸出層兩者維度相同直接相連,大大減少了模型的參數數量,更多地利用了上下文的信息。

針對softmax操作時計算復雜度過高的問題,Word2Vec采用了負采樣和層序兩種方法來減少計算量。負采樣借鑒了C&W 模型[18]和NCE[27]的思想,在輸入訓練樣本進行NN的訓練時,它每次只按照一定概率采集K個詞當作負例,讓一個訓練樣本更新一小部分權重,降低梯度下降過程中的計算量,計算開銷由O(|V|) 下降到O(|k|)。層序利用的是二叉樹結構,把出現頻率高的詞放在前面的葉子節點可以減少計算量,每次迭代的計算開銷由O(|V|)下降至O(lb| |v)。

因為詞嵌入取得較好的性能表現,研究人員也嘗試了其他方法,比如Le等人[28]提出的段向量,Kiros等人[29]提出的Skip-Thought向量,該模型利用當時流行的序列到序列(Sequence to Sequence,Seq2seq)框架[30],實現了在大規模文本集下的無監督訓練。Melamud 等人[31]提出了Context2Vec來生成上下文相關的表示。

3.2 ELMo模型

ELMo是基于特征的語言模型,可以結合上下文語境對詞進行建模。與Word2Vec等采用的簡單查表獲取唯一表示的詞向量不同,ELMo中詞向量表示的是內部網絡狀態函數,對于相同的詞它所展現出來的詞向量是動態變化的。

所以它首先采用雙向LSTM進行預訓練,這個模型包括前向 LSTM 模型和后向 LSTM 模型,Jozefowicz 等人[32]的研究表明增加LSTM 的寬度和深度可以大大提高測試的準確性。ELMo 的雙向概念是通過網絡結構得以體現的,模型結構如圖2所示。

圖2 ELMo模型的結構

前向LSTM的模型公式:

其中,(t1,t2,…,tN)表示組成的N個單詞、序列,對第k個詞前文中k-1 個詞進行建模,預測第k個詞的概率。

后向LSTM的模型公式:

其中該公式通過已知下文建模,實現對第k個單詞的概率預測。

最大化對數前向和后向的似然概率:

其中,Θx表示輸入的初始詞向量參數,Θs表示softmax層的參數,保證LSTM在各個方向的獨立參數,兩者共享部分權重,并非完全獨立。

這里預訓練的最終產物是biLM,Peters等[33]研究也表明使用biLM的重要性遠高于使用前向語言模型和進行大規模訓練語言。

ELMo 是帶有任務屬性的,它是由biLM 中間層表示的線性組合。針對某一單詞tk,一個L層的biLM可以得到2L+1 層表示:

將卷積神經網絡(Convolutional Neural Networks,CNN)獲取的原始詞向量、通過在biLM中計算獲得的兩個中間詞向量進行加權平均,獲得最終的ELMo:

其中,stask為正則化的softmax權重,γtask則屬于標量參數,根據任務模型進行合理化縮放,對于優化過程有重要意義。

同期提出的 ULMFit 模型[34]借鑒了 Merity 等人[35]提出的AWD-LSTM框架,也是將預訓練與微調相結合,只不過在微調階段進行了兩次,首先在數據集上利用預訓練好的模型進行微調,然后把該模型作為具體任務模型上的多層,進行第二次微調,經過測試發現其在分類任務上性能優異。

ELMo和ULMFit相較之前模型有兩點改進:(1)不同于之前固定窗口的大小,加入了上下文信息,保證向量可以包含這部分信息。(2)增加模型的神經深度,保證每一層向量都用于預測。

ELMo在6個自然語言處理任務測試中都表現出了良好的性能,尤其是在閱讀理解任務上,在加入ELMo模型后提升了4.7個百分點。對于輸入原始詞向量也可以使用Word2Vec 采用的傳統詞向量,能夠很好地縮短訓練時間,這表明了遷移學習在NLP任務中有很好的發展前景,后續相關研究由此也得到了一種新的思路。

3.3 GPT模型

GPT首次無監督的預訓練和有監督的微調相結合,使得模型更加符合下游任務的需求。此前在進行模型訓練時,需要大量手動標記的數據,這限制了它們在許多缺乏注釋資源的領域中的適應性[36]。如圖3 所示,與ELMO 相比,GPT 針對NLP 下游任務采用統一框架,直接在Transformer[11]上的最后一層接上softmax作為任務輸出層,減少了計算復雜度。Dai等[37]和Howard等[34]曾嘗試先對語言模進行預訓練,然后針對下游任務進行微調,在文本分類相關的工作取得了很好的改善,但是LSTM 的使用限制了它們的預測局限在短范圍內。GPT 盡管采用單向的Transformer 進行編碼,但是相較ELMo而言可以更好地捕獲長距離語言結構。

圖3 GPT模型的結構

GPT的訓練過程也包括兩個階段,第一階段是在大型文本語料庫上對模型進行預訓練,第二階段是微調階段,讓模型更好地適應下游任務。

在無監督的預訓練階段,根據語料庫u={u1,u2,…,un}來最大化似然函數:

其中,k表示上下文窗口大小,Θ表示參數進行建模。

使用多層Transformer decoder作為語言模型,對于上文輸入進行self-attention 操作,然后結合前饋神經網絡(Feedforward Neural Network,FNN),使用softmax輸出目標詞的分布。

其中,U代表代表上文的詞向量,We代表詞嵌入矩陣,Wp代表位置嵌入矩陣,對于輸入的向量計算其概率分布。

在有監督的微調階段,線性輸出層為:

其中,x1,x2,…,xm和標簽y組成實例,將序列輸入到預訓練的模型后得到輸出向量,然后將其輸出到具有參數Wy的附加線性輸出層中來預測標簽y。

需要極大化的似然函數為:

使用語言模型來輔助有監督的微調,可以改進監督模型的泛化以及加速收斂,最終下游任務使用的監督模型函數為:

其中,C表示數據集,L1(C)表示基于特征訓練出的函數,L2(C)表示基于特征和標簽訓練出的函數,λ表示權重。

從論文中的消除實驗來看,預訓練部分對于測試性能影響很大,除去預訓練部分模型在多個任務中的性能平均下降14.8 個百分點,并且使用Transformer 替換LSTM后,效果提升5.6個百分點。

3.4 BERT模型

BERT 證明了使用雙向預訓練效果更好,解決了GPT模型為了防止泄密,在進行預測時舍棄了下文信息的局限性。使用多層雙向LSTM 的ELMo 前向LSTM和后向LSTM 相互獨立,并未進行雙向信息融合,所以并不會存在泄密的問題。但是BERT 使用的雙向結構不同于ELMo 只是將兩個單向的LSTM 的最高層進行簡單的拼接。如圖4所示,它使用的是Transformer編碼器,由于self-attention機制,所以模型上下層直接全部互相連接的。

圖4 BERT模型的結構

在模型輸入方面,BERT輸入的編碼向量是詞向量、位置向量、句子切分向量這三個嵌入特征的單位和。

在模型的預訓練上,BERT 利用兩個監督任務進行預訓練。

第一個任務是Mask LM(MLM),為了解決GPT完全舍棄下文的問題,不再進行整個句子的預測而是對某個詞去做預測,首先屏蔽一定百分比的詞,然后通過模型實現對屏蔽詞的預測,來進行訓練。但是會存在兩點不足:一是由于屏蔽的詞在微調期間并不會出現,在進行微調時會出現與預訓練不匹配的問題。二是預測的是屏蔽掉的是詞而非句子,會使整個句子預訓練的收斂速度更慢。針對第一個不足的解決辦法是在80%時間保持屏蔽的狀態,10%的時間里進行隨機詞替換,10%的時間使用詞本身。對于第二個問題,作者認為收斂速度算是對模型效果提升的妥協。

第二個任務是Next Sentence Prediction(NSP),主要是為了實現基于上個句子對下個句子的預測,首先在50%的時間是拼接原始的上下句子,標簽設為正例。50%的時間里拼接原始句子與隨機的下一句,標簽設為負例,這樣做的目的是提取句子間的關系。但是這樣的隨機選擇會導致隨機性太強,很難針對句意進行建模。在隨后發布的XLNet取消了這個任務,并且RoBERTa[38]和SpanBERT[39]通過測試發現,沒有NSP 的話模型的效果會更好。

BERT首次將無監督的預訓練和有監督的微調這一模式推廣到更深層的雙向結構中,它對自然語言處理領域帶來的提升是里程碑式的。NLP 領域中存在著大量的無監督數據,通過在數據集上進行預訓練,得到較為完善的語言模型。Hewitt等[40]、Jawahar等[41]、Kim 等[42]提出了幾種從BERT中提取依存樹和成分句法樹的方法,證明了BERT 編碼語法結構的能力。在處理NLP 的相關任務時可以進行遷移學習,針對任務進行有監督的微調,節約了訓練模型所需的時間和資源。

但BERT模型參數量眾多,預訓練時對硬件要求高并且消耗時間很長,一般難以自行完成預訓練過程。

3.5 基于深度學習的預訓練模型分析

目前的研究表明,在大型無標注語料庫進行預訓練,可以在NLP任務上顯著提高模型性能。由此也拉開了遷移學習的序幕,目前主要有兩種常見的遷移學習方式:特征提取和微調,兩者的區別就是以ELMo 等為代表的模型使用的特征提取方法凍結了預訓練參數,而以BERT 等為代表的模型采用的微調則是動態地改變參數,根據下游任務進行參數上的微調。特征提取需要更復雜的任務架構,并且就綜合性能來看,微調的方法更適合下游任務。

GLUE是多種自然語言理解任務的集合,可以用于評測模型的性能。如表1所示[10],使用Transformer編碼器進行特征抽取的GPT、BERT 模型相較使用LSTM 編碼器的ELMo 模型在情感分析、文本匹配、閱讀理解等多個測試中效果取得了大幅提升,并且由于BERT采用深度雙向Transformer 進行預訓練,可以獲取更深層次的文本表征,取得了很好的實驗結果。

表1 BERT、ELMo、GPT在GLUE數據集上的實驗結果 %

4 模型的相關改進工作

近年來,隨著預訓練技術的蓬勃發展,自然語言處理領域進入了快速發展階段。但是由于語言的復雜性,目前仍存在很大挑戰。盡管BERT 等預訓練模型有了顯著的性能提升,但是不同方法之間進行仔細比較都有不足,目前主要任務都是針對現有模型進行評估改進以及對高性能深度學習架構的研究。

4.1 處理性能改進

BETR 雖然功能強大,但在實際應用中仍存在問題。Lan等人[43]提出了ALBERT模型來降低BERT預訓練時的內存消耗和訓練速度。Liu等人[38]針對其訓練不足的問題,提出了RoBERTTa 模型對其進行性能改進,主要改進體現在:(1)對模型進行更長時間的培訓;(2)刪除下一段句預測目標;(3)長序列訓練;(4)動態改變應用于訓練數據的掩蔽模式。

GPT-2[44]盡管與GPT 都使用的單向語言模型,但是它將Transformer 堆疊到了48 層,并且通過超大語料庫進行了訓練,生成高質量的數據集。這種不計成本地進行超大規模訓練使得模型的性能得到了大大提升。得益于海量的模型容量,GPT-2針對不同任務模型進行識別調整,而不是采用微調的方式。

研究人員發現盡管目前的模型效果顯著,但是針對特定的下游任務,仍然需要基于任務的微調數據集。但是研究發現,擴大語言模型的訓練規??梢詷O大提高與任務無關的性能,因此推出了GPT-3[45],它把模型尺寸擴大到了1 750億個參數,使用45 TB數據進行訓練,通過實驗證明,針對特定下游任務無需微調就能夠有很好的性能表現。

XLNet[46]可以看作是改進版的BERT,因為BERT在預訓練中采用了MASK標記,破壞了其與下游任務的一致性。因此XLNet采用了自回歸模型代替自編碼模型,盡管自回歸模型屬于單向模型,但是研究人員巧妙地利用排列語言模型保留了序列的上下文信息,并且消除了mask標記引起的負面影響。為了避免這種改變產生和Transformer結構引起沖突,導致模型無法實現目標位置感知,論文中提出了引進雙流自注意力機制,采用兩種表述來代替之前的表述,并且針對模型更新了Transformer-XL[47]兩個重要的技術點,分別是相對位置編碼和片段循環機制。如表2 所示,改進后的RoBERT 和XLNet 相較BERT在自然語言推斷、文本蘊含任務取得了較大的效果提升,在語義相似、情感分析類數據集中也有很好的性能表現。

4.2 處理任務改善

(1)多語言理解任務

早期多語言文本表示是通過詞嵌入[48]的方式,將要處理的詞映射到相同的雙語空間中,但是這需要高質量對齊的句子或詞典。該任務的相關模型MultilingualBERT 在零樣本遷移學習上表現良好,但是針對語言類型的結構轉換還有待優化。

表2 BERT、XLNet、RoBERTa在GLUE數據集上的實驗結果 %

針對mBERT 對于跨語言任務優化有限,Lample 等人[49]借鑒GPT采用的生成式預訓練的方法提出了XLM模型,該模型并不是簡單地將每種語言都作為一個模型進行封裝,而是將多語語料進行采樣拼接,構建多語詞表,并且提出了三項預訓練任務:因果語言建模(Causal Language Modeling,CLM)、掩碼語言建模(Masked Language Model,MLM)、翻譯語言建模(Translation Language Modeling,TLM)。CLM用Tramsform作特征抽取,由前面的詞對下一個詞的概率進行預測。MLM與BERT的單語言模型類似,它的不同點在于使用的是任意長度的文本流進行替換;翻譯語言建模是對MLM的擴展,將并行的句子連接起來,提高跨語言訓練的效果。評估實驗基于零樣本學習的配置,使用英語的訓練集和多語言的測試集,其中train是將英語翻譯成多種語言,test 是將多種語言翻譯成英語,如表3 所示[49],在英文、西班牙文、德文、阿拉伯文、中文、烏爾都語等語料中與BERT 進行對比,實驗結果表明XLM 在跨語言任務上具有很強性能。

表3 BERT、XML在跨語言分類的實驗結果%

(2)生成任務

GPT 和BERT 模型在自然語言理解類任務處理上取得了很好的效果,但是因為模型框架的限制,它們文本生成任務的問題上測試效果并不是很理想。于是Song 等人[50]提出了MASS 模型,采用編碼器-解碼器框架,編碼器輸入帶有屏蔽字段的句子,然后解碼器對屏蔽部分進行預測,通過對編碼器和解碼器的聯合訓練提高表示提取和語言建模能力,在文章中通過對英法翻譯的測試,該模型取得了最高的成績,甚至超過了早期基于注意力的監督模型。Dong 等人[51]提出了UNILM 模型,如表4 所示,與之前模型相比UNILM 使用單向模型、雙向模型、Seq2Seq 模型進行預訓練,因此它對于自然語言理解和自然語言生成的相關任務都能夠很好地處理。

表4 預訓練模型對比

在自然語言生成任務上,以摘要生成和生成式問答為例。摘要生成要求模型有更強的表征、理解和生成文本的能力,如表5 所示[51],將UNILM 與一些先進的模型進行比較,選取的PGNet[52]、S2S-ELMo[53]和 Bottom-Up[54]都屬于序列對序列模型,不同點在于PGNet模型是基于指針生成器,而S2S-ELMo 是通過預先訓練的ELMo 表示進行擴充,Bottom-Up是通過自下而上的內容選擇器來選擇突出的短語進行文本摘要,通過實驗結果可以看出UNILM的測試效果最好。

表5 CNN/DailyMail摘要的評價結果%

問答系統可以分為抽取式問答和生成式問答,然而生成式問答對系統要求更高?!俺槿?合成”的生成式問答系統模塊之間獨立性強,信息共享性差,產生錯誤難以解決?;赟eq2Seq 模型的問答系統無法準確生成命名實體,容易出現答非所問的情況。UNILM 采用Seq2Seq模型來完成,對于超過最大長度的段落,使用滑動窗口將文章分為幾塊,并選擇單詞重疊度最高的部分進行處理,如表6 所示[51],CoQA[55]是用于構建會話問答系統的數據集,用于評估模型的會話和閱讀理解能力。與該數據集中描述的生成式問答模型Seq2Seq和PGNet進行比較,其中Seq2Seq 是具有注意力機制的Seq2Seq模型,PGNet通過序列間的復制機制擴充Seq2Seq,通過實驗發現,UNILM的測試結果表現突出,比PGNet高出了40個百分點。

表6 在CoQA中的生成問答結果

但是綜合來看的話,相比自然語言理解任務目前取得的成就而言,目前生成任務的改善工作仍然有很大的改善空間。

(3)特定語言的處理任務

目前研究發現[56],針對特定語言進行預訓練,效果明顯好于多語言訓練模型。FlauBERT[57]利用大型法語語料庫進行預訓練,在大多數任務中表現都優于其他訓練方法。

中文由于沒有明確的語言邊界,很容易導致重要語義的丟失,ZEN[58]是基于BERT 的文本編碼器,采用N-gram增強表現,有效地集成大顆粒度文本信息,具有收斂速度快性能表現良好的特點。ERNIE2.0[59]引入多任務學習,實現對詞法、語法、語義的預訓練,如表7所示,ERNIE2.0在9個GLUE任務上實現了對BERT的超越。

表7 BERT、ERNIE2.0在GLUE數據集上的實驗結果%

如表8 所示[59],將 ERNIE2.0 和 BERT 放在 9 個常見的中文NLP處理任務中進行測試,結果表明在中文閱讀理解任務、命名實體識別、自然語言推斷、情感分析、自然語言推斷、問答匹配等任務中取得了更好的成績。

(4)多模態處理任務

VideoBERT[60]屬于視頻和語言表示學習的聯合模型,通過對視頻數據和語音識別的輸出數據進行訓練,實現高級語義特征的學習。VisualBERT[61]則是利用Transformer 圖層實現輸入文本元素和輸入圖像中的區域隱式對齊,實現視覺和語言任務的建模。SpeechBERT[62]實現了音頻和文本的聯合學習,通過實驗表明其在問答任務模型的潛力。

4.3 新式模型的綜合分析

BERT、GPT等模型的提出掀起了遷移學習的熱潮,基于深度學習的模型預訓練模型不斷涌現,目前預訓練技術已經成為該領域的發展重心。目前模型常見的特征抽取器可以分為LSTM、Transformer、Transformer-XL三大類,自XLNet 模型引入了自回歸模型的概念,也可以將語言模型分為以BERT 系列模模型為代表的自編碼模型和ELMo、XLNet、GPT系列模型為代表的自回歸模型兩大類。

表8 BERT、ERNIE2.0在GLUE數據集上的實驗結果%

NLP常見的下游任務可以分為四大類:第一類任務是序列標注,比如分詞、命名實體識別、語義標注等;第二類任務是分類任務,比如文本分類、情感分析等;第三類任務是句子關系判斷,比如句法分析、問答QA、自然語言推理等;第四類是生成式任務,比如機器翻譯、文本摘要、閱讀理解、對話系統等。如表9所示,歸納出各個模型的深度學習架構及其預訓練任務,按照模型特點總結出其適用的NLP相關任務。

5 模型后續發展的展望

預訓練模型的出現具有劃時代的意義,目前基于DL的各種預訓練模型已經廣泛應用到解決下游各種自然語言處理的任務中。但是目前結合實際應用場景來看,仍有很多需要改進的地方,下面是對后續發展方向的四點看法。

5.1 大規模的預訓練

目前預訓練模型還有很大改善空間,需要更多的訓練場景和更大的語料庫來完善模型的準確度。Shoeybi等人[64]利用層內模型并行方法訓練具有數十億參數的Transformer 模型,研究發現在 GPT-3 模型和 BERT 模型上都獲得了很好的表現。但是對于模型的大規模訓練也是很大的挑戰,不但要高性能硬件上的支撐,更需要有更有效的訓練技術支持,針對BERT只對15%的詞進行學習導致的算力浪費,Clark 等人[65]提出將BERT 中MLM 進行替換,采用了replaced token dection 任務進行預訓練,經過測試發現,相較BERT性能有2.9個百分點的提高,并且性能和RoBRETa 相差不多但是訓練所需時間縮短了75%,這也是一種很好的發展方向。

表9 基于深度學習的預訓練模型對比

5.2 面向任務的預訓練

目前的預訓練模型趨于大型化,如何針對不同的下游任務進行匹配也同樣重要,最近也出現了一些針對專業語料庫進行訓練的預訓練模型,如用于科學文本的SciBERT[66],用于臨床文本的 ClinicalBERT 模型[67-68],不過目前仍有很大進步空間。

5.3 模型輕量化

目前流行的預訓練模型大都經過了大量預訓練,并且由于模型框架設計等方面的原因對硬件需求很高,高門檻導致研究人員難以去從頭訓練,要針對模型進行進一步研究改進,只能對模型進行微調。這種情況不利于相關研究工作的開展,使整個領域發展受到阻礙。針對這些問題,也出現了一些新的模型,如百度公司發布的ERNIE-Tiny 是小型化的ERNIE[63],減少了層數,預測提速4.7倍,但是處理效果下降明顯。

5.4 防止對抗性示例攻擊

Qiu等[69]在文章中提到深層神經網絡很容易受到對抗性示例的攻擊,很容易誤導模型產生特定的錯誤預測。在圖像處理領域,對抗性攻擊和防御已經得到了很好的研究。但是由于自然語言處理領域中語言特有的離散型,很難進行處理。Jin等[70]通過生成自然對抗的文本,成功攻擊了BERT、CNN 和RNN 三個目標模型,這表明目前的語言處理模型針對這方面還有很高的提升空間。

6 結束語

本文主要按照自然語言處理相關經典模型的改進更迭進行概述,根據模型對數據的處理特點分為以Word2Vec為代表的靜態預處理模型、ELMo為代表的動態預處理模型、新式的改進模型三部分進行介紹。并結合了同時期的相關研究通過對模型的數據處理、相關的架構設計、整體的性能評估三部分分析比較,將自然語言處理領域的相關研究梳理出來。

盡管近兩年自然語言處理領域迎來了蓬勃的發展,但是由于語言的復雜性,目前預訓練技術還存在很大挑戰,如何去訓練出高兼容性、高性能的自然語言處理模型仍然是需要長期努力的目標。

猜你喜歡
微調向量文本
文本聯讀學概括 細致觀察促寫作
向量的分解
樂海樂器“微調軸”研發成功
聚焦“向量與三角”創新題
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
向量垂直在解析幾何中的應用
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
向量五種“變身” 玩轉圓錐曲線
宏觀政策適時適度進行預調微調
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合