陳 雪 雯
(中國科學技術大學計算機科學與技術學院中國科大-伯明翰大學智能計算與應用聯(lián)合研究所 安徽 合肥 230027)
當今互聯(lián)網技術快速發(fā)展更迭,人類獲取信息的途徑變得更加豐富,世界各地每時每刻發(fā)生的事件都能通過計算機、各種手持終端以及其他傳統(tǒng)媒體傳送到我們面前,傳統(tǒng)的時間和空間障礙被現(xiàn)代通信和傳播技術所克服,全球的信息共享和交互已經實現(xiàn),世界被更進一步地聯(lián)結為一體。然而,與之俱來的問題不容忽視:人們正面臨著前所未有的“信息爆炸”帶來的挑戰(zhàn)。如何更有效地利用信息資源,幫助人們快速處理信息和準確獲取信息已經成為一個亟待解決的問題。
自動文摘是指從一個或者多個文檔中,自動生成高度濃縮、通順流暢并忠實于原文關鍵信息的摘要,從而幫助讀者快速瀏覽和理解文檔內容[1]。一個優(yōu)秀的文摘生成系統(tǒng),一方面要能夠對輸入的原始文本進行深入理解,捕獲其核心語義信息并加以合理表示,另一方面需要具備根據原始文本表示,生成信息豐富、簡明扼要、通順流暢的摘要的能力。除了給用戶提供簡潔的文本,方便用戶快速獲取信息之外,文檔摘要技術也可以用于問答系統(tǒng)中的答案后處理[2]等自然語言處理任務中。
自動文摘的研究始于20世紀50年代初期,自其首次被提出至今,在六十多年來的研究與發(fā)展中誕生了許多摘要方法,這些方法大致分為兩類。第一種是抽取式方法[3],基本過程通常包括對原始文檔中句子的重要程度進行評估并利用各種打分排序算法選出候選句,最后按照一定的組合策略連接形成摘要。另一種方法被稱為生成式方法,最大的特點是可以使用原始文本中沒有出現(xiàn)過的新詞,這些詞通常是對原始文本的改寫。相較之下,抽取式方法生成的摘要通常是文檔中一些重要句子的簡單拼湊,不僅包含了大量的冗余信息,且句子與句子之間沒有一定的關聯(lián)性,從而導致了信息的碎片化和歧義性,而生成式方法則能夠很好地克服這些缺點。
生成式摘要方法的發(fā)展得益于近年來深度學習研究的逐漸深入,尤其是機器翻譯領域首創(chuàng)的序列到序列模型[4],其意義在于無須依賴人工先驗知識,特征完全從數據中學習出來,并且可以得到更好的效果。受到神經網絡機器翻譯技術的啟發(fā),2015年Rush等[5]將神經語言模型和基于上下文的輸入編碼器相結合,提出一種基于編碼器-解碼器框架的句子摘要模型ABS,在給定輸入句子的情況下,逐字生成摘要的每個詞。該工作首次實現(xiàn)了將注意力機制應用到文本摘要任務中并提出利用Gigaword構建大量平行句對的方法,使得利用神經網絡訓練成為可能。次年,同組的Chopra等[6]在Rush等工作的基礎上更進一步,使用一種有條件的卷積注意力模型作為編碼器,將ABS模型中作為解碼器的前向神經網絡語言模型替換為循環(huán)神經網絡,在Gigaword語料上和DUC-2004任務中取得了更好的效果。Nallapti等[7]將自動文摘問題作為一個序列到序列問題,將傳統(tǒng)方法中的特征顯式地作為神經網絡的輸入,在兩個數據集上均取得了超越ABS模型的結果。然而,上述模型多采用單一結構的編碼器,其文本表示質量存在提升的空間[8]。這些系統(tǒng)生成的摘要可能存在與原始文本在語義上相似不高的問題[9]。
另外,為解決文本生成中普遍存在的集外詞問題,文獻[10]提出對詞語進行字符級或子詞級別的建模,目前這種細粒度文本表示主要應用于機器翻譯任務中。
為了闡述方便,本文首先給出文本摘要問題的形式化描述。給定原始文本X=(x1,x2,…,xn),生成的摘要可以表示為Y=(y1,y2,…,ym),分別由其各自的單詞序列組成,n和m分別表示兩者的長度,滿足約束條件n>>m。用V表示原始文本的詞典,該詞典由語料庫中頻度最高的N個單詞組成。文本自動摘要問題的目標函數可以表示為:
式中:Θ表示訓練過程中學習到的參數。上式表示摘要句中t時刻的單詞yt是基于原始文本X以及t時刻之前生成的所有單詞(y1,y2,…,yt-1)而產生的。
本文提出的自動文摘模型如圖1所示。首先對數據集中的文本進行子詞單元切分,得到該數據集的詞表。給定一段處理過的原始文本作為輸入,將該序列中的單詞映射到連續(xù)的詞向量空間得到其向量表示,并使用結合卷積神經網絡和循環(huán)神經網絡的混合神經網絡編碼器編碼得到其隱層狀態(tài)。在原始文本被編碼完成后,利用結合注意力機制的解碼器逐字生成摘要。在解碼過程中,本模型引入基于關鍵短語的重排序模塊對集束搜索生成的多個候選句進行處理,同時考慮其原始得分和所包含的關鍵短語的重要性得分,選擇得分最高的候選句子作為最終生成的摘要。
圖1 自動摘要模型結構
本文模型采用比詞語級更細粒度的方法對原始文本中的詞語進行表示,以更好地利用單詞內部信息,在一定程度上緩解文本摘要任務上的罕見詞及集外詞問題。
字節(jié)對編碼算法迭代地使用一個未使用的字節(jié)將序列中出現(xiàn)次數最多的字節(jié)對進行替換。源端文本中最頻繁的字符或字符序列被合并,在解碼時,每個單詞首先被分成字符序列,接著訓練過程中學習得到的操作將字符合并成為更長的已知符號。該算法對詞表進行子詞提取的具體步驟描述如下:
① 對符號詞表進行初始化,將單詞拆分后的字符添加到符號詞表中并對所有單詞的詞尾加入結束符。該標識符用于解碼時單詞的擴展還原。
② 對詞表中所有的符號進行迭代計數,獲得詞匯中所有的字符對,找出其中出現(xiàn)最頻繁的連字序列,如(′a′,′b′),用′ab′替換。
③ 每次的合并過程均會產生新的符號,該符號代表著單詞中出現(xiàn)次數較多的子詞,即n-gram。
④ 合并過程最終產生的子詞(或者完整的單詞),將被加入到詞表中。詞表的大小則為初始大小與合并次數之和。
假設原始詞表為{‘h i g h e r ’: 2,‘h o t t e s t ’: 5,‘h i g h ’: 4,‘b e s t ’: 3},其中的關鍵字是詞表的單詞分割成字符加上結尾符,鍵值則是該單詞出現(xiàn)的頻數,則整個過程模擬如圖2所示。
原始詞表:{‘h i g h e r ’: 2, ‘h o t t e s t ’: 5, ‘h i g h ’: 4, ‘b e s t ’: 3}出現(xiàn)最頻繁的序列:(‘s’, ‘t’): 8合并該序列后的詞表:{‘h i g h e r ’: 2, ‘h o t t e st ’: 5, ‘h i g h ’: 4, ‘b e st ’: 3}出現(xiàn)最頻繁的序列:(‘e’, ‘st’): 8合并該序列后的詞表:{‘h i g h e r ’: 2, ‘h o t t est ’: 5, ‘h i g h ’: 4, ‘b est ’: 3}出現(xiàn)最頻繁的序列:(‘h’, ‘i’): 6合并該序列后的詞表:{‘hi g h e r ’: 2, ‘h o t t est ’: 5, ‘hi g h ’: 4, ‘b est ’: 3}出現(xiàn)最頻繁的序列:(‘hi’, ‘g’): 6合并該序列后的詞表:{‘hig h e r ’: 2, ‘h o t t est ’: 5, ‘hig h ’: 4, ‘b est ’: 3}出現(xiàn)最頻繁的序列:(‘hig’, ‘h’): 6合并該序列后的詞表:{‘high e r ’: 2, ‘h o t t est ’: 5, ‘high ’: 4, ‘b est ’: 3}
圖2 BPE算法在給定詞表上的合并操作
至此,找出了該詞表中出現(xiàn)頻次最高的相鄰字符,并將其合并得到子詞單元,最終形成了更為合理的詞表。通過子詞單元的提取,將詞語的含義與其形態(tài)分開,能夠有效減少詞表大小。經過子詞單元處理的文本如圖3所示,被切分成多個子詞單元的詞語中,前一個子詞單元后會附加一個特殊的后綴“@@”,這些文本被輸入到編碼器-解碼器框架中進行端到端的處理,生成的摘要結果中也會包含該后綴,這有利于模型對這個單詞進行恢復。
原始文本:The failure rate of a system usually depends on time, with the rate varying over the life cycle of the system.子詞處理后的文本:The fail@@ure rate of a system usually depend@@s on time, with the rate vary@@ing over the life cycle of the system.
圖3 子詞切分處理前后的文本實例
為了解決文檔表示問題,本文提出了一種全新的編碼器形式,該編碼器結合了卷積神經網絡和循環(huán)神經網絡的結構特點,顯式地利用卷積層來捕獲目標詞匯單元及其鄰近單詞之間的上下文關系,強化了語境的作用,是對傳統(tǒng)的基于循環(huán)神經網絡的編碼器結構的一個很好的補充。 基于此,本編碼器既能學習到循環(huán)神經網絡所擅長的序列信息和長距離依賴,同時能檢測到局部時序無關的特征,從而得到高質量的原始文本的表示,作為摘要生成過程的基礎。
(1)
(2)
(3)
圖4 混合神經網絡編碼器結構
為了實現(xiàn)多層神經網絡間的梯度傳遞,兩層循環(huán)神經網絡之間使用了殘差連接。具體地,每一時刻底層LSTM的輸入被添加到其輸出,其總和作為輸入被饋送到第二層LSTM。事實上,殘差連接能夠幫助構建更深的網絡,緩解梯度消失等問題。由于硬件條件所限,本文模型選擇了兩層循環(huán)神經網絡。在循環(huán)神經網絡之上級聯(lián)了一層無池化操作的卷積神經網絡,其目的是利用卷積層對相鄰狀態(tài)之間的局部特征進行抽取,如下式所示,則第i個輸入的隱層狀態(tài)由其前后窗口內的相鄰隱層狀態(tài)共同決定。
hi=σ(θ·h(i-(ω-1)/2):(i+(ω-1)/2)+b)
(4)
式中:ω表示表示卷積神經網絡的濾波器窗口大小,我們將其設置為3;σ表示Sigmoid激活函數;b則表示公式的偏置項。
編碼完成后可以得到整個文本的上下文表示集合C={h1,h2,…,hn},模型的解碼器由一層單向LSTM組成,其中j時刻的隱層狀態(tài)sj由其前一時刻的隱層狀態(tài)sj-1和前一時刻的輸出yj-1共同更新,其計算式為:
sj=φ(ey(yj-1),sj-1,cj)
(5)
式中:ey(yj-1)表示目標詞語的詞向量表示,上下文向量cj可以根據注意力機制計算得到,具體表示為:
cj=f(ey(yj-1),sj-1,C)
(6)
注意力機制按照上下文表示集合C中的各個向量與已經生成的文本的相關性,賦予其一定的權值,每個ht的權值可以根據下式計算得到:
(7)
(8)
式中:g(·)的作用是在給定yj-1和sj-1的情況下計算原始文本中隱層狀態(tài)ht的原始得分,而Z則用于對其進行歸一化,計算方法如式(8)所示,在這里使用一個前饋神經網絡對其進行模擬。該過程可以理解為利用注意力機制對原始文本中t時刻的輸入詞語及摘要中j時刻的目標詞語關聯(lián)程度概率的計算。
根據解碼器端的隱層狀態(tài)sj及前一時刻生成的詞語yj-1和動態(tài)計算得到的上下文向量cj,模型可以對j時刻解碼器循環(huán)神經網絡的條件概率進行計算,表示為:
p(yj|y,X)∝eg(ey(yj-1),sj,cj)
(9)
模型在預測階段沒有參考摘要的指導,解碼器的工作過程是:接收編碼器的
集束搜索為了減少搜索范圍降低問題復雜度,在每一步深度擴展的時候,僅保留B個最高得分的輸出,而對質量較差的結點進行剪枝,最后從B個輸出結果中選擇得分最高的句子作為最終的輸出。這里的B被稱為集束寬度,而每一步擴展的評分函數則是當前時刻為止生成的各個單詞的對數似然的總和,計算式如下:
(10)
式中:x表示原始文本中的字符,yt表示當前時刻生成的單詞,Yt表示到t時刻為止擴展得到的候選句子序列,即Yt={y1y2…yt}。
本文提出通過一種基于關鍵短語的重排序機制對集束搜索得到的候選序列進行選擇最佳摘要句子。具體來說,這種機制根據序列的原始得分score(Yt-1,yt|x)與其和原始文本中重合的關鍵詞的重要性得分對生成的候選序列進行重新排序,選擇其中得分最高的作為最后的摘要。直觀上,關鍵短語中包含了可用于構建簡明摘要的代表性實體,能夠很好地捕獲原始文本中的要點,因此,可以認為候選序列與原始文本中關鍵詞的重疊越大,其包含的信息量越大,實驗部分的定性分析也證實了這一假設。
總體而言,基于關鍵短語的重排序機制分為三個步驟。首先,使用基于圖的無監(jiān)督排名模型TextRank算法[11]從原始文本中提取出關鍵短語。具體地,原始文本的每個詞匯單元被視為圖的節(jié)點,而圖中的連邊則指示了預先設定好的窗口大小內的詞匯單元之間的共現(xiàn)關系,連接節(jié)點Vi和Vj的邊的初始權重wij被隨機賦初始值,然后根據下式迭代計算節(jié)點Vi的重要性得分直到收斂。
(11)
式中:d表示阻尼因子,通常被設置0.85,adj(V)表示結點V的鄰居節(jié)點。
其次,在圖模型構建完畢后,將通過一個語法過濾器提取原始文本中的關鍵短語。本文設置語法過濾器為(JJ)*(NNP|NNPS|NNS|NN),其中JJ表示形容詞或序數,NNP和NN分別表示專有名詞和普通名詞,NNPS和NNS是它們的復數形式??梢钥吹?,該過濾器主要由名詞組成,這是因為名詞短語在捕獲文本主題的能力上較其他詞性的短語有更強的優(yōu)勢,而其他詞性的短語在神經網絡端到端模型更易生成。這里設定符合條件的關鍵短語kp的得分是它所包含的詞匯單位V的重要性得分的總和,可根據下式計算得到:
(12)
最后,給定一個候選序列Yt,利用其原始分數及其對應的關鍵短語得分共同表示其與原始文本的相關性。另外,為了避免此得分函數對長句的偏好,將該得分除以候選序列的長度以達到歸一化的目的。因此,最終得分score(Yt)由下式給出:
(13)
經過關鍵短語重排序模塊處理,將得到各候選序列的分數,選擇得分最高的候選序列添加到生成的摘要句子中。
本節(jié)介紹了上文所提出文本摘要模型在包括句子摘要和標題生成在內的兩個任務上的表現(xiàn),并將其與多個當前最先進的系統(tǒng)在常用數據集上的摘要生成結果進行對比。本文使用subword表示子詞單元的文本表示方法,與之對應,實現(xiàn)了一種詞語級處理的傳統(tǒng)方法seq2seq(word level),subword-keyphrase則表示本文完整的模型實現(xiàn)。這三種模型中的編碼器均采用上文所提出的混合神經網絡結構。
首先,對本實驗兩個任務中所采用的數據集分別作出介紹,其詳細信息如表1所示。
表1 數據集詳細信息
CNN/Daily Mail數據集[7]中包含了大量長篇新聞文章及其由多句話組成的摘要句,其訓練集、驗證集和測試集中的文章-摘要對的數量分別為287 226、13 368、11 490。BBC[12]包含來自BBC新聞網站的2 225篇中等長度的文章及其摘要,將這些文檔隨機打亂并分為三個部分:訓練集(1 100篇),驗證集(625篇)和測試集(500篇)。Inspec[13]是一個科學期刊摘要數據集,由2 000個簡短文檔組成,其標題被視為摘要,其中訓練集、測試集、驗證集的數目分別為1 000、500、500。
本文使用深度學習框架tensorflow實現(xiàn)此模型。在編碼器部分,選擇兩層雙向LSTM,其中每個門的隱藏單元設置為200,解碼器部分則是一層隱藏單元為400的單向LSTM。詞向量維度設置為200,沒有使用預先訓練的詞向量對其進行初始化,而是在訓練過程中進行學習。關于優(yōu)化器的選擇,本模型使用了Adam優(yōu)化器并采用其默認超參數設置:學習率α=0.01,β1=0.9,β2=0.999,ε=1e-8。 其他參數在[-0.1,0.1]的范圍內進行了隨機初始化。 為了減輕解碼器在訓練階段和生成階段所輸入數據的概率分布不一致的問題,以0.2的概率采樣模型的輸出并返回,以用作同一批次的第二次訓練迭代的輸入。 此外,驗證集上的損失被用于實現(xiàn)早停以防止過擬合。
4.2.1句子摘要任務
本文采用ROUGE指標[15]評估所生成摘要的質量,其變體用于衡量參考摘要和生成摘要的n-gram同現(xiàn)情況,ROUGE-1得分代表了自動摘要的信息量,ROUGE-2得分評估了自動摘要的流暢性,而ROUGE-L可視為摘要對原文的涵蓋率。表2展示了不同模型在CNN/Daily Mail數據集中上述指標的得分,其中基準模型的得分均來自其對應研究工作中的報告結果。
表2 CNN/Daily Mail數據集上的ROUGE分數
如表2所示,本文實現(xiàn)的subword-keyphrase模型在三個指標上均獲得了最高分。與目前最優(yōu)的PGNet模型相比,三個指標均有不同程度的提高(+2.54 ROUGE-1,+1.80 ROUGE-2,+3.21 ROUGE-L)。注意到ROUGE-1和ROUGE-L分數的增加比ROUGE-2更顯著,這主要是因為關鍵短語重排序模塊中語法過濾器模式的設置使得從CNN/Daily Mail數據集中提取出的關鍵短語鮮有二元詞組,而其中大量存在的n-gram(n≥3)在很大程度上提升了最長公共子序列同現(xiàn)的性能。此外,通過比較subword和seq2seq(word level)模型的得分,可以驗證本文提出的子詞處理方法的有效性。值得注意的是,seq2seq(word level)模型的指標與ABS模型相比亦有顯著的提升(+1.65 ROUGE-1,+0.78 ROUGE-2,+1.26 ROUGE-L),這組對照實驗中ROUGE得分的提升應歸功于將ABS模型中的RNN替換為seq2seq(word level)編碼器的LSTM和CNN級聯(lián)結構??梢酝茢?,這種混合神經網絡結構捕捉到了原始文本中更多的特征,得到了更好的原始文本表示,從而提升了摘要句的生成質量。
4.2.2標題生成任務
與句子摘要任務不同,標題生成中的目標句一般不超過20字。本文在BBC和Inspec數據集上對模型進行了訓練和評估。
實驗結果如表3所示,展示了本文模型和基準模型在ROUGE指標上的得分比較。在BBC數據集上,我們觀察到,本文模型的最佳表現(xiàn)subword-keyphrase在三個指標上分別超過基準模型PGNet得分2.49、0.82和2.42;在Inspec數據集中,subword-keyphrase模型亦表現(xiàn)出相同的優(yōu)勢,以平均高出5分的優(yōu)勢擊敗了PGNet。另外,subword-keyphrase與subword模型對比指標的提高驗證了關鍵詞重排序模塊的有效性,subword與seq2seq模型的對比則驗證了子詞單元提取處理對摘要句質量的提升,同樣,seq2seq與ABS間的編碼器結構及表現(xiàn)差異則驗證了混合神經編碼器對模型性能的助益。
表3 BBC和Inspec數據集上的ROUGE分數
圖5展示了subword-keyphrase方法和基準模型PGNet在Inspec數據集上的生成的摘要樣例,將它們與參考摘要進行比較。
原始文本:The spyware tool was only released by Microsoft in the last few weeks and has been downloaded by six million people. Stephen Toulouse, a security manager at Microsoft, said the malicious program was called Bankash-A Trojan and was being sent as an e-mail attachment. The program attempts to disable or delete Microsofts anti-spyware tool and suppress warning messages given to users. Microsoft said in a statement it is investigating what it called a criminal attack on its software. Earlier this week, Microsoft said it would buy anti-virus software maker Sybari Software to improve its security in its Windows and e-mail software. Microsoft has said it plans to offer its own paid-for anti-virus software but it has not yet set a date for its release. The anti-spyware program being targeted is currently only in beta form and aims to help users find and remove spyware-programs which monitor internet use, causes advert pop-ups and slow a PCs performance. 關鍵詞:Microsoft, spyware, investigate, program, software參考摘要:Microsoft is investigating a trojan program to improve its security.PGNet模型摘要:Microsofts anti-spyware help remove remove spyware.subword-keyphrase.模型摘要:Microsoft seeking spyware trojan program.
圖5 本模型和基準模型生成的摘要樣例
由于Inspec文檔長度是所使用的三個數據集中最短的,因此我們將其關鍵短語的過濾模式放松到重要的單詞,從原始文本中提取的關鍵短語數上限被設置為5,這就對生成的摘要與原始文本中關鍵短語匹配提出了更高的要求。但從實驗結果來看,本文模型很好地命中了從原始文本中提取的多數關鍵短語,且表現(xiàn)出了一定的改寫能力,將原始文本中的“investigating”轉化成“seeking”,這種改寫能力正是生成式摘要方法的重要特征。 另一方面,盡管PGNet模型生成的摘要中包含了與原始文本出現(xiàn)過的短語“Microsoft”“spyware”等,但整體語義上與原始文本的主旨相去甚遠。PGNet摘要中有一些重復的單詞,破壞了整個句子的連貫性和可讀性。相比之下,本模型摘要由于關鍵短語的指導,表現(xiàn)出了良好的可讀性。
本文提出了一種基于子詞單元的生成式摘要方法。針對摘要生成中的罕見詞和集外詞問題,提出一種基于字節(jié)對編碼算法的子詞處理方法對原始文本中的詞語進行表示,利用單詞內部信息的同時有效減小詞表規(guī)模。針對語句表示學習問題,本文設計了一種全新的基于深度混合神經網絡的編碼器結構,以提高文本表示質量,作為解碼的基礎。此外,本模型在搜索算法中集成了一個基于關鍵短語的重排序模塊,能夠指導摘要句的選擇,有助于提高生成的摘要與原始文本之間的語義相關性。實驗結果表明本文方法在不同文檔長度的數據集上的表現(xiàn)都優(yōu)于目前最先進的文摘系統(tǒng)。