李瑜澤,欒 馨,柯尊旺,李 哲,吾守爾·斯拉木
(1.新疆大學 信息科學與工程學院,烏魯木齊 830046;2.新疆多語種信息技術實驗室,烏魯木齊 830046;3.新疆多語種信息技術研究中心,烏魯木齊 830046;4.新疆大學 軟件學院,烏魯木齊 830046)
自然語言處理(Natural Language Processing,NLP)是人工智能和語言學領域的分支學科,近年來,NLP 的發展取得了巨大進步,任務劃分也更加詳盡,其主要下游任務,如關系抽取[1]、文本分類[2]、對話生成、機器翻譯和共指消解[3]等均離不開預訓練技術。預訓練技術使用大規模無標注的文本語料庫對深層網絡結構進行訓練,從而得到一組模型參數,這種深層網絡結構通常被稱為“預訓練模型”[4]。將訓練得到的模型參數運用于后續特定的下游任務,可避免從零開始進行再訓練的繁瑣過程。預訓練模型的優點在于訓練代價較小,配合下游任務能夠達到更好的收斂效果,可以較好地提升模型的性能。
自BERT[5]模型被提出以來,各種預訓練語言模型層出不窮。然而,非知識感知的預訓練語言模型通常采用淺層網絡結構,只進行簡單的學習,無法理解更高層次的文本概念,如語義角色、指代等;而知識感知的預訓練語言模型能夠根據不同的應用目的而加強不同的模塊,使模型具備更加專業的業務能力。因此,面對智能要求和專業化程度更高的深層次NLP 任務,需要探索并分析將特定種類的外部知識嵌入到特定用途的預訓練語言模型中。
目前,已有部分研究人員嘗試將外部知識嵌入到預訓練語言模型中,評估其在特定下游任務中的性能表現。NLP 的外部知識含義廣泛,涵蓋了語言學知識、語義知識、常識知識、事實知識以及領域知識等[6]。知識豐富的預訓練語言模型通常從通用的大規模文本語料庫中學習通用的語言表示,以靈活應對多種下游任務并進行相應的微調[7]。基于知識感知[8]對預訓練語言模型進行擴展,使得預訓練技術進入了一個新的發展階段。
本文在分析預訓練技術發展歷程中經典語言模型的基礎上,將研究重點轉向知識感知的預訓練語言模型,分析此類模型相比其他預訓練語言模型的優勢,研究知識感知對于預訓練語言模型性能提升的增強作用,并在多種知識驅動的NLP 下游任務中評估模型的性能表現。同時,搜集最新知識感知的預訓練語言模型的相關研究成果,對其中多種模型對比實驗的結果加以分析,從中歸納總結已有知識感知的預訓練語言模型適用于何種NLP 下游任務,從而對未來的研究方向進行展望。
知識感知的預訓練語言模型大多基于知識圖譜引入豐富的外部知識,因此,本節介紹知識表示學習的原理和其中具有代表性的相關方法。
知識圖譜是一種由實體節點和關系組成的語義網絡。表示學習旨在將研究對象的語義信息表示為稠密低維實值向量,而知識表示學習則在詞向量的啟發下面向知識圖譜中實體和關系的語義信息進行學習,通過將實體和關系映射到連續的低維向量空間中以實現知識的有效表示[9]。
知識的表示方法主要有符號表示[10]和數值表示:符號表示通常包含字符、關聯圖和符號等;數值表示通常用標量、向量、概率分布等數值表達事實與知識。
TransE 模型[11]是傳統且具有代表性的知識表示學習方法,隨后針對TransE 模型進行改進的方法也層出不窮。TransE 模型主要考慮向低維向量空間中嵌入實體和多關系數據的關系問題,采用基于翻譯[12]的思想,通過將知識圖譜中的關系解釋為對應于實體的某種低維嵌入平移向量[13],從而實現對關系的建模,因此,TransE 也被稱作翻譯模型。將三元組(h,r,t)看作頭實體h到尾實體t利用關系r所進行的翻譯,則TransE 的損失函數如下:

其中:l1和l2表示向量空間。在TransE 的改進模型中,性能較好的PTransE 模型通過對關系路徑進行編碼,實現了實體和關系在低維向量空間中的嵌入,其能夠利用關系路徑約束資源配置并衡量關系路徑的可靠性。
此外,還有諸多傳統的知識表示學習方法及其改進模型。例如,將不同的實體和關系對象映射到獨立語義空間的TransR 模型、注重實體與關系之間交互的TransD 模型、專注解決多重關系語義問題的TransG 模型以及用來處理復雜關系映射問題的TransH 模型等。
預訓練技術利用大型語料庫學習通用語義表示,從而將預訓練好的模型的相應結構和權重直接應用于下游任務,其借鑒了遷移學習[14]的思想。遷移學習的本質是在一個數據集上訓練基礎模型,通過微調等方式使模型可以在其他不同的數據集上處理不同的任務。
1.3.1 語言建模的初步知識
本文在不失一般性的前提下研究自回歸語言建模問題,將文本X視為符號序列(單詞或子單詞):X={ω1,…,ωi,…,ωn},語言概率的經典單向因式分解如下:

其中:ω

