陳立群郭文忠郭 昆張祖文
(1.福州大學(xué)數(shù)學(xué)與計算機(jī)科學(xué)學(xué)院 福州 350116)(2.福建省網(wǎng)絡(luò)計算與智能信息處理重點(diǎn)實(shí)驗室 福州 350116)(3.空間數(shù)據(jù)挖掘與信息共享教育部重點(diǎn)實(shí)驗室 福州 350116)
隨著互聯(lián)網(wǎng)的高速發(fā)展,信息資源呈現(xiàn)出爆炸式的增長。網(wǎng)絡(luò)環(huán)境中的信息資源數(shù)量極其龐大,雜亂無章,如何讓人們快速、準(zhǔn)確地從網(wǎng)絡(luò)上獲取有用的信息,是目前文本領(lǐng)域研究的一個熱點(diǎn)。
文本摘要的任務(wù)是將原文章壓縮成更加簡潔的并且包含文章主題信息的短文本。抽象式摘要方法利用自然語言理解技術(shù)對文本進(jìn)行語法、語義分析,對信息進(jìn)行融合,使用自然語言生成技術(shù)生成新的摘要句子。近年來,隨著自然語言處理技術(shù)的深入發(fā)展以及深度學(xué)習(xí)研究的日趨成熟,抽象式的摘要方法受到了廣泛關(guān)注,并取得了豐富的研究成果。
提出一種融合信息選擇和語義關(guān)聯(lián)的文本摘要模型(簡稱ISSRS)。
主要貢獻(xiàn)如下:
1)設(shè)計一種選擇網(wǎng)絡(luò)進(jìn)行信息選擇,通過綜合原文每個詞的特征與整篇文檔的特征信息,對原文信息進(jìn)行篩選,過濾后的信息保留了原文中的突出信息并弱化或移除不必要的內(nèi)容對生成摘要的影響,減少生成摘要結(jié)果的冗余、無用信息,使摘要結(jié)果更準(zhǔn)確。
2)將拷貝機(jī)制覆蓋度機(jī)制[1]與提升原文、摘要語義相融合,在解決未登入詞問題與生成文本重復(fù)問題的同時又能在一定程度上提高摘要所表達(dá)意思與原文的相關(guān)性,能綜合改善生成文本摘要中存在的問題。
一般的抽象式摘要方法將摘要過程分為兩步,第一步是使用無監(jiān)督方法或者語言知識將關(guān)鍵文本提取出來;第二步是用語言規(guī)則或者文本生成技術(shù)將第一步的結(jié)果生成摘要。目前,抽象式摘要方法可以分為以下三類[2]:1)基于結(jié)構(gòu)的方法,例如提取規(guī)則[3]或是樹[4]結(jié)構(gòu)的認(rèn)知模式;2)基于語義的方法,例如基于信息項的方法[5]、基于語義圖結(jié)構(gòu)[6]的方法;3)端到端的方法,例如基于encoder-decoder框架的Seq2Seq模型。
基于encoder-decoder框架的Seq2Seq模型于2014年在機(jī)器翻譯領(lǐng)域中被Sutskever等[7]提出并流行開來,其意義在于完全基于數(shù)據(jù)本身,從數(shù)據(jù)中學(xué)習(xí)特征出來,并且相比于其他抽象式摘要方法可以得到更好的效果。Rush等[8]在2015年發(fā)表的論文中將神經(jīng)語言模型和基于上下文的輸入編碼器相結(jié)合,提出了一種基于encoder-decoder框架的句子摘要模型,在給定輸入句子的情況下,逐個生成摘要的每個詞。Tan等[9]提出一種新型的基于圖結(jié)構(gòu)的注意力機(jī)制,能發(fā)現(xiàn)文檔中的顯著的信息,在此基礎(chǔ)之上提出一種分層次的解碼算法生成長序列摘要。
然而在文本摘要的研究中仍然存在許多問題與瓶頸需待解決。例如,在語言模型普遍存在的未登入詞問題;在生成多句摘要時,Seq2Seq模型中普遍存在摘要結(jié)果中子句重復(fù)、信息冗余的問題;生成的摘要的語義與原文的語義可能存在偏差甚至大相徑庭的情況。由此可見,生成摘要的準(zhǔn)確性以及可讀性有較大提升空間。
就這些問題,Gu等[10]提出了COPYNET拷貝模式,并將其融入到了Seq2Seq模型中,將傳統(tǒng)的生成模式和拷貝模式混合起來構(gòu)建了新的模型,非常好地解決了未登入詞問題。See等[1]將拷貝機(jī)制與覆蓋度機(jī)制組合起來,既解決了未登入詞問題,還對生成摘要過程中出現(xiàn)重復(fù)句子的情況進(jìn)行懲罰,降低摘要中的信息重復(fù)程度。Zhou等[11]提出了一種SEASS模型,在Seq2Seq模型中加入一種選擇機(jī)制,過濾原文中不重要的信息,保留關(guān)鍵內(nèi)容,通過提升原文質(zhì)量的方式來提高摘要的準(zhǔn)確性。Ma等[12]觀察到傳統(tǒng)RNN方式生成摘要的語義信息與原文存在歧義,提出一種提升Seq2Seq語義相關(guān)性的方法能較好地改善生成摘要的語義與原文的語義的相關(guān)程度。
對于句子摘要,給定輸入x=(x1,x2,…,xn),其中n為句子長度,xi∈Vs,Vs為原文章詞表。摘要算法從輸入x中摘取生成序列y=(y1,y2,…,yl)作為摘要結(jié)果,其中l(wèi)為摘要長度,且l≤n,yi∈Vt,Vt為目標(biāo)摘要詞表。如果生成的摘要中的詞并非全部來源于對應(yīng)的原文章,即|y|∈|x|,則將其定義為抽象式摘要。
Seq2Seq模型,即一種編碼器-解碼器模型(encoder-decoder),該模型根據(jù)一個輸入序列x,生成另一個輸出序列y。編碼器是將輸入序列轉(zhuǎn)化成一個固定長度的向量c,解碼器將編碼器生成的向量c再轉(zhuǎn)化成輸出序列,其中編碼器、解碼器分別由RNN組成。這種模型已經(jīng)在翻譯、文檔提取及問答系統(tǒng)等得到了廣泛的應(yīng)用。
在編碼器中,當(dāng)前時間的隱藏狀態(tài)ht是由上一時間的狀態(tài)和當(dāng)前時間輸入決定的,即ht=(ht-1,xt),在獲得了各個時間段的隱藏層以后,將隱藏層的信息匯總,生成最后的語義向量。同樣可以將最后的隱藏層作為語義向量c,即。
解碼階段可以看作編碼的逆過程。在這個階段,根據(jù)給定的語義向量c和之前已經(jīng)生成的輸出序列y1,y2,…,yt-1來預(yù)測下一個輸出的單詞yt,如式(1)所示。
而在RNN中,上式可化簡為式(2)
其中,st是RNN中的隱藏層,c是語義向量,yt-1表示上個時間段的輸出,g則可以是一個非線性的多層的神經(jīng)網(wǎng)絡(luò),可得到下一步生成yt時詞典中每個詞語對應(yīng)的生成概率。
由于傳統(tǒng)的Seq2Seq模型的編碼與解碼之間的唯一聯(lián)系是一個固定長度的語義向量c,編碼器要將整個序列的信息壓縮進(jìn)c中,但是語義向量無法完全表示整個序列的信息,且先輸入的內(nèi)容攜帶的信息會被后輸入的信息覆蓋掉。這就使得在解碼一開始就沒有獲得輸入序列足夠的信息,從而影響解碼的準(zhǔn)確性。
將注意力機(jī)制引入Seq2Seq模型中,編碼器將輸入編碼成一個向量序列,在解碼的時候,每一步都會選擇性的從向量序列中挑選一個子集進(jìn)行進(jìn)一步處理,生成當(dāng)前步驟的語義向量,即圖1所示的語義向量c1、c2、c3。這樣,在產(chǎn)生每一個輸出的時候,都能夠做到充分利用輸入序列攜帶的信息。
圖1 基于注意力機(jī)制的Seq2Seq模型
新的模型在產(chǎn)生輸出的時候,將產(chǎn)生一個“注意力范圍”表示接下來輸出的時候要重點(diǎn)關(guān)注輸入序列中的哪些部分,然后根據(jù)關(guān)注的區(qū)域來產(chǎn)生下一個輸出,如此往復(fù)。模型架構(gòu)如圖2所示。
圖2 基于注意力機(jī)制的Seq2Seq模型(注意力范圍)
融合信息選擇和語義關(guān)聯(lián)的文本摘要模型主要由基本模型、選擇網(wǎng)絡(luò)、語義關(guān)聯(lián)這三個部分組成。
模型采用See等提出的Pointer-generator+coverage模型作為基本模型。該模型在注意力機(jī)制的基礎(chǔ)上結(jié)合拷貝機(jī)制與覆蓋度機(jī)制,在解決未登入詞問題的同時減少生成重復(fù)內(nèi)容的摘要結(jié)果的概率。如圖3所示,模型采用雙向LSTM作為編碼器encoder,生成由編碼器各個隱含層狀態(tài)所組成的序列,其中為正向LSTM的隱狀態(tài),為反向LSTM的隱狀態(tài)。解碼器decoder由單向LSTM組成,在解碼器執(zhí)行第t步時,通過結(jié)合上一步生成詞yt-1與解碼器狀態(tài)st生成該步中的摘要結(jié)果yt。
圖3 雙向LSTM作為編碼器的Seq2Seq模型
式(3)、(4)為解碼器第t步時注意力分布at的計算公式。
其中,v、Wh、Ws、battn是待學(xué)習(xí)的參數(shù)。注意力分布可視作原文詞的概率分布,用于生成語義向量c,如式(5)所示。
通過結(jié)合語義向量c與解碼器狀態(tài)st生成詞表的概率分布Pvocab,如式(6)所示。
其中V′、V、b、b′是待學(xué)習(xí)的參數(shù),Pvocab表示生成下一個詞時詞表中所有詞的概率分布,通過該概率分布,可獲取預(yù)測詞的概率,即式(7)。
而在Pointer-generator+coverage模型中采用拷貝機(jī)制定義一個生成概率pgen∈[0,1],如式(8)所示。
采用覆蓋度機(jī)制為維持一個覆蓋度向量ct,由于注意力分布at′含有原文的位置信息,通過避免相同位置詞重復(fù)出現(xiàn)能避免生成重復(fù)的文本。覆蓋度向量通過累加解碼器之前步驟的注意力分布來表示。
直觀上,ct表示到解碼器生成第t個詞為止注意力分布對應(yīng)的詞對生成摘要的影響的覆蓋度。覆蓋度向量也融合到注意力機(jī)制中,表示在每一步生成注意力分布時能考慮到之前生成詞的分布情況,避免生成重復(fù)的文本,即在式(3)中引入覆蓋度向量,如式(11)所示。
其中wc為待學(xué)習(xí)的參數(shù)。
式(12)定義覆蓋度損失以懲罰重復(fù)生成相同位置詞的情況。
在訓(xùn)練時,解碼器第t步的損失函數(shù)定義如下:
其中w*
t為標(biāo)準(zhǔn)摘要結(jié)果中的目標(biāo)詞。
因此,整個長度為T摘要序列的損失為
生成摘要結(jié)果存在無效、冗余的信息,這些信息干擾生成摘要結(jié)果的簡潔性與準(zhǔn)確性,因此,為了屏蔽這些干擾,在4.1節(jié)所述的模型的基礎(chǔ)之上設(shè)計了一種選擇網(wǎng)絡(luò),通過對編碼器生成的隱含層進(jìn)行過濾,從輸入原文的編碼信息中篩選出更為有用的信息作為輸入原文的二次編碼信息以實(shí)現(xiàn)信息選擇的目的。過濾后的信息保留了原文中的突出信息并移除沒有必要的內(nèi)容,以提升編碼的質(zhì)量。
在自然語言領(lǐng)域,可以通過保留RNN的最后一個狀態(tài)或是平均池化RNN輸出的方式來提取句子或是整個文檔的信息。而通過對原文進(jìn)行卷積,可以發(fā)現(xiàn)詞之間的上下文關(guān)系,獲取文檔中詞的顯著性的特征信息。通過結(jié)合文檔中詞的顯著性的特征信息與整個文檔的特征信息作為篩選條件,對編碼器的輸出進(jìn)行選擇,調(diào)整編碼層各個詞對應(yīng)節(jié)點(diǎn)的權(quán)重,生成二次編碼信息,使主要內(nèi)容暴露出來,來達(dá)到過濾的效果。
然后通過最大池化特征映射f,如式(16),結(jié)果f′作為卷積核K對應(yīng)于該文檔每個詞的特征信息。過程如圖4所示,采用3個卷積核進(jìn)行卷積操作,其中每個卷積核寬度h為2。
圖4 詞向量卷積
由于RNN的最后一個輸出包含有整個文檔的特征信息,因此通過連結(jié)雙向LSTM的正向最后一個隱含狀態(tài)與反向第一個隱藏狀態(tài)來表示整個文檔的特征信息s,如式(17)所示。由于f′包含文檔的詞的特征信息,因此對于編碼器每個輸出結(jié)果hi,選擇網(wǎng)絡(luò)通過將hi與s、f′結(jié)合生成一個權(quán)重映射sGatei,如式(18)所示,sGatei綜合文檔的特征信息與文檔中詞的特征調(diào)整編碼結(jié)果,對突出的主要信息賦予更高的權(quán)重,對于不重要的信息弱化其對整個文檔的作用,如式(19)所示,每個詞根據(jù)該權(quán)重映射將編碼器輸出hi映射為作為二次編碼結(jié)果。如圖5所示,選擇二次編碼結(jié)果代替原編碼結(jié)果h1,h2,…,hn作為輸入解碼器的文檔編碼結(jié)果,通過提高原文質(zhì)量的方式來提高生成的摘要的質(zhì)量。
圖5 選擇網(wǎng)絡(luò)模型
Ma[12]等觀察到基于Seq2Seq框架生成的摘要雖然字面上與原文相似,但是所表達(dá)的意思卻相差很大并提出了一種提升語義關(guān)聯(lián)的方法。然而,該方法與4.1節(jié)所述的Pointer-generator+coverage模型都僅關(guān)注生成摘要存在的部分問題,并沒有更全面地考慮生成摘要存在的問題。因此,在選擇網(wǎng)絡(luò)的基礎(chǔ)上提出語義關(guān)聯(lián)的方法,將上述Ma提出的方法與Pointer-generator+coverage模型進(jìn)行融合,綜合處理未登入詞、生成句子重復(fù)和生成摘要與原文的語義存在偏差的問題以生成更加完整的文本摘要。
如圖6所示,編碼器的最后一個輸出狀態(tài)hn能表達(dá)原文的語義信息Vt。解碼器的最后一個輸出狀態(tài)sm包含有原文與生成摘要二者的信息,Wang[13]等證實(shí)二者相減的跨度可以表示摘要的語義信息Vs,如式(20)所示。
采用余弦相似度計算原文與摘要的語義相似度,如式(21)所示。
其中,Vs表示生成摘要的語義向量,Vt表示原文到的語義向量。
圖6 融合信息選擇與語義關(guān)聯(lián)模型
在式(14)中引入語義相似度,得到最終的損失函數(shù)如下:
式(22)在式(14)的基礎(chǔ)上考慮了原文-摘要的余弦相似度,訓(xùn)練過程通過降低損失函數(shù)來最大化原文與生成摘要的余弦相似度、最小化覆蓋度,以提高原文摘要語義關(guān)聯(lián)與降低生成摘要重復(fù)率,提升摘要結(jié)果質(zhì)量。
使用ROUGE[14]作為測評摘要結(jié)果的度量標(biāo)準(zhǔn)。ROUGE值越大,則摘要效果越好。以ROUGE-1為例,它表示以一個單詞為單位的重疊度,其準(zhǔn)確率P、召回率R和F值的計算公式如下:
本文采用ROUGE-1,ROUGE-2和ROUGE-L的F值作為實(shí)驗結(jié)果的度量標(biāo)準(zhǔn)。
1)CNN/Daily Mail數(shù)據(jù)集[15~16]
該數(shù)據(jù)集包含有312084篇英文新聞文章-摘要對,其中287226篇為訓(xùn)練數(shù)據(jù),13368篇為驗證數(shù)據(jù),11490篇為測試數(shù)據(jù),抽取其中18000篇文本摘要對作為訓(xùn)練集,6000篇作為驗證集,6000篇作為測試集進(jìn)行實(shí)驗。
2)English Gigaword數(shù)據(jù)集
該數(shù)據(jù)集大概有950萬篇新聞文章,數(shù)據(jù)集用標(biāo)題來做摘要,用首句來做原文,屬于單句摘要的數(shù)據(jù)集。抽取其中20000篇文本摘要對作為訓(xùn)練集,6000篇作為驗證集,6000篇作為測試集進(jìn)行實(shí)驗。
1)參數(shù)設(shè)置
在實(shí)驗中,對于CNN/Daily Mail數(shù)據(jù)集,模型設(shè)置隱藏層狀態(tài)為256維,詞嵌入維度設(shè)為128,使用含有50000個單詞的詞表作為原文和摘要共用詞表。采用Adagrad優(yōu)化器,其中學(xué)習(xí)率設(shè)置為0.15,初始累加值設(shè)置為0.1。在訓(xùn)練與測試時,將原文的最大長度限制為400,將摘要的最大長度限制為100,批大?。╞atch size)設(shè)置為16,卷積核大小設(shè)置為2×128。采用集束搜索(beam search)生成摘要結(jié)果,其中搜索寬度設(shè)置為4。訓(xùn)練過程進(jìn)行了18100次迭代(大約14epochs)得到最終的模型。對于English Gigaword數(shù)據(jù)集,模型設(shè)置隱藏層狀態(tài)為400維,詞嵌入維度設(shè)為200,使用含有20000個單詞的詞表作為原文和摘要共用詞表。采用Adagrad優(yōu)化器,其中學(xué)習(xí)率設(shè)置為0.05,初始累加值設(shè)置為0.1。在訓(xùn)練與測試時,將原文的最大長度限制為120,將摘要的最大長度限制為30,批大?。╞atch size)設(shè)置為16,卷積核大小設(shè)置為2×200。采用集束搜索(beam search)生成摘要結(jié)果,其中搜索寬度設(shè)置為5。訓(xùn)練過程進(jìn)行了20000次迭代(大約14epochs)得到最終的模型。
2)模型對比
實(shí)驗結(jié)果如表1所示,在CNN/Daily Mail數(shù)據(jù)集和English Gigaword數(shù)據(jù)集上,提出的融合信息選擇和語義關(guān)聯(lián)的文本摘要模型(ISSRS)相較于文獻(xiàn)[17]提出的基于注意力機(jī)制的Seq2Seq模型以及See[2]提出的Pointer-generator和Pointer-generator+coverage模 型,在ROUGE-1、ROUGE-2、ROUGE-L三種度量標(biāo)準(zhǔn)上都有明顯提高。
表1 模型對比實(shí)驗結(jié)果
3)模型結(jié)構(gòu)效果對比
在CNN/Daily Mail數(shù)據(jù)集上做模型結(jié)構(gòu)效果對比,如表2所示,在基本模型上加入選擇網(wǎng)絡(luò)過濾無效、冗余信息,保留關(guān)鍵的內(nèi)容,能提煉出原文中的重要信息以生成摘要,相比于基本模型Pointer-generator+coverage,能一定程度上提高ROUGE值。采用語義關(guān)聯(lián),由于原文存在無效、冗余信息的干擾,結(jié)果并沒有提高摘要的ROUGE值。當(dāng)融合選擇網(wǎng)絡(luò)和語義關(guān)聯(lián)時,通過選擇有效的信息參與摘要生成,能一定程度上緩解無效信息對語義相關(guān)性的干擾,在提高摘要的語義準(zhǔn)確性、減小摘要結(jié)果與原文之間歧義的同時能進(jìn)一步提高ROUGE值。
表2 模型結(jié)構(gòu)效果對比
從表2中的四種模型的摘要結(jié)果中抽取實(shí)例并與標(biāo)準(zhǔn)摘要結(jié)果進(jìn)行聯(lián)合比較,翻譯后結(jié)果如表3所示。
表3 在CNN/Daily Mail數(shù)據(jù)集生成摘要例子(模型結(jié)構(gòu)效果對比)
相比于標(biāo)準(zhǔn)摘要結(jié)果,pointer-generator+coverage模型生成的摘要結(jié)果將重點(diǎn)都放在索馬里發(fā)生炸彈襲擊的描述上,該信息并非主要信息,摘要結(jié)果存在無效信息;加入語義關(guān)聯(lián)生成的摘要結(jié)果不僅介紹了炸彈襲擊事件,還關(guān)注到“聯(lián)合國兒童基金會”這一關(guān)鍵詞;加入選擇網(wǎng)絡(luò)能過濾掉原文中的無效、冗余信息,生成的摘要結(jié)果不僅介紹了炸彈襲擊事件,還關(guān)注到“聯(lián)合國兒童基金會”、“索馬里總統(tǒng)”這些涉及該事件的主要關(guān)鍵詞,弱化了pointer-generator+coverage模型中存在的無效信息對摘要結(jié)果的影響,但是在語義上存在歧義,“炸彈爆炸時,一輛汽車正把工人從賓館送到他們的辦公室”這句話在標(biāo)準(zhǔn)摘要結(jié)果表明為“聯(lián)合國兒童基金會”的發(fā)言,而在該摘要結(jié)果中卻是“索馬里總統(tǒng)”說的;而融合選擇網(wǎng)絡(luò)與語義關(guān)聯(lián)之后,模型去除了存在語義歧義的內(nèi)容,能更大程度地準(zhǔn)確概括原文所要傳達(dá)的信息。由例子可以看出,模型能較好地減小生成摘要的冗余信息,并提高與原文的語義相關(guān)性,能更加綜合地概括原文的信息。
在pointer-generator+coverage模型的基礎(chǔ)之上,提出融合信息選擇和語義關(guān)聯(lián)的文本摘要模型,能夠有效地過濾掉冗余無效的信息,保留原文的關(guān)鍵信息,生成的摘要結(jié)果更加準(zhǔn)確,而且在語義上更貼近原文。在CNN/Daily Mail和English Gigaword數(shù)據(jù)集上的實(shí)驗結(jié)果表明,提出的模型在ROUGE準(zhǔn)確度方面優(yōu)于已有的抽象式文本摘要方法,且生成的摘要有更好的概括能力。但是該模型的訓(xùn)練耗時過長,影響生成摘要的效率,在下一步的工作中,將嘗試結(jié)合ConvS2S[18]作為編碼-解碼模型,在保證摘要質(zhì)量的情況下,一定程度上降低模型的訓(xùn)練耗時。