王 帥,趙 翔,2,李 博,葛 斌,2,湯大權,2
(1. 國防科學技術大學 信息系統工程重點實驗室,湖南 長沙 410073;2. 地球空間信息技術協同創新中心,湖北 武漢 430079)
隨著互聯網的飛速發展,人們越來越多地依賴網絡來獲取所需要的信息。在用戶普遍面臨信息過載的后信息時代,如何更加有效地瀏覽和查閱互聯網上的海量信息成了當前科學領域的研究熱點。自動文本摘要技術利用計算機對海量文本進行處理,實現文本信息的壓縮表示,產生簡潔、精煉的內容,可以更好地幫助用戶瀏覽和吸收互聯網上的海量信息,降低用戶信息負載,提高用戶知識提取的效率。近年來,自動文本摘要技術在科技、情報、金融等領域的應用不斷擴展和深入,是現今信息檢索和自然語言處理領域的研究熱點之一。
當前,文本自動摘要技術可大致分為兩類——抽取式和生成式。抽取式方法的本質是對已有的句子進行排序和選擇,通過提取文檔中已存在的關鍵詞和句子形成摘要;生成式方法則是通過建立抽象的語義表示,利用自然語言生成技術形成摘要[1]。傳統的文本自動摘要技術多采用抽取式方法。例如,基于圖排序的LexRank方法[2]對文本中的句子建立拓撲圖結構,并從中抽取出關鍵句子作為摘要;基于動態主題建模的Web論壇文檔摘要方法[3]建立動態主題模型,計算各句子權重得到文檔的摘要;基于知識的文本摘要系統[4]建立知識庫對知識進行表示處理從而生成摘要。
近幾年,深度學習的迅速發展為生成式摘要提供了另一種可行的模型框架。基于循環神經網絡(recurrent neural network,RNN)的sequence-to-sequence(seq2seq)[5]的文本生成模型已應用在自然語言處理的各種領域,包括機器翻譯[6-7]、語音識別[8]等。該模型構建在編碼器(encoder)—解碼器(decoder)的框架上,在兩段文本序列之間架設一條文本表示學習和語言生成模型的橋梁,是目前最流行的自動摘要方法之一。早期將RNN這種網絡結構應用在文本自動摘要領域的Rush等人和Nallapati等人,提出了基于RNN編碼器—解碼器框架的生成式文本自動摘要模型[9-10],并在實驗結果上使摘要的準確率顯著提高。Hu等人提出的RNN方法[11]為中文LCSTS數據集[11]提供了對比的基準。最近,Copynet方法[12]提出了復制機制(copying mechanism)以解決文本生成模型中的詞表溢出(out of vocabulary,OOV)問題;而MRT方法[13]則將評價指標包含在優化目標內,大大地提高了該模型結果的準確率。
研究發現,基于RNN seq2seq的生成式文本摘要方法一般只適用于處理短文本,對稍長的輸入序列的處理能力十分有限。其原因在于,過長的文本輸入序列會導致編碼器端無法準確地提取輸入文本的語義信息,產生長距離依賴問題,最終導致模型無法收斂。此外,該模型還需占用大量的計算資源,時間開銷較大。我們還注意到,應用RNN編碼器—解碼器框架在中文數據集LCSTS上達到領先水平的Copynet和MRT方法,對輸入文本長度的處理能力也只有100~150個字。但是,在實際的自然語言處理應用中,針對短文本進行摘要的意義有限,而用戶更加關注長文本摘要的能力,以幫助其提高閱讀和汲取信息的效率。因此,現有的生成式文本摘要模型還無法在實際中得到良好的應用。
針對長文本自動摘要的問題,本文提出了一種兩階段的自動摘要方法TP-AS(two-phase automatic summarization),包含關鍵句抽取和摘要生成兩階段。在關鍵句抽取階段中,在基于圖模型[14]的文本排序方法LexRank之上,提出一種改進的混合文本相似度計算方法。具體地,將句子向量(sentence vector)[15]和文本編輯距離(edit distance)[16-17]結合,共同用于圖模型中句子間的相似度計算,進而篩選出關鍵句子。在摘要生成階段,在RNN編碼器—解碼器框架下,設計添加了注意力(attention)[6-7]和指針(pointer)[18]處理機制以提高摘要生成的效率和準確度。具體地,在編碼器端,利用注意力機制為目標詞生成帶注意力偏差的動態變化語義向量,使得模型可以學習輸出序列到輸入序列的一個軟對齊(soft alignment)[6-7];在解碼器端,運用指針機制解決摘要生成中出現的OOV問題。為驗證模型有效性,采集了新浪新聞的財經板塊*http: //finance.sina.com.cn/的中文文本數據,利用歷史數據構建了200個詞的專有詞表,并利用ROUGE[19]評價指標和其他自動摘要方法進行對比。實驗結果表明,TP-AS方法在長文本摘要任務上的性能超越了現有方法,具備實用潛力。
本文的主要貢獻包括以下三個方面。
(1) 針對長文本自動摘要的挑戰,提出了一種兩階段方法TP-AS,綜合了抽取式和生成式方法的優勢;在筆者淺薄的學識范圍中,TP-AS是唯一采用兩階段策略來解決文本自動摘要問題的方法。
(2) 在關鍵句抽取階段,設計了一種混合語義層面和字符層面的文本相似度計算方法;在摘要生成階段,將注意力機制和指針機制集成到RNN模型中,提升了摘要質量。
(3) 針對金融領域的真實應用,采集和整理了一個大規模長文本數據集;在其上,開展了實驗評測,橫向比較分析了六種主流文本摘要方法;結果顯示TP-AS在ROUGE指標上優于其他現有方法。
本文組織結構如下,第一部分為文本自動摘要的背景知識和相關工作;第二部分詳細介紹我們提出的兩階段文本摘要方法TP-AS;第三部分介紹實驗準備,并對實驗結果進行對比分析;第四部分總結全文,給出進一步工作方向。
本節介紹設計的兩階段方法,首先概述方法框架,其次詳述兩階段涉及的主要模型結構。
如前所述,抽取式的自動摘要方法得到的摘要語句通順,且在語法上幾乎不需要修改,但是抽取出來的關鍵句子含有大量的冗余信息,并且句子連貫性不強,可讀性較差;另一方面,生成式的自動摘要方法,對于長文本無法準確提取其語義信息,可能導致模型無法收斂,難以處理長文本,實際運用的場景有限。鑒于此,考慮一種結合上述兩種方法優勢的兩階段方法,互補地提高整體摘要性能。
模型的具體框架由圖1所示,由兩個階段組成。
(1) 關鍵句抽取: 假設輸入的文章d={s1,…,sL}中包含L個句子,第一階段問題解決如何從中抽取出關鍵的句子,即從d中抽取K個關鍵句子(K (2) 摘要生成: 把抽取得到的文本序列x輸入文本自動生成模型,輸出一段較短的文本序列y={y1,…,yN},其中N (1) 其中,θ表示模型參數,y 在關鍵句抽取階段,結合圖模型,提出一種混合文本相似度計算方法,據此對句子進行排序和抽取,其模型結構如圖2所示。具體地,首先利用圖模型將文本轉化為拓撲圖結構,圖中的每一個節點Si表示一個句子,用相連的邊的權值大小來表示節點所對應句子之間的語義相似度,在圖中用節點之間連線的粗細程度表示。然后,利用PageRank[20]算法迭代計算,得到每個節點(句子)的重要度打分。最后,按照得分高低輸出句子,并按照其在原文中的出現順序重新排列,得到可以描述原始信息的關鍵句。 (1) 相似度計算 相似度的計算準確與否,會直接影響關鍵句子的重要度打分。傳統方法采用TF-IDF方法,但是TF-IDF無法計算詞之間的語義相似度,只是對字符序列的重合度的簡單統計。因此,考慮提出一種基于文本編輯距離和句子向量相結合的方法來計算句子之間的相似度,前者表示了句子在字符層面上的相似度,而后者描述了句子在語義級別的相似度。 文本編輯距離,是指兩個字符串之間,由一個轉成另一個所需的最少編輯操作次數;許可的編輯操作包括: ①將一個字符替換成另一個字符; ②插入一個字符; ③刪除一個字符。直覺上,編輯距離越小,兩個字符串的相似度越大。 圖2 關鍵句抽取模型結構 句子向量則由詞的分布式表示(distributed representations)[21]計算得到。與詞向量的訓練框架類似,將句子表示為一個特征向量,再將句子向量和詞向量拼接,去預測上下文中的下一個詞。句子向量可以被視為另一個詞,相當于存儲器,用于存儲文本中句子主題或者上下文中詞向量遺失的信息。在預測階段,需要對新的句子進行推理,計算得到它的句子向量,經過訓練得到的句子向量可以作為句子的特征表示。因此,通過計算兩個句子向量之間的余弦函數值可得到兩個句子之間的相似度,即余弦相似度;余弦函數值越大,則相似度越大。 由此看出,一方面,編輯距離可以較好地描述句子字符層面相似度;另一方面,句子向量方法更傾向于語義級別的相似度計算。因此,結合上述兩種相似度,得到最終的相似度計算方法。 給定兩個句子Si和Sj,句子中任意一個詞為wk,V(Si)和(V(Sj)分別代表其句子向量,則兩個句子之間的相似度sim(Si,Sj)由式(2)計算得出。 α×cosine(V(Si),V(Sj))+(1-α)×Lev(Si,Sj) (2) 其中,α代表計算相似度時語義層面相似度的權重大小,Lev(Si,Sj)表示兩個句子的編輯距離大小,cosine(V(Si),V(Sj))表示兩個句子向量之間的余弦相似度。 (2) 打分策略 打分策略的算法在谷歌公司PageRank算法的啟發下,利用投票的原理讓每一個節點為它的鄰居節點投贊成票,票的權重取決于節點本身的票數。本文打分策略的算法借鑒了PageRank的做法,采用矩陣迭代收斂的方式解決。在此算法中,由節點及節點間的鏈接關系可構成一個無向的網絡圖。假如構成的圖結構為G=(V,E),由節點集合V和邊的集合E組成,對于一個給定節點,In(Vi)代表其入度,Out(Vi)代表其出度,Wij代表Vi和Vj節點之間的邊的權重,在這里Wij的大小根據兩個句子Si和Sj間的相似度sim(Si,Sj)來計算。根據PageRank算法,圖結構中節點的得分可以定義為式(3)。 (3) 其中,d的取值范圍是0~1,代表了阻尼系數,其意義是迭代到達任意節點,繼續向下迭代的概率,通常取0.85。一般經過20~30次該算法就可以達到收斂,最終根據節點權重值大小就可以為每一個節點打分。 在摘要生成階段,將抽取的關鍵句輸入到RNN 編碼器—解碼器模型中,得到最終的摘要文本,其模型結構如圖3所示。 圖3 摘要生成模型結構(含注意力機制和指針機制) 在一個RNN編碼器—解碼器框架中,輸入源序列x={x1,…,xM}被編碼器端轉換成一個固定長度的向量c;即, ht=f(xt,ht-1);c=φ(h1,…,hM) (4) 解碼器端主要用于解碼語義向量c,按照時序生成一段文本序列,具體過程表示如式(5)、式(6)所示。 其中,st代表在t時刻RNN的狀態,yt代表在t時刻生成的目標詞,而yt-1表示已經生成的歷史文本序列。由式(6)可知,生成目標詞的概率與當前RNN狀態的輸出、已經生成的目標序列和編碼器端的語義向量三者有關。解碼器端的文本生成模型的實質是對詞表進行分類,通過優化損失函數,可以在解碼器端生成輸出向量。該向量代表將要生成的詞yt的特征,向量經過一個softmax函數后,概率最高的特征所對應的詞表中的詞就是要輸出的結果。 (1) 注意力機制 seq2seq雖然相比傳統的n-gram統計模型更具非線性刻畫能力,但其也有自身的缺點。主要缺點主要有兩個: 第一是長程記憶能力有限,如果輸入句子序列非常長,那么由于梯度更新中衰減較大,導致序列頭部的參數無法得到有效更新。第二是序列轉換過程中的無法對齊,從輸入序列到目標序列過程中,解碼器的輸入始終是一段固定的特征向量,并不是按照位置的檢索。 所以,在上述模型基礎上,本文引入注意力機制,旨在解碼器端生成目標序列時可以選擇性地讀取語義向量的信息。注意力機制針對目標序列中不同詞的語義向量使用不同的權重進行篩選,為目標序列生成帶注意力偏差的動態變化語義向量,使得模型可以學習目標序列到輸入序列的一個軟對齊(soft alignment)[6-7],最終達到優化模型的目的。 由于語義向量c的確定將直接決定解碼器每一時刻的輸入特征,那么,c一定與解碼器的特征有關。同時c對解碼器不同位置的特征具有篩選功能,而具體篩選哪些語義向量進行讀取,是應該由編碼器和解碼器的自身狀態共同決定的。篩選的過程需要對編碼器的特征進行加權,加權因子可以通過解碼器的狀態與編碼器的狀態進行匹配而得到。具體來說,首先,我們需要對解碼器當前的狀態與編碼器的所有位置的狀態的匹配度進行打分,由網絡自己學習得到權重向量Zα。然后,由于我們想得到的是歸一化以后的權重因子,因此在得到權重向量之后,我們需要對它進行歸一化,從最大似然概率的角度出發,我們采用的是softmax歸一化函數。最后,得到歸一化因子后,直接將其與編碼器的隱含狀態相乘,即可得到解碼器在每一步的上下文特征信息。 假設在生成第t個目標詞yt的時刻,其輸入端的語義向量為ct,如式(7)所示。 (7) 其中,hi代表從編碼器輸出的隱層狀態,αti代表在生成目標詞yt時輸入序列第i個詞xi對生成目標詞的影響力的大小。αti的計算方法如式(8)所示。 αti=softmax(Zαtanh (Wαst -1+Uαhi)) (8) 其中,Zα代表權重向量,Wα和Uα分別代表權重矩陣。 (2) 指針機制 針對OOV問題,選擇頻率最高的一部分詞來組成詞表,不在詞表中的詞用UNK來代替。接著,利用指針機制來處理OOV問題。具體地,在解碼器端設置一個指針開關,用來決定目標詞yt是由RNN生成還是由輸入文本相對應的詞直接復制而來。解碼器端的輸出文本序列中若出現OOV的詞,指針開關將為復制模式P,編碼器端會產生一個指針,指向輸入文本相對應的詞,并復制過來作為目標詞輸出。否則指針開關為生成模式G,解碼器端會輸出一個向量,從詞表中生成一個目標詞。模型采用注意力分配矩陣來決定每一個指針指向輸入文本的位置,利用偏置的線性激活函數sigmoid決定指針機制是否啟用。 因此,假設在第i時刻,指針機制可表示為式(9)。 P(si)=σ(ZT(Whhi+WeE[oi -1]+Wcci+b)) (9) 其中,P(si)指開關打開為指針機制的概率,E[oi -1]指前一狀態輸入文本的詞向量,ZT為權重向量,Wh、We和Wc為權重矩陣。 本節介紹實驗方案,并對比和分析實驗結果。 采用自行設計的主題爬蟲真實采集的中文數據集為實驗數據集,大小為2.5GB,其中包含1MB篇文章和相應的標題。該數據全部為金融領域的數據,主要包括新浪網2010~2016年的金融板塊新聞文本,以證券、股票、基金、上市公司等系列數據為主。每一篇文章篇幅長度L均較大(500~1000),因此屬于典型的長文本。若干數據示例如表1所示。 (1) 數據預處理 首先,根據金融領域歷史數據中常見的人名、公司名及相應的專有名詞,人工構建了200個詞的專有詞表,明顯提高了分詞的準確率,從一定程度上解決摘要生成過程中的OOV問題。接著,去除了結構化不規整的數據和篇幅過長(L>1 000)或者過短(L<200)的數據,剩余0.8MB條數據作為實驗數據。根據對文本按照字符處理和按照詞語處理把數據分成兩種情況,在詞語處理中使用的是結巴分詞工具*https://pypi.python.org/pypi/jieba。在字和詞的詞表大小的設置上,分別選擇了3 000個常用字和10 000個常用詞,其中包括人工構建的專有詞表。參照LCSTS數據集[11]的方法,將處理過后的數據按照98%、1.8%和0.2%的比例分為三部分,分別為訓練集、驗證集和測試集,測試集有1 600條數據,用于評測摘要的效果*該實驗數據集將在后續公開,供下載使用。。 表1 文本數據示例 續表 在關鍵句抽取階段,選擇PageRank算法作為圖結構上的迭代算法,阻尼系數d設置為0.85,抽取的關鍵句子個數設置為3,在計算句子相似度時,選擇語義層面相似度權重為α=0.75,表示更注重語義層面的相似度大小。 在摘要生成階段,程序構建于谷歌開發的tensorflow*https: //www.tensorflow.org/的模型框架上,并選擇Bi-GRU作為RNN編碼器端和解碼器。經多次實驗探索,最終將網絡層數分別設置為5層和3層,有利于模型迅速收斂,提高訓練速度。使用句子向量模型預先訓練好的詞向量作為編碼器端的輸入,詞向量的維度為300維,訓練時Batch-Size設置為64。在解碼器端使用Beam-Search算法[5-6]解碼,對于生成的向量在詞表中迅速找到最優解,根據文獻[5-6]中的最優結果設置,將Beam-Size設置為10。 關于生成摘要的評價方法,采用自動評價矩陣ROUGE,該方法可以計算機器摘要和標準摘要二者中重復單元的個數(n-gram)來評價機器摘要的質量。ROUGE-N是n-gram召回率,即在標準摘要和機器摘要里均出現的n-gram占標準摘要中所有n-gram的比例。其計算如式(10)所示。 (10) 其中,n為n-gram的長度,Countmatch(n-gram)為n-gram同時在標準摘要S和機器摘要中出現的次數,而Count(n-gram)為n-gram在標準摘要S中出現的次數。評價中,采用了n=1和2的結果。 在真實數據集上,對RNN、RNN context、Copynet方法及MRT方法進行對比: (1) RNN方法[11]在編碼器端和解碼器端直接運用RNN,構建了一個標準的seq2seq學習框架,其結果作為實驗評價的基準; (2) RNN context[11]是在RNN方法基礎上,在編碼器端加入了注意力機制的方法; (3) Copynet方法[12]在RNN context基礎之上,添加了復制機制,試圖解決文本生成方法中的OOV問題; (4) MRT方法[13]使用最小風險化方法進行訓練,而不是傳統的最大似然估計,其將評價指標包含在優化目標內,更加直接地對評價指標做優化; (5) 基于圖模型的TextRank[24]方法,即直接從輸入文本序列中抽取關鍵句子作為摘要的方法。 具體的對比實驗結果如表2所示,其中Word表示按照詞語處理,Char表示按照字符處理。 表2 實驗結果 從表2中可以看出,TP-AS模型框架針對長文本表現出較好的處理能力,對比RNN(word)和MRT在ROUGE-1上的提升分別達20.4%和2.5%,而在ROUGE-2上的改進則達到19%和1.7%。由于RNN、RNN context、Copynet、MRT等方法均屬于基于RNN seq2seq的文本生成模型,而RNN在處理長文本時,輸入的文本序列過長會產生梯度消失或者梯度爆炸的現象,也會產生長距離依賴等問題,其編碼器端無法準確地表達輸入文本序列的語義信息,從而極大地影響模型的訓練效果。即使截取開頭或者結尾的一部分文本當作輸入序列,雖然減少了序列長度,但是簡單的截取開頭和結尾會損失文本中的大量有用信息,所以輸入序列和文本的標準摘要有差距,進而影響機器摘要生成的準確度。 圖4考查了訓練時間開銷的Log-loss隨著訓練次數遞減情況。從圖4中可以明顯看出TP-AS模型在迭代一萬次左右的時候就已經幾乎收斂,而其他的方法的Log-loss值波動較為明顯,訓練速度慢,模型收斂效果差。由于增加了金融領域的專有詞表,大大提高了分詞的準確率,并且使用了指針機制,良好地避免了出現OOV的情況,從而使得在詞級別的機器摘要質量明顯高于字符級別的質量。生成的機器摘要部分示例如表3所示。 圖4 Log loss曲線 綜上,在TP-AS方法框架下,先基于句子向量和編輯距離混合的語義相似度計算方法,應用圖模型對句子排序抽取得到關鍵句,然后針對關鍵句進行摘要生成模型建模,不僅訓練速度快于現有主流方法,自動摘要的效果亦優勢明顯。 表3 摘要結果示例 針對長文本數據給自動摘要帶來的困難與挑戰,研究提出了兩階段方法TP-AS框架。該方法集成了關鍵句抽取和文本生成法的優勢,在處理長文本時性能提升效果顯著。在真實金融領域的數據上,實驗對比分析了主流方法,TP-AS方法在準確性達到了最好的效果。 下一步,我們計劃從如下兩個方面繼續深入探索: (1) 在生成式方法中,基于RNN的seq2seq方法是一個純數據驅動的RNN結構,需要大量的訓練數據。但是,這在實際的自然語言處理應用中通常是無法滿足的,因此考慮如何結合傳統的自然語言處理技術,如語法分析、語義分析、句法分析等,來表達語義信息,從而可以達到利用少量訓練數據構建文本自動生成模型的目標。 (2) 關系抽取和事件抽取可以迅速得到文本的主干信息,以便于迅速分析和抽取不同文檔的關鍵句子,減少噪聲信息的影響。因此,可考慮將信息抽取技術中的關系抽取和事件抽取的方法結合到TP-AS方法的關鍵句抽取階段,從而將模型擴展應用到多文檔多主題自動摘要任務上。2.2 階段一: 關鍵句抽取

2.3 階段二: 摘要生成


3 實驗與結果
3.1 數據集與預處理


3.2 參數設定
3.3 評價方法
3.4 實驗結果



4 結論與下一步工作