由式(3)可知,可以通過增大Transformer 參數的方法促使語言建模能力提升,即隨著Transformer 層的擴大和加深,Transformer 語言模型逐漸能夠輸出詞法和語法模式之外的更加復雜的語義。
1.3.2 知識與預訓練的融合方式
預訓練語言模型中的所有語義都是由Transformer間接捕獲的,預訓練中也并無明確的要求用以更好地捕捉知識,而當前期望是其能含蓄地捕捉原始單詞序列下的知識,方法之一是采用知識感知的語言建模(KALM)框架[15],在相同數量的Transformer 參數中封裝更多的信息,而非疊加更多的層或添加外部知識存儲。
知識與預訓練融合的第一步是利用實體標記器,通過形成一個額外的實體標記序列表明預訓練過程的輸入和輸出中存在實體。在知識感知輸入階段,首先每個單詞標記都有一個輸入嵌入,同時允許模型學習每個實體的一個實體嵌入,然后將2 種嵌入相結合形成知識感知輸入,這里的所有嵌入都是隨機初始化并在訓練前進行學習的。在知識感知輸出階段,使用一個輸出頭來表示單詞概率,另一個輸出頭來表示實體,并共享單詞和實體之間的所有Transformer 層。最后,將知識感知的輸入和輸出引入到標準的多任務設置中,結合語言建模的損失并引入超參數,平衡標準預訓練語言模型中的交叉熵與實體預測損失之間的關系。通過上述過程,知識與預訓練的融合已基本實現。
預訓練的思想起初來源于計算機視覺領域,鑒于預訓練在計算機視覺領域取得的較好效果,NLP開始嘗試使用預訓練技術實現遷移學習。當預訓練技術運用于NLP 領域時,訓練得當的語言模型可以捕獲與下游任務相關的許多知識,如長期依賴、層次關系等。此外,在NLP 領域進行訓預練的顯著優勢是訓練數據可以來源于任意無監督文本語料,即訓練過程擁有無限量的訓練數據。
早期的預訓練是一種靜態技術,NNLM[16]作為使用神經網絡實現語言模型的經典范例,早在2003年就已被提出,Word2Vec[17]借鑒NNLM 的思想使用語言模型得到詞向量,隨后GloVe[18]和FastText[19]相繼被提出,使得這種靜態的預訓練技術逐漸成為最常用的文本表征技術之一[20]。但是,這種預訓練技術歸根到底是一種靜態技術,其對不同語境的適應能力較差,且對下游任務的性能提升收效甚微。
為解決上述問題,研究人員開始關注動態的預訓練技術。自2018 年PETERS 等[21]提出一種上下文相關的文本表示方法以來,DPT、BERT、XLNet[22]等預訓練語言模型相繼被提出,預訓練技術逐漸在NLP領域得到廣泛應用。BERT 的出現將預訓練語言模型的發展推向高潮,此后相繼涌現出一系列新式的預訓練技術,就模型結構而言,它們所訓練的模型一類是基于BERT 的改進模型,另一類則是XLNet,關于預訓練技術的研究自此進入新階段。
本節主要總結分析NNLM、Word2Vec、GloVe、FastText 等靜態預訓練技術。
2003年BENGIO提出的NNLM是早期使用神經網絡實現語言模型的經典模型,其本質是一個N-Gram 語言模型。研究人員將模型的第一層特征映射矩陣當作詞的文本表征,從而開創將詞語表示為向量形式的模式,啟發了后續Word2Vec 的有關研究。NNLM 的不足之處在于只利用了上文信息,并未結合更多的上下文信息,此外,其輸出層存在詞表較大引發計算量過大的問題。
2013 年MIKOLOV 提出的Word2Vev 在模型結構和訓練技巧方面對NNLM 進行了優化,并提出使用語言模型作為詞向量的構思。該文首先提出CBOW[23]和Skip-gram[24]以簡化模型結構,其次使用Hierarchical Softmax[25]和Negative Sampling技術解決普通Softmax 計算量過大的問題,最后將詞向量更換為需要由上下文詞向量[26]求和得到的語境向量。上述優化使得在大規模無監督文本語料上訓練得到的詞向量在語義上取得了良好的性能表現。
2014 年PENNINGTON 等提出的GloVe 是一個基于全局詞頻統計的詞表征工具,它可以將某個單詞表達成由實數組成的向量,通過向量獲取單詞之間的語義特性,對向量進行運算可以得出2 個單詞之間的語義相似度[27]。與Word2Vec 相比,GloVe 主要利用詞語的共現信息構建模型,其訓練主要包含統計共現矩陣和訓練獲取詞向量2 個步驟。
2016 年,Word2Vec 的提出者MIKOLOV 再次提出FastText,其利用有監督標記的文本分類數據進行訓練。FastText 的網絡結構與CBOW 類似,但學習目標是人工標注的分類結果,兩者均使用Hierarchical Softmax技術加速訓練。此外,FastText為了利用更多的語序信息,增加了N-Gram[28]的輸入信息,在訓練詞向量時引入subword 來處理長詞,這些改進均使得FastText 的訓練速度大幅提升。
隨著NLP 應用場景的不斷豐富,以往采用靜態預訓練技術訓練的模型有時無法很好地完成特定的任務。在此情形下,動態預訓練技術方案應運而生,本節主要概述其中經典且具有代表性的ELMo、GPT和BERT。
2018 年,ELMo 提出一種上下文相關的文本表示方法,根據當前上下文對Word Embedding[29]進行動態調整,其任務采用典型的兩階段劃分:第一階段利用語言模型進行預訓練;第二階段在下游任務進行時從預訓練網絡中提取對應單詞,將其網絡各層的Word Embedding 作為新特征補充到下游任務中。雖然ELMo 在當時的適用范圍非常廣泛,但其選擇LSTM[30]作為特征提取器,而非提取能力更強的Transformer,導致在某些任務中的表現受到一定限制。
2018 年,RADFORD等提出的GPT使用生成式方法訓練語言模型,選用Transformer 作為特征提取器,同樣也劃分為兩階段過程:第一階段利用語言模型進行預訓練,但其采用的是單向語言模型;第二階段通過微調(Fine-tuning)模式處理下游任務。由于僅選取預測詞的上文進行預測,因此GPT 在某些應用任務中仍然無法取得較好的效果。
2018 年,谷歌團隊的BERT 模型一經發布,立即刷新了11 項NLP 任務的性能記錄。BERT 模型的架構基于Transformer,實現多層雙向的Transformer 編碼器,其同樣被劃分為兩階段過程:第一階段的預訓練過程 包含Masked Language Model[31]和Next Sentence Prediction[32]2 個任務;第二階段使用Fine-tuning 模式處理下游任務。與GPT 相比,BERT 效果更優,這主要歸功于雙向語言模型發揮的主要作用,尤其在下游任務中,其作用更加凸顯。此外,Next Sentence Prediction 在個別任務中也有出色表現。雖然BERT在眾多任務中表現優異,但其參數量巨大,導致計算資源消耗大幅提升。
新興預訓練技術從模型結構上可分為兩類:一類是能夠獲得真雙向上下文信息的自回歸語言模型XLNet;另一類是基于BERT 的改進模型,包括改進生成任務、引入多任務、引入知識以及改進訓練方法等改進模型。
在BERT的眾多改進模型中,MASS[33]和UNILM[34]2 個模型均致力于改進BERT 在其生成任務中的表現。其中,MASS 在機器翻譯任務中效果顯著,UNILM則在摘要生成、問題生成、對話回復生成以及生成式問答任務中效果更佳。MT-DNN[35]和ERNIE 2.0[36]2 個模型通過引入多任務學習改進BERT。其中,MT-DNN 能更好地在小數據集上實現微調,ERNIE 2.0 則在閱讀理解、情感分析以及問答任務上效果顯著。ERNIE 1.0 和ERNIE(THU)[37]2 個模型通過引入知識,使預訓練語言模型能夠學習到蘊含在深層文本中的潛在知識。其中,ERNIE 1.0 在自然語言推斷[38]、語義相似度、情感分析、命名實體識別[39]以及問答匹配任務中較BERT 表現更佳,ERNIE(THU)則在知識驅動型任務中效果顯著。RoBERTa[40]模型采用比BERT更加精細的參數和訓練方法,在句子關系推斷任務中具有比BERT 更好的性能。BERT-WWM 更改原預訓練階段的訓練樣本生成策略,當被掩蔽的詞塊標記屬于一個整詞時,所有構成一個完整詞的詞塊標記將一起被掩蔽。由于BERT-WWM 缺乏中文語言相關模型,哈工大訊飛實驗室提出了全詞覆蓋的中文BERT 預訓練模型,即BERT-wwm-ext[41],其增加了訓練數據集同時也增加了訓練步數,進一步促進中文信息處理研究的發展。為解決目前預訓練模型參數量過大的問題,ALBERT(A Lite BERT)[42]提出2 種能夠大幅減少預訓練模型參數量的方法,用SOP(Sentence-Order Prediction)任務代替BERT中的NSP(Next-Sentence Prediction)任務,在多個自然語言理解任務中取得了較優的結果。在BERT 模型的基礎上進行改進得到的分詞級別的預訓練模型SpanBERT[43],對隨機的鄰接分詞而非隨機的單個詞語添加掩模,通過使用分詞邊界的表示來預測被添加掩模的分詞內容,其在問答、指代消解等分詞選擇任務中取得了較大的進展。華為、華科聯合提出的TinyBERT 模型[44]是一種基于transformer 而專門設計的知識蒸餾[45]方法,其模型大小不足BERT 的1/7,但將處理速度相對BERT 提高了9 倍,大幅降低了其應用成本。
XLNet 模型使用排列語言模型、雙流自注意力和循環三大機制,不僅解決了BERT 單詞之間預測不獨立的問題,還使得自回歸模型也可獲得真雙向的上下文信息。
預訓練的語言表示模型(如ELMo、BERT 和XLNet 等)從大規模的非結構化和無標記語料庫中學習有效的語言表示,并憑借其優異的性能在各種NLP 任務中發揮著重要作用。然而,它們大多缺乏真實的世界知識,最新的研究結果表明,可以通過將外部知識注入到預訓練語言模型中來解決某些文本理解較為局限的問題。
預訓練語言模型通常從通用的大規模文本語料庫中學習通用的語言表示,但其大多缺乏特定領域的知識。目前已有許多研究人員嘗試將外部知識庫中的領域知識整合到預訓練語言模型中,再將這些模型分別運用于各自適用的NLP 下游任務并從中監測其表現,結果表明,這種通過知識嵌入增強預訓練語言模型性能的方法具有有效性。
本文根據外部知識的范圍,從語言學、語義、常識、事實以及特定領域的知識等方面出發,對現有相關模型進行歸納和總結,重點介紹其中具有代表性的知識感知的預訓練語言模型。
現有的預訓練語言模型很少考慮引入知識圖譜(KGs)[46],而知識圖譜可以為語言理解提供豐富的結構化知識事實。
清華大學與華為公司的相關研究人員認為,KGs 中的信息實體可以作為外部知識來增強語言表示,因此,他們提出一種使用信息實體增強語言表示的模型ERNIE(THU),該模型利用大規模的文本語料庫和KGs 訓練得到一個增強的語言表示模型。
3.1.1 ERNIE(THU)總體架構
如圖1 所示,ERNIE(THU)模型架構由2 個堆疊的模塊組成:

