陳立群郭文忠郭 昆張祖文
(1.福州大學數學與計算機科學學院 福州 350116)(2.福建省網絡計算與智能信息處理重點實驗室 福州 350116)(3.空間數據挖掘與信息共享教育部重點實驗室 福州 350116)
隨著互聯網的高速發展,信息資源呈現出爆炸式的增長。網絡環境中的信息資源數量極其龐大,雜亂無章,如何讓人們快速、準確地從網絡上獲取有用的信息,是目前文本領域研究的一個熱點。
文本摘要的任務是將原文章壓縮成更加簡潔的并且包含文章主題信息的短文本。抽象式摘要方法利用自然語言理解技術對文本進行語法、語義分析,對信息進行融合,使用自然語言生成技術生成新的摘要句子。近年來,隨著自然語言處理技術的深入發展以及深度學習研究的日趨成熟,抽象式的摘要方法受到了廣泛關注,并取得了豐富的研究成果。
提出一種融合信息選擇和語義關聯的文本摘要模型(簡稱ISSRS)。
主要貢獻如下:
1)設計一種選擇網絡進行信息選擇,通過綜合原文每個詞的特征與整篇文檔的特征信息,對原文信息進行篩選,過濾后的信息保留了原文中的突出信息并弱化或移除不必要的內容對生成摘要的影響,減少生成摘要結果的冗余、無用信息,使摘要結果更準確。
2)將拷貝機制覆蓋度機制[1]與提升原文、摘要語義相融合,在解決未登入詞問題與生成文本重復問題的同時又能在一定程度上提高摘要所表達意思與原文的相關性,能綜合改善生成文本摘要中存在的問題。
一般的抽象式摘要方法將摘要過程分為兩步,第一步是使用無監督方法或者語言知識將關鍵文本提取出來;第二步是用語言規則或者文本生成技術將第一步的結果生成摘要。目前,抽象式摘要方法可以分為以下三類[2]:1)基于結構的方法,例如提取規則[3]或是樹[4]結構的認知模式;2)基于語義的方法,例如基于信息項的方法[5]、基于語義圖結構[6]的方法;3)端到端的方法,例如基于encoder-decoder框架的Seq2Seq模型。
基于encoder-decoder框架的Seq2Seq模型于2014年在機器翻譯領域中被Sutskever等[7]提出并流行開來,其意義在于完全基于數據本身,從數據中學習特征出來,并且相比于其他抽象式摘要方法可以得到更好的效果。Rush等[8]在2015年發表的論文中將神經語言模型和基于上下文的輸入編碼器相結合,提出了一種基于encoder-decoder框架的句子摘要模型,在給定輸入句子的情況下,逐個生成摘要的每個詞。Tan等[9]提出一種新型的基于圖結構的注意力機制,能發現文檔中的顯著的信息,在此基礎之上提出一種分層次的解碼算法生成長序列摘要。
然而在文本摘要的研究中仍然存在許多問題與瓶頸需待解決。例如,在語言模型普遍存在的未登入詞問題;在生成多句摘要時,Seq2Seq模型中普遍存在摘要結果中子句重復、信息冗余的問題;生成的摘要的語義與原文的語義可能存在偏差甚至大相徑庭的情況。由此可見,生成摘要的準確性以及可讀性有較大提升空間。
就這些問題,Gu等[10]提出了COPYNET拷貝模式,并將其融入到了Seq2Seq模型中,將傳統的生成模式和拷貝模式混合起來構建了新的模型,非常好地解決了未登入詞問題。See等[1]將拷貝機制與覆蓋度機制組合起來,既解決了未登入詞問題,還對生成摘要過程中出現重復句子的情況進行懲罰,降低摘要中的信息重復程度。Zhou等[11]提出了一種SEASS模型,在Seq2Seq模型中加入一種選擇機制,過濾原文中不重要的信息,保留關鍵內容,通過提升原文質量的方式來提高摘要的準確性。Ma等[12]觀察到傳統RNN方式生成摘要的語義信息與原文存在歧義,提出一種提升Seq2Seq語義相關性的方法能較好地改善生成摘要的語義與原文的語義的相關程度。
對于句子摘要,給定輸入x=(x1,x2,…,xn),其中n為句子長度,xi∈Vs,Vs為原文章詞表。摘要算法從輸入x中摘取生成序列y=(y1,y2,…,yl)作為摘要結果,其中l為摘要長度,且l≤n,yi∈Vt,Vt為目標摘要詞表。如果生成的摘要中的詞并非全部來源于對應的原文章,即|y|∈|x|,則將其定義為抽象式摘要。
Seq2Seq模型,即一種編碼器-解碼器模型(encoder-decoder),該模型根據一個輸入序列x,生成另一個輸出序列y。編碼器是將輸入序列轉化成一個固定長度的向量c,解碼器將編碼器生成的向量c再轉化成輸出序列,其中編碼器、解碼器分別由RNN組成。這種模型已經在翻譯、文檔提取及問答系統等得到了廣泛的應用。
在編碼器中,當前時間的隱藏狀態ht是由上一時間的狀態和當前時間輸入決定的,即ht=(ht-1,xt),在獲得了各個時間段的隱藏層以后,將隱藏層的信息匯總,生成最后的語義向量。同樣可以將最后的隱藏層作為語義向量c,即。
解碼階段可以看作編碼的逆過程。在這個階段,根據給定的語義向量c和之前已經生成的輸出序列y1,y2,…,yt-1來預測下一個輸出的單詞yt,如式(1)所示。

