王乃鈺 ,葉育鑫,3 ,劉 露 ,鳳麗洲 ,包 鐵 ,彭 濤,3
1(吉林大學 計算機科學與技術學院,吉林 長春 130012)
2(吉林大學 軟件學院,吉林 長春 130012)
3(符號計算與知識工程教育部重點實驗室(吉林大學),吉林 長春 130012)
4(Department of Computer Science,University of Illinois at Chicago,Chicago 60607,USA)
近年來,深度學習(deep learning,簡稱DL)[1]被公認為是人工智能以及機器學習領域中研究得最為深入和廣泛的一個方向.隨著計算機理論的不斷發(fā)展,深度學習幾乎被應用于人工智能研究的各個領域,包括計算機視覺(computer vision,簡稱CV)[2,3]、自然語言處理(nature language processing,簡稱NLP)[4,5]、推薦系統(tǒng)[6,7]、強化學習(reinforcement learning,簡稱RL)[8,9]、語音識別[10,11]等.深度學習是采用自動化特征表示與學習和深度神經(jīng)網(wǎng)絡(deep neural network,簡稱DNN)的一系列機器學習算法集合.目前對于深度學習的研究取得了一系列舉世矚目的成果,對包括推薦系統(tǒng)、疾病檢測[12]、人機博弈[13,14]在內(nèi)的諸多領域產(chǎn)生越來越重要的影響,并在計算機視覺和自然語言處理領域取得了革命性的成功.
深度學習最初起源于對人工神經(jīng)網(wǎng)絡的研究.人工神經(jīng)網(wǎng)絡(artificial neural network,簡稱 ANN)[15]是Landahl 等人于1943 年首先提出來的.而后,感知機算法、Hopfield 神經(jīng)網(wǎng)絡[16]、玻爾茲曼機[17]、誤差反向傳播網(wǎng)絡(back propagation network,簡稱BP network)[18]和徑向基神經(jīng)網(wǎng)絡[19]等也相繼被提出.循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,簡稱RNN)是深度學習以及語言模型領域一個相當重要的神經(jīng)網(wǎng)絡結構,這一結構的提出使得神經(jīng)網(wǎng)絡對于學習到的知識有了更深層次的記憶形式,對語言模型中長文本序列的建模提升顯著,但是,由于早期RNN 網(wǎng)絡結構存在梯度消失和梯度爆炸問題,之后提出了長短期記憶網(wǎng)絡(long short-term memory network,簡稱LSTM)[20],LSTM 的問世在很大程度上改進了較長序列依賴的問題.后續(xù)研究人員對LSTM 進行了改進,提出雙向長短期記憶網(wǎng)絡(bi-LSTM)[21],在一定程度上解決了對輸入序列的雙向信息建模的問題.LSTM與后來提出的Transformer 模型[22]被廣泛應用于自然語言處理以及語言模型當中.
自然語言處理是語言學與計算機科學相交融的一個研究領域,其主要研究任務包括詞性標注[23]、命名實體識別[24]、語義角色標注[25]、機器翻譯[26]、自動問答[27]、情感分析[28]、文本摘要[29]、文本分類[30]、關系抽取[31]等.自然語言作為伴隨人類文明發(fā)展而不斷變化的符號化系統(tǒng),單詞、句子以及段落間的關系難以人工量化,使得各項任務的性能提升受到了阻礙.而深度學習以及神經(jīng)網(wǎng)絡其強大的表示學習能力和預測能力,與自然語言處理數(shù)據(jù)集所具有的高維度、無監(jiān)督和數(shù)據(jù)量大的特點相契合.自然語言處理本質(zhì)上就是利用計算機融合語言學等其他領域的知識對自然語言的內(nèi)隱知識進行建模和表示,從而進一步完成自然語言的理解和生成.
在自然語言處理研究的早期,文本一般采用獨熱(one-hot)表示,產(chǎn)生的高維且稀疏的單詞表示對模型訓練和預測都帶來了極大的困難.因此,構建一種面向各下游任務的語言模型來建模文本序列,成為了自然語言處理中的基礎課題.對語言模型的研究實際上就是探究如何對語言內(nèi)隱知識進行表示的過程.語言模型是自然語言處理的一個核心問題.在探索初期,研究人員融合計算語言學理論以及相應的領域知識,提出了基于規(guī)則的文法語言模型,但在規(guī)則語言模型的構建過程中,對研究人員的語言學知識和領域知識都提出了較高的要求,且存在以下缺陷:(1) 文法規(guī)則可能脫離語言實際;(2) 規(guī)則靈活性差,難以覆蓋慣用語法及其他復雜的語言現(xiàn)象;(3)引入新規(guī)則時,需要考慮已有規(guī)則之間的聯(lián)系,避免沖突[32].以上缺陷導致模型存在時間和人力成本高昂,難以遷移至不同領域的問題.隨著統(tǒng)計學習方法的不斷發(fā)展,為了解決文法語言模型存在的上述問題,概率語言模型(或稱統(tǒng)計語言模型)[33]應運而生,計算機根據(jù)基本假設,對語言模型的概率分布進行估算和推理.而后,研究人員在概率語言模型的基礎上融入神經(jīng)網(wǎng)絡,形成神經(jīng)概率語言模型[34].然而神經(jīng)概率語言模型在對自然語言建模的層次還不夠深入,雖然在訓練過程中捕獲到了單詞間、字符間的共現(xiàn)信息和單詞語義,但面對不同的輸入,依然無法動態(tài)調(diào)整相應的編碼表示.對于單詞在不同上下文中的語義角色、語法和語義變化情況等高層次信息沒有進行表示.
隨著更大規(guī)模神經(jīng)網(wǎng)絡的出現(xiàn),在監(jiān)督任務的數(shù)據(jù)集規(guī)模與神經(jīng)網(wǎng)絡模型參數(shù)量之間出現(xiàn)了嚴重的不平衡現(xiàn)象.一方面,語義層次更高的監(jiān)督任務數(shù)據(jù)集的收集與標注將耗費巨大的人力、物力和時間,另一方面,巨大的網(wǎng)絡參數(shù)量會導致嚴重的過擬合現(xiàn)象出現(xiàn),模型面臨著極高的結構風險,甚至使得期望風險增大.在大規(guī)模數(shù)據(jù)集上進行無監(jiān)督預訓練,可以緩解這種不平衡現(xiàn)象引發(fā)的一系列問題.各類無監(jiān)督學習和預訓練方法工作的提出,推動了神經(jīng)概率語言模型向預訓練語言模型的演進.預訓練語言模型采用自監(jiān)督任務訓練的方法完成構建,預訓練過程實質(zhì)上是對模型參數(shù)完成了初始化.在面對下游任務時,該過程使模型加速收斂.并且,預訓練過程中模型獲得的豐富知識降低了龐大參數(shù)規(guī)模帶來的結構風險,因此取得了極佳的性能表現(xiàn).預訓練語言模型中具有代表性的工作就是BERT 模型[35],且自BERT 提出之后,涌現(xiàn)出了一系列優(yōu)異的模型.例如,FaceBook 的RoBERTa、百度提出的ERNIE、Google 提出的T5、NVIDIA 提出的MegatronLM 等,在部分下游任務中性能已經(jīng)超越了人類.一個具有較強表示能力和魯棒性的語言模型將會對搜索引擎、多輪對話、知識圖譜及語音助手等實際應用產(chǎn)生巨大的推動作用,語言模型的研究不僅具有關鍵的理論意義,從語言學角度來看,其社會意義更是不言而喻.
本文的主要貢獻如下:
1) 介紹語言模型的原理以及應用情況并總結目前面臨的挑戰(zhàn);
2) 對比分析神經(jīng)概率語言模型和預訓練語言模型的發(fā)展狀況和優(yōu)缺點;
3) 總結對比目前預訓練語言模型的不同方法;
4) 對基于深度學習的語言模型未來的研究趨勢和重點進行了分析和展望.
語言模型可以被認為是自然語言處理各下游任務的基石,其本質(zhì)就是在回答一個問題:對于一個給定的文本序列,是否具有合理性并對其合理性進行量化.對語言模型的研究經(jīng)歷了文法規(guī)則語言模型至概率語言模型,再發(fā)展為神經(jīng)概率語言模型的過程.伴隨新式網(wǎng)絡結構的出現(xiàn),以及半監(jiān)督學習、預訓練思想的提出,預訓練語言模型成為了當前語言模型研究的新熱點.本節(jié)將主要介紹基于深度學習語言模型的基本理論和應用以及所面臨的問題和挑戰(zhàn).
2.1.1N元語法模型[36]
N元語法模型作為概率語言模型的理論基礎,其思想對后續(xù)出現(xiàn)的神經(jīng)概率語言模型和預訓練語言模型都有著深遠的影響,在語言模型領域有著舉足輕重的地位,在語音識別、詞性標注和機器翻譯等領域應用廣泛.公式表示如下.
文本序列[w1,...,wN],其中,wi表示一個單詞,即計算下式:
則對于給定上下文s中某一單詞i的極大似然概率的計算公式為
其中,C(s,wi)為上下文s與單詞i共同出現(xiàn)的次數(shù),上下文s通常由幾個單詞組成.以三元語法模型為例,|s|=2,當不考慮上下文時被稱為一元語法模型.N元語法模型是一種基于概率統(tǒng)計的建模算法,自20 世紀80 年代提出以來,在相當長的時間內(nèi)都被作為語言模型的基礎思想,該方法使用序列中每個單詞概率的乘積表示整個文本序列出現(xiàn)的概率.若N選取一個較大值,則表示對序列中下一個單詞出現(xiàn)的情況約束性更強,但也會導致得到的頻率信息更加稀疏,并使N-gram 數(shù)目呈指數(shù)級增長,從而需要更強的平滑算法來消除這一影響;若N選取較小值,則表示統(tǒng)計結果可靠性更高、泛化能力更好,但是會使約束性更弱.
總體來看,N-gram 語言模型雖然在多個領域得到了廣泛的應用,但仍然存在以下問題:(1) 模型無法量化單詞之間的相似度.假設兩個具有某種相似性的詞:“汽車”和“轎車”,如果“汽車”經(jīng)常出現(xiàn)在某段單詞序列之后,則模型會認為“轎車”出現(xiàn)在這段詞后面的概率也比較大.比如“白色的汽車”經(jīng)常出現(xiàn),則完全可以認為“白色的轎車”也可能經(jīng)常出現(xiàn).(2)N-gram 模型對長距離依賴問題難以建模,由于語料規(guī)模的限制使得N值更大的模型面臨難以處理的稀疏問題,無法訓練.
2.1.2 神經(jīng)概率語言模型
在N元語法模型中,計算條件概率一般采用頻次作商并歸一化的方法,雖然研究人員提出了多種平滑算法,但依然面臨著數(shù)據(jù)稀疏和維度災難的問題.對N元語法模型可以利用最大化對數(shù)似然,構造目標函數(shù)如下所示:
可見,p(wi|s)實際上是wi與s的函數(shù),公式表示如下:
其中,參數(shù)θ為模型待定參數(shù)集,由此將計算所有N元語法的條件概率轉化為最優(yōu)化公式(3)表示的目標函數(shù),并求解參數(shù)集θ.在選取神經(jīng)網(wǎng)絡適當?shù)那闆r下,參數(shù)集θ的規(guī)模可遠小于N元語法中的參數(shù)量.
Bengio 模型是最早將神經(jīng)網(wǎng)絡應用于概率語言模型的工作,其模型由3 層構成:輸入層、隱藏層和輸出層,有效避免了數(shù)據(jù)稀疏的問題.
模型根據(jù)當前單詞的前n–1 個單詞作為輸入,計算當前單詞出現(xiàn)的概率:
其中,W、U、H是神經(jīng)網(wǎng)絡的權重,b、d為偏置,yi是每個輸出單詞i的非標準對數(shù)概率.公式(8)為模型的損失函數(shù).
Bengio 模型作為神經(jīng)概率語言模型的開篇之作,提供了將神經(jīng)網(wǎng)絡融入概率語言模型的一種實現(xiàn)方法,并且,由于神經(jīng)網(wǎng)絡本身的優(yōu)勢避免了數(shù)據(jù)稀疏和維度災難的問題,亦不再需要構建各類平滑算法.神經(jīng)概率語言模型在處理相對長距離依賴問題時,能夠比N-gram 模型獲得更好的預測精度.在泛化能力方面也好于N-gram模型,并且模型所需要學習的參數(shù)量遠小于概率語言模型.但不可避免地,神經(jīng)概率語言模型依然存在一些問題,訓練時采用固定窗口大小,這與人類可以使用大量的上下文信息進行預測是不一致的.自然語言中文本序列的單詞是時序相關的,但Bengio 模型沒有使用時序信息進行建模.雖然參數(shù)量小于N-gram 模型,但依然產(chǎn)生巨大的計算開銷.
2.1.3 預訓練語言模型
目前,預訓練語言模型主要基于以下4 種建模思想:(1) 雙向語言模型[37];(2) 隱蔽語言模型[35];(3) 排序語言模型[38];(4) 編碼器-解碼器(encoder-decoder)框架[39].
雙向語言模型:對一個單詞序列(w1,w2,...,wN),根據(jù)給定單詞的上文計算該單詞的概率為前向語言模型,公式如下:
對應的后向語言模型表示如下:
其優(yōu)化目標為最大化兩個方向的對數(shù)似然:
其中,θx為輸入單詞的表示,表示用于前向和后向建模的神經(jīng)網(wǎng)絡參數(shù).
雙向語言模型是最早被用于預訓練模型建模的思想,選擇某種網(wǎng)絡作為特征抽取器,將兩個方向上抽取到的文本表示拼接在一起,這種方法的代表就是ELMo 模型和GPT 模型,ELMo 能夠同時建模單詞的語法和語義表示,并且能夠根據(jù)輸入上下文的不同動態(tài)地改變多義詞的表示.在收斂性方面,由于預訓練過程使得可以使用更小的訓練數(shù)據(jù)達到更好的效果.但在實現(xiàn)過程中僅進行兩個方向上的簡單拼接,未作深層次融合較為遺憾.
隱蔽語言模型(masked language model,簡稱MLM):隱蔽語言模型是預訓練模型中最為常用的一種預訓練目標任務,并在預訓練語言模型的研究過程中衍生出了多種預訓練目標任務,對于預訓練語言模型的發(fā)展影響深遠.這一目標最早被稱為Cloze任務,以BERT 模型中使用的隱蔽策略為例:選取輸入序列中15%的元素作為待隱蔽的位置,待隱蔽位置中80%的位置被[MASK]替換,10%的位置使用其他元素替換,10%的位置不作改變.這一模型引入了降噪自編碼器的思想,迫使模型從人為加入的噪聲中恢復原始的輸入,從而學習共現(xiàn)信息.最早在BERT 模型中提出的這一訓練目標任務,由于原始的BERT 是面向英文領域的,在遷移至中文領域時,隨機對字符進行隱蔽,被隱蔽的字符之間缺乏聯(lián)系,會導致模型丟失部分詞語間的共現(xiàn)信息,后續(xù)提出的BERT-WWM模型對這個缺陷進行了改進.另外,若在預訓練模型的構建中僅使用MLM 作為預訓練目標任務,對于堆疊多層的Transformer 結構難度較低,則會導致模型無法有效學習,針對這一問題,后續(xù)的研究人員將生成對抗思想引入到MLM 任務中,進一步加劇了預訓練任務的難度.
排序語言模型(permutation language model,簡稱PLM):排序語言模型同樣是一種預訓練目標任務,最早是在XLNET 模型中提出來的,旨在融合自回歸模型與自編碼模型的優(yōu)點.對給定的輸入序列(w1,w2,...,wT),用ZT表示輸入序列所有可能的排列情況所組成的集合,用zt表示一個排列z∈ZT中的第t個元素,表示一個排列z∈ZT中的前t–1 個元素.排序語言模型的目標函數(shù)形式化表示如下:
上文中介紹的雙向語言模型實質(zhì)上屬于自回歸模型,即根據(jù)上文內(nèi)容預測可能出現(xiàn)的下一個單詞或根據(jù)下文內(nèi)容預測上一個可能出現(xiàn)的單詞.自回歸模型的優(yōu)點是在文本摘要、機器翻譯[40]等自然語言生成任務中的性能更好,但缺點是只利用了上文或下文的信息,不能同時利用上文和下文的信息.而以BERT 為代表的采用隱蔽語言模型建模的方法可以被視為自編碼模型,由于在訓練階段和微調(diào)階段存在不一致的問題,導致采用這種思想建模的方法在自然語言生成任務中性能較低.而XLNET 中提出的排序語言模型在相當大的程度上改善了兩種模型的缺陷,可以作為未來預訓練目標任務構建的基本思路.
編碼器-解碼器框架:Encoder-Decoder 思想最早被用于機器翻譯領域,而后被廣泛應用于預訓練語言模型的構建當中.使用Encoder-Decoder 架構的語言模型的優(yōu)勢在于,處理文本摘要和機器翻譯兩個任務上相對其他模型有更好的性能表現(xiàn),但是由于模型由編碼器和解碼器兩部分構成,模型規(guī)模一般較為龐大,需要巨大的算力給予支持.
在編碼器部分,以RNN 模型為例,對于給定的單詞序列(w1,w2,...,wT),對每一個時間步t,其隱藏狀態(tài)ht由下式給出:
在輸入序列的所有元素之后,RNN 的隱藏狀態(tài)形成了一個中間語義表示c.在解碼器部分,RNN 的隱藏狀態(tài)按照下式計算:
解碼后輸出的條件概率如下計算:
其中,函數(shù)g一般為softmax 函數(shù).
編碼器-解碼器框架以最大化條件對數(shù)似然作為優(yōu)化的目標函數(shù):
語言模型作為自然語言處理的基礎,其生成的低維且稠密的單詞分布式表示對于一系列下游任務的性能提升具有顯著作用.伴隨著神經(jīng)概率語言模型和預訓練語言模型的快速發(fā)展,在文本分類、序列標注以及自動問答和機器閱讀理解等各類下游任務中都取得了更好的效果.特別是預訓練語言模型,在訓練過程中學習到的豐富的語法和語義推理知識,對于機器翻譯、問答系統(tǒng)等難度較高任務的性能改善更為顯著.
2.2.1 神經(jīng)概率語言模型的應用
對于分類任務,張志昌等人[41]提出了一種采用獨立循環(huán)神經(jīng)網(wǎng)絡(independently recurrent neural network,簡稱IndRNN)和注意力機制的用戶意圖分類模型,以Word2Vec[42]生成的詞向量為輸入,使用IndRNN 對輸入編碼.模型引入單詞級注意力機制有效量化了領域詞匯對意圖類別的貢獻,而且所采用的IndRNN 在堆疊層次更深的情況下更易訓練.周俊佐等人[43]針對目前已有文本分類模型在人機對話意圖分類中存在的性能優(yōu)劣情況,提出一種混合意圖分類模型,模型結構受到GoogleNet 提出的Inception 網(wǎng)絡[44]的啟發(fā).混合模型分為3 層:(1) 第1層為詞編碼層;(2) 第2 層為句子編碼層,使用BiGRU 和BiLSTM 作為編碼器;(3) 第3 層為混合模型層,將第2層的輸出分別輸入Capsule[45]、MFCNN[46]和Attention[47]這3 種網(wǎng)絡,完成分類.該方法綜合利用多種網(wǎng)絡模型的輸入與輸出,獲得了一定的性能提升.
杜慧等人[48]在Word2Vec 中CBOW 模型的基礎上,對生成的詞向量進行情感微調(diào),得到同時包含語義和情感傾向的詞向量,在微博情感分類任務中性能提升明顯.朱蘇陽等人[49]針對情感分析中的情緒分析子任務,提出對抗式網(wǎng)絡結構.使用Word2Vec 中的Skip-gram 算法生成詞向量輸入模型,分別抽取極性、強度與可控性特征,并在3 個維度間兩兩進行對抗性訓練.實驗結果顯示,在EMOBANK 數(shù)據(jù)上3 個維度的測試結果均有顯著改進.
在機器翻譯方面,劉宇鵬等人[50]提出一種層次化翻譯模型,將層次化規(guī)則的歸納分為短語歸納和形式化規(guī)則歸納兩部分完成,并在目標函數(shù)的構造過程中引入單詞級語義錯誤、單詞短語/規(guī)則語義錯誤和雙語短語/規(guī)則語義錯誤3 部分,使模型在訓練過程中可以平衡3 部分對目標函數(shù)的影響.該方法使用基于RNN 的神經(jīng)語言模型作為詞向量生成模型.實驗結果表明,模型的目標函數(shù)很好地平衡了不同錯誤情況之間的影響,并在訓練過程中引入的雙語對齊信息,獲得了較好的性能提升.
在機器閱讀理解任務中,梁小波等人[51]提出了一種基于雙層自注意力機制的方法,模型分為單文檔編碼、多文檔編碼和答案預測3 個部分.在單文檔編碼部分中,對文檔和問題的上下文信息使用GRU 模型進行表示;使用上下文表示計算文檔到問題和問題到文檔兩個方向上的注意力信息;在文檔表示信息的自匹配問題中使用自注意力機制完成計算.實驗結果表明,使用注意力機制在機器閱讀理解中可以提升模型在創(chuàng)距離依賴問題上的表現(xiàn),但是在兩個方向注意力信息的融合過程中僅使用拼接和向量點乘的方法,融合方式較為簡單,仍存在一定缺陷.
此外,Vijayakumar 等人[52]提出一種捕獲語音和對應單詞相關性的模型,以Word2Vec 生成的向量作為嵌入層,在3 個關于語音推理的下游任務中:(1) 基于文本的聲音檢索;(2) Foley 聲音發(fā)現(xiàn);(3) 與語音相關的單詞相關性評估,都取得了良好的表現(xiàn).
目前,在神經(jīng)概率語言模型的應用中,以Word2Vec 模型生成的詞向量作為模型輸入,是目前主流的應用方法.在處理意圖分類和情感分類等任務時,訓練字符和單詞級的詞向量聯(lián)合送入神經(jīng)網(wǎng)絡可以有效改善未登錄詞對性能的影響.在實體關系抽取領域,Word2Vec 結合雙向LSTM 是目前較為通用的方法,但該方法的性能提升遇到較大的瓶頸.當神經(jīng)概率語言模型在面對機器翻譯、機器閱讀理解等高層次的自然語言理解任務時,由于神經(jīng)概率語言模型存在無法根據(jù)不同的上下文情況動態(tài)調(diào)整文本表示的問題,使得詞語或短語在不同語境下的詞性、詞義、語義角色等信息的變化難以被表示,當語言模型這一基礎問題存在較大的性能瓶頸時,在高層次上的網(wǎng)絡結構改進只能是杯水車薪,無法滿足在應用方面的要求.并且在使用雙向LSTM 等循環(huán)神經(jīng)網(wǎng)絡構建深層模型時,會遇到梯度消失難以訓練的問題.這些都限制了神經(jīng)概率語言模型在更廣泛領域的應用.
2.2.2 預訓練語言模型的應用
對于自然語言處理中的分類問題,Sun 等人[53]針對情感分析任務中的子課題:特定方面的情感分析.使用BERT 模型[35]作為特征抽取器,并對模型進行微調(diào),在單句和句對兩類輸入的方面情感分析任務上都取得了相當大的性能提升.Karimi 等人[54]同樣在這一任務中,做出了進一步改進,將對抗訓練思想引入到模型學習過程,并使用文獻[55]提出的后訓練BERT 作為語言模型,在方面抽取和方面情感分析兩個子任務上都取得了性能上的改進.Song 等人[56]提出使用BERT 隱藏層中蘊含的知識以增強其在基于方面的情感分析任務中的表現(xiàn),為了利用中間層的知識提出了兩種池化策略,一種使用LSTM 作為池化特征抽取器,一種使用注意力機制對從Transformer 層中抽取的隱藏狀態(tài)進行池化,獲得了較為顯著的分類效果改進.
Li 等人[57]將實體鏈接建模為分類問題,針對網(wǎng)絡協(xié)議分析中的實體鏈接任務提出PEL-BERT 模型,并將外部領域知識引入BERT 模型當中,與直接在BERT 上微調(diào)相比分類性能更好.
此外,在序列標注任務中,Tsai 等人[58]提出一種基于BERT 面向多語言的序列標注模型,采用知識蒸餾方法,在多種低資源語言上的詞性標注和形態(tài)屬性預測兩個任務上性能較好,并在推理時間上縮短了27 倍.
對于問答系統(tǒng)領域,意圖分類和槽位填充是其中的重要任務,這兩個任務存在訓練數(shù)據(jù)規(guī)模小、性能提升受到限制的難點,因此,Chen 等人[59]引入BERT 模型,并對它們進行聯(lián)合訓練,相較于RNN 模型,識別和填充的準確率均有顯著提升.Gulyaev 等人[60]針對問答系統(tǒng)中的對話狀態(tài)跟蹤問題,提出了一種基于BERT 的面向目標多任務對話跟蹤器(goal-oriented multi-task bert-based dialogue state tracker,簡稱GOLOMB),在訓練過程中聯(lián)合學習對話跟蹤過程中的多個子任務,將對話歷史、可能的意圖描述和槽位值共同輸入到BERT 中完成編碼,在多個評價指標上表現(xiàn)良好.
Xu 等人[55]在機器閱讀理解(machine reading comprehension,簡稱MRC)任務的基礎上提出了評論閱讀理解(review reading comprehension,簡稱RRC)任務,旨在從海量的消費者評論中獲取信息,用以完成電子商務領域的問答任務,提出了一種后訓練BERT 算法,以增強對于評論信息的抽取能力.楊中成[61]將預訓練語言模型融入到機器譯文質(zhì)量評估這一任務當中,將預訓練語言模型中提取出的機器譯文特征與依存句法信息相融合,以BERT[35]+LSTM+多層感知機作為模型架構,提出了一種句子級的機器譯文質(zhì)量評估方法.
自動問答、機器閱讀理解以及目前測試預訓練語言模型中常見的自然語言推理,都屬于NLP 領域中的高級任務,它們對于語言模型或網(wǎng)絡結構的編碼表示能力相對于分類和序列標注任務有著更高的要求.從目前已有模型和方法來看,一些超大規(guī)模模型已在自動問答、機器閱讀理解和自然語言推理任務中達到了超越人類的性能表現(xiàn),這表明,當前預訓練語言模型的構建思路是有效的.但是不可否認的是,無論是對這些大規(guī)模模型做何種方式的壓縮,都會使模型在這些任務中的表現(xiàn)急劇劣化,這種情況要求研究人員在后續(xù)的改進思路中需要著重注意高層次語義語法信息的高效表示和無損壓縮.綜上,預訓練語言模型可以生成語義豐富的單詞或句子表示,在文本分類、序列標注等任務的應用中,獲得了巨大的性能提升.在更高層次的意圖分類、對話跟蹤以及機器閱讀理解任務上,預訓練模型蘊含的語法和語義知識對其性能貢獻顯著.并且,面對多任務學習和低資源語言問題,與神經(jīng)概率語言模型相比,知識表示和遷移能力更強.
對N元語法模型來說,其優(yōu)點在于計算效率.在N值較小時,對于算力的需求較低,雖然相應地會損失一部分共現(xiàn)信息,但與后續(xù)提出的神經(jīng)語言模型和預訓練語言模型相比,訓練速度依然是非常快的.所面臨的問題在于,隨著上下文窗口大小的增加,其形成的N-gram 子序列的數(shù)目呈指數(shù)級增長,難以進行訓練.同時,由于其僅捕獲了有限個單詞間的共現(xiàn)信息,對自然語言的結構層次不夠深入,在句法、語義層面沒有建模.并且,由于數(shù)據(jù)稀疏帶來的問題,還需要引入一系列的平滑算法來減輕數(shù)據(jù)稀疏的影響.
而后提出的神經(jīng)概率語言模型,使用神經(jīng)網(wǎng)絡對概率語言模型的參數(shù)進行估計,使得在擴大上下文窗口數(shù)目的同時降低了模型參數(shù)的規(guī)模,并且在神經(jīng)網(wǎng)絡的幫助下,語言模型不再需要持續(xù)改進平滑算法來緩解性能瓶頸的問題.特別是Word2Vec 模型[42],作為神經(jīng)概率語言模型研究過程中的經(jīng)典之作,它的提出就不僅僅是在語言模型領域有著重要的意義了.由于訓練目標是無監(jiān)督的,一個數(shù)據(jù)量龐大的語料庫就可完成訓練,在訓練過程的負采樣技術對后續(xù)的語言模型中目標任務的研究提供了新的思路.另一方面,這一語言模型良好的表示能力和訓練效率推動了下游任務研究的進一步發(fā)展.
雖然Word2Vec 提出后,研究人員從不同方面對它進行了改進,例如,將Skip-gram、負采樣技術與噪聲對比估計方法相融合,或者將Word2Vec 的框架用于捕獲跨語言間的語義信息,實現(xiàn)低資源語言進行聚類以及分類任務[62],這些方法的提出都進一步挖掘了Word2Vec 的潛力,但是并未能夠從根本上解決神經(jīng)概率語言模型沒有在句子級和語義級進行建模的問題,還面臨著以下挑戰(zhàn):(1) 由于其生成的向量表示與單詞是一一對應的關系,一詞多義的問題無法解決;(2) Word2Vec 產(chǎn)生的是一種全局單詞表示,而忽略了單詞在不同上下文情況下的語法和語義變化,表示能力存在不足.
在預訓練語言模型特別是BERT 模型[35]提出之后,語言模型領域的研究進入了一個新的時期,其所采用的雙向語言模型、隱蔽語言模型以及排序語言模型等理論,在更深層次上對自然語言中的語法語義信息完成了建模.從基準測試結果來看,預訓練語言模型的表示能力相比于神經(jīng)概率語言模型有了質(zhì)的提升,在某些任務上甚至超越了人類.但另一方面,預訓練語言模型規(guī)模龐大,其訓練過程耗費大量的算力和時間,而且難以在低計算資源設備上進行部署,目前還面臨著以下挑戰(zhàn):(1) 由于預訓練語言模型在預訓練過程中需要大量的無監(jiān)督文本數(shù)據(jù),對于低資源語言不夠友好;(2) 由于預訓練語言模型中采用的復雜網(wǎng)絡結構,其解釋性較低,網(wǎng)絡結構中的哪些模塊可以捕獲何種信息尚不明確;(3) 在模型壓縮過程中,會導致語言模型在推理任務上的性能發(fā)生較大的損失,而自然語言推理任務又是自然語言理解中一個非常關鍵的問題,如何在壓縮中盡可能地保留其推理能力這一問題亟待解決.
語言模型是自然語言處理的核心問題,先后出現(xiàn)了文法語言模型、概率語言模型.然而,概率語言模型存在長距離依賴建模能力較差、無法解決一詞多義的問題,同時還存在高層語言特征沒有表示的缺陷.研究人員提出將深度學習應用于語言模型,這一想法最先是徐偉于2000 年發(fā)表的論文《Can Artificial Neural Networks Learn Language Models?》[63]中提出的,其研究指出神經(jīng)網(wǎng)絡方法在當時沒有大規(guī)模地用于語言模型的研究主要有兩個原因:(1) 一些研究人員認為使用統(tǒng)計方法對自然語言進行建模是更合理的;(2) 神經(jīng)網(wǎng)絡所需要的數(shù)據(jù)量是巨大的,訓練效率較低.其研究結果表明,采用神經(jīng)網(wǎng)絡的語言模型在性能上優(yōu)于當時已有的統(tǒng)計方法但其計算成本是高昂的,因而在這一思想提出之后,后續(xù)一段時間內(nèi)提出的方法主要針對這兩方面進行了改進,一方面對神經(jīng)網(wǎng)絡的結構進行改進以提升性能和效率,另一方面針對計算成本對目標函數(shù)和梯度計算進行優(yōu)化.而后,隨著LSTM 的廣泛應用和Transformer 網(wǎng)絡的提出,以及預訓練思想、半監(jiān)督思想的快速發(fā)展,預訓練語言模型成為目前基于深度學習的語言模型中性能表現(xiàn)最為優(yōu)異、研究最為廣泛的一類語言模型.
神經(jīng)概率語言模型的開山之作應屬Bengio 等人[34]的工作,模型聯(lián)合學習詞向量與分布表示的概率函數(shù),從而避免數(shù)據(jù)稀疏問題.Mikolov 等人[64]提出循環(huán)神經(jīng)網(wǎng)絡語言模型,循環(huán)神經(jīng)網(wǎng)絡利用上下文的所有信息來預測下一個詞,使用后向傳播算法,可以達到很好的效果.C&W[65]提出SENNA 模型,并給出了一種詞向量的計算方法,將產(chǎn)生的單詞表示用于一系列下游任務,如語義角色標注、詞性標注、命名實體識別等.2013 年,Mikolov等人[42]提出Word2Vec 模型,給出了兩種計算單詞分布式表示的方法,這一模型對自然語言處理領域產(chǎn)生了深遠的影響,在很長一段時間內(nèi),使用Word2Vec 產(chǎn)生的詞向量作為嵌入層輸入成為主流.近年來,神經(jīng)概率語言模型不斷深入和發(fā)展,為了充分了解基于深度學習的語言模型研究進展,接下來分別介紹以上4 種語言模型.
3.1.1 Bengio 模型
Bengio 模型[34]的基本原理在上文中已有介紹,這里不再贅述,之后針對上文提到的神經(jīng)語言模型在訓練和預測過程中高昂計算成本的問題,提出了采用蒙特卡洛采樣方法來逼近梯度中的期望項以進一步降低計算復雜度[66].在研究過程中,重要性采樣(importance sampling)的方法在逼近過程中取得了較好的效果,在計算效率上獲得了19 倍的提升.后來又提出了自適應重要性采樣方法(adaptive importance sampling)[67],使得計算效率提升至150 倍.
Mnih 等人[68]研究發(fā)現(xiàn),重要性采樣方法在模型學習過程中存在穩(wěn)定性不足的問題,自適應重要性采樣方法實現(xiàn)困難且需要額外的內(nèi)存存儲自適應分布.Mnih 等人提出使用噪聲對比估計(noise-constrastive estimation,簡稱NCE)方法[69]作為替代,噪聲對比估計方法旨在訓練使用一個邏輯斯蒂回歸分類器將真實分布的樣本和噪聲分布的樣本區(qū)分開來,其優(yōu)點在于學習過程中不會改變模型的穩(wěn)定性.實驗結果表明,這一方法可以用原有模型十分之一的訓練時間來完成單詞表示.
3.1.2 RNN 語言模型
Mikolov 等人[64]提出將循環(huán)神經(jīng)網(wǎng)絡應用于語言模型當中,該模型中使用的RNN 網(wǎng)絡結構被稱為簡單RNN 或Elman 網(wǎng)絡[70],這種RNN 的網(wǎng)絡結構與后來研究人員提出的復雜RNN 或LSTM 等相比結構更為簡單.但從另一角度來說,其對長距離序列依賴問題的處理能力,受限于其網(wǎng)絡結構本身,也是相對較弱的.RNN 語言模型共包括輸入層、隱藏層和輸出層,計算過程形式化表示如下:
其中,x表示輸入層,s表示隱藏層,y表示輸出層,w(t)為當前的單詞表示.f為sigmoid 函數(shù),g為softmax 函數(shù).
Bengio 等人[71]在RNN 語言模型的基礎上融入編碼器-解碼器框架,并首次將注意力機制引入神經(jīng)機器翻譯模型中.在原始的編碼器-解碼器框架中,對于每個輸入序列生成一個中間上下文向量c.這一框架的缺點在于對輸入序列中的所有單詞只使用一個中間上下文向量c表示,序列中的語義信息損失嚴重.為解決這一缺點以及建模過程中的上下文語義貢獻問題,Bengio 等人提出在編碼器部分使用雙向RNN[72]進行編碼,對兩個方向的上下文進行建模.在解碼器部分,提出對隱藏狀態(tài)hi包含的信息對不同位置的單詞語義貢獻是不同的,并對這種貢獻進行量化,公式表示如下:
式中si表示解碼器RNN 的隱藏狀態(tài),ci表示上下文向量,hi表示編碼器RNN 生成的隱藏狀態(tài),eij表示輸入序列中第j個位置單詞與輸出序列中第i個單詞的匹配程度a,表示一個前饋神經(jīng)網(wǎng)絡(該神經(jīng)網(wǎng)絡在模型訓練過程中共同訓練).公式(20)給出了解碼器部分的形式化表示,公式(22)用以計算每個隱藏狀態(tài)對上下文向量的貢獻.模型在長句翻譯任務中性能提升較大.
3.1.3 SENNA 模型
SENNA 模型[65]對給定上下文窗口中間的單詞進行替換,并使模型對該單詞和上下文的關系進行判斷,以學習語料庫中的上下文依賴關系,訓練損失如下式所示:
其中,c為上下文窗口,為將窗口中間的單詞w替換后的單詞,f表示不含softmax 層的神經(jīng)網(wǎng)絡.
SENNA 模型不僅學習到了預測單詞上文知識,還將下文信息融入到了單詞表示當中,并引入了Okanohara和Tsujii 提出的負樣本技術[73].
針對一詞多義問題,Huang 等人[74]認為多義詞的不同含義之間差別可能較大,僅使用一個原型對單詞進行表示是不充分的,在Reisinger 和Mooney 工作[75]的啟發(fā)下引入了多原型語言模型.學習單詞的多原型表示,按照以下步驟進行:首先,針對每個詞出現(xiàn)的位置設定一個固定大小的窗口,對窗口中的詞求平均權重;然后,使用SphericalK-Means 聚類方法對窗口中的單詞序列進行聚類;最后,每個詞在其所屬的類別中被重新標記,用于訓練類別中的詞向量,多原型方法對單詞相似度的計算公式如下:
公式(26)中,p(c,w,i)為詞w在給定上下文c的情況下屬于類別i的概率,μi(w)表示第i個類別中心點w,函數(shù)d為兩個詞之間相似度計算函數(shù).其實驗結果表明,該語言模型在一詞多義問題中取得了較好的效果,給后續(xù)的研究提供了思路.
3.1.4 Word2Vec 模型
Word2Vec 模型[42]的思想可以看作是對數(shù)線性模型和分層模型的結合,在引入CBOW 和Skip-gram 模型后,神經(jīng)網(wǎng)絡的結構就與對數(shù)線性模型的形式十分接近了,之后,針對目標函數(shù)計算復雜的問題,Mikolov 同樣引入了層次softmax 層.
針對之前模型中計算復雜度主要來自于非線性隱藏層的問題,Word2Vec 選擇繼續(xù)采用之前工作[76]中提出的網(wǎng)絡結構[77],提出了兩種網(wǎng)絡模型,圖1 所示為兩種模型的結構示意圖(使用PowerPoint 繪制),一種名為連續(xù)詞袋模型(CBOW),在該模型中移除了非線性隱藏層,投影層被所有單詞共享,其訓練目標是給定某一位置單詞的上下文信息來預測這一位置的單詞.另一種網(wǎng)絡模型為連續(xù)Skip-gram 模型,其網(wǎng)絡結構與CBOW 類似,但訓練目標不同,是通過給定一個單詞預測其前后一定范圍內(nèi)的單詞.
Fig.1 Word2Vec model schematic diagram[42]圖1 Word2Vec 模型示意圖[42]
預訓練語言模型是目前自然語言建模效果最好的一類語言模型,2018 年初,Peters 等人[37]就提出了ELMo模型,采用雙向語言模型的思想,引入預訓練過程.之后,Radford 等人[78]提出GPT 模型,使用Transformer 作為模型的基本結構,并結合超大規(guī)模的無監(jiān)督文本數(shù)據(jù)進行預訓練,在自然語言生成任務中獲得了顯著的性能提升.BERT 問世后,一系列改進的預訓練模型被提了出來,本節(jié)將對預訓練語言模型的提出和發(fā)展歷程進行概述.
3.2.1 初期預訓練語言模型
Dai 和Le 在文獻[79]中提出了兩種使用無標簽數(shù)據(jù)改進RNN 語言模型性能的方法:第1 種方法將訓練目標設定為預測當前句子的下一個句子是什么;第2 種方法來源于自編碼(autoencoder)思想,訓練目標為通過由RNN 組成的自編碼器重構輸入序列.這一方法的提出對后續(xù)預訓練語言模型中目標任務的設計產(chǎn)生了深遠的影響.
在BERT 模型提出之前就已經(jīng)出現(xiàn)了幾個具有代表性的工作:(1) Peters 等人[37]的工作是將預訓練思想與雙向語言模型相結合,使用Jozefowicz 等人[80]采用的CNN-BIG-LSTM 網(wǎng)絡,并加入高速公路網(wǎng)絡和層與層之間的殘差連接作為建模雙向語言模型的結構,其兩個方向的LSTM 之間的參數(shù)是非共享的.ELMo 模型的思想本質(zhì)上是一種自回歸語言模型(autoregressive LM),雖然采用了雙向的LSTM,但只是對兩個方向的隱狀態(tài)進行了簡單拼接,沒有進行更高層次的融合,效果提升仍有較大空間;(2) Radford 等人[78]提出的GPT(generative pretraining)模型就采用了無監(jiān)督預訓練-監(jiān)督微調(diào)的兩段式方法,使用堆疊Transformer 作為Decoder.GPT 模型同樣是典型的自回歸語言模型,雖然沒有采用雙向建模思想,但在預訓練的基礎上使用Transformer 作為基本結構,Transformer 在長距離依賴問題上的表現(xiàn)明顯好于LSTM,這也使得雖然GPT 沒有采用雙向建模的思想,但性能表現(xiàn)依然超過了ELMo 模型.而后,OpenAI 團隊繼續(xù)對GPT 進行擴展,提出了GPT-2 模型[81],將堆疊Transformer層數(shù)提升至48 層,模型總參數(shù)量達到了15 億,并且將Caruana 提出的多任務學習(multitask learning)[82]思想融入其中.GPT-2 的問題在于沒有改變其本質(zhì)是自回歸語言模型的問題,由于采用單向Transformer 對上下文建模能力不足,因此其主要的性能提升來自于多任務預訓練、超大規(guī)模數(shù)據(jù)集和超大規(guī)模模型的共同作用.
可以看到,在預訓練語言模型研究初期,研究人員對上文提到的基本理論進行了融合.因而BERT 的橫空出世也就并非偶然,其實質(zhì)上是前人研究思想的集大成者,下一節(jié)我們將對BERT 模型的原理和影響進行概述.
3.2.2 來自Transformer 的雙向編碼表示(BERT)
Bidirectional Encoder Representations from Transformers(BERT)是Devlin 等人[35]提出的工作,由于GPT 模型僅使用了從左至右的單向語言模型,在語言建模的過程中某一個單詞出現(xiàn)的分布不僅與其上文有關,也與下文有較大的關聯(lián),因此雙向語言模型在BERT 提出后成為后續(xù)方法的基本思想,并使用隱蔽語言模型和下一句預測(next sentence prediction,簡稱NSP)兩個預訓練目標,其中的NSP 任務本質(zhì)上來自于Word2Vec 的負采樣技術.BERT 采用堆疊多層雙向Transformer 作為網(wǎng)絡基本結構,使用WordPiece 分詞器[83],模型輸入由單詞嵌入、分段嵌入和位置編碼嵌入3 部分組成.
BERT 的創(chuàng)新點在于使用雙向Transformer 作為特征抽取器,彌補了ELMo 和GPT 的遺憾,另一方面,在預訓練階段引入的兩個目標任務對于建模上下文表示以及共現(xiàn)信息有一定貢獻.但是其中的不足同樣是不可忽視的:雙向Transformer 結構沒有擺脫自編碼模型的桎梏,其龐大的模型規(guī)模對于低計算資源的設備極不友好,難以部署和應用;預訓練中的隱蔽語言建模會導致與微調(diào)階段模型輸入不一致,使得模型性能不能完全得以釋放.
本節(jié)將對BERT 提出后,研究人員對預訓練模型所作的改進進行闡述和分析.目前,對預訓練語言模型的改進主要集中在兩個方向:一方面是針對原BERT 模型中的MLM 以及NSP 任務進行擴展或者替換;另一方面則是對模型的網(wǎng)絡結構進行改進,以使模型學習到更豐富的表示.
3.3.1 對訓練目標進行改進
Cui 等人[84]提出BERT-全詞隱蔽(BERT-whole word masking,簡稱BERT-WWM)模型,提出在中文領域BERT 的預訓練過程中如果按照原始的MLM 訓練目標,隨機地對字進行隱蔽會造成語義信息的損失,進而提出全詞隱蔽訓練目標.在隱蔽過程中,按照詞語級完成隱蔽.舉例來看,假設輸入序列為“使用語言模型來預測下一個詞的概率”,原始MLM 可能會隱蔽為“使用語言[MASK]型來[MASK]測下一個詞的[MASK]率”,使用WWM后則變?yōu)椤笆褂谜Z言[MASK][MASK]來[MASK][MASK]下一個詞的[MASK][MASK]”.這一訓練目標可以在一定程度上迫使模型對詞語內(nèi)部的共現(xiàn)信息進行學習,進而獲得表示能力更好的模型.
Yang 等人[38]提出BERT 中存在訓練和微調(diào)階段輸入不一致導致性能損失的問題,通過引入排序語言模型和雙流自注意力機制(two-stream self-attention),對BERT 進行了改進.在排序語言模型中,對輸入序列采用不同的分解順序,以使模型獲取不同的上下文信息.同時,為了保證預訓練和微調(diào)階段的一致性,引入雙流自注意力機制.通過注意力隱蔽矩陣使模型在對當前位置的單詞進行預測時,只能“看到”上下文和給定的位置信息,而在預測下一個位置的單詞時,可以獲得上一個單詞的位置信息和內(nèi)容信息.并且,為了避免對輸入序列全排列后進行預測帶來的巨大計算開銷和優(yōu)化問題,在實現(xiàn)時,僅讓模型預測順序重排后序列的最后部分單詞.在網(wǎng)絡結構方面,與已有工作不同,Yang 等人提出的模型采用Transformer-XL[85]作為基本單元,是Transformer 的改進模型,為了改進Transformer 模型存在的上下文分段問題,即對源文檔分段輸入模型的過程中難以準確分句的問題,導致輸入模型片段可能不是一個完整的句子,導致模型表示出現(xiàn)問題.Transformer-XL 提出在訓練時引入記憶機制,將上一個分段編碼后的表示存入記憶中,并加入到當前分段的編碼計算中.這一模型的提出是排序語言模型在預訓練語言模型中的首次應用,它結合了自回歸思想與自編碼思想的優(yōu)點,使預訓練模型從簡單單向拼接朝著實質(zhì)雙向建模的方向演進,并且,Transformer-XL 結構的加入,使得模型在長文本任務中的性能提升較為顯著.
Liu 等人[86]提出了一系列針對BERT 訓練過程中存在問題的改進模型RoBERTa,其使用了更大的批量規(guī)模和無監(jiān)督文本數(shù)據(jù),在處理文本輸入時,與BERT 不同的是,采用了字節(jié)對編碼(byte pair encoding,簡稱BPE)[87]進行分詞.在目標任務中移除了NSP 任務,并且采用了動態(tài)隱蔽策略(每次的輸入序列都使用不同的隱蔽模式,即使兩次輸入序列相同其隱蔽模式也不同).其所提出的BERT 設計選擇和訓練策略,對后續(xù)模型的參數(shù)調(diào)整有顯著幫助.
Joshi 等人[88]在RoBERTa 的基礎上提出了SpanBERT 模型,同樣采用了動態(tài)隱蔽的思想并去除NSP 任務,同時還提出小段隱蔽(span mask)和小段邊界目標任務(span boundary objective,簡稱SBO),即在隱蔽時對一定長度的單詞進行隱蔽.小段邊界的目標任務是給定被隱蔽小段兩端的單詞,通過兩端的單詞和被隱蔽部分的位置向量恢復被隱蔽的所有單詞.在訓練時,借鑒了RoBERTa 模型中提出的動態(tài)隱蔽策略,而不是在數(shù)據(jù)預處理時就進行隱蔽.實驗結果表明,這一方法在GLUE 基準測試中的自然語言推理和抽取式問答任務中效果提升顯著.在XLNet 中,模型通過PLM 來顯式地學習被隱蔽詞之間的關系,而在SpanBERT 中,這種關系的學習是通過被遮蓋掉部分本身的強相關性,隱式地學習到的.
Dong 等人[89]提出了UNILM 模型,這一模型可以看作是前述方法的集大成之作,在預訓練目標任務中,采用了3 種語言模型目標任務:(1) 雙向語言模型,即BERT 模型所采用的方式;(2) 單向語言模型(unidirectional LM),這一目標在ELMo 和GPT 模型中被采用;(3) 序列到序列語言模型,這一目標任務是由Song 等人[90]提出的.通過自注意力層的掩碼機制,UNILM 可以在預訓練過程中同時完成3 種目標任務的訓練.在訓練中,UNILM 采用SpanBERT 中提出的小段隱蔽策略,模型的損失函數(shù)由以上3 種預訓練任務的損失函數(shù)共同構成,并且為了保持損失函數(shù)各部分貢獻的一致性,3 種目標任務在訓練時訓練相同的時間.多種目標任務的建模和參數(shù)共享使得語言模型在自然語言理解和生成任務上都具有較好的泛化能力.
Sun 等人[91]在ERNIE 的基礎上提出了2.0 版本,提出了多達7 種的預訓練任務,覆蓋單詞級、句子級以及語義級3 個方面,并將持續(xù)學習的思想加入到這一框架中,使上一個訓練任務中的知識可以被保留,進而讓模型獲得更長距離的記憶.在模型架構方面,ERNIE 同樣使用Transformer Encoder 作為編碼器,但與BERT 的模型輸入不同,ERNIE 還引入了任務嵌入,使模型在持續(xù)學習過程中能夠區(qū)分不同任務.類似地,Wang 等人[92]同樣提出了單詞級以及句子級的訓練目標.單詞級訓練目標在MLM 的基礎上引入了排序語言模型[38]的思想,輸入序列中的單詞一部分被隱蔽,而后選擇序列中任意trigrams 作為子序列,將trigrams 中的單詞打亂順序后輸入模型,使模型學習如何恢復trigrams 的順序.并且,Wang 等人還對NSP 任務也進行了改進,對于給定的句子對(S1,S2),將預測目標分為3 類:(1)S2是S1的下一個句子;(2)S2是S1的上一個句子;(3)S2隨機采樣自另一個文檔,與S1沒有上下文關系.上述改進使模型在自然語言推理任務上的性能提升明顯.
最近,Clark 等人[93]提出了ELECTRA 模型,為解決MLM 任務難度低、無法讓模型深層次地捕獲語義信息的問題,模型采用生成對抗網(wǎng)絡(generative adversarial network,簡稱GAN)[94]的思想,由一個生成器(generator)和一個判別器(discriminator)組成,采用MLM 作為生成器,訓練中生成器將被隱蔽的單詞恢復,輸入到判別器中,判斷每個單詞是原始輸入的還是由生成器生成的,通過這樣的方式完成學習.實驗結果表明,在相同模型規(guī)模和數(shù)據(jù)量的情況下,這一目標任務更加高效,表示能力更強.在訓練過程中還進行了權值共享,模型的損失函數(shù)由下式表示:
實際上,ELECTRA 模型可以看作是帶有負采樣的CBOW 模型的大規(guī)模版本,將CBOW 模型中的BOW 編碼器替換成為Transformer,將基于unigram 的負采樣替換成為基于MLM 生成器的負采樣方法,并且把目標任務定義為判斷輸入單詞是否來自數(shù)據(jù)的二分類任務.ELECTRA 模型與上文中論述的方法相比,最顯著的區(qū)別在于預訓練目標任務從生成式的學習方法改進成為判別式的學習方法,模型不再需要恢復被隱蔽的字符或者單詞,而是判斷字符或單詞是否被替換過,使模型具有更高的計算效率和參數(shù)效率.
此外,Raffel 等人[95]將遷移學習的思想融入到預訓練語言模型中,將所有自然語言問題轉換為文本-文本(text-to-text)形式.使用隱蔽語言模型思想作為預訓練目標,在對輸入序列隱蔽時,采用Joshi 等人[88]提出的小段隱蔽策略,形成了一個面向各種下游任務的訓練框架,由于其龐大的模型規(guī)模和預訓練數(shù)據(jù)集,在某些任務中取得了目前非常好的效果.
目前,對預訓練模型的改進主要集中在提出新訓練目標任務的方向上.Liu 等人[86]提出的一系列訓練策略和微調(diào)方法,被廣泛應用于后續(xù)的研究中.文獻[93]首次將生成對抗的思想引入到預訓練過程中.由于對GAN 的研究還不夠深入,訓練過程中存在梯度難以在生成器和判別器間傳遞的問題,還需要新的損失函數(shù)或訓練方法的研究.Sun 等人[91]和Raffel 等人[95]的工作表明,持續(xù)學習和遷移學習的思想有助于模型在不同類任務中同時獲得性能上的提升.
3.3.2 對網(wǎng)絡結構進行改進
原始的BERT 模型采用的是Seq2Seq 框架中Encoder 這一部分,Song 等人[90]提出隱蔽序列到序列預訓練方法(masked sequence to sequence,簡稱MASS),在訓練中對編碼器的輸入序列隨機隱蔽長度為k的連續(xù)片段,通過解碼器部分將被隱蔽片段恢復,損失函數(shù)如下:
其中,χ為訓練集,x為輸入序列,xu:v表示x中從位置u到v的一段,xu:v表示x中第u到第v個位置被隱蔽.
由于BERT 只訓練一個編碼器用于自然語言理解,而GPT 模型訓練的是一個解碼器.在自然語言生成任務中,以上兩種模型只能分開預訓練編碼器和解碼器,因此,編碼器-注意力-解碼器沒有被聯(lián)合訓練,注意力機制也不會被預訓練,而解碼器對編碼器的注意力機制在這類任務中非常重要,因此,BERT[35]和GPT[78]在語言生成任務中的表現(xiàn)弱于MASS.
同樣,Lewis 等人[96]提出的BART 模型也采用了編碼器-解碼器的結構,編碼層采用雙向Transformer,其本質(zhì)依然是降噪自編碼器的思想.在預訓練目標任務中,使用了5 種加入噪聲的模式:(1) 單字隱蔽;(2) 單字刪除;(3) 跨度隱蔽;(4) 句子重排;(5) 文檔重排.在編碼器部分,序列在輸入編碼器之前就已進行了隱蔽,經(jīng)過編碼器編碼后,解碼器根據(jù)編碼器輸出的編碼表示和未被隱蔽的序列恢復原始序列.一系列噪聲模式的加入使得BART 在序列生成和自然語言推理任務上的表現(xiàn)提升得很明顯.
3.3.3 模型對比
表1 總結和對比了目前主流預訓練語言模型所使用的模型結構、預訓練目標任務以及所得到的GLUE 測試分數(shù).表2 則給出了主流模型在GLUE 中各下游任務上的詳細性能表現(xiàn).由表1 和表2 可以看到,截止至2019年12 月29 日,GLUE 得分最高的ERNIE(百度)模型[91],與其最初發(fā)布的性能相比,在CoLA、RTE 和WNLI 這3個任務上獲得了巨大的提升,提升幅度最大達到了26.7,這與其整體的模型設計是分不開的.ERNIE(百度)模型采用了持續(xù)學習的思想,并可以不斷引入更多以及更新穎的預訓練任務,其最早提出的3 個層次共7 項預訓練目標任務就從不同方面捕獲單詞級、句子級以及語義級的內(nèi)隱信息,同時還引入了種類更為豐富的無監(jiān)督訓練語料.XLNET[38]、ELECTRA[93]以及T5 模型[95]的優(yōu)異性能表現(xiàn)也證明,更大規(guī)模的數(shù)據(jù)對于模型的提升是有顯著作用的.從STS-B 任務各模型的表現(xiàn)來看,XLNET 與ALICE[92]兩個模型取得了最為出色的成績,而兩個模型在預訓練目標中均采用了排序語言模型的思想,這表明,順序重排目標有利于模型學習自然語言中語義相似度問題中的內(nèi)隱信息.
Table 1 Comparison of improved method表1 BERT 的改進方法比較
Table 2 Performance comparison of improved models表2 改進模型的性能比較
從WNLI 任務來看,除ERNIE(百度)外,表現(xiàn)最好的模型分別是T5、XLNET 和ALICE.T5 模型是通過以110億參數(shù)為代價獲得93.2 分的成績的,其參數(shù)量更小的版本性能表現(xiàn)均顯著低于XLNET 和ALICE.而且值得注意的是,在同為自然語言推理任務的MNLI 和RTE 測試中,XLNET、ALICE 和BART[96]模型的得分十分接近.在MPRC 和QQP 兩個任務中,也可以觀測到上述現(xiàn)象,XLNET 與ALICE 的表現(xiàn)均較為優(yōu)異且分數(shù)相近,而且BART 方法中提出的5 種訓練目標中也有類似重排的任務,可知排序思想在訓練模型的推理能力上作用顯著.
從T5 模型在CoLA 即語言接受性任務的表現(xiàn)以及在該任務中T5 模型的縱向對比來看,更大規(guī)模的參數(shù)量使得T5 在CoLA 任務上從41.0 提升至了70.8,這一過程以龐大的參數(shù)規(guī)模為代價,而與XLNET 與ALICE 橫向對比可以看到,更大規(guī)模的參數(shù)量和無監(jiān)督訓練數(shù)據(jù),并不能使T5 模型在該任務中獲得進一步有效的性能提升,由于這一測試任務的特殊性,未來,研究人員應從更為新型的預訓練目標或在順序重排任務的基礎上進行改進,以獲得提升.
總結來看,更大的參數(shù)量和數(shù)據(jù)集規(guī)模對模型的性能提升是具有積極意義的,但其提升幅度有限.排序思想在語言接受性和自然語言推理任務上的貢獻顯著,在未來研究針對推理任務的語言模型時,使用排序思想的預訓練目標將會獲得較好的性能.持續(xù)學習思想和更多層次的預訓練任務是目前預訓練語言模型改進的關鍵.
目前,主流預訓練語言模型都采用預訓練-微調(diào)兩階段的思路進行應用,因而在預訓練階段需要大規(guī)模的無監(jiān)督數(shù)據(jù)對模型進行預訓練.在英文領域,由于國外對預訓練語言模型的研究起步較早,因此無論是預訓練數(shù)據(jù)集還是基準測試都已經(jīng)較為完善.但在中文領域,因為研究起步較晚,預訓練數(shù)據(jù)集和基準測試任務還未能形成固定形式,不同模型間采用的訓練數(shù)據(jù)和測試任務不盡相同.
4.1.1 常用預訓練數(shù)據(jù)集
在英文領域,預訓練階段主要采用以下4 個數(shù)據(jù)集.
BooksCorpus[97]:圖書語料庫最初是研究人員為研究句子相似度而從網(wǎng)絡上爬取收集形成的數(shù)據(jù)集.該數(shù)據(jù)集中共包含有16 個種類的11 038 本圖書,總單詞數(shù)達到了9.8 億個,詞匯表數(shù)目為131 余萬個,該語料庫與英文維基百科(English Wikipedia)語料是當前主流方法中最為常用的語料數(shù)據(jù).
English Wikipedia:英文維基百科數(shù)據(jù)是由維基百科官方定期更新和發(fā)布的,其格式為Web 文本原始數(shù)據(jù),需進行預處理.目前多數(shù)模型采用的是共計25 億個單詞的版本.
Giga5[98]:全稱為English Gigaword Fifth Edition,這一數(shù)據(jù)集由語言數(shù)據(jù)聯(lián)合會(Linguistic Data Consortium,簡稱LDC)所提出,共包含有來自法新社、美聯(lián)社、紐約時報和新華社的400 萬篇新聞文章.
ClueWeb 2012-B[99]:該語料數(shù)據(jù)是在ClueWeb09 的基礎上擴展而來的,由7.33 億個英文網(wǎng)頁構成,主要來源于對Web 網(wǎng)頁、推特鏈接和維基旅行的爬取.
在中文領域,由于提出的方法還較少,所采用的訓練數(shù)據(jù)集種類還不統(tǒng)一,BERT-WWM 模型[84]中采用的是維基百科定期發(fā)布的Wikipedia dump 語料,預處理后共計1 360 萬行文本.在ERNIE(百度)模型[91]中則使用了百科、新聞、對話和信息檢索領域的語料.
4.1.2 中文和英文基準測試
在中文的基準測試任務中,同樣由于研究起步較晚的原因,并未形成類似于英文中GLUE 等成型的測試數(shù)據(jù)集,對基準測試數(shù)據(jù)的選擇還存在一定分歧,主要有7 類測試任務,名稱和任務內(nèi)容見表3.
Table 3 Chinese benchmark task表3 中文基準測試任務
目前,以上7 類測試任務常用數(shù)據(jù)集如下.
機器閱讀理解(machine reading comprehension,簡稱MRC):CMRC 2018[100]、DRCD[101]、DuReader[102]、CJRC(http://cail.cipsc.org.cn);
命名實體識別(named entity recognition,簡稱NER):MSRA-NER(SIGHAN 2006)[103]、People Daily(https://github.com/ProHiryu/bert-chinese-ner/tree/master/data);
自然語言推斷(natural language inference,簡稱NLI):XNLI[104];
情感分析(sentiment analysis,簡稱SA):ChnSentiCorp(https://github.com/pengming617/bert_classification)、Sina Weibo(https://github.com/SophonPlus/ChineseNlpCorpus/);
語義相似度(semantic similarity,簡稱SS):LCQMC[105]、BQ Corpus[106];
問答(question answering,簡稱 QA):NLPCC-DBQA(http://tcci.ccf.org.cn/conference/2016/dldoc/evagline2.pdf);文檔分類(document classification,簡稱DC):THUCNews[107].
Table 4 Chinese benchmark dataset表4 中文基準測試任務數(shù)據(jù)
下面對表4 中給出的數(shù)據(jù)集作一簡要介紹.
CMRC 2018:中文機器閱讀理解(Chinese machine reading comprehension)是用于機器閱讀理解測試的抽取式理解數(shù)據(jù)集,由中國中文信息學會、科大訊飛和哈爾濱工業(yè)大學共同發(fā)布.
DRCD:Delta 閱讀理解數(shù)據(jù)集(Delta reading comprehension dataset,簡稱DRCD)同樣是提取式閱讀理解數(shù)據(jù)集,由三角洲研究所(Delta Research Institute)發(fā)布.
DuReader:這是一個大規(guī)模的現(xiàn)實世界中文數(shù)據(jù)集,用于機器閱讀理解和問答,由百度在ACL 2018 上發(fā)布.數(shù)據(jù)集中的所有問題均采樣自現(xiàn)實中匿名用戶的搜索請求,相應的回答由人工生成.
CJRC:包含有是/否問題、無答案問題和跨度提取問題.數(shù)據(jù)來自于中國法律判決文件.
MSRA-NER(SIGHAN 2006):由微軟亞洲研究院發(fā)布.
People Daily:爬取自《人民日報》官方網(wǎng)站.
XNLI:這是目前被廣泛使用的用于NLI 任務的數(shù)據(jù)集.
ChnSentiCorp:包括多個領域的評論文本,例如酒店、書籍和電子產(chǎn)品.
Sina Weibo:收集自新浪微博,包含積極和消極兩種情感極性.
NLPCC-DBQA:于2016 年在NLPCC 上發(fā)布.
LCQMC:由哈爾濱工業(yè)大學在COLTING 2018 上發(fā)布.
BQ Corpus:由哈爾濱工業(yè)大學和微眾銀行在EMNLP 2018 上發(fā)布.
THUCNews:由新浪新聞的文章構成,包含有多種類別,由清華大學自然語言處理實驗室發(fā)布.
在英文領域,對預訓練語言模型的基準測試已經(jīng)形成了規(guī)模,目前來看,主要由3 種基準測試組成:GLUE、SQuAD 和RACE.
GLUE:通用語言理解評估(general language understanding evaluation,簡稱GLUE)是目前在預訓練語言模型的測試中最為常用的評測數(shù)據(jù)集,其共包含有9 項任務,具體如下.
· CoLA:語言接受度語料庫(the corpus of linguistic acceptability)[108]包含來自23 種語言的10 657 個句子,CoLA 通常用于判斷句子是否符合語法規(guī)范.
· SST-2:斯坦福情感樹(the Stanford sentiment Treebank)[109]包含9 645 條電影評論,并帶有情感傾向注釋.
· MNLI:多類型自然語言推理(multi-genre natural language inference)[110]由43 萬個帶有文本蘊含信息注釋的句子對組成,通常用于文本推理任務.
· RTE:識別文本蘊含(recognizing textual entailment)[111]是類似于MNLI 的語料庫,同樣常用于自然語言推理任務.
· WNLI:Winograd 自然語言推理(Winograd natural language inference)[112]是捕獲兩個段落之間共指信息的數(shù)據(jù)集.
· QQP:Quora 問題對(Quora question pairs)(https://www.quora.com/q/quoradata/First-Quora-Dataset-Release-Question-Pairs),由超過40 萬個句子對組成,抽取自Quora 中的問答社區(qū).
· MRPC:Microsoft 釋義研究語料庫(Microsoft research paraphrase corpus)[113]包含從互聯(lián)網(wǎng)新聞中提取的5 800 個句子對,任務類型與QQP 任務類似.
· STS-B:文本語義相似度基準測試(the semantic textual similarity benchmark)[114],其中的文本來自圖片標題、新聞標題和論壇.
· QNLI:問題自然語言推理(question natural language inference)[115],其任務是判斷給定的文本對是否是問題-回答.
GLUE 中各測試數(shù)據(jù)集更為詳細的信息可見表5.
Table 5 GLUE dataset表5 GLUE 測試數(shù)據(jù)
SQuAD:斯坦福問答數(shù)據(jù)集(Stanford question answering dataset)是一個大規(guī)模的機器閱讀理解數(shù)據(jù)集,包含有兩個任務.SQuAD 1.1[115]中成對給出問題與對應的回答,數(shù)據(jù)集共包含10 萬個樣本,而SQuAD 2.0[116]中則加入了無回答問題,并將規(guī)模擴充至15 萬個.
RACE:RACE 數(shù)據(jù)集[117]包含來自初中和高中英語考試中抽取的近10 萬個問題,對應的回答由專家給出,是機器閱讀理解數(shù)據(jù)集中最具挑戰(zhàn)性的一個.RACE 中文本平均長度大于300,比其他閱讀理解數(shù)據(jù)集(如SQuAD)序列更長.
目前,在預訓練語言模型的訓練數(shù)據(jù)和基準測試方面,英文領域中訓練數(shù)據(jù)和測試任務已經(jīng)形成了較為完善的規(guī)模,研究人員提出的不同方法所使用的無監(jiān)督數(shù)據(jù)和基準測試基本上是一致的,有利于后續(xù)研究人員比較其性能表現(xiàn)和進一步分析.而在中文領域,由于研究起步較晚,無監(jiān)督數(shù)據(jù)和基準測試仍不夠完善,尚未形成相對固定的數(shù)據(jù)集.不同方法間的性能比較和分析較為困難,還需要研究人員收集和處理以形成較為規(guī)范的訓練和測試數(shù)據(jù)集.下一節(jié)將對未來基于深度學習語言模型的研究趨勢進行分析和展望.
在構建語言模型時,首先對模型在大規(guī)模的語料庫上進行預訓練過程,最早在Word2Vec 模型[42]中就已經(jīng)得到了應用,并且表明預訓練過程對于語言模型的魯棒性有著較大的幫助.BERT 模型[35]一經(jīng)問世,其在GLUE基準測試中的優(yōu)異表現(xiàn),使得無監(jiān)督文本預訓練結合下游任務微調(diào)成為了目前神經(jīng)語言模型的主流思路.不僅如此,在該模型提出后,基于深度學習語言模型的研究成為了NLP 領域的新熱潮.從對預訓練模型的蒸餾、量化、剪枝,探索大規(guī)模語言模型在邊緣計算設備上部署的可能性,到一系列多模態(tài)、跨語言模型的提出,對預訓練語言模型的不斷研究,推動NLP 應用朝著高性能、高魯棒性、高可部署性的方向發(fā)展起到了至關重要的作用.本節(jié)旨在概述當前預訓練語言模型中先有的變體模型以及與其他領域的融合方法.
自GPT、BERT 等一系列使用Transformer 作為特征抽取器的語言模型出現(xiàn)后,其巨大的模型規(guī)模使得語言模型的訓練和預測都面臨著計算資源和時間上的高度消耗,導致語言模型在邊緣設備和低計算資源設備上的部署和應用難以實現(xiàn),限制了預訓練技術在實際應用中的作用.目前,預訓練語言模型規(guī)模壓縮主要有3 種方法:(1) 知識蒸餾;(2) 參數(shù)量化;(3) 網(wǎng)絡剪枝.本節(jié)將對此加以概述.
5.1.1 知識蒸餾
知識蒸餾[118]實質(zhì)上就是一個“教學”過程,旨在將大規(guī)模網(wǎng)絡模型T中蘊含的知識轉移到小規(guī)模模型S中,使模型S盡可能地模仿T的行為,記f T和f S為兩模型的行為函數(shù),則知識蒸餾的目標就是最小化如下目標函數(shù):
其中,L(·)為計算兩模型行為差別的損失函數(shù),x表示模型輸入,X表示訓練集.
Tang 等人[119]首先對BERT 的蒸餾進行了探索,將BERT 中的特定任務知識遷移到了一個單層雙向LSTM當中,使用均方差(mean-squared-error,簡稱MSE)作為蒸餾目標函數(shù),并采用多種數(shù)據(jù)增強方法對訓練集擴充以保證知識蒸餾的高效性.在測試中取得了與ELMo 相媲美的成績且參數(shù)量相較于ELMo 縮小了98 倍,推理速度提升了15 倍,這也表明,在大規(guī)模模型的指導下,淺層網(wǎng)絡模型依然具有較強的學習和建模能力;Sun 等人[120]提出PKD(patient knowledge distillation)方法,即從“教師”模型的隱藏層中抽取內(nèi)隱知識而不只是讓“學生”模型模仿其輸出,使用兩種策略:一種是PKD-Last,使用“教師”模型的最后k層中蘊含的知識;另一種是PKD-Skip,將“教師”模型中每k層中的知識進行抽取和蒸餾.圖2 展示了上述兩種蒸餾策略(使用PowerPoint 繪制),圖中CE Loss表示交叉熵損失,DS Loss 表示兩模型輸出距離函數(shù),PT 為隱藏層距離函數(shù).結果表明,PKD 方法可以有效地減少由于蒸餾帶來的性能損失,但是較為遺憾的是,這一方法模型在壓縮和推理時間上取得的提升不是很顯著.Turc等人[121]提出一種預訓練蒸餾(pre-trained distillation,簡稱PD)方法,首先使用無監(jiān)督數(shù)據(jù)在小規(guī)?!皩W生”模型上進行預訓練,而后使用與監(jiān)督數(shù)據(jù)分布類似的遷移數(shù)據(jù)將“教師”模型知識蒸餾至“學生”模型,最后使用監(jiān)督數(shù)據(jù)進行微調(diào),這一方法是蒸餾思想在預訓練語言模型中又一有效的探索.與之前工作不同的是,其在預訓練階段就對模型進行蒸餾,將會對后續(xù)的研究給予更多的啟發(fā);Jiao等人[122]對PKD方法進行了更深一步的研究并提出了TinyBERT 模型,對預訓練和微調(diào)過程中涉及到的嵌入層、注意力層、隱藏層和預測層均進行了蒸餾操作,并采用數(shù)據(jù)增強方法對微調(diào)階段使用的監(jiān)督數(shù)據(jù)進行擴充,在盡可能保證性能損失較小的同時讓模型規(guī)模以及推理時間均有顯著提升.
Fig.2 Two policies of PKD model schematic diagram[120]圖2 PKD 方法兩種策略示意圖[120]
Liu 等人[123]針對MT-DNN 模型[124]進行了知識蒸餾的研究,由于MT-DNN 是一種多任務集成學習的預訓練語言模型,集成學習方法在泛化能力上有著較好的表現(xiàn),但其巨大的規(guī)模和訓練時間無法進行線上部署,對其進行蒸餾后的小模型可以保留良好的泛化能力并易于線上部署.對每個任務訓練由多個神經(jīng)網(wǎng)絡形成的集成學習模型,作為“教師”模型,將訓練集中的正確標注結果命名為hard targets,相應地,將“教師”模型生成一系列預測結果,稱為soft targets,使用hard targets 與soft targets 聯(lián)合訓練“學生”模型,以保證其泛化能力不受模型規(guī)模的影響,其結果表明,在某些任務上蒸餾后模型的表現(xiàn)好于未蒸餾的模型.Yang 等人[125]也采用了類似思路,將多任務學習與知識蒸餾相結合,提出了兩階段多教師知識蒸餾(two-stage multi-teacher knowledge distillation,簡稱TMKD)方法.在問答系統(tǒng)任務中使用多個關聯(lián)任務以及不同的超參數(shù)訓練多個“教師”模型,將“教師”模型中的知識分為預訓練-微調(diào)兩個階段蒸餾至“學生”模型中,該方法在推理速度上有顯著提升.Liu 等人[126]結合前述工作的思想,使用共享層預訓練和多任務學習方法,將BERT 蒸餾到帶注意力機制的雙向LSTM 上,提出BNN(biattentive student neural network)模型,在推理時間和性能上做到了較好的平衡.
除上述提到的知識蒸餾模型外,Xu 等人[127]針對目前知識蒸餾方法存在“學生”模型對“教師”模型質(zhì)量依賴程度較高的問題,對知識蒸餾的思想進行了擴展,提出 Theseus 壓縮方法.在訓練過程中對原始模型中的Transformer 層進行替換,并減少替換后Transformer 的層數(shù),完成規(guī)模壓縮.實驗結果顯示,其表示能力保留程度達到了98%,但在模型壓縮程度方面還有一定差距.
5.1.2 參數(shù)量化
量化(quantization)實際上就是通過將模型中高精度(32bit 等)矩陣轉換為低精度(8bit 等),在矩陣運算以及激活函數(shù)等部分中使用低精度來加速推理時間并降低模型對存儲空間的要求.量化方法在計算機視覺領域已經(jīng)有了較為廣泛的應用和深入的研究,但在NLP 領域,由于GPT、BERT 等語言模型提出之前,語言模型的大小和推理速度是相對可接受的,因此量化方法在預訓練語言模型中的工作不夠深入.
Cheong 等人[128]最先對Transformer 結構的量化方法進行了研究,對兩種主流的量化算法:K-means 量化算法[129]和二值量化算法[130]在Transformer 中的實現(xiàn)進行了探索.在K-means 量化算法中,將權重矩陣使用聚類后的簇心索引替換,并使用表格來映射索引和值.在二值量化方法中,保留原始權重,并在前向計算時將權重中的實際值用兩個隱蔽值加以替換.在實驗中,K-means 方法保留了98.43%的性能表現(xiàn)并獲得了5.85 倍的壓縮效果,二值化方法的性能損失較為嚴重,相應獲得了巨大的壓縮比例.但比較遺憾的是,以上兩種方法都屬于“偽量化”方法,在實際運算中依然使用完整精度進行計算,因此在推理速度上沒有得到提升.
Shen 等人[131]基于Hessian 信息提出了一種分組處理的混合精度量化方法,使用Hessian 信息對BERT 中的各層行為進行分析,提出基于最高特征值的均值和方差的靈敏度測量方法.在分組處理中,對多頭注意力層中的矩陣進行分組,為不同組設定不同的量化范圍和查找表,在權重矩陣上獲得了13 倍的壓縮率,激活層和嵌入層縮小了4 倍,同時其性能損失僅為2.3%.Zafrir 等人[132]使用對稱線性量化方法,將權重矩陣和激活函數(shù)量化至8bit 整數(shù),并對全連接層和輸入層中的所有矩陣乘法操作進行了量化,內(nèi)存空間縮小了4 倍且保留了99%的性能表現(xiàn).這一方法在模型規(guī)模和推理速度上均獲得了提升且性能損失最小,也表明,在預訓練語言模型的量化研究上,將量化方法應用至計算過程中將是提升推理速度的主要方法,但是對量化策略仍需更深層次的探索.
5.1.3 網(wǎng)絡剪枝
剪枝(pruning)方法旨在對大規(guī)模模型中的權重連接、神經(jīng)元或者權重矩陣取其精華去其糟粕,將不活躍或對模型影響低的結構予以去除,在保證性能的條件下縮小模型規(guī)模.目前主要有3 種思路的剪枝方法:(1) 權重連接剪枝:根據(jù)權重大小或其他判定條件,去除層與層之間部分神經(jīng)元的連接,通過對加速稀疏矩陣的運算來完成模型加速;(2) 神經(jīng)元剪枝:通過打分函數(shù),對網(wǎng)絡中神經(jīng)元對輸出的貢獻進行量化,去除貢獻低的神經(jīng)元以壓縮模型規(guī)模;(3) 權重矩陣剪枝:其主要思路與以上兩種方法類似,這里不再贅述.
Voita 等人[133]對Transformer 中多頭注意力機制的作用和冗余性進行了研究,基于Louizos 等人[134]對網(wǎng)絡權重剪枝的方法,對Transformer 中的注意力頭采用一種基于隨機門和寬松L0乘法項的方法進行剪枝.在英語-俄語翻譯任務中,即使去除了48 個頭中的38 個,在基準測試中性能的影響也微乎其微.Michel 和Levy[135]同樣對這一問題進行了研究,提出一種基于貪心算法的剪枝策略,這一方法表明,在去除20%~40%的注意力頭時,對性能的影響較低,在某些層中甚至只是用單頭注意力就可以達到未剪枝前的效果.Fan 等人[136]提出LayerDrop方法,在訓練階段使用全規(guī)模的網(wǎng)絡并對多頭注意力層中的權重隨機Drop,在測試階段對網(wǎng)絡中的層數(shù)按照不同的策略隨機Drop,該方法的性能損失較小,但其模型的壓縮程度和推理速度的提升較為有限.McCarley[137]對前人的工作進行了更深入的改進,對BERT 中的注意力頭、隱藏層規(guī)模、嵌入層規(guī)模都進行了剪枝,提出門替換方法,使用不同的策略控制注意力層、隱藏層、嵌入層中激活的神經(jīng)元個數(shù),在保證性能損失較小的情況下,使得推理時間和空間占用都減少了近50%.
Guo 等人[138]提出了重加權近端剪枝(reweighted proximal pruning,簡稱RPP)方法,這一方法將重加權L1最小化方法[139]與近端算法[140]相融合,相較于NIP(new iterative pruning)方法達到了在59.3%剪枝率的情況下沒有增加性能損失的表現(xiàn).
除以上提到的蒸餾、量化和剪枝方法,矩陣分解以及參數(shù)共享同樣是常用的模型輕量化方法,Lan 等人[141]提出的ALBERT 模型中,就對嵌入層進行了矩陣分解,并對所有層的參數(shù)進行了共享,去掉了原始BERT 中的NSP 任務,并提出了新的段落順序預測目標任務.其參數(shù)量的壓縮效果顯著,推理速度的加速程度較為明顯,并且這一工作也證明了NSP 目標任務對語言模型的建模幫助不足,替換預訓練目標任務有助于性能的提升.
5.1.4 模型實驗比較
由于目前在網(wǎng)絡剪枝和參數(shù)量化方面的研究還不夠深入,已有方法對模型的性能測試還未形成固定模式,不同方法間使用的測試數(shù)據(jù)各不相同,難以對其性能進行定量的比較和分析,但是知識蒸餾在預訓練語言模型中的應用已經(jīng)較為深入和成熟,方法間性能測試部分基本上使用了相同的下游任務,有利于性能的比較和分析,本節(jié)將對主流知識蒸餾模型間的性能進行比較,并對改進后的性能表現(xiàn)加以分析.
由表6 和表7 的對比可知,ALBERT-xxlarge 模型[141]雖然參數(shù)量達到了233M,但與BERT-xlarge 模型1 270M的參數(shù)量及其優(yōu)異的性能表現(xiàn)相比,可以看出,ALBERT 模型所提出的方法,即嵌入層矩陣分解以及跨層參數(shù)共享并通過多任務聯(lián)合訓練,在多個下游任務中的表現(xiàn)超越了人類,并在QNLI 任務中取得了驚人的準確率,其性能表現(xiàn)甚至超過了很多未進行輕量化處理的模型.
Table 6 Comparison of knowledge distillation method表6 知識蒸餾模型方法比較
Table 7 Performance comparison of knowledge distillation language models表7 知識蒸餾語言模型性能表現(xiàn)對比
綜合來看,ALBERT 模型在各類自然語言推理任務上的表現(xiàn)已經(jīng)接近人類,而其他知識蒸餾模型則相對原始BERT 有著較大的性能損失.這也顯示出,目前的知識蒸餾方法盡管使用了不同形式的蒸餾策略以保證其性能,但是依然使模型的推理能力發(fā)生了劣化,要求研究人員需要對蒸餾策略進行改進,或者探索模型中影響推理能力的網(wǎng)絡結構保留其規(guī)模.另外,表7 中斜體加粗的指標表示除ALBERT 外各知識蒸餾模型在不同任務上表現(xiàn)最好的方法,可以看到,TinyBERT[122]以7.5 倍的模型壓縮率,在MNLI、QNLI 以及MPRC 這4 個任務上取得了與最好性能相當接近的表現(xiàn),在MNLI、QNLI 以及MPRC 上與最好性能相差分別僅為0.3/0.4、1.3 和0.4,并在QQP 數(shù)據(jù)集上取得了好于BERT 模型的效果.上述提到的任務基本上均為自然語言推理任務,這表明,TinyBERT 中所使用的預訓練-微調(diào)兩階段蒸餾方法,可以相對較好地保留模型的自然語言推理能力.其消融實驗也表明,特定任務蒸餾策略使模型推理能力得到了保留,并且表明,對Transformer 層的蒸餾是至關重要的,其性能貢獻非常巨大.BERT-PD[121]以及上述提到的方法亦證明,預訓練階段所進行的知識蒸餾對保留模型表示推理是必要的.此外,由各方法在SST-2 任務上的表現(xiàn)可以看出,蒸餾方法不會使模型在分類預測任務上的能力有較為顯著的降低,即使模型的規(guī)模被壓縮至原始BERT 的十分之一,其在情感分析中的性能依然是在可接受范圍內(nèi)的.還應注意的是,除ALBERT 外,知識蒸餾方法在CoLA 任務上的性能降低也是非常巨大的,這也是未來研究需要探索的方向.
將外源知識引入預訓練語言模型以獲得表示能力更豐富、魯棒性更強的語言模型,是目前語言模型研究領域的一個新課題.值得注意的是,Google 公司提出的知識圖譜技術在信息檢索及其他交叉領域已經(jīng)展現(xiàn)出了巨大的影響力.引入外源知識后形成的豐富表示將對下游任務中的情感分析、文本分類、關系抽取等任務帶來提升.
在非直接實體注入方面,Levine 等人[142]認為,BERT 出現(xiàn)后的一系列自監(jiān)督目標任務的改進方法,在運行方式上是相似的.但顯然,語言中部分單詞的含義具有多重性,Levine 等人的工作在單詞語義層面提出一種隱蔽語義訓練任務,模型需要預測缺失單詞的含義.在WordNet 的輔助下完成自監(jiān)督學習.該工作具有一定的啟發(fā)性,對后續(xù)預訓練語言模型訓練目標的改進給出了一種新方向.針對預訓練語言模型中獲取的知識僅來自于無監(jiān)督文本的問題,Lauscher 等人[143]提出將現(xiàn)實中的語義相似性信息融入到語言模型中,模型聯(lián)合訓練MLM、NSP與詞匯關系分類(lexical relation classifier,簡稱LRC)這3 個目標任務,讓模型學習語言中的同義詞和上下位詞知識,以提升模型表示能力.
清華大學的Zhang 等人[144]提出ERNIE(enhanced language representation with informative entities)模型,將知識圖譜中的實體知識與BERT 模型相結合,提出了結構化知識編碼以及異構信息融合問題的解決方法.為了對結構化信息進行編碼,采用知識嵌入方法(如TransE)先對知識圖譜進行編碼,然后作為ERNIE 模型的輸入.在訓練過程中,提出新的目標任務,對輸入文本中的實體隨機隱蔽,模型從知識圖譜中選擇正確的實體,完成實體與知識圖譜的對齊.Liu 等人[145]對知識圖譜引入預訓練語言模型后存在的異構嵌入空間和知識噪聲的問題提出了解決方法,將知識圖譜中的三元組注入到輸入文本中生成句子樹,然后把句子樹轉化為向量表示輸入到帶隱蔽矩陣的Transformer 中,緩解了異構表示空間帶來的問題.該工作所提出的帶隱蔽矩陣的Transformer 可以有效減低知識噪聲對文本語義的影響.
類似地,Wang 等人[146]將知識嵌入技術引入到預訓練語言模型中.但是,該模型的創(chuàng)新點在于,將知識嵌入任務與語言模型目標任務聯(lián)合訓練,并引入了負采樣技術,以加速模型收斂.
Peters 等人[147]同樣對將結構化知識編碼到BERT 中進行了探索,提出知識注意力與重語境化(knowledge attention and recontextualization,簡稱KAR)方法,將KAR 方法設計為一個單獨的處理層,接受上一層的輸出作為輸入,將輸入影射至實體維度中再進行實體鏈接,并采用多層感知機進行重語境化,將輸出繼續(xù)送入Transformer中.在實體分類、實體識別等任務中的性能表現(xiàn)較好.
BERT 的問世不僅對NLP 領域產(chǎn)生了巨大的影響,還出現(xiàn)了一系列的變種模型,多模態(tài)(cross-modal)學習的研究自BERT 提出后成為了一個研究新熱點,目前而言主要涉及視覺和文本兩種模態(tài)的融合.就目前多模態(tài)學習在預訓練語言模型中的研究進展而言,在網(wǎng)絡結構上可大致分為兩類:一類直接將視覺和文本流進行跨模態(tài)預訓練;另一類則是先對兩個模態(tài)編碼,然后再使用編碼后的表示進行跨模態(tài)融合.
5.3.1 直接跨模態(tài)學習
Sun 等人[148]提出VideoBERT 模型,這一模型是最先對預訓練語言模型在多模態(tài)學習任務中提出的工作,在訓練過程中使用YouTube 網(wǎng)站采樣到的視頻與對應字幕作為無監(jiān)督數(shù)據(jù),使用向量量化(vector quantization)方法對采樣到的視頻幀進行表示,將隱蔽模型作為目標任務(對輸入圖片轉化后的嵌入向量同樣進行隱蔽)跨模態(tài)訓練.
Alberti 等人[149]提出B2T2 方法,采用預訓練后的ResNet-152[150]作為視覺流的特征抽取器,并使用分塊檢測后的結果作為輸入而不是視頻幀,提出早期-晚期二階段模態(tài)融合方法,在早期融合階段,未將單獨的圖像作為序列輸入,而是在原始輸入中被隱蔽的單詞位置輸入了該詞提到的圖像區(qū)域塊特征.
Li 等人[151]提出的Unicoder-VL 模型實際上可以看作是以上提到的工作(VideoBERT 和B2T2)的融合,其網(wǎng)絡結構與預訓練任務基本上與VideoBERT 相同,視覺流則采用Faster R-CNN 識別后的區(qū)域塊特征作為模型輸入,與B2T2 相同,在隱蔽目標任務中,使用被隱蔽詞對應的視覺表示作為輸入.融合方法在部分任務中有性能提升,但其創(chuàng)新性一般,僅是兩個工作的簡單融合,對模態(tài)融合方式以及預訓練目標任務均沒有改進.Su 等人[152]在Unicoder-VL 的基礎上提出了VL-BERT 模型,其模型結構基本一致,但在輸入中將視覺流中的完整表示與文本的嵌入表示一同輸入到模型中.
Chen 等人[153]提出了UNITER 模型,在該工作中,建模方式與VideoBERT 方式相同,將抽取后的視覺流與文本流同時輸入到Transformer 中,在更大規(guī)模的數(shù)據(jù)集上進行了預訓練,并引入3 種訓練目標任務:隱蔽語言模型、隱蔽區(qū)域建模、圖文匹配任務.這一方法的性能提升主要來自于豐富的預訓練目標以及大規(guī)模的預訓練數(shù)據(jù)集,在網(wǎng)絡結構以及融合方式上基本無改進.
5.3.2 編碼后跨模態(tài)學習
Lu 等人[154]針對模態(tài)融合與預訓練的問題進行了改進,提出ViLBERT 模型,對圖片的處理沒有采用向量量化的方法,而是用監(jiān)督數(shù)據(jù)在Faster R-CNN 網(wǎng)絡[155]上進行預訓練,在模態(tài)融合階段提出雙流Co-attention Transformer 層,交換視覺流和文本流中的Key 和Value 矩陣以完成聯(lián)合訓練.引入隱蔽多模態(tài)學習任務和多模態(tài)對齊任務,在一系列多模態(tài)下游任務中得到了顯著提升.Sun 等人[156]繼續(xù)對之前提出的VideoBERT 進行了改進,認為向量量化會損失視覺流輸入中有效的信息,限制模態(tài)融合的性能,提出對比雙向Transformer(contastive bidirectional Transformer,簡稱CBT),對用S3D 框架[157]處理后的視覺流輸入采用對比噪聲估計方法進行預訓練.Tan 等人[158]提出LXMBERT 模型,與ViLBERT 相比,LXMBERT 在視覺流編碼后加入了Encoder 網(wǎng)絡,在預訓練過程中引入了多達5 種預訓練目標任務,性能提升顯著.
5.3.3 模型方法比較
表8 對比了目前跨模態(tài)語言模型的結構、視覺流輸入形式、預訓練目標任務以及對應微調(diào)時的下游任務.根據(jù)對比結果,將圖片區(qū)域分割識別后作為視覺流的輸入是目前以及未來主流的視覺流處理方式,從目前性能表現(xiàn)最好的UNITER 模型與LXMERT 模型對比結果來看,是否對視覺流和文本流使用Transformer 進行編碼和投影存在一定的爭議.LXMERT 在某些任務中的表現(xiàn)好于UNITER,但是UNITER 在預訓練過程中加入了豐富的目標任務.同時,UNITER 在Large(即更大規(guī)模的Transformer 以及堆疊層數(shù))模型的測試中,面對各項任務中的表現(xiàn)均好于當前已有方法,亦表明,現(xiàn)階段跨模態(tài)語言模型的性能提升主要來自于規(guī)模更大、類型更豐富的預訓練數(shù)據(jù)集,以及捕獲模態(tài)間內(nèi)在交互方式的預訓練目標任務.這其中的原因是,跨模態(tài)領域的數(shù)據(jù)集還不能像純文本模態(tài)語言模型那樣,擁有大量的無監(jiān)督數(shù)據(jù)可供模型學習.另一方面,與對BERT 所進行的一系列改進方法類似,層次更深入的目標任務可以使模型學習不同模態(tài)間的內(nèi)在聯(lián)系.
Table 8 Comparison of cross-modal method表8 跨模態(tài)方法比較
由于相當一部分自然語言的文本數(shù)據(jù)是低資源的,無法獲得大規(guī)模的無監(jiān)督文本數(shù)據(jù),自預訓練語言模型提出之后,研究人員開始探索預訓練模型能否學習不同語言間的一致性,使模型在低資源語言的下游任務上仍能保持良好的性能表現(xiàn).
緊隨multilingual BERT 之后,Lample 等人[159]也提出了跨語言模型(cross-lingual language model,簡稱XLM),模型中所有語言的字典通過BPE 方式生成,并被所有語言共享.在預訓練目標任務中除隱蔽語言模型外,Lample 等人提出了翻譯語言模型(translation language modeling,簡稱TLM),將對齊后的不同語言輸入到模型中,使模型學習語言間對齊的表示.該工作提出的TLM 目標任務對后續(xù)研究影響深遠,幾乎成為了跨語言模型中的基本目標任務.Wu 等人[160]在XLM 模型的基礎上,未對模型結構進行修改,僅在Encoder 部分中的一些層進行了參數(shù)共享;而后,Conneau 等人[161]在XLM 模型上進行了擴展,將語言數(shù)量擴展至100 種,并對訓練數(shù)據(jù)進行了大規(guī)模擴充,結果表明,語言種類數(shù)目和訓練數(shù)據(jù)規(guī)模同樣有可能限制跨語言模型的發(fā)揮.
Eisenschlos 等人[162]在ULMFiT模型的基礎上提出了MultiFiT 模型,并將原模型中LSTM替換為QRNN[163],獲得了16 倍的速度提升,在生成子詞字典時采用了文獻[164]中的方法,相較于BPE,更為靈活,并加入了標簽平滑算法(label smoothing)[165]和單周期余弦策略[166],將Bootstrapping 方法[167]作為跨語言訓練策略.
Huang 等人[168]提出Unicoder 模型,模型結構同樣基于XLM 模型,在預訓練目標任務上,提出了3 種新的任務:(1) 跨語言單詞恢復(cross-lingual word recovery),這一任務旨在讓模型學習如何對齊兩種語言的單詞;(2) 跨語言含義分類(cross-lingual paraphrase classification),讓模型判斷輸入的兩種語言的含義是否相同;(3) 跨語言隱蔽語言模型.
圖3 展示了目前預訓練語言模型的發(fā)展過程,本文在Wang 等人(https://github.com/thunlp/PLMpapers)工作的基礎上進一步對預訓練語言模型的發(fā)展過程和發(fā)展方向進行了梳理和分類.在研究早期,半監(jiān)督學習、端到端框架以及預訓練等思想的提出,為預訓練語言模型奠定了理論基礎.而后,ELMo 模型[37]創(chuàng)新性地采用了雙向語言模型,但沒有使用Transformer 網(wǎng)絡,所不同的是,GPT 模型[78]使用Transformer 作為特征抽取器,但卻只進行了單向語言建模.BERT[35]作為兩者的集大成者,同時提出了兩種訓練目標,取得了革命性的進展,在語言模型領域掀起了研究熱潮,一系列基于BERT 針對不同方向的工作被提了出來.從圖3(使用PowerPoint 繪制)來看,研究人員對其應用的各個方面進行了探索,上文中總結了預訓練語言模型的主要發(fā)展歷程和方向.關于模型輕量化,已經(jīng)取得了不錯的進展,TinyBERT[122]以及ALBERT[141]等模型的提出證明了模型輕量化與性能損失之間是可以達到平衡并得到進一步提升的.但是對于通過參數(shù)量化進行模型壓縮這一方法,量化后的模型性能損失較為嚴重,更好的量化策略亟待研究.而在跨語言、多模態(tài)融合以及知識融合方面,由于表示能力如此優(yōu)秀的模型(即BERT)僅提出1 年多的時間,相關的研究還不夠深入.用于訓練和測試的數(shù)據(jù)集還比較匱乏,不同語言、不同模態(tài)的知識相融合的方法還比較單一.對于外源知識,解決原始語言模型和外源知識表示空間不一致的方法還不夠好,仍然存在諸多需要解決的問題.在模型網(wǎng)絡結構和目標任務改進方面,已有不少相當優(yōu)秀的模型和方法被提出,例如XLNET[38]、ERNIE(Baidu)[91]以及ELECTRA[93]等,給后續(xù)的研究提供了啟發(fā).但是不可否認的是,預訓練語言模型雖然表現(xiàn)優(yōu)異,但依然遠沒有達到真正的人工智能所需要的水平,還面臨著諸多挑戰(zhàn)和爭議.
Fig.3 Development of pretraining language model圖3 預訓練語言模型發(fā)展歷程示意圖
近年來,基于深度學習的預訓練語言模型已引起研究人員的廣泛關注,特別是2018 年以來,國內(nèi)外對預訓練語言模型的研究成果呈井噴式出現(xiàn),對諸多下游任務的性能表現(xiàn)提升顯著,在某些任務中甚至超過了人類的表現(xiàn).對于預訓練語言模型面臨的挑戰(zhàn),研究人員已針對一些領域提出了解決方案.本節(jié)將對預訓練語言模型的未來研究趨勢進行展望.
隨著目前移動設備算力的進一步提升,將性能優(yōu)異的預訓練模型在低計算資源設備和邊緣設備上面加以部署已成為可能,未來對語言模型進行壓縮的方法,較大可能依然是上文中提到的蒸餾、量化和剪枝這3 個方向.在知識蒸餾方向,一方面可以對現(xiàn)有的蒸餾目標函數(shù)進行優(yōu)化,以更細粒度的形式度量“教師”模型與“學生”模型之間知識遷移的程度.另一方面,文獻[119]提出的工作也為知識蒸餾研究提供了思路:(1) 可將大規(guī)模模型蒸餾至更為簡單的網(wǎng)絡結構,甚至是支持向量機(support vector machine,簡稱SVM)或者邏輯斯蒂回歸模型;(2) 可將注意力機制引入到蒸餾過程中.文獻[122]的工作也表明,在蒸餾過程中,注意力層、全連接層以及嵌入層中的內(nèi)隱知識也可以通過構建目標函數(shù)進行遷移,在上文的實驗對比中也可以看到,如何最大程度地減小蒸餾過程對模型自然語言推理能力帶來的損失也是未來知識蒸餾模型研究的一個重要方向.在參數(shù)量化方面,由于超低精度的量化會帶來巨大的性能損失,因此更好的量化策略以及混合精度量化、多階段量化,根據(jù)語言模型各層對量化精度要求的不同,采用適合的量化策略,將是未來參數(shù)量化的主要方向.此外,參數(shù)量化與模型剪枝的融合也將是語言模型輕量化的一個重要思路.
語言模型的多模態(tài)融合在未來一段時間內(nèi)仍將以視覺流和文本流的融合為主,跨模態(tài)的融合特征抽取器現(xiàn)階段多數(shù)采用的是交叉Transformer,其融合方式較為單一,注意力機制在融合過程中應有的性能沒有完全發(fā)揮出來.另一方面,當前已有工作的網(wǎng)絡結構主要分為兩種:一種是直接的跨模態(tài)融合;另一種是對視覺流和文本流編碼后再進行跨模態(tài)融合.文獻[158]提出的工作證明,對兩種模態(tài)編碼后融合的整體思路是更為有效的.如何最大限度地保留編碼后的信息,提出融合表示能力更強的網(wǎng)絡結構,以及將計算機視覺領域的先進方法引入到模型中,將會是多模態(tài)融合語言模型的主要研究趨勢.
為了解決低資源語言的自然語言理解問題,研究人員提出了跨語言融合的預訓練語言模型,通過將高資源語言與低資源語言聯(lián)合訓練,以抽取不同種語言之間內(nèi)在語義的一致性,完成模型訓練知識的遷移.目前,跨語言模型的研究仍處于早期階段,大部分工作主要集中在預訓練目標任務的改進這一方向.對不同語言的編碼、融合方式以及網(wǎng)絡結構上的改進還不夠深入,文獻[161]的工作證明,多語言監(jiān)督數(shù)據(jù)集生成和增強算法對于跨語言模型的性能提升是有顯著作用的,未來,該方向仍存在巨大的改進空間.
知識圖譜在信息檢索領域已經(jīng)展現(xiàn)出了巨大的潛力,作為自然語言處理、信息檢索和知識表示領域的交叉課題,將知識圖譜中豐富的內(nèi)在知識和內(nèi)部推理形成的信息融入到預訓練語言模型當中,是進一步增強預訓練語言模型自然語言理解和推理能力的重要思路.在知識圖譜或知識庫信息的融入過程中,這兩者表示空間不一致是研究人員亟待解決的一個問題.另一方面,文獻[144]的工作也提出,由于較早語言模型相對類BERT 模型在訓練和推理速度上有著天然的優(yōu)勢,將外源知識引入ELMo 等早期預訓練模型以增強其語言推理和理解能力,可以使預訓練模型在部署和應用層面有更廣闊的空間.另外,通過外源知識的補充和引導,對預訓練數(shù)據(jù)進行啟發(fā)式指導下的數(shù)據(jù)增強,是未來知識圖譜與語言模型融合的一個切入點.目前的各類工作已經(jīng)證明,更豐富、更大規(guī)模的預訓練數(shù)據(jù)對語言模型的表示能力有著直接的提升作用,這一思路也將是外源知識在預訓練語言模型領域的一個應用方向.
預訓練語言模型能夠取得如此舉世矚目的成就,與Transformer 結構以及自注意力機制的提出密不可分.最近,Moradshahi 等人[169]提出了HUBERT 模型,在模型中加入了張量積表示(tensor-product representation,簡稱TPR)層,將BERT 表示分解為內(nèi)容和形式兩部分,在模型的自然語言推理能力上取得了較大提升.另外,文獻[170]提出單頭注意力RNN(single headed attention RNN,簡稱SHA RNN),在壓縮模型規(guī)模的同時性能損失極低.這些工作都表明,無論是預訓練-微調(diào)框架中的編碼解碼部分,還是Transformer 結構都存在著改進的空間,尤其是從Transformer 的并行性和規(guī)模壓縮這一思路進行探索,作為預訓練語言模型的基礎結構,新的注意力機制、改進Transformer 以及先前工作與Transformer 的結合都將是從根本上改進語言模型性能的研究方向.
雖然深度學習在語言模型領域中的應用廣泛且效果顯著,在語言模型的研究中脫離深度學習的幫助已經(jīng)成為了幾乎不可能完成的事情,但是,無論是神經(jīng)網(wǎng)絡還是目前從語言模型中提取出的單詞表示,其可解釋性一直都是被部分學者質(zhì)疑和研究的問題.語言模型訓練后生成的稠密實數(shù)向量表示,目前還難以解釋其每一維度的含義是什么,為什么預訓練語言模型可以在多種任務上同時獲得卓越的性能表現(xiàn),其內(nèi)在的交互作用機制,目前尚未明了.不過,目前已有一些相關研究被提了出來,文獻[171]就通過對BERT 中自注意力層權重進行編碼,對BERT 如何捕獲各種語言學信息的過程進行了分析和可視化;文獻[172]則以BERT 在問答任務上的微調(diào)過程為切入點,對模型中的隱狀態(tài)進行了分析,結果表明,BERT 可以將特定任務的信息隱式地合并到單詞表示中.在未來研究中,對預訓練語言模型的內(nèi)在機理以及注意力機制的交互方式進行分析和解釋,會是主要的研究方向.
語言模型被視為自然語言處理領域的一個基礎課題,一直以來是自然語言處理領域的研究熱點.基于深度學習的語言模型,無論是神經(jīng)概率語言模型還是預訓練語言模型,在多個方向上都取得了令人矚目的進展,并推動了下游任務的性能提升.通過對以上語言模型研究代表方法的梳理,本文認為,基于深度學習的語言模型研究具有重要的意義:(1) 神經(jīng)概率語言模型,特別是Word2Vec,在NLP 研究早期,對序列標注、文本分類等任務產(chǎn)生了重要的推動作用;(2) 預訓練語言模型以新的思路完成自然語言建模,在多類下游任務中取得了超越人類的性能表現(xiàn),這將促使基于語言模型的各類應用更具智能性;(3) 在對預訓練模型的改進中,涌現(xiàn)出了多種表示能力強、計算效率高的新型網(wǎng)絡結構,這些網(wǎng)絡可以被遷移至其他任務或領域以推動進一步性能的提升;(4) 目前,已有一部分具有代表性的預訓練模型框架被提出,框架融合了遷移學習和持續(xù)學習的思想,可以同時在多類下游任務上獲得性能改進,對它們的研究將從根本上促進人工智能的發(fā)展.
本文還對基于深度學習的語言模型目前所面臨的挑戰(zhàn)、已有解決方案以及未來發(fā)展趨勢進行了闡述.梳理了近年來神經(jīng)概率語言模型的發(fā)展脈絡,進一步對當前預訓練語言模型的發(fā)展情況、研究方向進行了概述、分析和評價.最后對基于深度學習的語言模型在未來輕量化、多模態(tài)、跨語言以及可解釋性等方向的研究趨勢進行了展望.我們期待能有更多研究人員參與到語言模型的研究工作中,也希望本文能對國內(nèi)有關基于深度學習的語言模型的研究提供一些幫助.