圖1 ERNIE(THU)總體架構Fig.1 The architecture of ERNIE(THU)
1)底層文本編碼器(T-Encoder)負責從輸入標記中捕獲基本的詞匯和語法信息。
2)上層知識豐富的編碼器(K-Encoder)負責將額外的面向標記的知識信息集成到底層的文本信息中,以便在統一的特征空間中表示標記和實體的異構信息。
3.1.2 ERNIE(THU)預訓練
與BERT 相似,ERNIE(THU)也采用掩碼語言模型(MLM)和下一句預測(NSP)作為預訓練任務,以從文本標記中捕捉詞法和句法信息。
為能夠通過信息實體將知識注入到語言表示中,可以采用隨機掩蓋部分標記-實體對齊的方法,要求系統基于對齊的標記預測對應的實體,且只需根據給定的實體序列來預測實體,而非KGs 中的所有實體。上述過程稱為去噪實體自動編碼器(dEA)。
給定標記序列{w1,w2,…,wn}及其對應的實體序列{e1,e2,…,em},其中,n為令牌序列的長度,m為實體序列的長度。為標記wi定義對齊的實體分布如下:

其中:linear(?)為線性層。式(4)用來計算dEA 的交叉熵損失函數,預訓練損失是dEA、MLM 和NSP 的損失總和。
3.1.3 ERNIE(THU)微調
對于常見的NLP 任務,ERNIE(THU)采用類似于BERT 的微調過程,而對于知識驅動的NLP 任務(如關系分類和實體鍵入),ERNIE(THU)設計了特殊的微調過程。
關系分類任務要求系統根據上下文對給定實體對的關系標簽進行分類,通過添加2 個標記符號修改輸入標記序列以突出實體提及,這些額外的標記符號在傳統關系分類模型中扮演著類似于位置嵌入的角色。ERNIE(THU)同樣也采取[CLS]標記嵌入分類,還分別為頭部實體和尾部實體設計了不同的標記[HD]和[TL]。
實體鍵入任務的特定微調是關系分類任務微調的簡化過程,由于之前的類型模型充分利用了上下文嵌入和實體提及嵌入,因此修改后的輸入序列帶有提及標記符[ENT],可以引導ERNIE(THU)將上下文信息和實體提及信息相結合。
3.1.4 ERNIE(THU)評估
在FIGER 和Open Entity 2 個數據集上對BERT和ERNIE(THU)進行微調,評估兩者在實體鍵入任務中的性能;在FewRel 和TACRED 2 個數據集上對BERT 和ERNIE(THU)進行微調,評估兩者在關系分類任務中的性能。實驗結果如表1 所示。