而在RNN中,上式可化簡為式(2)

其中,st是RNN中的隱藏層,c是語義向量,yt-1表示上個時間段的輸出,g則可以是一個非線性的多層的神經網絡,可得到下一步生成yt時詞典中每個詞語對應的生成概率。
由于傳統的Seq2Seq模型的編碼與解碼之間的唯一聯系是一個固定長度的語義向量c,編碼器要將整個序列的信息壓縮進c中,但是語義向量無法完全表示整個序列的信息,且先輸入的內容攜帶的信息會被后輸入的信息覆蓋掉。這就使得在解碼一開始就沒有獲得輸入序列足夠的信息,從而影響解碼的準確性。
將注意力機制引入Seq2Seq模型中,編碼器將輸入編碼成一個向量序列,在解碼的時候,每一步都會選擇性的從向量序列中挑選一個子集進行進一步處理,生成當前步驟的語義向量,即圖1所示的語義向量c1、c2、c3。這樣,在產生每一個輸出的時候,都能夠做到充分利用輸入序列攜帶的信息。

圖1 基于注意力機制的Seq2Seq模型
新的模型在產生輸出的時候,將產生一個“注意力范圍”表示接下來輸出的時候要重點關注輸入序列中的哪些部分,然后根據關注的區域來產生下一個輸出,如此往復。模型架構如圖2所示。

圖2 基于注意力機制的Seq2Seq模型(注意力范圍)
融合信息選擇和語義關聯的文本摘要模型主要由基本模型、選擇網絡、語義關聯這三個部分組成。
模型采用See等提出的Pointer-generator+coverage模型作為基本模型。該模型在注意力機制的基礎上結合拷貝機制與覆蓋度機制,在解決未登入詞問題的同時減少生成重復內容的摘要結果的概率。如圖3所示,模型采用雙向LSTM作為編碼器encoder,生成由編碼器各個隱含層狀態所組成的序列,其中為正向LSTM的隱狀態,為反向LSTM的隱狀態。解碼器decoder由單向LSTM組成,在解碼器執行第t步時,通過結合上一步生成詞yt-1與解碼器狀態st生成該步中的摘要結果yt。

圖3 雙向LSTM作為編碼器的Seq2Seq模型
式(3)、(4)為解碼器第t步時注意力分布at的計算公式。

其中,v、Wh、Ws、battn是待學習的參數。注意力分布可視作原文詞的概率分布,用于生成語義向量c,如式(5)所示。

通過結合語義向量c與解碼器狀態st生成詞表的概率分布Pvocab,如式(6)所示。

其中V′、V、b、b′是待學習的參數,Pvocab表示生成下一個詞時詞表中所有詞的概率分布,通過該概率分布,可獲取預測詞的概率,即式(7)。

而在Pointer-generator+coverage模型中采用拷貝機制定義一個生成概率pgen∈[0,1],如式(8)所示。


采用覆蓋度機制為維持一個覆蓋度向量ct,由于注意力分布at′含有原文的位置信息,通過避免相同位置詞重復出現能避免生成重復的文本。覆蓋度向量通過累加解碼器之前步驟的注意力分布來表示。

直觀上,ct表示到解碼器生成第t個詞為止注意力分布對應的詞對生成摘要的影響的覆蓋度。覆蓋度向量也融合到注意力機制中,表示在每一步生成注意力分布時能考慮到之前生成詞的分布情況,避免生成重復的文本,即在式(3)中引入覆蓋度向量,如式(11)所示。

其中wc為待學習的參數。
式(12)定義覆蓋度損失以懲罰重復生成相同位置詞的情況。

在訓練時,解碼器第t步的損失函數定義如下:

