李大舟,于 沛,高 巍,馬 輝
(沈陽化工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,遼寧 沈陽 110142)
自動文本摘要[1]按照摘要形式分為抽取式和生成式。其中生成式自動文本摘要方法更加貼近人類思維,更能準(zhǔn)確反映文本意境,但同時算法的設(shè)計與實現(xiàn)更加困難。近年來,深度學(xué)習(xí)技術(shù)在自然語言處理領(lǐng)域得到廣泛應(yīng)用[2-4]。其中,基于編解碼器結(jié)構(gòu)的自動文本摘要生成方法靈感來源于機器翻譯的神經(jīng)網(wǎng)絡(luò)模型[2]。來自Facebook的Rush等[5]提出了一種編解碼器框架下的句子摘要模型,使用了一種基于局部注意力模型,在給定輸入句子的情況下,生成摘要的每個詞。Huang等[6]提出了一種結(jié)合注意力機制的長短時記憶(long short term memories,LSTM),對特定目標(biāo)進行向量化處理,并結(jié)合注意力機制作為LSTM網(wǎng)絡(luò)的輸入,提升了模型的準(zhǔn)確度。Rush等[7]在編碼器上使用卷積神經(jīng)網(wǎng)絡(luò),在解碼器上使用了循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)。來自IBM的Nallaoati等[8]使用雙向GRU作為編碼器編碼原文,解碼器使用門控循環(huán)單元(gated recurrent unit,GRU),再結(jié)合注意力機制,并根據(jù)自動文本摘要任務(wù)的特點提出了模型上的改進。See等[9]構(gòu)建了一個包含指針生成器網(wǎng)絡(luò),同時結(jié)合Cove-rage mechanism模型,改善了在生成式文本摘要中存在的信息生成不準(zhǔn)確、對未登錄詞問題缺乏處理能力以及摘要重復(fù)率高等問題。Paulus等[10]利用自注意力機制解決了生成短語重復(fù)的問題,并結(jié)合強化學(xué)習(xí)進行訓(xùn)練,解決了曝光偏差的問題?;谝陨厢槍LP任務(wù)所取得的成果,本文提出了一種BiGRUAtten-LSTM網(wǎng)絡(luò)模型來解決文本自動摘要生成問題。該模型主要包括:①構(gòu)建基于雙向門控循環(huán)單元的編碼器。②引入注意力機制,使模型能夠高度關(guān)注文本中的重要信息。③使用長短時記憶網(wǎng)絡(luò)并結(jié)合先驗知識和集束搜索完成解碼器功能。實驗結(jié)果表明,本文模型所生成的摘要在ROUGE[11](recall-oriented understudy for gisting evaluation)評價體系中取得了較好的效果。
本文提出了一種基于編解碼器框架的自動文本摘要算法,用于新聞?wù)纳?。編碼模塊和解碼模塊使用不同的神經(jīng)網(wǎng)絡(luò)模型。編碼器使用雙向GRU網(wǎng)絡(luò)對整個輸入序列進行編碼;編碼結(jié)果結(jié)合注意力機制獲得上下文語義向量;解碼器使用LSTM并結(jié)合先驗知識和集束搜索完成摘要生成任務(wù)??傮w框架如圖1所示。詳細內(nèi)容在1.1節(jié)~1.3節(jié)。
編碼器根據(jù)輸入序列讀取每個輸入元素,現(xiàn)有算法通常采用RNN對序列進行編碼。但在編碼過程中,使用tanh函數(shù)作為激活函數(shù),迭代逐漸收斂,存在梯度爆炸和梯度消失等問題。因此,使用RNN模型進行長序列處理的效果不佳,導(dǎo)致在編碼的最后階段丟失大量的有效信息,難以將長序列記憶成為一個固定長度的向量。
圖1 BiGRUAtten-LSTM總體框架
當(dāng)前的傳統(tǒng)方法是使用GRU模型或者LSTM模型來解決長期依賴關(guān)系。這兩種模型的顯著共同點是:它們都包含了t時刻到t+1時刻的加法分量,并且GRU模型和LSTM模型都可以通過“門”結(jié)構(gòu)保留許多特性。經(jīng)過實驗比較,GRU模型和LSTM模型的性能無明顯差別。但在使用相同大小的數(shù)據(jù)集時,GRU模型比LSTM模型具有更好的收斂時間和迭代效率。
在自動文本摘要任務(wù)中,詞匯(特指在文章分詞后的一個詞語,后文統(tǒng)稱為詞匯)的語義很可能與這個詞的后文信息有很大的關(guān)聯(lián)。在這種情況下,單向神經(jīng)網(wǎng)絡(luò)模型會忽略后文的信息,不能夠更好地獲取文本整體語義特征。針對這一情況,本文采用雙向GRU模型來構(gòu)建編碼器,其結(jié)構(gòu)如圖2所示。
圖2 雙向GRU編碼器
在門控循環(huán)單元中,重置門和更新門的輸入均為t時刻的輸入詞向量xt與t-1時刻的隱藏狀態(tài)Ht-1,并使用sigmoid函數(shù)將其激活值控制在區(qū)間[0,1]。設(shè)h為隱藏單元個數(shù),給定時間t的小批量輸入xt和上一時刻的隱藏狀態(tài)Ht-1。 重置門Rt和更新門Zt的計算如式(1)、式(2)所示
Rt=σ(xtWx r+Ht-1Whr+br)
(1)
Zt=σ(xtWx z+Ht-1Whz+bz)
(2)
其中,σ為sigmoid激活函數(shù),Wx r,Wx z和Whr,Whz是權(quán)重參數(shù),br,bz是偏差參數(shù)。
(3)
式中:?是向量之間元素相乘,Wxh和Whh是權(quán)重參數(shù),bh是偏差參數(shù)。如果重置門控值為0,則會丟棄過去的隱藏狀態(tài)信息,表示當(dāng)前內(nèi)存內(nèi)容只有新的輸入單詞;如果重置門控值為1,則保留過去的隱藏狀態(tài)。將按元素乘法的結(jié)果與當(dāng)前時間步的輸入連結(jié),再通過tanh函數(shù)計算出候選隱藏狀態(tài),其所有元素的值域均為[-1,1]。
(4)
(5)
由于在編碼過程中會丟失許多輸入序列中的信息以及存在著難以對齊的問題,故本文引入注意力機制。注意力機制定義請參見文獻[12]。在文本摘要任務(wù)中引入注意力機制,通過僅查看輸入序列的一些特定部分而不是整個序列來預(yù)測摘要,能夠有效地克服神經(jīng)網(wǎng)絡(luò)難以處理長序列的問題。
在文本摘要生成任務(wù)中注意力機制是在編碼器和解碼器之間增加的連接架構(gòu)。注意力機制對從編碼器中獲得的語義向量C進行加權(quán)處理,以解決模型的文本語義理解不充分問題。引入注意力機制后,在生成輸出序列時會得到對應(yīng)時刻全文的注意力分布,根據(jù)生成詞匯的不斷變化將固定維數(shù)的語義向量C替換成語義向量Ct′。
本文將編碼器的隱藏狀態(tài)Ht和上一時刻解碼器的隱藏狀態(tài)St′-1通過加權(quán)求和融合成高維語義向量Ct′,詳細計算過程如下
(6)
(7)
(8)
St′=LSTM(yt′-1,Ct′-1,St′-1)
(9)
(10)
其中,Wd是權(quán)重矩陣,bd是偏置向量。
圖3 LSTM解碼器
此外,本文為提高摘要準(zhǔn)確性,引入了先驗知識及集束搜索[13]方法。因為摘要中的大部分字詞都在文章中出現(xiàn)過,對此,本文使用文章中的詞集作為一個先驗分布,加到解碼過程的模型中,使得解碼端摘要生成序列時更傾向選用文章中已有的字詞。對于每篇文章,得到一個大小為T的0/1向量χ=(χ1,χ2,…χT),其中χi=1意味著該詞在文章中出現(xiàn)過,否則χi=0,將該向量經(jīng)過一個縮放平移層得到
(11)
式中:g,q為訓(xùn)練參數(shù),然后將該向量與解碼器得到的輸出y取平均得到新的輸出
(12)
集束搜索從左到右生成摘要詞匯。每次生成一個詞匯時,均對結(jié)果進行排序,并保留固定數(shù)量的候選。固定的數(shù)量被稱為集束寬度。集束搜索通過這種剪枝操作,一定程度上降低了計算復(fù)雜度,提高了解碼速度。本文模型設(shè)置集束寬度為3。
獲得解碼器的隱藏狀態(tài)及新的輸出后,通過自定義的輸出層和softmax層來計算當(dāng)前時間步輸出yt′的概率分布,得到下一個詞匯的詞典位置,如式(13)所示
P(yt′|y1,y2,…,yt′-1,Ct′)=softmax(yt′-1,Ct′,St′)
(13)
本文采用自行設(shè)計的主題爬蟲技術(shù)真實采集的中文數(shù)據(jù)集作為實驗數(shù)據(jù)集,該數(shù)據(jù)全部為工業(yè)新聞的數(shù)據(jù),主要包括賢集網(wǎng)(https://www.xianjichina.com)2016年-2019年的化學(xué)化工、機械工業(yè)、電子信息、生物食品、材料技術(shù)、醫(yī)藥醫(yī)療等板塊新聞,共53 874條新聞-摘要對。
爬取的源數(shù)據(jù)需執(zhí)行數(shù)據(jù)完整性檢查、標(biāo)簽替換和數(shù)據(jù)對齊等處理。其中,結(jié)構(gòu)化不完整的數(shù)據(jù)和新聞篇幅過長 (L文>1500) 或者篇幅過短 (L文<50) 的數(shù)據(jù)均視為無效數(shù)據(jù)。對于文本中可能出現(xiàn)的日期,如時間、日期、年、月、日等,本文使用標(biāo)簽替換。最終篩選后,有效數(shù)據(jù)為50 000條新聞-摘要對。摘要和新聞?wù)姆謩e導(dǎo)入到同一個CSV文件中的兩列,標(biāo)題和文本內(nèi)容應(yīng)每行對應(yīng)。
實驗參照LCSTS數(shù)據(jù)集[14]的方法,將處理后的數(shù)據(jù)按照98%和2%的比例分為兩部分,分別為訓(xùn)練集和測試集。測試集有1000條數(shù)據(jù),用于評測摘要的效果。數(shù)據(jù)集文本的平均長度見表1。
表1 數(shù)據(jù)集平均長度統(tǒng)計
本文分別使用jieba的精確模式、THULAC的不標(biāo)注詞性模式和pkuseg[15]的醫(yī)藥領(lǐng)域模型對上述數(shù)據(jù)集進行分詞處理,分詞樣例見表2。表2為測試中文分詞樣例,包括原始短文本和各分詞工具的分詞結(jié)果。
表2 中文分詞樣例
從表2中可以看出:例1的pkuseg的分詞精度更高,明確地將‘溶于’,‘脂肪烴’等詞提取出來。例2的‘脂肪酸皂類’,‘有機錫化合物’等詞提取精準(zhǔn),結(jié)果對比表明了在工業(yè)新聞領(lǐng)域數(shù)據(jù)集上pkuseg的分詞效果更好、準(zhǔn)確度更高
(14)
(15)
(16)
本文對3種分詞工具進行了精度(precision)、召回率(recall)、F值(F-score)評價指標(biāo)的對比實驗,分詞工具的評價指標(biāo)計算公式如式(14)~式(16)所示。結(jié)果表明pkuseg更適合用于實驗數(shù)據(jù)集的分詞工作。不同分詞工具之間的評價指標(biāo)對比見表3。
實驗選用pkuseg作為本文數(shù)據(jù)集的分詞工具。此外,根據(jù)工業(yè)新聞的歷史數(shù)據(jù)中的人名、公司名、化學(xué)式及相應(yīng)的專有名詞,人工構(gòu)建了232個詞的專有詞典,進一步提升了pkuseg的分詞準(zhǔn)確率,并且從一定程度上解決了文本摘要生成過程中的未登錄詞問題。
表3 不同分詞工具之間的評價指標(biāo)對比
本文實驗結(jié)果將采用ROUGE評價體系進行評測。ROUGE評價體系定義請參見文獻[11]。本文的對比實驗分析中,主要使用ROUGE-1、ROUGE-2和ROUGE-L這3個值來評價本文的生成式摘要質(zhì)量和模型性能。ROUGE-1、ROUGE-2和ROUGE-L評價指標(biāo)的計算公式如式(17)~式(21)所示
(17)
(18)
(19)
(20)
(21)
其中,LCS(X,Y) 是X和Y的最長公共子序列的長度,m和n分別表示參考摘要和生成摘要的長度,Rlcs,Plcs分別表示召回率和準(zhǔn)確率,在DUC任務(wù)中β被設(shè)置為一個很大的數(shù),所以ROUGE-L幾乎只考慮召回率。舉例說明見表4。
表4 評價指標(biāo)計算樣例(β設(shè)為10)
本文中出現(xiàn)的符號說明見表5,其它符號均在文中詳細標(biāo)注。
表5 本文中出現(xiàn)的符號說明
本文使用控制變量法對學(xué)習(xí)率(learning rate,lr)和dropout進行對比實驗,尋找其最優(yōu)初始值。
首先為了找到最優(yōu)的學(xué)習(xí)率初始值,本文在每次迭代結(jié)束后都初始化網(wǎng)絡(luò)并同時增加學(xué)習(xí)率,統(tǒng)計每次迭代計算出的損失值。學(xué)習(xí)率取值范圍為1e-05至1。每次迭代設(shè)置的學(xué)習(xí)率參數(shù)如圖4(a)所示。損失值隨學(xué)習(xí)率增加的變化曲線如圖4(b)所示。
如圖4(b)所示,損失值在學(xué)習(xí)率為1e-05-0.1內(nèi)隨學(xué)習(xí)率的增加而震蕩減??;在學(xué)習(xí)率為0.1時,損失值達到最小值;學(xué)習(xí)率超過0.1后,損失值均高于最小值。因此,在本次實驗中最優(yōu)學(xué)習(xí)率初始值為0.1。
其次,為減少過擬合現(xiàn)象,本文使用dropout參數(shù),dropout定義請參見文獻[16]。dropout取值范圍為0%至100%。損失值隨dropout的變化曲線如圖5所示。
圖4 學(xué)習(xí)率參數(shù)實驗
圖5 損失值與dropout的變化曲線
如圖5所示,損失值在dropout取值為0%-40%內(nèi)時隨dropout值的增加而減少;dropout超過40%后,損失值隨dropout值的增加而增加;在dropout為40%時,損失值達到最小值,即在本次實驗中最優(yōu)dropout初始值為40%。
本文采用上述數(shù)據(jù)集進行實驗,在基于編解碼器的文本摘要模型訓(xùn)練過程中使用多分類交叉熵損失,lr設(shè)置為0.1,batch_size為128,dropout設(shè)置為0.4。迭代19輪的結(jié)果如圖6所示。分別代表訓(xùn)練損失值(train loss)變化情況和測試損失值(test loss)變化情況。
為防止過擬合的發(fā)生,實驗使用提前停止(early stopping),如果test loss增加,則停止訓(xùn)練。通過實驗結(jié)果分析,隨著時段數(shù)Epoch的增加,損失值逐漸減少,在訓(xùn)練進行到第20輪時,test loss值為2.0404,而第19輪的test loss值為2.0372,測試損失增加,故訓(xùn)練停止,模型共迭代19輪,train loss值下降至1.8052,test loss值下降為2.0372。
圖6 BiGAtten-LSTM模型訓(xùn)練損失值與 測試損失值變化曲線
本文又進行了系列對比實驗,實驗結(jié)果詳情見表6。其中:
RNN[14]:代表Hu等提出的模型,使用循環(huán)神經(jīng)網(wǎng)絡(luò)作為編碼器,并且將編碼器得到的最后一個隱藏狀態(tài)傳輸?shù)浇獯a器。
MC-LSTM+atten[8]:代表編碼器為卷積神經(jīng)網(wǎng)絡(luò),解碼器為LSTM,并加入attention的模型。
BiGRU-GRU+atten[9]:代表編碼器使用雙向GRU網(wǎng)絡(luò),解碼器使用單向GRU網(wǎng)絡(luò),并加入attention的模型。
BiGRUAtten-LSTM(本文):代表本文提出的基于編解碼器結(jié)構(gòu)的自動文本摘要模型。
表6 不同模型之間的ROUGE評價指標(biāo)對比
4種模型訓(xùn)練過程中的ROUGE-1指標(biāo)、ROUGE-2指標(biāo)和ROUGE-L指標(biāo)的變化情況如圖7(a)~圖7(c)所示。
圖7 不同模型之間的ROUGE評價指標(biāo)對比
由圖7和表6可以看出,在中文工業(yè)新聞數(shù)據(jù)集上,本文模型與傳統(tǒng)的生成式文本摘要模型相比,ROUGE-1指標(biāo)提高了0.026-0.144、ROUGE-2指標(biāo)提高了0.056-0.137和ROUGE-L指標(biāo)提高了0.025-0.147,說明本文設(shè)計的BiGRUAtten-LSTM模型獲得的上下文語義更加豐富,語言理解的更充分。同時本文模型在解碼器端使用先驗知識和集束搜索方法在一定程度上提高了摘要的準(zhǔn)確性。
文本自動摘要生成是NLP領(lǐng)域的重要分支,在新聞、報告和論文的概要信息的快速閱覽上具有重要指導(dǎo)意義。本文通過對生成式文本自動摘要的學(xué)習(xí)與研究,針對傳統(tǒng)模型長期依賴和語言理解不充分等問題,提出了基于編解碼器結(jié)構(gòu)的文本摘要生成模型(BiGRUAtten-LSTM)。編碼器使用雙向GRU網(wǎng)絡(luò)進行編碼,注意力機制結(jié)合編碼器輸出的語義向量獲得上下文語義向量,較大程度上豐富了編碼輸出的中間信息內(nèi)容,幫助解碼器獲取足夠的信息,提高了解碼的準(zhǔn)確度。同時結(jié)合先驗知識和集束搜索方法,有效減少文本摘要生成過程中的未登錄詞問題,進一步提高了摘要質(zhì)量。在真實的工業(yè)新聞領(lǐng)域的數(shù)據(jù)上,通過ROUGE評價體系,實驗對比分析了現(xiàn)有文本摘要生成方法,本文的文本摘要生成效果有了很大的提升。