表1 BERT 和ERNIE(THU)的性能對比結果Table 1 Performance comparison results of BERT and ERNIE(THU) %
從表1 可以看出,ERNIE(THU)模型能同時充分利用詞匯、句法和知識信息,在2 個知識驅動的NLP 任務,即實體鍵入和關系分類上取得優于BERT的性能。但是,ERNIE(THU)仍存在一定的局限性,比如受命名實體識別(NER)的影響,其依賴于NER提取的準確度,模型復雜度過高。
3.1.5 其他事實知識融合的預訓練語言模型
ERNIE(THU)模型將預訓練在KGs 上的實體嵌入與文本中提到的相應實體相結合以增強文本表示。與ERNIE(THU)類似,KG-BERT[47]模型結合預訓練模型BERT 并修改其輸入使BERT 適配知識庫三元組的形式,以便使更豐富的上下文表示與模型相結合,促使其在三元組分類、鏈接預測以及關系預測等任務中達到SOTA效果。KnowBERT[48]將BERT 與實體鏈接模型相聯合,以端到端的方式合并實體表示:使用常識知識庫ConceptNet[49]和情感詞典NEC_VAD 作為外部知識來源,采用動態上下文感知情感圖注意力機制,計算每個token 融入知識后的上下文表示;引入相關性因子和情感因子2 個因素來衡量上下文相關度和情感強度的權重;提出一種層次化自注意力機制,在利用對話結構表示形式的同時學習上下文語言的向量表示形式。KEPLER[50]將知識嵌入和語言建模目標相結合并進行優化:通過添加類似TransE 的預訓練機制以增強相應的文本表示,將每個實體與對應的維基百科描述相鏈接,使之均獲得對應的文本描述信息;對于每一個三元組<頭實體,關系,尾實體>,采用基于BERT 的編碼器,利用實體的描述信息對每個實體進行編碼;在得到頭實體和尾實體對應的表示之后,基于頭實體和關系預測尾實體。上述模型都是通過實體嵌入的方式注入KGs 的結構信息。
現有預訓練語言模型大多可以在大規模開放領域語料庫上進行預訓練以獲得一般的語言表示,然后在特定的下游任務中進行微調以吸收特定領域的知識。但是,由于預訓練和微調之間可能存在領域差異,此類模型往往在知識驅動任務中表現不佳。為此,文獻[51]提出基于KGs 知識支持的語言表示模型K-BERT,該模型將從KGs 中提取的相關三元組作為領域知識顯式地注入到句子中,得到BERT的擴展樹形輸入。由于K-BERT 能夠從預訓練的BERT 中加載模型參數,因此無須自行進行預訓練,只需配備KGs 即可將領域知識注入到模型中。
3.2.1 K-BERT 總體架構
如圖2 所示,K-BERT 模型架構由知識層、嵌入層、可見層、掩模轉換器等4 個模塊組成。對于輸入的句子,知識層首先從KGs 中向其注入相關三元組,將原句轉化為知識豐富的句子樹;隨后句子樹被同時輸送到嵌入層和可見層,轉化為一個標記級別的嵌入表示和一個可見矩陣,可見矩陣用來控制每個標記的可見區域,防止因注入過多知識而導致原句句意改變;最后通過掩模轉換器編碼后用于下游任務的輸出。