其中w*
t為標準摘要結果中的目標詞。
因此,整個長度為T摘要序列的損失為

生成摘要結果存在無效、冗余的信息,這些信息干擾生成摘要結果的簡潔性與準確性,因此,為了屏蔽這些干擾,在4.1節所述的模型的基礎之上設計了一種選擇網絡,通過對編碼器生成的隱含層進行過濾,從輸入原文的編碼信息中篩選出更為有用的信息作為輸入原文的二次編碼信息以實現信息選擇的目的。過濾后的信息保留了原文中的突出信息并移除沒有必要的內容,以提升編碼的質量。
在自然語言領域,可以通過保留RNN的最后一個狀態或是平均池化RNN輸出的方式來提取句子或是整個文檔的信息。而通過對原文進行卷積,可以發現詞之間的上下文關系,獲取文檔中詞的顯著性的特征信息。通過結合文檔中詞的顯著性的特征信息與整個文檔的特征信息作為篩選條件,對編碼器的輸出進行選擇,調整編碼層各個詞對應節點的權重,生成二次編碼信息,使主要內容暴露出來,來達到過濾的效果。

然后通過最大池化特征映射f,如式(16),結果f′作為卷積核K對應于該文檔每個詞的特征信息。過程如圖4所示,采用3個卷積核進行卷積操作,其中每個卷積核寬度h為2。


圖4 詞向量卷積
由于RNN的最后一個輸出包含有整個文檔的特征信息,因此通過連結雙向LSTM的正向最后一個隱含狀態與反向第一個隱藏狀態來表示整個文檔的特征信息s,如式(17)所示。由于f′包含文檔的詞的特征信息,因此對于編碼器每個輸出結果hi,選擇網絡通過將hi與s、f′結合生成一個權重映射sGatei,如式(18)所示,sGatei綜合文檔的特征信息與文檔中詞的特征調整編碼結果,對突出的主要信息賦予更高的權重,對于不重要的信息弱化其對整個文檔的作用,如式(19)所示,每個詞根據該權重映射將編碼器輸出hi映射為作為二次編碼結果。如圖5所示,選擇二次編碼結果代替原編碼結果h1,h2,…,hn作為輸入解碼器的文檔編碼結果,通過提高原文質量的方式來提高生成的摘要的質量。


圖5 選擇網絡模型
Ma[12]等觀察到基于Seq2Seq框架生成的摘要雖然字面上與原文相似,但是所表達的意思卻相差很大并提出了一種提升語義關聯的方法。然而,該方法與4.1節所述的Pointer-generator+coverage模型都僅關注生成摘要存在的部分問題,并沒有更全面地考慮生成摘要存在的問題。因此,在選擇網絡的基礎上提出語義關聯的方法,將上述Ma提出的方法與Pointer-generator+coverage模型進行融合,綜合處理未登入詞、生成句子重復和生成摘要與原文的語義存在偏差的問題以生成更加完整的文本摘要。
如圖6所示,編碼器的最后一個輸出狀態hn能表達原文的語義信息Vt。解碼器的最后一個輸出狀態sm包含有原文與生成摘要二者的信息,Wang[13]等證實二者相減的跨度可以表示摘要的語義信息Vs,如式(20)所示。

采用余弦相似度計算原文與摘要的語義相似度,如式(21)所示。

其中,Vs表示生成摘要的語義向量,Vt表示原文到的語義向量。

圖6 融合信息選擇與語義關聯模型
在式(14)中引入語義相似度,得到最終的損失函數如下:

式(22)在式(14)的基礎上考慮了原文-摘要的余弦相似度,訓練過程通過降低損失函數來最大化原文與生成摘要的余弦相似度、最小化覆蓋度,以提高原文摘要語義關聯與降低生成摘要重復率,提升摘要結果質量。
使用ROUGE[14]作為測評摘要結果的度量標準。ROUGE值越大,則摘要效果越好。以ROUGE-1為例,它表示以一個單詞為單位的重疊度,其準確率P、召回率R和F值的計算公式如下:

