張 淵,姚 峰
武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北 武漢 430205
在文本分類任務(wù)上,預(yù)訓(xùn)練的語言表示模型已經(jīng)取得了很好的成績,例如,基于變換器的雙向編碼器表征(bidirectional encoder representations from transformers,BERT)模型通過簡單的微調(diào)就能在文本分類任務(wù)上取得很好的結(jié)果[1]。但是這些預(yù)訓(xùn)練模型并不能很好地將知識(shí)信息納入到語言理解當(dāng)中。為了解決這一問題,Zhang 等[2]提出了一種信息實(shí)體增強(qiáng)語言表示(enhanced language representation with informative entities,ERNIE)模型,該模型使用由TransE 算法[3]預(yù)訓(xùn)練得到的實(shí)體嵌入作為其輸入,并利用知識(shí)圖譜中豐富的語義信息來增強(qiáng)文本表示。
然而,TransE 算法存在多個(gè)實(shí)體會(huì)在嵌入空間中競爭一個(gè)點(diǎn)的缺點(diǎn),因此在處理一對(duì)多或者多對(duì)多的情況時(shí)效果并不理想。針對(duì)這個(gè)缺點(diǎn),可以使用Wang 等[4]提出的知識(shí)嵌入和預(yù)訓(xùn)練語言表示(knowledge embedding and pre-trained language representation,KEPLER)模型作為知識(shí)嵌入模型來獲取實(shí)體嵌入,該模型通過對(duì)知識(shí)圖譜中的知識(shí)信息進(jìn)行提取和編碼,將每個(gè)實(shí)體與對(duì)應(yīng)的語料庫中的描述相對(duì)應(yīng),為每個(gè)實(shí)體獲得其對(duì)應(yīng)的文本描述信息,可以生成有效的包含豐富文本信息的知識(shí)嵌入,能夠更好地將事實(shí)知識(shí)整合到預(yù)訓(xùn)練語言模型中。
為了提高自然語言處理中各任務(wù)的效果,研究人員開始關(guān)注文本中的語義信息,文字和圖像最大的不同之處在于,文字中包含了詞與詞之間的邏輯,包含了人的思想等重要信息,而圖像并沒有這些復(fù)雜的語境信息[5]。舉例來講,“2009 年,胡歌演唱了電視劇《仙劍奇?zhèn)b傳3》的主題曲《忘記時(shí)間》”這句簡單的文本就可以提煉成如圖1 所示的包含語義信息的示例圖。如果想要提取圖中實(shí)體包含的知識(shí)信息,就要知道不同實(shí)體代表的意義,如果不知道《忘記時(shí)間》和《仙劍奇?zhèn)b傳3》分別是歌曲和電視劇,很難識(shí)別胡歌在實(shí)體任務(wù)中的兩種職業(yè),即歌手和演員。由此可見,豐富的語義信息能夠讓模型更好地理解文本,從而有利于文本分類任務(wù)。
圖1 包含語義信息的示例圖Fig.1 Example of containing semantic information
早期獲取文中的語義信息主要有2 種方法:基于特征和微調(diào)的方法。王珊珊等[6]提出一種基于特征的方法,通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)從而得到詞語的嵌入,將文本表示為低維的向量。但是基于特征的方法使用的是經(jīng)過訓(xùn)練得到的詞語嵌入,在具體的任務(wù)中使用已訓(xùn)練好的詞向量作為詞語的嵌入,不具普適性,只針對(duì)于具體任務(wù)才有好的效果,同時(shí)這種方法,在訓(xùn)練過程中捕獲的句法和語義信息有限并且還會(huì)受到一詞多義的影響。為了克服這一缺陷,葉水歡等[7]提出了一種序列級(jí)模型來捕獲復(fù)雜單詞特征即根據(jù)上下文來推斷每個(gè)詞對(duì)應(yīng)的向量,但是其只能解決一部分的歧義性,同一個(gè)詞有不同的上下文時(shí),就會(huì)過度考慮上下文信息。與這種只使用經(jīng)過訓(xùn)練后的語言表示作為特征嵌入的方式不同,基于微調(diào)的方法,會(huì)根據(jù)下游特定任務(wù),在原來的模型上做出一些修改,使得最終的輸出是當(dāng)前任務(wù)需要的。例如,張民等[8]提出一種生成性預(yù)訓(xùn)練轉(zhuǎn)換器來學(xué)習(xí)語言表征。楊興銳等[9]提出了一種基于殘差注意力BERT 詞向量的文本分類模型,該模型在文本分類任務(wù)中取得了很大成功。雖然這些方法都取得了不錯(cuò)的成績,但都沒有考慮到利用知識(shí)信息。
所以,考慮到豐富的知識(shí)信息可以獲得更好的語言理解,從而有益于文本分類任務(wù),可以將外部知識(shí)納入語言表示模型,同時(shí)為了順利完成2 部分信息的融合,提出一種通過知識(shí)嵌入式預(yù)訓(xùn)練語言模型改進(jìn)信息實(shí)體增強(qiáng)語言表示(ERNIEKEPLER)模型。而且為了更好的結(jié)合文本和知識(shí)特征,隨機(jī)屏蔽輸入文本中的一些命名實(shí)體,并從知識(shí)圖譜中選擇適當(dāng)?shù)膶?shí)體來完成對(duì)齊是一種比較合適的解決辦法。
綜合考慮ERNIE 模型和KEPLER 模型的優(yōu)點(diǎn),構(gòu)建了一種用于中文文本分類的ERNIEKEPLER 模 型,如 圖2 所 示。ERNIE-KEPLER 模型的整體結(jié)構(gòu)由3 個(gè)部分組成:①底層文本編碼器,負(fù)責(zé)從輸入令牌中捕獲基本詞匯和語法信息;②KEPLER 模型,負(fù)責(zé)提取知識(shí)圖譜中包含的豐富的語義信息的實(shí)體;③上層知識(shí)編碼器,負(fù)責(zé)將面向令牌的額外知識(shí)信息和文本信息進(jìn)行結(jié)合。
圖2 ERNIE-KEPLER 模型結(jié)構(gòu)圖Fig.2 ERNIE-KEPLER model structure diagram
文本編碼器對(duì)于給定的令牌序列,首先對(duì)每個(gè)令牌的令牌嵌入、分段嵌入、位置嵌入求和,用于計(jì)算其輸入嵌入,然后計(jì)算詞匯和句法特征{t1,…,tn},其中n為令牌序列的長度,tn表示第n個(gè)令牌。該部分的實(shí)現(xiàn)與BERT 模型相同,因此在后文不做過多介紹。
通過KEPLER 模型獲得的實(shí)體序列{e1,…,em}作為實(shí)體輸入,其中m為實(shí)體序列的長度,em表示第m個(gè)實(shí)體。在KEPLER 模型中,使用實(shí)體對(duì)應(yīng)的文本將實(shí)體編碼為向量,而不是像傳統(tǒng)知識(shí)嵌入模型那樣為每一個(gè)實(shí)體、關(guān)系都分配一個(gè)d維向量。與此同時(shí),使用實(shí)體描述作為嵌入的方法,并經(jīng)過Transformer 架構(gòu)[10]的編碼器得到了序列每個(gè)位置的上下文表示,在保證簡單有效的同時(shí)獲得包含x個(gè)有效的頭實(shí)體列表{H}和y個(gè)有效的尾實(shí)體列表{T},這些實(shí)體將組成實(shí)體列表{e1,…,em}以用作知識(shí)編碼器中的實(shí)體嵌入。KEPLER 知識(shí)嵌入模型框架如圖3 所示。
圖3 KEPLER 模型框架Fig.3 KEPLER model framework
對(duì)于關(guān)系三元組(頭實(shí)體,關(guān)系,尾實(shí)體),KEPLER模型通過公式(1)將實(shí)體描述作為嵌入,公式(1)表示如下:
其中th、tt是頭實(shí)體h和尾實(shí)體t的描述,并使用字節(jié)對(duì)編碼的標(biāo)記方式[11]將其轉(zhuǎn)化為標(biāo)記序列,開頭有一個(gè)特殊標(biāo)記<s>,通過該標(biāo)記,可以知曉標(biāo)記后的句子就是對(duì)該實(shí)體的表示,同時(shí)將表示函數(shù)表示為E<s>(·)。Tr是關(guān)系嵌入,r表示頭實(shí)體和尾實(shí)體之間的關(guān)系類型,H、T、R分別是h、t、r的嵌入。同時(shí)使用范文韜[12]提出的損失作為知識(shí)嵌入目標(biāo),采用負(fù)采樣進(jìn)行有效優(yōu)化。
知識(shí)編碼器的輸入包括文本的特征向量和信息實(shí)體兩部分。在文本編碼器計(jì)算完特征向量后,ERNIE-KEPLER 模型采用知識(shí)編碼器將知識(shí)信息注入語言表示。通過KEPLER 模型獲得的實(shí)體序列{e1,…,em}表示實(shí)體嵌入,然后將令牌序列{t1, …,tn}和實(shí)體序列輸送到知識(shí)編碼器,用于合并異構(gòu)信息并計(jì)算最終輸出嵌入,該過程可以表示為:
其中K代表知識(shí)編碼器,K(·)表示異構(gòu)信息融合函數(shù),令牌序列{t1,…,tn}和實(shí)體序列{e1,…,em}作為該函數(shù)的兩個(gè)輸入。{t0,1,…,t0,n},{e0,1,…,e0,m}是經(jīng)訓(xùn)練后最終的輸出,將用于文本分類任務(wù)中,{t0,n}和{e0,m}表示最后一層的第n個(gè)令牌輸出和第m個(gè)實(shí)體輸出,知識(shí)編碼器第i層的信息融合過程如圖4 所示。
圖4 第i層信息融合流程圖Fig.4 Flowchart for the i-th level information fusion
知識(shí)編碼器由堆疊的聚合器組成,這些聚合器用于編碼令牌和實(shí)體并融合它們的異構(gòu)特征。從圖4 可知,在第i個(gè)聚合器中,輸入令牌嵌入和實(shí)體嵌入,分別輸送到2 個(gè)多頭自注意網(wǎng)絡(luò)[13]中,最后得到第i層的令牌輸出和實(shí)體輸出,編碼過程如式(3)所示。
其中M(·)表示多頭自注意網(wǎng)絡(luò)函數(shù),{t(i -1),1,…,t(i -1),n}和{e(i -1),1,…,e(i -1),m}分別表示第i-1 層的輸入令牌嵌入和實(shí)體嵌入,{Ti,1,…,Ti,n} 和{Ei,1,…,Ei,m}表示第i層的令牌和實(shí)體輸出。然后,第i個(gè)聚合器對(duì)令牌和實(shí)體進(jìn)行相互集成,并計(jì)算每個(gè)令牌和實(shí)體的輸出嵌入。對(duì)于令牌和其對(duì)應(yīng)的實(shí)體,信息合并過程如下:
其中hj是融合令牌和實(shí)體的內(nèi)部隱藏狀態(tài)。σ(·)是非線性激活函數(shù),一般是高斯誤差線性單元函數(shù)[14]。Ti,j和Ei,k分別表示第i層信息融合后的令牌和實(shí)體的輸出嵌入,j和k分別表示兩者的長度,Wi,t和Wi,e分別為對(duì)應(yīng)于2 個(gè)輸入項(xiàng)Ti,j和Ei,k的權(quán)重參數(shù),用來調(diào)節(jié)輸入對(duì)節(jié)點(diǎn)的貢獻(xiàn)程度。bi為常數(shù),表示偏置項(xiàng),不依賴于輸入。偏置項(xiàng)用于調(diào)整節(jié)點(diǎn)的激活閾值,從而影響節(jié)點(diǎn)的激活程度。
對(duì)于沒有對(duì)應(yīng)實(shí)體的令牌,信息融合層只計(jì)算輸出不進(jìn)行集成,如式(5)所示。
簡單來說,第i層的聚合器操作如下,
其中A(·)表示聚合器函數(shù),{t(i -1),1,…,t(i -1),n}和{e(i -1),1,…,e(i -1),m}分別表示第i-1 層的輸入令牌嵌入和實(shí)體嵌入,把這2個(gè)嵌入作為聚合器函數(shù)的輸入,在經(jīng)過最后一層的聚合器計(jì)算以后,得到令牌輸出嵌入{ti,1,…,ti,n}和實(shí)體輸出嵌入{ei,1,…,ei,m},這2個(gè)輸出嵌入將用作知識(shí)編碼器的最終輸出嵌入。
本實(shí)驗(yàn)的文本分類任務(wù)屬于主題分類,所選數(shù)據(jù)集為清華大學(xué)自然語言處理組開源的THUCNews 新聞文本分類數(shù)據(jù)集(2.04 G),同時(shí)為體現(xiàn)各個(gè)模型的分類效果,選用SogouNews 新聞數(shù)據(jù)集進(jìn)行對(duì)比試驗(yàn)。首先在THUCNews 數(shù)據(jù)集中篩選10 個(gè)分類的數(shù)據(jù),每個(gè)分類6 000 條數(shù)據(jù),總共63 500 條新聞數(shù)據(jù),其中訓(xùn)練集每個(gè)分類5 120 條數(shù)據(jù),測試集每個(gè)分類1 230 條數(shù)據(jù),SogouNews 數(shù)據(jù)集也是選取相同的10 個(gè)分類,但是由于該數(shù)據(jù)集文本較短,收錄的新聞數(shù)據(jù)在時(shí)間范圍上也比THUCNews 數(shù)據(jù)集偏短,覆蓋面比較狹小,所以選取的數(shù)據(jù)量相對(duì)較少一些。
在進(jìn)行實(shí)驗(yàn)過程中,參考了亢文倩[15]用到的方法,設(shè)置以下參數(shù)對(duì)模型進(jìn)行預(yù)訓(xùn)練,文本編碼器層的數(shù)量N=6,知識(shí)編碼器層的數(shù)量M=6,令牌嵌入和實(shí)體嵌入的隱藏維度分別為768 和100,聚合器中的自注意頭的數(shù)量分別為12 和4,注意力層丟失概率設(shè)置為0.1,學(xué)習(xí)率為5×10-5,學(xué)習(xí)周期數(shù)為2 或者3。
2.3.1 不同模型的分類效果對(duì)比 在THUCNews數(shù)據(jù)集和SogouNews 數(shù)據(jù)集上對(duì)不同模型的準(zhǔn)確率、召回率進(jìn)行對(duì)比,驗(yàn)證不同模型的分類效果,結(jié)果如表1 所示,P、R、F1分別代表精確率、召回率、精確率和召回率的調(diào)和平均數(shù)。
表1 不同數(shù)據(jù)集上各模型的結(jié)果Tab.1 Results of each model on different datasets %
從 表1 可 以 看 出,BERT、ERNIE 和ERNIEKEPLER 模型的召回率在2 種數(shù)據(jù)集上都要遠(yuǎn)高于文本循環(huán)神經(jīng)網(wǎng)絡(luò)(text recurrent neural network,TextRNN)模型,說明預(yù)訓(xùn)練的語言模型更適合對(duì)較長的文本進(jìn)行處理。前者充分發(fā)揮了預(yù)訓(xùn)練的優(yōu)勢并利用了預(yù)處理的數(shù)據(jù),以更好地完成信息提取和信息融合。從表1 也可以看出ERNIE-KEPLER 模型的召回率在2 種數(shù)據(jù)集上分別達(dá)到89.18%和90.36%,接近90%,與召回率為85.65%、87.35% 的BERT 和87.45%、88.61% 的ERNIE模型相比,提高了近2%,說明ERNIE-KEPLER模型的適用性較強(qiáng),在不同的數(shù)據(jù)集上都有較好表現(xiàn),由此可見ERNIE-KEPLER 模型的分類效果優(yōu)于文中應(yīng)用于分類任務(wù)中的其他模型。
2.3.2 不同數(shù)據(jù)集上模型分類效果的對(duì)比 為了驗(yàn)證不同數(shù)據(jù)集對(duì)實(shí)驗(yàn)結(jié)果也有一定影響,實(shí)驗(yàn)人員同時(shí)記錄了4 種模型在THUCNews 和SogouNews 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果并統(tǒng)計(jì)了模型在文本分類任務(wù)的準(zhǔn)確率指標(biāo)。實(shí)驗(yàn)結(jié)果表明,不同的數(shù)據(jù)集也會(huì)造成實(shí)驗(yàn)結(jié)果的差異。對(duì)比實(shí)驗(yàn)結(jié)果如圖5 所示,且4 種模型在數(shù)據(jù)質(zhì)量比較高的THUCNews 數(shù)據(jù)集上表現(xiàn)出來的準(zhǔn)確率比SogouNews 數(shù)據(jù)集都要高,這表明包含的語義信息越豐富,覆蓋面越廣泛的數(shù)據(jù)集,模型在該數(shù)據(jù)集上表現(xiàn)出的效果越突出。
2.3.3 不同模型損失函數(shù)對(duì)比 在實(shí)驗(yàn)的過程中對(duì)比發(fā)現(xiàn),在THUCNews 數(shù)據(jù)集上訓(xùn)練的過程中,ERNIE-KEPLER 模型的收斂速度比TextRNN 和ERNIE 模型都要快,穩(wěn)定后的損失值也比其他2種模型更低。3 種模型的損失曲線如圖6 所示。
圖6 損失值收斂示意圖Fig.6 Convergence diagram of loss values
當(dāng)?shù)螖?shù)為0 時(shí),即模型剛開始訓(xùn)練時(shí),實(shí)驗(yàn)結(jié)果如圖6 所示,TexRNN 模型的損失值明顯低于其他2 種模型的損失值,這是因?yàn)橛?xùn)練過程中,TextRNN 模型一次性輸入給模型進(jìn)行更新的樣本數(shù)目為16,使得在模型開始訓(xùn)練時(shí),會(huì)有16 個(gè)訓(xùn)練樣本同時(shí)使用神經(jīng)網(wǎng)絡(luò),而其他2 種模型樣本數(shù)目為32,使得模型對(duì)數(shù)據(jù)的訓(xùn)練結(jié)果存在較大誤差,造成較大的損失,也導(dǎo)致TextRNN 模型剛開始的損失值明顯低于其他2 種模型。
同時(shí),在ERNIE 模型的訓(xùn)練過程中,出現(xiàn)了損失值先增大后減小的問題,而在ERNIE-KEPLER模型中并未出現(xiàn)。這是由于數(shù)據(jù)處理方式的不同,導(dǎo)致部分?jǐn)?shù)據(jù)保留的有用的信息較少,使得ERNIE 模型獲得的知識(shí)信息與實(shí)際信息存在誤差;另一方面雖然有的數(shù)據(jù)包含的有效信息較少,但是ERNIE-KEPLER 模型使用了知識(shí)嵌入模型對(duì)知識(shí)信息進(jìn)行提取,能夠?yàn)閷?shí)體進(jìn)行信息擴(kuò)展,使實(shí)體包含更豐富的語義信息,ERNIE 模型雖然也使用了知識(shí)嵌入,但是相對(duì)本次實(shí)驗(yàn)中提出的方法,其獲得的實(shí)體嵌入沒有包含更多的語義信息。所以也說明ERNIE-KEPLER 預(yù)訓(xùn)練語言模型憑借其優(yōu)秀的學(xué)習(xí)能力更容易通過調(diào)整參數(shù)來使模型有更優(yōu)秀的表現(xiàn),即ERNIE-KEPLER 模型比其他模型具有更高的訓(xùn)練效率。
綜合試驗(yàn)結(jié)果表明,經(jīng)KEPLER 模型優(yōu)化后的ERNIE 模型,更好地融合了知識(shí)圖譜中的實(shí)體信息,從而使預(yù)訓(xùn)練語言模型比普通的網(wǎng)絡(luò)模型在文本分類任務(wù)中有更好的結(jié)果,證明了本次研究的方法的可行性,能夠有效提高文本分類的準(zhǔn)確率。
為了利用知識(shí)嵌入模型將知識(shí)圖譜中的知識(shí)信息融合到語言模型中,通過將實(shí)體和實(shí)體描述相對(duì)應(yīng),使實(shí)體包含更多的文本信息,從而使訓(xùn)練好的模型能更好地理解文本,增強(qiáng)語言表示。同時(shí),為了更好地融合文本和知識(shí)圖譜中的信息,使用了知識(shí)編碼器和去噪實(shí)體自動(dòng)編碼器。實(shí)驗(yàn)結(jié)果表明,本次研究的方法具有良好的性能,ERNIEKEPLER 模型比BERT 和ERNIE 模型具有更好的數(shù)據(jù)學(xué)習(xí)能力。未來的研究方向,可以按照本文的思路,引入知識(shí)庫等其他結(jié)構(gòu)化的外部知識(shí),優(yōu)化預(yù)訓(xùn)練語言模型,而且本文提出的模型在實(shí)驗(yàn)過程中參數(shù)過多,訓(xùn)練時(shí)間較慢,如何提高模型的效率,加快模型的訓(xùn)練速度也是可以研究的方向;還可以考慮基于特征的預(yù)訓(xùn)練模型與知識(shí)信息的融合,從而探索在文本分類任務(wù)中更加有效的方法。