圖2 K-BERT 總體架構Fig.2 The architecture of K-BERT
3.2.2 K-BERT 實現過程
知識層完成知識注入和句子樹轉換,輸入原始句子s={w0,w1,…,wn}和知識圖譜Κ,輸出句子樹t={w0,w1,…,wi{(ri0,wi0),…,(rik,wik)},…,wn},整個過程分為知識查詢和知識注入2 個步驟:
1)知識查詢選中輸入句子中涉及的所有實體并查詢它們在KGs 中對應的三元組E,可以表示為:

其中:E={(wi,ri0,wi0),…,(wi,rik,wik)}是相應的三元組集合。
2)知識注入將查詢到的三元組注入句子s,將E中三元組插入到相應的位置,并生成句子樹t,可以表示為:

嵌入層的作用是將輸入的句子樹轉換為一種嵌入表示并保留其結構化信息,該嵌入表示是標記嵌入、位置嵌入、段嵌入等3 個部分之和。
可見層是K-BERT 和BERT 之間最大的區別,K-BERT 通過使用一個可見矩陣M,限制每個標記的可見區域,從而規避過多知識注入引發句意改變的風險。

掩模轉換器是掩模自注意塊的層層堆疊,K-BERT 提出的掩模自注意機制是自注意機制的延伸,如下所示:其中:Wq、Wk和Wv是可訓練模型參數;hi是第i個掩模自注意塊的隱藏狀態;dk是比例因子。直觀上,如果Wk對Wj不可見,則Mjk將把注意值掩蓋為0,這意味著Wk對Wj的隱藏狀態沒有貢獻。
3.2.3 K-BERT 評估
將特定領域的數據集分為3 個部分,分別用于模型的微調、選擇和測試,各模型的檢驗結果如表2、表3 所示。

表2 Google BERT 模型的預訓練表現Table 2 Pre-training performance of Google BERT model %

表3 改進BERT 模型的預訓練表現Table 3 Pre-training performance of the improved BERT model %
從表2、表3 可以看出,在特定領域的任務(包括金融、法律和醫學)中,K-BERT 的表現明顯優于BERT,尤其在醫學領域效果提升顯著,這表明K-BERT 是解決需要專家知識驅動問題的較佳方案。
上文詳細闡述了K-BERT 將三元組作為領域知識注入到句子中,并引入可見矩陣限制知識影響以解決噪聲問題的過程。
3.2.4 其他領域知識融合的預訓練語言模型
上文所述方法大多在注入知識時更新預訓練模型的原始參數,因此,在注入多種知識時可能會遭遇災難性遺忘問題。為此,文獻[52]提出一種K-Adapter模型,其可以使BERT 自適應地與知識相融合:先針對不同的預訓練任務對不同的adapter 進行獨立訓練,然后在針對具體的下游任務進行微調時,采用不同的adapter 有針對性地加入特征以增強其效果。這樣不僅保持了預訓練模型的原始參數不變,還能進行持續的知識灌輸。
常識知識對某些NLP 任務至關重要,其中,大規模常識知識如何促進語言的理解和生成是關鍵,特別是對話系統,原因是會話交互是一種語義活動[53],如果模型能夠訪問和充分利用大規模的常識知識,就能更好地理解對話,從而做出更恰當的響應。目前已有研究人員在會話生成中通過引入外部知識來增強對話生成,并取得了一定成果,但在會話生成方面還有一些問題未能解決:
1)一個實體詞通常可以指不同的概念,即一個實體有多種含義,但在特定的語境中只涉及一個特定的概念,如果不考慮這一點,一些預先獲取的知識事實可能與上下文無關。
2)即使只考慮一個特定的實體意義,相關的知識事實也可能涵蓋各種目標主題,但是,其中一些主題并不有助于產生對話。
3)以往方法在知識整合與對話生成方面存在不足,包括整合的方式以及知識的類型。
本節介紹一種全新的常識知識感知的對話生成模 型ConKADI[54],該模型可以很好地解決以上問題。
3.3.1 ConKADI 總體架構
ConKADI 總體架構如圖3 所示,知識事實集F由知識檢索器(Knowledge Retriever)根據查詢信息X進行檢索,上下文編碼器(Context Encoder)將語句總結為上下文表示形式。虛構事實識別器(Felicitous Fact Recognize)計算出合適的事實概率分布z除以F,用于初始化解碼器并指導其生成。三元組知識解碼器(Triple Knowledge Decoder)可以生成詞匯、知識實體詞和復制詞,并采用靈活模式融合(Flexible Mode Fusion)。

圖3 ConKADI 總體架構Fig.3 The architecture of ConKADI
各模塊具體如下:
1)知識檢索器。給定一個查詢消息X,如果一個詞xi?X被識別為一個實體詞,并且可以匹配到知識圖譜G中的頂點esrc,若其他頂點etgt?Neighbour(esrc),將檢索的相應方向關系r作為候選事實f。其中,esrc、etgt稱為源、目標實體。
2)上下文編碼器。該編碼器是一個雙向GRU網絡,其讀取X或Y并輸出上下文狀態序列。
3)虛構事實識別器。某些初步檢索到的知識事實在對話上下文中可能不合適,虛構事實識別器旨在檢測與對話上下文高度一致的事實,其讀取上下文信息,然后在F上輸出概率分布z?Rl×1,第i維值z[i]表示fi的權重。在訓練階段,將高質量的人為反應Y作為后驗知識。因此,在訓練中采用后驗zpost,在推理中采用先驗zprior:

