李瑜澤,欒 馨,柯尊旺,李 哲,吾守爾·斯拉木
(1.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046;2.新疆多語種信息技術(shù)實(shí)驗(yàn)室,烏魯木齊 830046;3.新疆多語種信息技術(shù)研究中心,烏魯木齊 830046;4.新疆大學(xué) 軟件學(xué)院,烏魯木齊 830046)
自然語言處理(Natural Language Processing,NLP)是人工智能和語言學(xué)領(lǐng)域的分支學(xué)科,近年來,NLP 的發(fā)展取得了巨大進(jìn)步,任務(wù)劃分也更加詳盡,其主要下游任務(wù),如關(guān)系抽?。?]、文本分類[2]、對(duì)話生成、機(jī)器翻譯和共指消解[3]等均離不開預(yù)訓(xùn)練技術(shù)。預(yù)訓(xùn)練技術(shù)使用大規(guī)模無標(biāo)注的文本語料庫(kù)對(duì)深層網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,從而得到一組模型參數(shù),這種深層網(wǎng)絡(luò)結(jié)構(gòu)通常被稱為“預(yù)訓(xùn)練模型”[4]。將訓(xùn)練得到的模型參數(shù)運(yùn)用于后續(xù)特定的下游任務(wù),可避免從零開始進(jìn)行再訓(xùn)練的繁瑣過程。預(yù)訓(xùn)練模型的優(yōu)點(diǎn)在于訓(xùn)練代價(jià)較小,配合下游任務(wù)能夠達(dá)到更好的收斂效果,可以較好地提升模型的性能。
自BERT[5]模型被提出以來,各種預(yù)訓(xùn)練語言模型層出不窮。然而,非知識(shí)感知的預(yù)訓(xùn)練語言模型通常采用淺層網(wǎng)絡(luò)結(jié)構(gòu),只進(jìn)行簡(jiǎn)單的學(xué)習(xí),無法理解更高層次的文本概念,如語義角色、指代等;而知識(shí)感知的預(yù)訓(xùn)練語言模型能夠根據(jù)不同的應(yīng)用目的而加強(qiáng)不同的模塊,使模型具備更加專業(yè)的業(yè)務(wù)能力。因此,面對(duì)智能要求和專業(yè)化程度更高的深層次NLP 任務(wù),需要探索并分析將特定種類的外部知識(shí)嵌入到特定用途的預(yù)訓(xùn)練語言模型中。
目前,已有部分研究人員嘗試將外部知識(shí)嵌入到預(yù)訓(xùn)練語言模型中,評(píng)估其在特定下游任務(wù)中的性能表現(xiàn)。NLP 的外部知識(shí)含義廣泛,涵蓋了語言學(xué)知識(shí)、語義知識(shí)、常識(shí)知識(shí)、事實(shí)知識(shí)以及領(lǐng)域知識(shí)等[6]。知識(shí)豐富的預(yù)訓(xùn)練語言模型通常從通用的大規(guī)模文本語料庫(kù)中學(xué)習(xí)通用的語言表示,以靈活應(yīng)對(duì)多種下游任務(wù)并進(jìn)行相應(yīng)的微調(diào)[7]?;谥R(shí)感知[8]對(duì)預(yù)訓(xùn)練語言模型進(jìn)行擴(kuò)展,使得預(yù)訓(xùn)練技術(shù)進(jìn)入了一個(gè)新的發(fā)展階段。
本文在分析預(yù)訓(xùn)練技術(shù)發(fā)展歷程中經(jīng)典語言模型的基礎(chǔ)上,將研究重點(diǎn)轉(zhuǎn)向知識(shí)感知的預(yù)訓(xùn)練語言模型,分析此類模型相比其他預(yù)訓(xùn)練語言模型的優(yōu)勢(shì),研究知識(shí)感知對(duì)于預(yù)訓(xùn)練語言模型性能提升的增強(qiáng)作用,并在多種知識(shí)驅(qū)動(dòng)的NLP 下游任務(wù)中評(píng)估模型的性能表現(xiàn)。同時(shí),搜集最新知識(shí)感知的預(yù)訓(xùn)練語言模型的相關(guān)研究成果,對(duì)其中多種模型對(duì)比實(shí)驗(yàn)的結(jié)果加以分析,從中歸納總結(jié)已有知識(shí)感知的預(yù)訓(xùn)練語言模型適用于何種NLP 下游任務(wù),從而對(duì)未來的研究方向進(jìn)行展望。
知識(shí)感知的預(yù)訓(xùn)練語言模型大多基于知識(shí)圖譜引入豐富的外部知識(shí),因此,本節(jié)介紹知識(shí)表示學(xué)習(xí)的原理和其中具有代表性的相關(guān)方法。
知識(shí)圖譜是一種由實(shí)體節(jié)點(diǎn)和關(guān)系組成的語義網(wǎng)絡(luò)。表示學(xué)習(xí)旨在將研究對(duì)象的語義信息表示為稠密低維實(shí)值向量,而知識(shí)表示學(xué)習(xí)則在詞向量的啟發(fā)下面向知識(shí)圖譜中實(shí)體和關(guān)系的語義信息進(jìn)行學(xué)習(xí),通過將實(shí)體和關(guān)系映射到連續(xù)的低維向量空間中以實(shí)現(xiàn)知識(shí)的有效表示[9]。
知識(shí)的表示方法主要有符號(hào)表示[10]和數(shù)值表示:符號(hào)表示通常包含字符、關(guān)聯(lián)圖和符號(hào)等;數(shù)值表示通常用標(biāo)量、向量、概率分布等數(shù)值表達(dá)事實(shí)與知識(shí)。
TransE 模型[11]是傳統(tǒng)且具有代表性的知識(shí)表示學(xué)習(xí)方法,隨后針對(duì)TransE 模型進(jìn)行改進(jìn)的方法也層出不窮。TransE 模型主要考慮向低維向量空間中嵌入實(shí)體和多關(guān)系數(shù)據(jù)的關(guān)系問題,采用基于翻譯[12]的思想,通過將知識(shí)圖譜中的關(guān)系解釋為對(duì)應(yīng)于實(shí)體的某種低維嵌入平移向量[13],從而實(shí)現(xiàn)對(duì)關(guān)系的建模,因此,TransE 也被稱作翻譯模型。將三元組(h,r,t)看作頭實(shí)體h到尾實(shí)體t利用關(guān)系r所進(jìn)行的翻譯,則TransE 的損失函數(shù)如下:
其中:l1和l2表示向量空間。在TransE 的改進(jìn)模型中,性能較好的PTransE 模型通過對(duì)關(guān)系路徑進(jìn)行編碼,實(shí)現(xiàn)了實(shí)體和關(guān)系在低維向量空間中的嵌入,其能夠利用關(guān)系路徑約束資源配置并衡量關(guān)系路徑的可靠性。
此外,還有諸多傳統(tǒng)的知識(shí)表示學(xué)習(xí)方法及其改進(jìn)模型。例如,將不同的實(shí)體和關(guān)系對(duì)象映射到獨(dú)立語義空間的TransR 模型、注重實(shí)體與關(guān)系之間交互的TransD 模型、專注解決多重關(guān)系語義問題的TransG 模型以及用來處理復(fù)雜關(guān)系映射問題的TransH 模型等。
預(yù)訓(xùn)練技術(shù)利用大型語料庫(kù)學(xué)習(xí)通用語義表示,從而將預(yù)訓(xùn)練好的模型的相應(yīng)結(jié)構(gòu)和權(quán)重直接應(yīng)用于下游任務(wù),其借鑒了遷移學(xué)習(xí)[14]的思想。遷移學(xué)習(xí)的本質(zhì)是在一個(gè)數(shù)據(jù)集上訓(xùn)練基礎(chǔ)模型,通過微調(diào)等方式使模型可以在其他不同的數(shù)據(jù)集上處理不同的任務(wù)。
1.3.1 語言建模的初步知識(shí)
本文在不失一般性的前提下研究自回歸語言建模問題,將文本X視為符號(hào)序列(單詞或子單詞):X={ω1,…,ωi,…,ωn},語言概率的經(jīng)典單向因式分解如下:
其中:ω
由式(3)可知,可以通過增大Transformer 參數(shù)的方法促使語言建模能力提升,即隨著Transformer 層的擴(kuò)大和加深,Transformer 語言模型逐漸能夠輸出詞法和語法模式之外的更加復(fù)雜的語義。
1.3.2 知識(shí)與預(yù)訓(xùn)練的融合方式
預(yù)訓(xùn)練語言模型中的所有語義都是由Transformer間接捕獲的,預(yù)訓(xùn)練中也并無明確的要求用以更好地捕捉知識(shí),而當(dāng)前期望是其能含蓄地捕捉原始單詞序列下的知識(shí),方法之一是采用知識(shí)感知的語言建模(KALM)框架[15],在相同數(shù)量的Transformer 參數(shù)中封裝更多的信息,而非疊加更多的層或添加外部知識(shí)存儲(chǔ)。
知識(shí)與預(yù)訓(xùn)練融合的第一步是利用實(shí)體標(biāo)記器,通過形成一個(gè)額外的實(shí)體標(biāo)記序列表明預(yù)訓(xùn)練過程的輸入和輸出中存在實(shí)體。在知識(shí)感知輸入階段,首先每個(gè)單詞標(biāo)記都有一個(gè)輸入嵌入,同時(shí)允許模型學(xué)習(xí)每個(gè)實(shí)體的一個(gè)實(shí)體嵌入,然后將2 種嵌入相結(jié)合形成知識(shí)感知輸入,這里的所有嵌入都是隨機(jī)初始化并在訓(xùn)練前進(jìn)行學(xué)習(xí)的。在知識(shí)感知輸出階段,使用一個(gè)輸出頭來表示單詞概率,另一個(gè)輸出頭來表示實(shí)體,并共享單詞和實(shí)體之間的所有Transformer 層。最后,將知識(shí)感知的輸入和輸出引入到標(biāo)準(zhǔn)的多任務(wù)設(shè)置中,結(jié)合語言建模的損失并引入超參數(shù),平衡標(biāo)準(zhǔn)預(yù)訓(xùn)練語言模型中的交叉熵與實(shí)體預(yù)測(cè)損失之間的關(guān)系。通過上述過程,知識(shí)與預(yù)訓(xùn)練的融合已基本實(shí)現(xiàn)。
預(yù)訓(xùn)練的思想起初來源于計(jì)算機(jī)視覺領(lǐng)域,鑒于預(yù)訓(xùn)練在計(jì)算機(jī)視覺領(lǐng)域取得的較好效果,NLP開始嘗試使用預(yù)訓(xùn)練技術(shù)實(shí)現(xiàn)遷移學(xué)習(xí)。當(dāng)預(yù)訓(xùn)練技術(shù)運(yùn)用于NLP 領(lǐng)域時(shí),訓(xùn)練得當(dāng)?shù)恼Z言模型可以捕獲與下游任務(wù)相關(guān)的許多知識(shí),如長(zhǎng)期依賴、層次關(guān)系等。此外,在NLP 領(lǐng)域進(jìn)行訓(xùn)預(yù)練的顯著優(yōu)勢(shì)是訓(xùn)練數(shù)據(jù)可以來源于任意無監(jiān)督文本語料,即訓(xùn)練過程擁有無限量的訓(xùn)練數(shù)據(jù)。
早期的預(yù)訓(xùn)練是一種靜態(tài)技術(shù),NNLM[16]作為使用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)語言模型的經(jīng)典范例,早在2003年就已被提出,Word2Vec[17]借鑒NNLM 的思想使用語言模型得到詞向量,隨后GloVe[18]和FastText[19]相繼被提出,使得這種靜態(tài)的預(yù)訓(xùn)練技術(shù)逐漸成為最常用的文本表征技術(shù)之一[20]。但是,這種預(yù)訓(xùn)練技術(shù)歸根到底是一種靜態(tài)技術(shù),其對(duì)不同語境的適應(yīng)能力較差,且對(duì)下游任務(wù)的性能提升收效甚微。
為解決上述問題,研究人員開始關(guān)注動(dòng)態(tài)的預(yù)訓(xùn)練技術(shù)。自2018 年P(guān)ETERS 等[21]提出一種上下文相關(guān)的文本表示方法以來,DPT、BERT、XLNet[22]等預(yù)訓(xùn)練語言模型相繼被提出,預(yù)訓(xùn)練技術(shù)逐漸在NLP領(lǐng)域得到廣泛應(yīng)用。BERT 的出現(xiàn)將預(yù)訓(xùn)練語言模型的發(fā)展推向高潮,此后相繼涌現(xiàn)出一系列新式的預(yù)訓(xùn)練技術(shù),就模型結(jié)構(gòu)而言,它們所訓(xùn)練的模型一類是基于BERT 的改進(jìn)模型,另一類則是XLNet,關(guān)于預(yù)訓(xùn)練技術(shù)的研究自此進(jìn)入新階段。
本節(jié)主要總結(jié)分析NNLM、Word2Vec、GloVe、FastText 等靜態(tài)預(yù)訓(xùn)練技術(shù)。
2003年BENGIO提出的NNLM是早期使用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)語言模型的經(jīng)典模型,其本質(zhì)是一個(gè)N-Gram 語言模型。研究人員將模型的第一層特征映射矩陣當(dāng)作詞的文本表征,從而開創(chuàng)將詞語表示為向量形式的模式,啟發(fā)了后續(xù)Word2Vec 的有關(guān)研究。NNLM 的不足之處在于只利用了上文信息,并未結(jié)合更多的上下文信息,此外,其輸出層存在詞表較大引發(fā)計(jì)算量過大的問題。
2013 年MIKOLOV 提出的Word2Vev 在模型結(jié)構(gòu)和訓(xùn)練技巧方面對(duì)NNLM 進(jìn)行了優(yōu)化,并提出使用語言模型作為詞向量的構(gòu)思。該文首先提出CBOW[23]和Skip-gram[24]以簡(jiǎn)化模型結(jié)構(gòu),其次使用Hierarchical Softmax[25]和Negative Sampling技術(shù)解決普通Softmax 計(jì)算量過大的問題,最后將詞向量更換為需要由上下文詞向量[26]求和得到的語境向量。上述優(yōu)化使得在大規(guī)模無監(jiān)督文本語料上訓(xùn)練得到的詞向量在語義上取得了良好的性能表現(xiàn)。
2014 年P(guān)ENNINGTON 等提出的GloVe 是一個(gè)基于全局詞頻統(tǒng)計(jì)的詞表征工具,它可以將某個(gè)單詞表達(dá)成由實(shí)數(shù)組成的向量,通過向量獲取單詞之間的語義特性,對(duì)向量進(jìn)行運(yùn)算可以得出2 個(gè)單詞之間的語義相似度[27]。與Word2Vec 相比,GloVe 主要利用詞語的共現(xiàn)信息構(gòu)建模型,其訓(xùn)練主要包含統(tǒng)計(jì)共現(xiàn)矩陣和訓(xùn)練獲取詞向量2 個(gè)步驟。
2016 年,Word2Vec 的提出者M(jìn)IKOLOV 再次提出FastText,其利用有監(jiān)督標(biāo)記的文本分類數(shù)據(jù)進(jìn)行訓(xùn)練。FastText 的網(wǎng)絡(luò)結(jié)構(gòu)與CBOW 類似,但學(xué)習(xí)目標(biāo)是人工標(biāo)注的分類結(jié)果,兩者均使用Hierarchical Softmax技術(shù)加速訓(xùn)練。此外,F(xiàn)astText為了利用更多的語序信息,增加了N-Gram[28]的輸入信息,在訓(xùn)練詞向量時(shí)引入subword 來處理長(zhǎng)詞,這些改進(jìn)均使得FastText 的訓(xùn)練速度大幅提升。
隨著NLP 應(yīng)用場(chǎng)景的不斷豐富,以往采用靜態(tài)預(yù)訓(xùn)練技術(shù)訓(xùn)練的模型有時(shí)無法很好地完成特定的任務(wù)。在此情形下,動(dòng)態(tài)預(yù)訓(xùn)練技術(shù)方案應(yīng)運(yùn)而生,本節(jié)主要概述其中經(jīng)典且具有代表性的ELMo、GPT和BERT。
2018 年,ELMo 提出一種上下文相關(guān)的文本表示方法,根據(jù)當(dāng)前上下文對(duì)Word Embedding[29]進(jìn)行動(dòng)態(tài)調(diào)整,其任務(wù)采用典型的兩階段劃分:第一階段利用語言模型進(jìn)行預(yù)訓(xùn)練;第二階段在下游任務(wù)進(jìn)行時(shí)從預(yù)訓(xùn)練網(wǎng)絡(luò)中提取對(duì)應(yīng)單詞,將其網(wǎng)絡(luò)各層的Word Embedding 作為新特征補(bǔ)充到下游任務(wù)中。雖然ELMo 在當(dāng)時(shí)的適用范圍非常廣泛,但其選擇LSTM[30]作為特征提取器,而非提取能力更強(qiáng)的Transformer,導(dǎo)致在某些任務(wù)中的表現(xiàn)受到一定限制。
2018 年,RADFORD等提出的GPT使用生成式方法訓(xùn)練語言模型,選用Transformer 作為特征提取器,同樣也劃分為兩階段過程:第一階段利用語言模型進(jìn)行預(yù)訓(xùn)練,但其采用的是單向語言模型;第二階段通過微調(diào)(Fine-tuning)模式處理下游任務(wù)。由于僅選取預(yù)測(cè)詞的上文進(jìn)行預(yù)測(cè),因此GPT 在某些應(yīng)用任務(wù)中仍然無法取得較好的效果。
2018 年,谷歌團(tuán)隊(duì)的BERT 模型一經(jīng)發(fā)布,立即刷新了11 項(xiàng)NLP 任務(wù)的性能記錄。BERT 模型的架構(gòu)基于Transformer,實(shí)現(xiàn)多層雙向的Transformer 編碼器,其同樣被劃分為兩階段過程:第一階段的預(yù)訓(xùn)練過程 包含Masked Language Model[31]和Next Sentence Prediction[32]2 個(gè)任務(wù);第二階段使用Fine-tuning 模式處理下游任務(wù)。與GPT 相比,BERT 效果更優(yōu),這主要?dú)w功于雙向語言模型發(fā)揮的主要作用,尤其在下游任務(wù)中,其作用更加凸顯。此外,Next Sentence Prediction 在個(gè)別任務(wù)中也有出色表現(xiàn)。雖然BERT在眾多任務(wù)中表現(xiàn)優(yōu)異,但其參數(shù)量巨大,導(dǎo)致計(jì)算資源消耗大幅提升。
新興預(yù)訓(xùn)練技術(shù)從模型結(jié)構(gòu)上可分為兩類:一類是能夠獲得真雙向上下文信息的自回歸語言模型XLNet;另一類是基于BERT 的改進(jìn)模型,包括改進(jìn)生成任務(wù)、引入多任務(wù)、引入知識(shí)以及改進(jìn)訓(xùn)練方法等改進(jìn)模型。
在BERT的眾多改進(jìn)模型中,MASS[33]和UNILM[34]2 個(gè)模型均致力于改進(jìn)BERT 在其生成任務(wù)中的表現(xiàn)。其中,MASS 在機(jī)器翻譯任務(wù)中效果顯著,UNILM則在摘要生成、問題生成、對(duì)話回復(fù)生成以及生成式問答任務(wù)中效果更佳。MT-DNN[35]和ERNIE 2.0[36]2 個(gè)模型通過引入多任務(wù)學(xué)習(xí)改進(jìn)BERT。其中,MT-DNN 能更好地在小數(shù)據(jù)集上實(shí)現(xiàn)微調(diào),ERNIE 2.0 則在閱讀理解、情感分析以及問答任務(wù)上效果顯著。ERNIE 1.0 和ERNIE(THU)[37]2 個(gè)模型通過引入知識(shí),使預(yù)訓(xùn)練語言模型能夠?qū)W習(xí)到蘊(yùn)含在深層文本中的潛在知識(shí)。其中,ERNIE 1.0 在自然語言推斷[38]、語義相似度、情感分析、命名實(shí)體識(shí)別[39]以及問答匹配任務(wù)中較BERT 表現(xiàn)更佳,ERNIE(THU)則在知識(shí)驅(qū)動(dòng)型任務(wù)中效果顯著。RoBERTa[40]模型采用比BERT更加精細(xì)的參數(shù)和訓(xùn)練方法,在句子關(guān)系推斷任務(wù)中具有比BERT 更好的性能。BERT-WWM 更改原預(yù)訓(xùn)練階段的訓(xùn)練樣本生成策略,當(dāng)被掩蔽的詞塊標(biāo)記屬于一個(gè)整詞時(shí),所有構(gòu)成一個(gè)完整詞的詞塊標(biāo)記將一起被掩蔽。由于BERT-WWM 缺乏中文語言相關(guān)模型,哈工大訊飛實(shí)驗(yàn)室提出了全詞覆蓋的中文BERT 預(yù)訓(xùn)練模型,即BERT-wwm-ext[41],其增加了訓(xùn)練數(shù)據(jù)集同時(shí)也增加了訓(xùn)練步數(shù),進(jìn)一步促進(jìn)中文信息處理研究的發(fā)展。為解決目前預(yù)訓(xùn)練模型參數(shù)量過大的問題,ALBERT(A Lite BERT)[42]提出2 種能夠大幅減少預(yù)訓(xùn)練模型參數(shù)量的方法,用SOP(Sentence-Order Prediction)任務(wù)代替BERT中的NSP(Next-Sentence Prediction)任務(wù),在多個(gè)自然語言理解任務(wù)中取得了較優(yōu)的結(jié)果。在BERT 模型的基礎(chǔ)上進(jìn)行改進(jìn)得到的分詞級(jí)別的預(yù)訓(xùn)練模型SpanBERT[43],對(duì)隨機(jī)的鄰接分詞而非隨機(jī)的單個(gè)詞語添加掩模,通過使用分詞邊界的表示來預(yù)測(cè)被添加掩模的分詞內(nèi)容,其在問答、指代消解等分詞選擇任務(wù)中取得了較大的進(jìn)展。華為、華科聯(lián)合提出的TinyBERT 模型[44]是一種基于transformer 而專門設(shè)計(jì)的知識(shí)蒸餾[45]方法,其模型大小不足BERT 的1/7,但將處理速度相對(duì)BERT 提高了9 倍,大幅降低了其應(yīng)用成本。
XLNet 模型使用排列語言模型、雙流自注意力和循環(huán)三大機(jī)制,不僅解決了BERT 單詞之間預(yù)測(cè)不獨(dú)立的問題,還使得自回歸模型也可獲得真雙向的上下文信息。
預(yù)訓(xùn)練的語言表示模型(如ELMo、BERT 和XLNet 等)從大規(guī)模的非結(jié)構(gòu)化和無標(biāo)記語料庫(kù)中學(xué)習(xí)有效的語言表示,并憑借其優(yōu)異的性能在各種NLP 任務(wù)中發(fā)揮著重要作用。然而,它們大多缺乏真實(shí)的世界知識(shí),最新的研究結(jié)果表明,可以通過將外部知識(shí)注入到預(yù)訓(xùn)練語言模型中來解決某些文本理解較為局限的問題。
預(yù)訓(xùn)練語言模型通常從通用的大規(guī)模文本語料庫(kù)中學(xué)習(xí)通用的語言表示,但其大多缺乏特定領(lǐng)域的知識(shí)。目前已有許多研究人員嘗試將外部知識(shí)庫(kù)中的領(lǐng)域知識(shí)整合到預(yù)訓(xùn)練語言模型中,再將這些模型分別運(yùn)用于各自適用的NLP 下游任務(wù)并從中監(jiān)測(cè)其表現(xiàn),結(jié)果表明,這種通過知識(shí)嵌入增強(qiáng)預(yù)訓(xùn)練語言模型性能的方法具有有效性。
本文根據(jù)外部知識(shí)的范圍,從語言學(xué)、語義、常識(shí)、事實(shí)以及特定領(lǐng)域的知識(shí)等方面出發(fā),對(duì)現(xiàn)有相關(guān)模型進(jìn)行歸納和總結(jié),重點(diǎn)介紹其中具有代表性的知識(shí)感知的預(yù)訓(xùn)練語言模型。
現(xiàn)有的預(yù)訓(xùn)練語言模型很少考慮引入知識(shí)圖譜(KGs)[46],而知識(shí)圖譜可以為語言理解提供豐富的結(jié)構(gòu)化知識(shí)事實(shí)。
清華大學(xué)與華為公司的相關(guān)研究人員認(rèn)為,KGs 中的信息實(shí)體可以作為外部知識(shí)來增強(qiáng)語言表示,因此,他們提出一種使用信息實(shí)體增強(qiáng)語言表示的模型ERNIE(THU),該模型利用大規(guī)模的文本語料庫(kù)和KGs 訓(xùn)練得到一個(gè)增強(qiáng)的語言表示模型。
3.1.1 ERNIE(THU)總體架構(gòu)
如圖1 所示,ERNIE(THU)模型架構(gòu)由2 個(gè)堆疊的模塊組成:
圖1 ERNIE(THU)總體架構(gòu)Fig.1 The architecture of ERNIE(THU)
1)底層文本編碼器(T-Encoder)負(fù)責(zé)從輸入標(biāo)記中捕獲基本的詞匯和語法信息。
2)上層知識(shí)豐富的編碼器(K-Encoder)負(fù)責(zé)將額外的面向標(biāo)記的知識(shí)信息集成到底層的文本信息中,以便在統(tǒng)一的特征空間中表示標(biāo)記和實(shí)體的異構(gòu)信息。
3.1.2 ERNIE(THU)預(yù)訓(xùn)練
與BERT 相似,ERNIE(THU)也采用掩碼語言模型(MLM)和下一句預(yù)測(cè)(NSP)作為預(yù)訓(xùn)練任務(wù),以從文本標(biāo)記中捕捉詞法和句法信息。
為能夠通過信息實(shí)體將知識(shí)注入到語言表示中,可以采用隨機(jī)掩蓋部分標(biāo)記-實(shí)體對(duì)齊的方法,要求系統(tǒng)基于對(duì)齊的標(biāo)記預(yù)測(cè)對(duì)應(yīng)的實(shí)體,且只需根據(jù)給定的實(shí)體序列來預(yù)測(cè)實(shí)體,而非KGs 中的所有實(shí)體。上述過程稱為去噪實(shí)體自動(dòng)編碼器(dEA)。
給定標(biāo)記序列{w1,w2,…,wn}及其對(duì)應(yīng)的實(shí)體序列{e1,e2,…,em},其中,n為令牌序列的長(zhǎng)度,m為實(shí)體序列的長(zhǎng)度。為標(biāo)記wi定義對(duì)齊的實(shí)體分布如下:
其中:linear(?)為線性層。式(4)用來計(jì)算dEA 的交叉熵?fù)p失函數(shù),預(yù)訓(xùn)練損失是dEA、MLM 和NSP 的損失總和。
3.1.3 ERNIE(THU)微調(diào)
對(duì)于常見的NLP 任務(wù),ERNIE(THU)采用類似于BERT 的微調(diào)過程,而對(duì)于知識(shí)驅(qū)動(dòng)的NLP 任務(wù)(如關(guān)系分類和實(shí)體鍵入),ERNIE(THU)設(shè)計(jì)了特殊的微調(diào)過程。
關(guān)系分類任務(wù)要求系統(tǒng)根據(jù)上下文對(duì)給定實(shí)體對(duì)的關(guān)系標(biāo)簽進(jìn)行分類,通過添加2 個(gè)標(biāo)記符號(hào)修改輸入標(biāo)記序列以突出實(shí)體提及,這些額外的標(biāo)記符號(hào)在傳統(tǒng)關(guān)系分類模型中扮演著類似于位置嵌入的角色。ERNIE(THU)同樣也采取[CLS]標(biāo)記嵌入分類,還分別為頭部實(shí)體和尾部實(shí)體設(shè)計(jì)了不同的標(biāo)記[HD]和[TL]。
實(shí)體鍵入任務(wù)的特定微調(diào)是關(guān)系分類任務(wù)微調(diào)的簡(jiǎn)化過程,由于之前的類型模型充分利用了上下文嵌入和實(shí)體提及嵌入,因此修改后的輸入序列帶有提及標(biāo)記符[ENT],可以引導(dǎo)ERNIE(THU)將上下文信息和實(shí)體提及信息相結(jié)合。
3.1.4 ERNIE(THU)評(píng)估
在FIGER 和Open Entity 2 個(gè)數(shù)據(jù)集上對(duì)BERT和ERNIE(THU)進(jìn)行微調(diào),評(píng)估兩者在實(shí)體鍵入任務(wù)中的性能;在FewRel 和TACRED 2 個(gè)數(shù)據(jù)集上對(duì)BERT 和ERNIE(THU)進(jìn)行微調(diào),評(píng)估兩者在關(guān)系分類任務(wù)中的性能。實(shí)驗(yàn)結(jié)果如表1 所示。
表1 BERT 和ERNIE(THU)的性能對(duì)比結(jié)果Table 1 Performance comparison results of BERT and ERNIE(THU) %
從表1 可以看出,ERNIE(THU)模型能同時(shí)充分利用詞匯、句法和知識(shí)信息,在2 個(gè)知識(shí)驅(qū)動(dòng)的NLP 任務(wù),即實(shí)體鍵入和關(guān)系分類上取得優(yōu)于BERT的性能。但是,ERNIE(THU)仍存在一定的局限性,比如受命名實(shí)體識(shí)別(NER)的影響,其依賴于NER提取的準(zhǔn)確度,模型復(fù)雜度過高。
3.1.5 其他事實(shí)知識(shí)融合的預(yù)訓(xùn)練語言模型
ERNIE(THU)模型將預(yù)訓(xùn)練在KGs 上的實(shí)體嵌入與文本中提到的相應(yīng)實(shí)體相結(jié)合以增強(qiáng)文本表示。與ERNIE(THU)類似,KG-BERT[47]模型結(jié)合預(yù)訓(xùn)練模型BERT 并修改其輸入使BERT 適配知識(shí)庫(kù)三元組的形式,以便使更豐富的上下文表示與模型相結(jié)合,促使其在三元組分類、鏈接預(yù)測(cè)以及關(guān)系預(yù)測(cè)等任務(wù)中達(dá)到SOTA效果。KnowBERT[48]將BERT 與實(shí)體鏈接模型相聯(lián)合,以端到端的方式合并實(shí)體表示:使用常識(shí)知識(shí)庫(kù)ConceptNet[49]和情感詞典NEC_VAD 作為外部知識(shí)來源,采用動(dòng)態(tài)上下文感知情感圖注意力機(jī)制,計(jì)算每個(gè)token 融入知識(shí)后的上下文表示;引入相關(guān)性因子和情感因子2 個(gè)因素來衡量上下文相關(guān)度和情感強(qiáng)度的權(quán)重;提出一種層次化自注意力機(jī)制,在利用對(duì)話結(jié)構(gòu)表示形式的同時(shí)學(xué)習(xí)上下文語言的向量表示形式。KEPLER[50]將知識(shí)嵌入和語言建模目標(biāo)相結(jié)合并進(jìn)行優(yōu)化:通過添加類似TransE 的預(yù)訓(xùn)練機(jī)制以增強(qiáng)相應(yīng)的文本表示,將每個(gè)實(shí)體與對(duì)應(yīng)的維基百科描述相鏈接,使之均獲得對(duì)應(yīng)的文本描述信息;對(duì)于每一個(gè)三元組<頭實(shí)體,關(guān)系,尾實(shí)體>,采用基于BERT 的編碼器,利用實(shí)體的描述信息對(duì)每個(gè)實(shí)體進(jìn)行編碼;在得到頭實(shí)體和尾實(shí)體對(duì)應(yīng)的表示之后,基于頭實(shí)體和關(guān)系預(yù)測(cè)尾實(shí)體。上述模型都是通過實(shí)體嵌入的方式注入KGs 的結(jié)構(gòu)信息。
現(xiàn)有預(yù)訓(xùn)練語言模型大多可以在大規(guī)模開放領(lǐng)域語料庫(kù)上進(jìn)行預(yù)訓(xùn)練以獲得一般的語言表示,然后在特定的下游任務(wù)中進(jìn)行微調(diào)以吸收特定領(lǐng)域的知識(shí)。但是,由于預(yù)訓(xùn)練和微調(diào)之間可能存在領(lǐng)域差異,此類模型往往在知識(shí)驅(qū)動(dòng)任務(wù)中表現(xiàn)不佳。為此,文獻(xiàn)[51]提出基于KGs 知識(shí)支持的語言表示模型K-BERT,該模型將從KGs 中提取的相關(guān)三元組作為領(lǐng)域知識(shí)顯式地注入到句子中,得到BERT的擴(kuò)展樹形輸入。由于K-BERT 能夠從預(yù)訓(xùn)練的BERT 中加載模型參數(shù),因此無須自行進(jìn)行預(yù)訓(xùn)練,只需配備KGs 即可將領(lǐng)域知識(shí)注入到模型中。
3.2.1 K-BERT 總體架構(gòu)
如圖2 所示,K-BERT 模型架構(gòu)由知識(shí)層、嵌入層、可見層、掩模轉(zhuǎn)換器等4 個(gè)模塊組成。對(duì)于輸入的句子,知識(shí)層首先從KGs 中向其注入相關(guān)三元組,將原句轉(zhuǎn)化為知識(shí)豐富的句子樹;隨后句子樹被同時(shí)輸送到嵌入層和可見層,轉(zhuǎn)化為一個(gè)標(biāo)記級(jí)別的嵌入表示和一個(gè)可見矩陣,可見矩陣用來控制每個(gè)標(biāo)記的可見區(qū)域,防止因注入過多知識(shí)而導(dǎo)致原句句意改變;最后通過掩模轉(zhuǎn)換器編碼后用于下游任務(wù)的輸出。
圖2 K-BERT 總體架構(gòu)Fig.2 The architecture of K-BERT
3.2.2 K-BERT 實(shí)現(xiàn)過程
知識(shí)層完成知識(shí)注入和句子樹轉(zhuǎn)換,輸入原始句子s={w0,w1,…,wn}和知識(shí)圖譜Κ,輸出句子樹t={w0,w1,…,wi{(ri0,wi0),…,(rik,wik)},…,wn},整個(gè)過程分為知識(shí)查詢和知識(shí)注入2 個(gè)步驟:
1)知識(shí)查詢選中輸入句子中涉及的所有實(shí)體并查詢它們?cè)贙Gs 中對(duì)應(yīng)的三元組E,可以表示為:
其中:E={(wi,ri0,wi0),…,(wi,rik,wik)}是相應(yīng)的三元組集合。
2)知識(shí)注入將查詢到的三元組注入句子s,將E中三元組插入到相應(yīng)的位置,并生成句子樹t,可以表示為:
嵌入層的作用是將輸入的句子樹轉(zhuǎn)換為一種嵌入表示并保留其結(jié)構(gòu)化信息,該嵌入表示是標(biāo)記嵌入、位置嵌入、段嵌入等3 個(gè)部分之和。
可見層是K-BERT 和BERT 之間最大的區(qū)別,K-BERT 通過使用一個(gè)可見矩陣M,限制每個(gè)標(biāo)記的可見區(qū)域,從而規(guī)避過多知識(shí)注入引發(fā)句意改變的風(fēng)險(xiǎn)。
掩模轉(zhuǎn)換器是掩模自注意塊的層層堆疊,K-BERT 提出的掩模自注意機(jī)制是自注意機(jī)制的延伸,如下所示:其中:Wq、Wk和Wv是可訓(xùn)練模型參數(shù);hi是第i個(gè)掩模自注意塊的隱藏狀態(tài);dk是比例因子。直觀上,如果Wk對(duì)Wj不可見,則Mjk將把注意值掩蓋為0,這意味著Wk對(duì)Wj的隱藏狀態(tài)沒有貢獻(xiàn)。
3.2.3 K-BERT 評(píng)估
將特定領(lǐng)域的數(shù)據(jù)集分為3 個(gè)部分,分別用于模型的微調(diào)、選擇和測(cè)試,各模型的檢驗(yàn)結(jié)果如表2、表3 所示。
表2 Google BERT 模型的預(yù)訓(xùn)練表現(xiàn)Table 2 Pre-training performance of Google BERT model %
表3 改進(jìn)BERT 模型的預(yù)訓(xùn)練表現(xiàn)Table 3 Pre-training performance of the improved BERT model %
從表2、表3 可以看出,在特定領(lǐng)域的任務(wù)(包括金融、法律和醫(yī)學(xué))中,K-BERT 的表現(xiàn)明顯優(yōu)于BERT,尤其在醫(yī)學(xué)領(lǐng)域效果提升顯著,這表明K-BERT 是解決需要專家知識(shí)驅(qū)動(dòng)問題的較佳方案。
上文詳細(xì)闡述了K-BERT 將三元組作為領(lǐng)域知識(shí)注入到句子中,并引入可見矩陣限制知識(shí)影響以解決噪聲問題的過程。
3.2.4 其他領(lǐng)域知識(shí)融合的預(yù)訓(xùn)練語言模型
上文所述方法大多在注入知識(shí)時(shí)更新預(yù)訓(xùn)練模型的原始參數(shù),因此,在注入多種知識(shí)時(shí)可能會(huì)遭遇災(zāi)難性遺忘問題。為此,文獻(xiàn)[52]提出一種K-Adapter模型,其可以使BERT 自適應(yīng)地與知識(shí)相融合:先針對(duì)不同的預(yù)訓(xùn)練任務(wù)對(duì)不同的adapter 進(jìn)行獨(dú)立訓(xùn)練,然后在針對(duì)具體的下游任務(wù)進(jìn)行微調(diào)時(shí),采用不同的adapter 有針對(duì)性地加入特征以增強(qiáng)其效果。這樣不僅保持了預(yù)訓(xùn)練模型的原始參數(shù)不變,還能進(jìn)行持續(xù)的知識(shí)灌輸。
常識(shí)知識(shí)對(duì)某些NLP 任務(wù)至關(guān)重要,其中,大規(guī)模常識(shí)知識(shí)如何促進(jìn)語言的理解和生成是關(guān)鍵,特別是對(duì)話系統(tǒng),原因是會(huì)話交互是一種語義活動(dòng)[53],如果模型能夠訪問和充分利用大規(guī)模的常識(shí)知識(shí),就能更好地理解對(duì)話,從而做出更恰當(dāng)?shù)捻憫?yīng)。目前已有研究人員在會(huì)話生成中通過引入外部知識(shí)來增強(qiáng)對(duì)話生成,并取得了一定成果,但在會(huì)話生成方面還有一些問題未能解決:
1)一個(gè)實(shí)體詞通??梢灾覆煌母拍?,即一個(gè)實(shí)體有多種含義,但在特定的語境中只涉及一個(gè)特定的概念,如果不考慮這一點(diǎn),一些預(yù)先獲取的知識(shí)事實(shí)可能與上下文無關(guān)。
2)即使只考慮一個(gè)特定的實(shí)體意義,相關(guān)的知識(shí)事實(shí)也可能涵蓋各種目標(biāo)主題,但是,其中一些主題并不有助于產(chǎn)生對(duì)話。
3)以往方法在知識(shí)整合與對(duì)話生成方面存在不足,包括整合的方式以及知識(shí)的類型。
本節(jié)介紹一種全新的常識(shí)知識(shí)感知的對(duì)話生成模 型ConKADI[54],該模型可以很好地解決以上問題。
3.3.1 ConKADI 總體架構(gòu)
ConKADI 總體架構(gòu)如圖3 所示,知識(shí)事實(shí)集F由知識(shí)檢索器(Knowledge Retriever)根據(jù)查詢信息X進(jìn)行檢索,上下文編碼器(Context Encoder)將語句總結(jié)為上下文表示形式。虛構(gòu)事實(shí)識(shí)別器(Felicitous Fact Recognize)計(jì)算出合適的事實(shí)概率分布z除以F,用于初始化解碼器并指導(dǎo)其生成。三元組知識(shí)解碼器(Triple Knowledge Decoder)可以生成詞匯、知識(shí)實(shí)體詞和復(fù)制詞,并采用靈活模式融合(Flexible Mode Fusion)。
圖3 ConKADI 總體架構(gòu)Fig.3 The architecture of ConKADI
各模塊具體如下:
1)知識(shí)檢索器。給定一個(gè)查詢消息X,如果一個(gè)詞xi?X被識(shí)別為一個(gè)實(shí)體詞,并且可以匹配到知識(shí)圖譜G中的頂點(diǎn)esrc,若其他頂點(diǎn)etgt?Neighbour(esrc),將檢索的相應(yīng)方向關(guān)系r作為候選事實(shí)f。其中,esrc、etgt稱為源、目標(biāo)實(shí)體。
2)上下文編碼器。該編碼器是一個(gè)雙向GRU網(wǎng)絡(luò),其讀取X或Y并輸出上下文狀態(tài)序列。
3)虛構(gòu)事實(shí)識(shí)別器。某些初步檢索到的知識(shí)事實(shí)在對(duì)話上下文中可能不合適,虛構(gòu)事實(shí)識(shí)別器旨在檢測(cè)與對(duì)話上下文高度一致的事實(shí),其讀取上下文信息,然后在F上輸出概率分布z?Rl×1,第i維值z(mì)[i]表示fi的權(quán)重。在訓(xùn)練階段,將高質(zhì)量的人為反應(yīng)Y作為后驗(yàn)知識(shí)。因此,在訓(xùn)練中采用后驗(yàn)zpost,在推理中采用先驗(yàn)zprior:
其中:F是檢索到的事實(shí)的嵌入矩陣;Wft、Wpost和Wprior是可訓(xùn)練參數(shù);η是softmax 激活函數(shù);?是tanh激活函數(shù)。Kullback-Leibler 散度(KLD)函數(shù)用來縮小2 個(gè)分布之間的差距:
基于知識(shí)融合和上下文檢索,對(duì)解碼器進(jìn)行初始化以增強(qiáng)其對(duì)背景知識(shí)的理解:
其中:B是Y的詞袋;pb是被softmax 函數(shù)激活的雙層MLPbow,由它輸出詞匯V的概率分布。
4)三元組知識(shí)解碼器。該解碼器是另一個(gè)GRU 網(wǎng)絡(luò),在每個(gè)時(shí)間步可以生成詞匯、知識(shí)實(shí)體詞和復(fù)制詞中的一種。詞匯的概率分布為:
其中:elu 是非線性層激活函數(shù);Wv1、Wv2是可訓(xùn)練參數(shù)是ConKADI 首先更新的內(nèi)部狀態(tài)。
知識(shí)實(shí)體詞的概率分布為:
其中:z是靜態(tài)全局分布;zd是動(dòng)態(tài)分布。解碼器從X中指定一個(gè)單詞x,然后復(fù)制x,查詢信息x對(duì)應(yīng)的概率分布為:
隨后通過最小化?n來優(yōu)化融合輸出分布p(Y|X,F),具體為:
訓(xùn)練目標(biāo)是通過最小化如下?來訓(xùn)練ConKADI:
3.3.2 ConKADI 評(píng)估
為了研究不同語言之間的泛化性,實(shí)驗(yàn)采用公開的英語Reddit 數(shù)據(jù)集、中文微博數(shù)據(jù)集,基線選取S2S、ATS2S、GenDS 和CCM 等模型,從知識(shí)利用率、基于嵌入的相關(guān)性、基于重疊的相關(guān)性、多樣性和信息量這5 個(gè)方面進(jìn)行評(píng)價(jià)。為了驗(yàn)證模型的綜合性能,先按平均指標(biāo)(AVG)計(jì)算7 個(gè)基線的平均得分,然后計(jì)算算術(shù)平均得分如下:
計(jì)算幾何平均得分如下:
實(shí)驗(yàn)結(jié)果如表4、表5 所示,從表4、表5 可以看出:在相對(duì)得分方面,ConKADI 的整體表現(xiàn)優(yōu)于基線模型,與最先進(jìn)的CCM 方法相比,ConKADI 在中文數(shù)據(jù)集上的得分分別提高了153%(算術(shù))、95%(幾何),在英文數(shù)據(jù)集上分別提高了48%(算術(shù))、25%(幾何);在知識(shí)利用率方面,GenDS、CCM、ConKADI 等3 種知識(shí)感知模型的表現(xiàn)顯著優(yōu)于其他模型,而與GenDS、CCM 相比,ConKADI對(duì)知識(shí)的利用率更高,并且更能找出準(zhǔn)確的知識(shí);在多樣性和信息性方面,ConKADI 性能提升顯著歸因于上下文-知識(shí)融合;在相關(guān)性方面,由于數(shù)據(jù)集存在內(nèi)在差異,因此ConKADI 在中文數(shù)據(jù)集上的整體性能最好,但在英文數(shù)據(jù)集上其性能并不理想。
表4 各模型在中文微博數(shù)據(jù)集上的性能對(duì)比結(jié)果Table 4 Performance comparison results of each model on Chinese microblog dataset
表5 各模型在英文Reddit 數(shù)據(jù)集上的性能對(duì)比結(jié)果Table 5 Performance comparison results of each model on English Reddit dataset
綜上,ConKADI 模型提出的上下文知識(shí)融合和靈活模式融合可以促進(jìn)知識(shí)整合,在開放發(fā)布的英文數(shù)據(jù)集和中文數(shù)據(jù)集中取得顯著成果,但其在推進(jìn)高質(zhì)量知識(shí)整合方面仍存在一定的局限性。
3.3.3 其他常識(shí)知識(shí)融合的預(yù)訓(xùn)練語言模型
在其他常識(shí)知識(shí)融合的預(yù)訓(xùn)練語言模型中,常識(shí)知識(shí)感知的會(huì)話生成模型CCM[55]與現(xiàn)有單獨(dú)使用知識(shí)三元組(實(shí)體)的模型不同,CCM 將每個(gè)知識(shí)圖視為一個(gè)整體,在圖中編碼結(jié)構(gòu)化更強(qiáng)、連接更緊密的語義信息。具體來說,CCM 通過從一個(gè)知識(shí)庫(kù)中檢索出相關(guān)的知識(shí)圖譜,并采用靜態(tài)的圖注意機(jī)制對(duì)其進(jìn)行編碼,促進(jìn)開放領(lǐng)域會(huì)話系統(tǒng)中的語言理解和生成,然后通過動(dòng)態(tài)圖注意機(jī)制在詞生成過程中檢索知識(shí)圖和圖中的每個(gè)知識(shí)三元組,以便更好地完成生成任務(wù)。
受BERT 掩蔽策略的啟發(fā),百度提出一種新的知識(shí)增強(qiáng)語言表示模型ERNIE(baidu),用來學(xué)習(xí)通過知識(shí)掩蔽策略增強(qiáng)的語言表示。ERNIE(baidu)的掩蔽策略如圖4 所示。
圖4 ERNIE(baidu)的掩蔽策略Fig.4 The masking strategy of ERNIE(baidu)
3.4.1 ERNIE(baidu)的Transfomer 編碼器
與BERT相同,ERNIE(baidu)使用多層Transfomer 作為基礎(chǔ)編碼器,Transformer 可以通過自注意機(jī)制獲取句子中每個(gè)標(biāo)記的上下文信息,并生成上下文嵌入序列。
對(duì)于漢語語料庫(kù),本文使用詞塊對(duì)漢語句子進(jìn)行標(biāo)記。對(duì)于給定的標(biāo)記,其輸入表示是由相應(yīng)的令牌、段和位置嵌入的總和構(gòu)成的,每個(gè)序列的第一個(gè)標(biāo)記是特殊分類嵌入([CLS])。
3.4.2 ERNIE(baidu)的知識(shí)集成方法
知識(shí)集成的主要思路是使用先驗(yàn)知識(shí)增強(qiáng)預(yù)訓(xùn)練語言模型。ERNIE(baidu)提出一種多階段知識(shí)掩蔽策略,將短語級(jí)和實(shí)體級(jí)知識(shí)整合到語言表示中,而非直接添加知識(shí)嵌入。句子的不同掩蔽級(jí)別如圖5 所示。
圖5 句子的不同掩蔽級(jí)別Fig.5 Different masking levels of a sentence
第一階段是基礎(chǔ)級(jí)掩蔽,在訓(xùn)練過程中隨機(jī)掩碼15%的基本語言單元,并使用句子中其他基本語言單元作為輸入,訓(xùn)練一個(gè)Transformer 來預(yù)測(cè)掩碼單元,由此得到的基本詞表示很難對(duì)高級(jí)語義知識(shí)進(jìn)行完全建模。
第二階段是短語級(jí)掩蔽,同樣使用基本語言單元作為訓(xùn)練輸入,不同于上一階段,這次選擇隨機(jī)掩蔽幾個(gè)短語,并預(yù)測(cè)同一短語中的所有基本單元。在此階段,短語信息被編碼到詞嵌入中。
第三階段是實(shí)體級(jí)掩蔽,實(shí)體通常在句子中包含重要信息。在上一階段,分析得到句子中的命名實(shí)體并將其掩蔽,隨后進(jìn)行預(yù)測(cè)并填補(bǔ)空缺的實(shí)體。
經(jīng)過上述3 個(gè)階段的學(xué)習(xí),能夠得到經(jīng)過豐富語義信息增強(qiáng)后的詞表示。
3.4.3 ERNIE(baidu)評(píng)估
ERNIE(baidu)和BERT 在自然語言推理、語義相似度、命名實(shí)體識(shí)別、情感分析和問答這5 個(gè)中文自然語言處理任務(wù)中的性能表現(xiàn)如表6 所示。
表6 ERNIE(baidu)和BERT 在5 個(gè)中文自然語言處理任務(wù)中的性能對(duì)比Table 6 Performance comparison of ERNIE(baidu)and BERT in five Chinese NLP tasks %
從表6 可以看出,通過對(duì)異構(gòu)數(shù)據(jù)的知識(shí)整合和預(yù)訓(xùn)練,模型的語義表示能力顯著增強(qiáng),能夠獲得更好的語言表達(dá)。在上述5 個(gè)中文自然語言處理任務(wù)中,ERNIE(baidu)的表現(xiàn)均明顯優(yōu)于BERT。
以上詳細(xì)闡述了ERNIE(baidu)在BERT 的基礎(chǔ)上使用Transformer[56]作為特征抽取器,加入海量語料中的短語、實(shí)體等先驗(yàn)語義知識(shí),從而建模真實(shí)世界語義關(guān)系的過程。與BERT 相比,ERNIE(baidu)僅對(duì)學(xué)習(xí)任務(wù)MLM 稍作改進(jìn)就取得了較好的成效。
3.4.4 其他語義知識(shí)融合的預(yù)訓(xùn)練語言模型
ERNIE(baidu)的改進(jìn)模型ERNIE 2.0 是基于持續(xù)學(xué)習(xí)的語義理解預(yù)訓(xùn)練框架,使用多任務(wù)學(xué)習(xí)增量式構(gòu)建預(yù)訓(xùn)練任務(wù),新增的語義任務(wù)包括預(yù)測(cè)句中詞匯、重建和重排句子結(jié)構(gòu)、判斷句間邏輯關(guān)系等。采用語言學(xué)及語義知識(shí)注入的預(yù)訓(xùn)練語言模型還有面向中文理解的神經(jīng)語境表征模型NEZHA[57],其在BERT 的基礎(chǔ)上進(jìn)行的改進(jìn)包括作為有效位置編碼方案的函數(shù)相對(duì)位置編碼、全詞掩蔽策略、混合精度訓(xùn)練和訓(xùn)練模型的LAMB 優(yōu)化器。使用N-gram[58]表示增強(qiáng)的中文文本編碼器的預(yù)訓(xùn)練模型ZEN[59],其基于BERT,在訓(xùn)練過程中考慮不同的字符組合,整合字符序列及其所包含的單詞或短語的綜合信息,相比于其他編碼器使用更少的資源,卻能在大多數(shù)任務(wù)上展現(xiàn)出更佳的性能?;贐ERT 的漢語全詞掩蔽預(yù)訓(xùn)練語言模型BERT-WWMChinese[60],當(dāng)被掩蔽的詞塊標(biāo)記屬于整詞時(shí),所有構(gòu)成整詞的詞塊標(biāo)記都將被一并掩蔽,迫使模型在掩蔽語言模型(MLM)的預(yù)訓(xùn)練任務(wù)中恢復(fù)整個(gè)單詞,而不僅僅恢復(fù)單詞標(biāo)記。上述模型均通過對(duì)BERT 進(jìn)行微小改進(jìn)而使得表征能力和訓(xùn)練速度大幅提升。
本節(jié)以預(yù)訓(xùn)練技術(shù)在生物醫(yī)學(xué)領(lǐng)域的應(yīng)用為代表,介紹將特定領(lǐng)域的專業(yè)知識(shí)注入到預(yù)訓(xùn)練語言模型的相關(guān)研究。
隨著生物醫(yī)學(xué)文檔數(shù)量的快速增長(zhǎng),生物醫(yī)學(xué)文本挖掘需求日益增大。BioBERT 模型[61]是一種注入了生物醫(yī)學(xué)領(lǐng)域知識(shí)的預(yù)訓(xùn)練語言模型,其基于BERT,致力于合理利用生物醫(yī)學(xué)語料庫(kù),達(dá)到最佳的預(yù)期效果以幫助臨床實(shí)踐。BioBERT 的預(yù)訓(xùn)練和微調(diào)過程如圖6 所示。
圖6 BioBERT 的預(yù)訓(xùn)練和微調(diào)流程Fig.6 Pre-training and fine-tuning procedure of BioBERT
3.5.1 BioBERT 預(yù)訓(xùn)練
首先使用BERT 的權(quán)重初始化BioBERT,該BERT 已在通用領(lǐng)域語料庫(kù)(英語Wikipedia 和BooksCorpus)上進(jìn)行了預(yù)訓(xùn)練;然后對(duì)BioBERT 進(jìn)行生物醫(yī)學(xué)領(lǐng)域語料庫(kù)(PubMed 摘要和PMC 全文文章)的預(yù)訓(xùn)練。用于BioBERT 預(yù)訓(xùn)練的文本語料庫(kù)如表7 所示,經(jīng)過測(cè)試的文本語料庫(kù)組合如表8所示。
表7 BioBERT 使用的文本語料庫(kù)列表Table 7 List of text corpora used by BioBERT
表8 文本語料庫(kù)的不同組合Table 8 Different combinations of text corpora
3.5.2 BioBERT 微調(diào)
本文針對(duì)命名實(shí)體識(shí)別(NER)、關(guān)系提取(RE)和問題解答(QA)這3 個(gè)具有代表性的生物醫(yī)學(xué)文本挖掘任務(wù)對(duì)BioBERT 進(jìn)行調(diào)整。
NER 是最基本的生物醫(yī)學(xué)文本挖掘任務(wù)之一,涉及識(shí)別生物醫(yī)學(xué)語料庫(kù)中的眾多領(lǐng)域特定專有名詞,在預(yù)訓(xùn)練和微調(diào)過程中,BioBERT 直接學(xué)習(xí)詞塊嵌入,使用實(shí)體級(jí)精度、召回率和F1 值作為NER的評(píng)價(jià)指標(biāo)。
QA 是一種用自然語言對(duì)相關(guān)段落提出的問題進(jìn)行回答的任務(wù),為了對(duì)BioBERT 的QA 進(jìn)行微調(diào),本文采用SQuAD 數(shù)據(jù)集的BERT 架構(gòu)。由于BioASQ 的格式 與SQuAD 相 似,BioBERT 使用了BioASQ 事實(shí)數(shù)據(jù)集,利用單個(gè)輸出層計(jì)算答案短語開始/結(jié)束位置的令牌級(jí)別概率。然而,約30%的BioASQ 問題在抽取的QA 設(shè)置中無法回答,因?yàn)榇_切的答案沒有出現(xiàn)在給定的段落中,所以將無法回答問題的樣本從訓(xùn)練集中剔除。使用strict accuracy、lenient accuracy 和mrr(mean reciprocal rank)作為QA的評(píng)價(jià)指標(biāo)。mrr 得分的計(jì)算公式為:
3.5.3 BioBERT 評(píng)估
本次實(shí)驗(yàn)使用較多生物醫(yī)學(xué)NLP 研究人員常用的數(shù)據(jù)集,包括NCBI疾病、BC5CDR、BC4CHEMD 等,本文將BERT 和BioBERT 與當(dāng)前最新模型進(jìn)行比較,并報(bào)告其得分。
NER 結(jié)果如表9 所示,從表9 可以看出:僅對(duì)通用域語料庫(kù)進(jìn)行預(yù)訓(xùn)練的BERT 具有有效性,但是BERT 的微觀平均F1 得分比最新模型低(2.01);另一方面,在所有數(shù)據(jù)集上,BioBERT 的得分均高于BERT,在9 個(gè)數(shù)據(jù)集中,有6 個(gè)數(shù)據(jù)集上的BioBERT性能優(yōu)于最新模型。RE 結(jié)果如表10 所示,從表10可以看出,BERT 的性能優(yōu)于CHEMPROT 數(shù)據(jù)集上的最新模型,這證明了其在RE 中的有效性。從平均水平(微型)來看,BioBERT v1.0(+PubMed)的F1 得分高于最新模型。此外,BioBERT 在2 個(gè)生物醫(yī)學(xué)數(shù)據(jù)集中均獲得了最高的F1 分?jǐn)?shù)。QA 結(jié)果如表11所示,從表11 可以看出,BioBERT 各項(xiàng)性能明顯優(yōu)于BERT 和最新模型。
表9 生物醫(yī)學(xué)命名實(shí)體識(shí)別測(cè)試結(jié)果Table 9 Test results of biomedical named entity recognition %
表10 生物醫(yī)學(xué)關(guān)系提取測(cè)試結(jié)果Table 10 Test results of biomedical relation extraction %
表11 生物醫(yī)學(xué)問題回答測(cè)試結(jié)果Table 11 Test results of biomedical question answering %
以上主要介紹用于生物醫(yī)學(xué)文本挖掘的預(yù)訓(xùn)練語言表示模型BioBERT,實(shí)驗(yàn)結(jié)果證明,在生物醫(yī)學(xué)語料庫(kù)上對(duì)BERT 引入特定領(lǐng)域知識(shí),對(duì)于將其應(yīng)用于生物醫(yī)學(xué)領(lǐng)域至關(guān)重要。只需對(duì)特定任務(wù)進(jìn)行微小的架構(gòu)修改,BioBERT 就可以在生物醫(yī)學(xué)文本挖掘任務(wù)(如NER、RE 和QA 等)中取得優(yōu)異成果。
3.5.4 其他專業(yè)知識(shí)融合的預(yù)訓(xùn)練語言模型
基于BERT 語言模型的專利分類模型PatentBERT[62]通過使用帶有單詞嵌入的CNN 方法,集中對(duì)一個(gè)預(yù)訓(xùn)練BERT 模型做適當(dāng)微調(diào),并將其應(yīng)用于專利分類這個(gè)多標(biāo)簽分類任務(wù)。面向科學(xué)文本的預(yù)訓(xùn)練語言模型SciBERT[63]利用大型多領(lǐng)域科學(xué)出版物語料庫(kù)進(jìn)行無監(jiān)督的預(yù)訓(xùn)練,以提高下游科學(xué)自然語言處理任務(wù)的效果。
前文根據(jù)外部知識(shí)的分類,分別對(duì)語言學(xué)、語義、事實(shí)、常識(shí)、領(lǐng)域知識(shí)等多種類型知識(shí)注入的預(yù)訓(xùn)練語言模型進(jìn)行詳細(xì)闡述,實(shí)驗(yàn)結(jié)果證明,在知識(shí)驅(qū)動(dòng)的NLP下游任務(wù)中使用知識(shí)感知的預(yù)訓(xùn)練語言模型,有助于提升工作效率。
通過對(duì)以上知識(shí)感知的預(yù)訓(xùn)練語言模型在執(zhí)行常識(shí)和推理任務(wù)時(shí)所需的信息資源進(jìn)行分析,本文評(píng)估并歸納不同預(yù)訓(xùn)練語言模型的綜合性能,結(jié)果如表12 所示。
表12 知識(shí)感知的預(yù)訓(xùn)練語言模型性能對(duì)比結(jié)果Table 12 Performance comparison results of knowledge-aware pre-trained language models
目前,知識(shí)感知的預(yù)訓(xùn)練語言模型在NLP 任務(wù)中得到廣泛應(yīng)用并獲得了良好收益,但是,一些不足之處也逐漸顯現(xiàn),其發(fā)展主要面臨如下挑戰(zhàn):
1)預(yù)訓(xùn)練代價(jià)大。預(yù)訓(xùn)練模型的規(guī)模呈現(xiàn)逐步擴(kuò)大的趨勢(shì),雖然其能力越來越強(qiáng),但模型的參數(shù)也越來越多,因此,對(duì)計(jì)算設(shè)備的算力提出了更高的要求。預(yù)訓(xùn)練語言模型如何使用較小的代價(jià)來高質(zhì)量地完成NLP 任務(wù)是其當(dāng)前面臨的問題之一。
2)深層結(jié)構(gòu)化語義分析存在明顯的性能不足。當(dāng)前大多數(shù)引入了語義知識(shí)的預(yù)訓(xùn)練語言模型仍難以抵御文本對(duì)抗攻擊,當(dāng)面向非規(guī)范和專用領(lǐng)域文本時(shí),分析精度大幅降低,說明模型未能完全學(xué)習(xí)語言的真正寓意。僅在通用語料庫(kù)上進(jìn)行訓(xùn)練的模型往往經(jīng)驗(yàn)不足,無法較好完成常識(shí)和推理任務(wù),不符合人類使用語言的交際意圖。
3)形式化知識(shí)在語言模型中存在明顯構(gòu)成缺失。該問題導(dǎo)致在問答任務(wù)中無法基于常識(shí)給出正確的回答,不足以完成細(xì)粒度的關(guān)系抽取,命名實(shí)體識(shí)別精度不高以及在知識(shí)圖譜的知識(shí)系統(tǒng)中缺少動(dòng)作、行為、狀態(tài)以及事件邏輯關(guān)系的形式化描寫。
4)跨模態(tài)的語言理解存在明顯融通局限??缒B(tài)關(guān)系因缺乏深層結(jié)構(gòu)化語義分析和世界知識(shí)導(dǎo)致推理能力較弱,造成語言理解形意相離。
與此同時(shí),知識(shí)感知的預(yù)訓(xùn)練語言模型已在現(xiàn)階段部分知識(shí)驅(qū)動(dòng)的NLP 下游任務(wù)中嶄露頭角。預(yù)訓(xùn)練語言模型未來可能的研究方向如下:
1)降低預(yù)訓(xùn)練語言模型的訓(xùn)練成本。當(dāng)前已有研究人員致力于在損失較小精度的前提下探索更小、更快的預(yù)訓(xùn)練語言模型,當(dāng)前提供的思路包含對(duì)模型采用壓縮和知識(shí)蒸餾[64]等方法,如百度公司發(fā)布的ERNIE-Tiny,將ERNIE 2.0 Base 模型進(jìn)行壓縮,取得了4.3 倍的預(yù)測(cè)提速。此外,研究新的高效的模型架構(gòu)也將對(duì)降低訓(xùn)練消耗起到積極作用。
2)從海量的非結(jié)構(gòu)化文本而非infobox 中搜集系統(tǒng)的非結(jié)構(gòu)化知識(shí),構(gòu)建新型多元知識(shí)圖譜增強(qiáng)的預(yù)訓(xùn)練語言模型。在實(shí)體的靜態(tài)事實(shí)描述較為充分的基礎(chǔ)上,進(jìn)一步完善事件的動(dòng)態(tài)描述以及事件之間邏輯關(guān)系的構(gòu)建。
3)未來可向大數(shù)據(jù)與富知識(shí)共同驅(qū)動(dòng)的方向進(jìn)行研究,并通過與圖像等跨模態(tài)信息進(jìn)行交互,提升以自然語言為核心的中文語義理解能力,在實(shí)踐中探索經(jīng)驗(yàn)主義與理性主義相結(jié)合的自然語言處理新范式。
本文闡述預(yù)訓(xùn)練技術(shù)的發(fā)展歷程,分析其中經(jīng)典的預(yù)訓(xùn)練語言模型,如BERT 及其改進(jìn)模型,歸納近年來預(yù)訓(xùn)練技術(shù)在NLP 領(lǐng)域的應(yīng)用現(xiàn)狀和趨勢(shì)。對(duì)現(xiàn)有預(yù)訓(xùn)練語言模型在NLP 特定下游任務(wù)中的表現(xiàn)進(jìn)行評(píng)估,結(jié)果表明,外部知識(shí)的引入對(duì)預(yù)訓(xùn)練語言模型在多種NLP 下游任務(wù)中的性能提升起到積極作用。知識(shí)感知的預(yù)訓(xùn)練語言模型或可在更多特殊的應(yīng)用情境中取得優(yōu)異表現(xiàn),逐步探索構(gòu)建低成本、非結(jié)構(gòu)化和可實(shí)現(xiàn)跨模態(tài)交互的預(yù)訓(xùn)練語言模型將是下一步的研究方向。