本文采用ROUGE-1,ROUGE-2和ROUGE-L的F值作為實驗結果的度量標準。
1)CNN/Daily Mail數據集[15~16]
該數據集包含有312084篇英文新聞文章-摘要對,其中287226篇為訓練數據,13368篇為驗證數據,11490篇為測試數據,抽取其中18000篇文本摘要對作為訓練集,6000篇作為驗證集,6000篇作為測試集進行實驗。
2)English Gigaword數據集
該數據集大概有950萬篇新聞文章,數據集用標題來做摘要,用首句來做原文,屬于單句摘要的數據集。抽取其中20000篇文本摘要對作為訓練集,6000篇作為驗證集,6000篇作為測試集進行實驗。
1)參數設置
在實驗中,對于CNN/Daily Mail數據集,模型設置隱藏層狀態為256維,詞嵌入維度設為128,使用含有50000個單詞的詞表作為原文和摘要共用詞表。采用Adagrad優化器,其中學習率設置為0.15,初始累加值設置為0.1。在訓練與測試時,將原文的最大長度限制為400,將摘要的最大長度限制為100,批大小(batch size)設置為16,卷積核大小設置為2×128。采用集束搜索(beam search)生成摘要結果,其中搜索寬度設置為4。訓練過程進行了18100次迭代(大約14epochs)得到最終的模型。對于English Gigaword數據集,模型設置隱藏層狀態為400維,詞嵌入維度設為200,使用含有20000個單詞的詞表作為原文和摘要共用詞表。采用Adagrad優化器,其中學習率設置為0.05,初始累加值設置為0.1。在訓練與測試時,將原文的最大長度限制為120,將摘要的最大長度限制為30,批大小(batch size)設置為16,卷積核大小設置為2×200。采用集束搜索(beam search)生成摘要結果,其中搜索寬度設置為5。訓練過程進行了20000次迭代(大約14epochs)得到最終的模型。
2)模型對比
實驗結果如表1所示,在CNN/Daily Mail數據集和English Gigaword數據集上,提出的融合信息選擇和語義關聯的文本摘要模型(ISSRS)相較于文獻[17]提出的基于注意力機制的Seq2Seq模型以及See[2]提出的Pointer-generator和Pointer-generator+coverage模 型,在ROUGE-1、ROUGE-2、ROUGE-L三種度量標準上都有明顯提高。

表1 模型對比實驗結果
3)模型結構效果對比
在CNN/Daily Mail數據集上做模型結構效果對比,如表2所示,在基本模型上加入選擇網絡過濾無效、冗余信息,保留關鍵的內容,能提煉出原文中的重要信息以生成摘要,相比于基本模型Pointer-generator+coverage,能一定程度上提高ROUGE值。采用語義關聯,由于原文存在無效、冗余信息的干擾,結果并沒有提高摘要的ROUGE值。當融合選擇網絡和語義關聯時,通過選擇有效的信息參與摘要生成,能一定程度上緩解無效信息對語義相關性的干擾,在提高摘要的語義準確性、減小摘要結果與原文之間歧義的同時能進一步提高ROUGE值。

表2 模型結構效果對比
從表2中的四種模型的摘要結果中抽取實例并與標準摘要結果進行聯合比較,翻譯后結果如表3所示。

表3 在CNN/Daily Mail數據集生成摘要例子(模型結構效果對比)
相比于標準摘要結果,pointer-generator+coverage模型生成的摘要結果將重點都放在索馬里發生炸彈襲擊的描述上,該信息并非主要信息,摘要結果存在無效信息;加入語義關聯生成的摘要結果不僅介紹了炸彈襲擊事件,還關注到“聯合國兒童基金會”這一關鍵詞;加入選擇網絡能過濾掉原文中的無效、冗余信息,生成的摘要結果不僅介紹了炸彈襲擊事件,還關注到“聯合國兒童基金會”、“索馬里總統”這些涉及該事件的主要關鍵詞,弱化了pointer-generator+coverage模型中存在的無效信息對摘要結果的影響,但是在語義上存在歧義,“炸彈爆炸時,一輛汽車正把工人從賓館送到他們的辦公室”這句話在標準摘要結果表明為“聯合國兒童基金會”的發言,而在該摘要結果中卻是“索馬里總統”說的;而融合選擇網絡與語義關聯之后,模型去除了存在語義歧義的內容,能更大程度地準確概括原文所要傳達的信息。由例子可以看出,模型能較好地減小生成摘要的冗余信息,并提高與原文的語義相關性,能更加綜合地概括原文的信息。
在pointer-generator+coverage模型的基礎之上,提出融合信息選擇和語義關聯的文本摘要模型,能夠有效地過濾掉冗余無效的信息,保留原文的關鍵信息,生成的摘要結果更加準確,而且在語義上更貼近原文。在CNN/Daily Mail和English Gigaword數據集上的實驗結果表明,提出的模型在ROUGE準確度方面優于已有的抽象式文本摘要方法,且生成的摘要有更好的概括能力。但是該模型的訓練耗時過長,影響生成摘要的效率,在下一步的工作中,將嘗試結合ConvS2S[18]作為編碼-解碼模型,在保證摘要質量的情況下,一定程度上降低模型的訓練耗時。