其中:F是檢索到的事實的嵌入矩陣;Wft、Wpost和Wprior是可訓練參數;η是softmax 激活函數;?是tanh激活函數。Kullback-Leibler 散度(KLD)函數用來縮小2 個分布之間的差距:

基于知識融合和上下文檢索,對解碼器進行初始化以增強其對背景知識的理解:


其中:B是Y的詞袋;pb是被softmax 函數激活的雙層MLPbow,由它輸出詞匯V的概率分布。
4)三元組知識解碼器。該解碼器是另一個GRU 網絡,在每個時間步可以生成詞匯、知識實體詞和復制詞中的一種。詞匯的概率分布為:

其中:elu 是非線性層激活函數;Wv1、Wv2是可訓練參數是ConKADI 首先更新的內部狀態。
知識實體詞的概率分布為:

其中:z是靜態全局分布;zd是動態分布。解碼器從X中指定一個單詞x,然后復制x,查詢信息x對應的概率分布為:

隨后通過最小化?n來優化融合輸出分布p(Y|X,F),具體為:

訓練目標是通過最小化如下?來訓練ConKADI:

3.3.2 ConKADI 評估
為了研究不同語言之間的泛化性,實驗采用公開的英語Reddit 數據集、中文微博數據集,基線選取S2S、ATS2S、GenDS 和CCM 等模型,從知識利用率、基于嵌入的相關性、基于重疊的相關性、多樣性和信息量這5 個方面進行評價。為了驗證模型的綜合性能,先按平均指標(AVG)計算7 個基線的平均得分,然后計算算術平均得分如下:

計算幾何平均得分如下:

實驗結果如表4、表5 所示,從表4、表5 可以看出:在相對得分方面,ConKADI 的整體表現優于基線模型,與最先進的CCM 方法相比,ConKADI 在中文數據集上的得分分別提高了153%(算術)、95%(幾何),在英文數據集上分別提高了48%(算術)、25%(幾何);在知識利用率方面,GenDS、CCM、ConKADI 等3 種知識感知模型的表現顯著優于其他模型,而與GenDS、CCM 相比,ConKADI對知識的利用率更高,并且更能找出準確的知識;在多樣性和信息性方面,ConKADI 性能提升顯著歸因于上下文-知識融合;在相關性方面,由于數據集存在內在差異,因此ConKADI 在中文數據集上的整體性能最好,但在英文數據集上其性能并不理想。

表4 各模型在中文微博數據集上的性能對比結果Table 4 Performance comparison results of each model on Chinese microblog dataset

表5 各模型在英文Reddit 數據集上的性能對比結果Table 5 Performance comparison results of each model on English Reddit dataset
綜上,ConKADI 模型提出的上下文知識融合和靈活模式融合可以促進知識整合,在開放發布的英文數據集和中文數據集中取得顯著成果,但其在推進高質量知識整合方面仍存在一定的局限性。
3.3.3 其他常識知識融合的預訓練語言模型
在其他常識知識融合的預訓練語言模型中,常識知識感知的會話生成模型CCM[55]與現有單獨使用知識三元組(實體)的模型不同,CCM 將每個知識圖視為一個整體,在圖中編碼結構化更強、連接更緊密的語義信息。具體來說,CCM 通過從一個知識庫中檢索出相關的知識圖譜,并采用靜態的圖注意機制對其進行編碼,促進開放領域會話系統中的語言理解和生成,然后通過動態圖注意機制在詞生成過程中檢索知識圖和圖中的每個知識三元組,以便更好地完成生成任務。
受BERT 掩蔽策略的啟發,百度提出一種新的知識增強語言表示模型ERNIE(baidu),用來學習通過知識掩蔽策略增強的語言表示。ERNIE(baidu)的掩蔽策略如圖4 所示。

圖4 ERNIE(baidu)的掩蔽策略Fig.4 The masking strategy of ERNIE(baidu)
3.4.1 ERNIE(baidu)的Transfomer 編碼器
與BERT相同,ERNIE(baidu)使用多層Transfomer 作為基礎編碼器,Transformer 可以通過自注意機制獲取句子中每個標記的上下文信息,并生成上下文嵌入序列。
對于漢語語料庫,本文使用詞塊對漢語句子進行標記。對于給定的標記,其輸入表示是由相應的令牌、段和位置嵌入的總和構成的,每個序列的第一個標記是特殊分類嵌入([CLS])。
3.4.2 ERNIE(baidu)的知識集成方法
知識集成的主要思路是使用先驗知識增強預訓練語言模型。ERNIE(baidu)提出一種多階段知識掩蔽策略,將短語級和實體級知識整合到語言表示中,而非直接添加知識嵌入。句子的不同掩蔽級別如圖5 所示。

圖5 句子的不同掩蔽級別Fig.5 Different masking levels of a sentence
第一階段是基礎級掩蔽,在訓練過程中隨機掩碼15%的基本語言單元,并使用句子中其他基本語言單元作為輸入,訓練一個Transformer 來預測掩碼單元,由此得到的基本詞表示很難對高級語義知識進行完全建模。
第二階段是短語級掩蔽,同樣使用基本語言單元作為訓練輸入,不同于上一階段,這次選擇隨機掩蔽幾個短語,并預測同一短語中的所有基本單元。在此階段,短語信息被編碼到詞嵌入中。
第三階段是實體級掩蔽,實體通常在句子中包含重要信息。在上一階段,分析得到句子中的命名實體并將其掩蔽,隨后進行預測并填補空缺的實體。
經過上述3 個階段的學習,能夠得到經過豐富語義信息增強后的詞表示。
3.4.3 ERNIE(baidu)評估
ERNIE(baidu)和BERT 在自然語言推理、語義相似度、命名實體識別、情感分析和問答這5 個中文自然語言處理任務中的性能表現如表6 所示。

表6 ERNIE(baidu)和BERT 在5 個中文自然語言處理任務中的性能對比Table 6 Performance comparison of ERNIE(baidu)and BERT in five Chinese NLP tasks %
從表6 可以看出,通過對異構數據的知識整合和預訓練,模型的語義表示能力顯著增強,能夠獲得更好的語言表達。在上述5 個中文自然語言處理任務中,ERNIE(baidu)的表現均明顯優于BERT。
以上詳細闡述了ERNIE(baidu)在BERT 的基礎上使用Transformer[56]作為特征抽取器,加入海量語料中的短語、實體等先驗語義知識,從而建模真實世界語義關系的過程。與BERT 相比,ERNIE(baidu)僅對學習任務MLM 稍作改進就取得了較好的成效。
3.4.4 其他語義知識融合的預訓練語言模型
ERNIE(baidu)的改進模型ERNIE 2.0 是基于持續學習的語義理解預訓練框架,使用多任務學習增量式構建預訓練任務,新增的語義任務包括預測句中詞匯、重建和重排句子結構、判斷句間邏輯關系等。采用語言學及語義知識注入的預訓練語言模型還有面向中文理解的神經語境表征模型NEZHA[57],其在BERT 的基礎上進行的改進包括作為有效位置編碼方案的函數相對位置編碼、全詞掩蔽策略、混合精度訓練和訓練模型的LAMB 優化器。使用N-gram[58]表示增強的中文文本編碼器的預訓練模型ZEN[59],其基于BERT,在訓練過程中考慮不同的字符組合,整合字符序列及其所包含的單詞或短語的綜合信息,相比于其他編碼器使用更少的資源,卻能在大多數任務上展現出更佳的性能。基于BERT 的漢語全詞掩蔽預訓練語言模型BERT-WWMChinese[60],當被掩蔽的詞塊標記屬于整詞時,所有構成整詞的詞塊標記都將被一并掩蔽,迫使模型在掩蔽語言模型(MLM)的預訓練任務中恢復整個單詞,而不僅僅恢復單詞標記。上述模型均通過對BERT 進行微小改進而使得表征能力和訓練速度大幅提升。
本節以預訓練技術在生物醫學領域的應用為代表,介紹將特定領域的專業知識注入到預訓練語言模型的相關研究。
隨著生物醫學文檔數量的快速增長,生物醫學文本挖掘需求日益增大。BioBERT 模型[61]是一種注入了生物醫學領域知識的預訓練語言模型,其基于BERT,致力于合理利用生物醫學語料庫,達到最佳的預期效果以幫助臨床實踐。BioBERT 的預訓練和微調過程如圖6 所示。

圖6 BioBERT 的預訓練和微調流程Fig.6 Pre-training and fine-tuning procedure of BioBERT
3.5.1 BioBERT 預訓練
首先使用BERT 的權重初始化BioBERT,該BERT 已在通用領域語料庫(英語Wikipedia 和BooksCorpus)上進行了預訓練;然后對BioBERT 進行生物醫學領域語料庫(PubMed 摘要和PMC 全文文章)的預訓練。用于BioBERT 預訓練的文本語料庫如表7 所示,經過測試的文本語料庫組合如表8所示。

表7 BioBERT 使用的文本語料庫列表Table 7 List of text corpora used by BioBERT

表8 文本語料庫的不同組合Table 8 Different combinations of text corpora
3.5.2 BioBERT 微調
本文針對命名實體識別(NER)、關系提取(RE)和問題解答(QA)這3 個具有代表性的生物醫學文本挖掘任務對BioBERT 進行調整。
NER 是最基本的生物醫學文本挖掘任務之一,涉及識別生物醫學語料庫中的眾多領域特定專有名詞,在預訓練和微調過程中,BioBERT 直接學習詞塊嵌入,使用實體級精度、召回率和F1 值作為NER的評價指標。
QA 是一種用自然語言對相關段落提出的問題進行回答的任務,為了對BioBERT 的QA 進行微調,本文采用SQuAD 數據集的BERT 架構。由于BioASQ 的格式 與SQuAD 相 似,BioBERT 使用了BioASQ 事實數據集,利用單個輸出層計算答案短語開始/結束位置的令牌級別概率。然而,約30%的BioASQ 問題在抽取的QA 設置中無法回答,因為確切的答案沒有出現在給定的段落中,所以將無法回答問題的樣本從訓練集中剔除。使用strict accuracy、lenient accuracy 和mrr(mean reciprocal rank)作為QA的評價指標。mrr 得分的計算公式為:

3.5.3 BioBERT 評估
本次實驗使用較多生物醫學NLP 研究人員常用的數據集,包括NCBI疾病、BC5CDR、BC4CHEMD 等,本文將BERT 和BioBERT 與當前最新模型進行比較,并報告其得分。
NER 結果如表9 所示,從表9 可以看出:僅對通用域語料庫進行預訓練的BERT 具有有效性,但是BERT 的微觀平均F1 得分比最新模型低(2.01);另一方面,在所有數據集上,BioBERT 的得分均高于BERT,在9 個數據集中,有6 個數據集上的BioBERT性能優于最新模型。RE 結果如表10 所示,從表10可以看出,BERT 的性能優于CHEMPROT 數據集上的最新模型,這證明了其在RE 中的有效性。從平均水平(微型)來看,BioBERT v1.0(+PubMed)的F1 得分高于最新模型。此外,BioBERT 在2 個生物醫學數據集中均獲得了最高的F1 分數。QA 結果如表11所示,從表11 可以看出,BioBERT 各項性能明顯優于BERT 和最新模型。

表9 生物醫學命名實體識別測試結果Table 9 Test results of biomedical named entity recognition %

表10 生物醫學關系提取測試結果Table 10 Test results of biomedical relation extraction %

表11 生物醫學問題回答測試結果Table 11 Test results of biomedical question answering %
以上主要介紹用于生物醫學文本挖掘的預訓練語言表示模型BioBERT,實驗結果證明,在生物醫學語料庫上對BERT 引入特定領域知識,對于將其應用于生物醫學領域至關重要。只需對特定任務進行微小的架構修改,BioBERT 就可以在生物醫學文本挖掘任務(如NER、RE 和QA 等)中取得優異成果。
3.5.4 其他專業知識融合的預訓練語言模型
基于BERT 語言模型的專利分類模型PatentBERT[62]通過使用帶有單詞嵌入的CNN 方法,集中對一個預訓練BERT 模型做適當微調,并將其應用于專利分類這個多標簽分類任務。面向科學文本的預訓練語言模型SciBERT[63]利用大型多領域科學出版物語料庫進行無監督的預訓練,以提高下游科學自然語言處理任務的效果。
前文根據外部知識的分類,分別對語言學、語義、事實、常識、領域知識等多種類型知識注入的預訓練語言模型進行詳細闡述,實驗結果證明,在知識驅動的NLP下游任務中使用知識感知的預訓練語言模型,有助于提升工作效率。
通過對以上知識感知的預訓練語言模型在執行常識和推理任務時所需的信息資源進行分析,本文評估并歸納不同預訓練語言模型的綜合性能,結果如表12 所示。

表12 知識感知的預訓練語言模型性能對比結果Table 12 Performance comparison results of knowledge-aware pre-trained language models
目前,知識感知的預訓練語言模型在NLP 任務中得到廣泛應用并獲得了良好收益,但是,一些不足之處也逐漸顯現,其發展主要面臨如下挑戰:
1)預訓練代價大。預訓練模型的規模呈現逐步擴大的趨勢,雖然其能力越來越強,但模型的參數也越來越多,因此,對計算設備的算力提出了更高的要求。預訓練語言模型如何使用較小的代價來高質量地完成NLP 任務是其當前面臨的問題之一。
2)深層結構化語義分析存在明顯的性能不足。當前大多數引入了語義知識的預訓練語言模型仍難以抵御文本對抗攻擊,當面向非規范和專用領域文本時,分析精度大幅降低,說明模型未能完全學習語言的真正寓意。僅在通用語料庫上進行訓練的模型往往經驗不足,無法較好完成常識和推理任務,不符合人類使用語言的交際意圖。
3)形式化知識在語言模型中存在明顯構成缺失。該問題導致在問答任務中無法基于常識給出正確的回答,不足以完成細粒度的關系抽取,命名實體識別精度不高以及在知識圖譜的知識系統中缺少動作、行為、狀態以及事件邏輯關系的形式化描寫。
4)跨模態的語言理解存在明顯融通局限。跨模態關系因缺乏深層結構化語義分析和世界知識導致推理能力較弱,造成語言理解形意相離。
與此同時,知識感知的預訓練語言模型已在現階段部分知識驅動的NLP 下游任務中嶄露頭角。預訓練語言模型未來可能的研究方向如下:
1)降低預訓練語言模型的訓練成本。當前已有研究人員致力于在損失較小精度的前提下探索更小、更快的預訓練語言模型,當前提供的思路包含對模型采用壓縮和知識蒸餾[64]等方法,如百度公司發布的ERNIE-Tiny,將ERNIE 2.0 Base 模型進行壓縮,取得了4.3 倍的預測提速。此外,研究新的高效的模型架構也將對降低訓練消耗起到積極作用。
2)從海量的非結構化文本而非infobox 中搜集系統的非結構化知識,構建新型多元知識圖譜增強的預訓練語言模型。在實體的靜態事實描述較為充分的基礎上,進一步完善事件的動態描述以及事件之間邏輯關系的構建。
3)未來可向大數據與富知識共同驅動的方向進行研究,并通過與圖像等跨模態信息進行交互,提升以自然語言為核心的中文語義理解能力,在實踐中探索經驗主義與理性主義相結合的自然語言處理新范式。
本文闡述預訓練技術的發展歷程,分析其中經典的預訓練語言模型,如BERT 及其改進模型,歸納近年來預訓練技術在NLP 領域的應用現狀和趨勢。對現有預訓練語言模型在NLP 特定下游任務中的表現進行評估,結果表明,外部知識的引入對預訓練語言模型在多種NLP 下游任務中的性能提升起到積極作用。知識感知的預訓練語言模型或可在更多特殊的應用情境中取得優異表現,逐步探索構建低成本、非結構化和可實現跨模態交互的預訓練語言模型將是下一步的研究方向。