李志欣,彭 智,唐素勤,馬慧芳
(1. 廣西師范大學 廣西多源信息挖掘與安全重點實驗室,廣西 桂林 541004; 2. 西北師范大學 計算機科學與工程學院,甘肅 蘭州 730070)
新一代神經網絡可以模仿人腦的機制來解釋數據特點,從而使得文本摘要得到了長足的發展。特別是Seq2Seq(Sequence-to-Sequence)模型[1-2]的提出解決了文本與摘要間的序列問題,隨后又融入了注意力機制的思想[3],其結果要優于之前非神經網絡的模型。近年來,更多的技術開始在神經網絡的基礎上不斷出現,從指針網絡和覆蓋率機制,再到強化學習和生成式對抗網絡,以及最新的深度通信代理[4-7],不斷的改進使得評價指標的分數不斷提升。
現有的模型在訓練的時候一般采用“教師強迫”算法[8],并使用交叉熵損失函數。因此,模型在訓練和測試之間會存在“暴露偏差”[9],因為訓練的時候每個時間步的輸入都來自于上一時間步的參考單詞。而測試的時候,測試的每一個單詞的預測都是基于上一時間步模型自身生成的單詞。一旦有一個單詞生成得不好,就會導致誤差的積累,后面的單詞的生成都會產生偏離。同時由于模型使用交叉熵損失函數進行訓練,而在測試時,一般使用ROUGE[10]評估指標來評估生成語句的質量。存在訓練損失和評估指標不匹配的問題。這種“教師強迫”算法和交叉熵損失只會使得模型生成與參考摘要一模一樣模式的摘要,無法像ROUGE評估指標那樣靈活地考慮生成式摘要可以通過其他方式排列詞匯來產生。
采用自注意機制可以從編碼器中獲取文本的關鍵信息并完整地保存下來。但是,因為沒有考慮當前預測的詞匯的上下文,只關注文本內部信息,會丟失上下文語義信息。在對現有模型的研究中,發現指針網絡[4]能很好地再現事實的細節,并且可以通過上下文向量和注意力指針生成更連貫和準確的摘要。為了同時保存上下文語義信息和關鍵信息,本文提出了一個雙注意指針網絡架構。此外,本文還對覆蓋率機制[4]進行改進,使得對重復問題的判斷更加準確。同時,運用強化學習方法來優化模型,解決“暴露偏差”問題及訓練損失和評估指標不匹配問題。
深度學習模型廣泛應用于自然語言處理、圖像處理[11-12]等多個領域。在生成式摘要中,Rush等人[3]首次在文本摘要的生成中使用現代神經網絡,依據Seq2Seq架構[2],在編碼部分使用卷積模型,然后利用上下文之間的注意力前饋神經網絡生成摘要,在DUC-2004和Gigaword數據集上取得了顯著效果。在此基礎上,Nallapati等人[13]依據Bahdanau等人[14]在機器翻譯中的方法提供了一個Seq2Seq+attention基線模型,并構建了CNN/Daily Mail文本摘要數據集,用來評測多句摘要的任務,為今后大量的相關工作提供了數據保障。隨著強化學習的發展,Paulus等人[5]提出了改進的注意力機制和強化學習的訓練方法,Pasunuru等人[15]將強化學習方法引入傳統Seq2Seq+attention基線模型中,通過多獎勵方法,使得模型性能獲得大幅提升。
指針網絡[16]是Seq2Seq模型的一個變種,沒有進行序列的轉換,而是產生一系列的指針,指向輸入序列元素。指針網絡應用于文本摘要中,主要是為了解決稀疏詞和未登錄詞的問題。含有指針網絡的模型在生成摘要時,一般會產生兩個概率: 一個是已有詞表中的生成概率,另一個是指針處的拷貝概率。Gu等人[17]提出的CopyNet模型是把生成概率和拷貝概率直接疊加到一起,Nallapati等人[13]提出的Switching Generator-pointer模型和Gulcehre等人[18]提出的The Pointer Softmax模型則是兩個概率彼此獨立,沒有考慮融合。而See等人[4]提出的Pointer-generator Network模型的做法是用一個網絡來學習這兩個概率之間的權重,加權和的概率產生了更好的生成式摘要,模型當年在CNN/Daily Mail數據集上取得了最優越的結果。
最早用于文本摘要中的覆蓋率機制,來自于處理機器翻譯中的遺漏翻譯(under-translation)和過度翻譯(over-translation)問題[19-21],主要分為兩種方法: 一種為覆蓋模型,一種為覆蓋懲罰。前者通過覆蓋向量引導注意力模型盡量關注未被翻譯的詞,后者作為一種重排位方法,作用于解碼束搜索過程中,來選擇重復少的摘要。See等人[4]在Tu等人[21]的覆蓋模型基礎上進行改進,通過設置一個覆蓋向量來處理文本摘要中的重復問題。覆蓋向量的值是過去所有預測步計算的注意力分布的累加和,記錄著模型已經關注過原文的哪些詞。同時利用損失函數來對已重復的注意力進行懲罰,來達到消減重復的目的。
本文在Seq2Seq+attention模型的基礎上進行改進,提出一種基于雙注意指針網絡的文本自動摘要模型(dual-attention pointer network,DAPT),如圖1所示。DAPT在網絡中構造了一個用來處理輸入文本的雙向LSTM編碼器、一個自注意機制、一個軟注意機制、一個指針結構和一個用來輸出摘要的單向LSTM解碼器。其中雙向LSTM編碼器是共用的,它可以通過搭配自注意機制或者軟注意機制來產生關鍵信息或者上下文信息。而改進后的覆蓋率機制將通過參與注意力計算來達到消減重復的效果。

圖1 雙注意指針網絡模型
編碼器會對文章的信息進行提取,并生成一系列的隱藏狀態,一般而言,解碼器的輸入來自編碼器的最后一個隱藏狀態。在文章長度很長時,最后一個隱藏狀態會存在過多不重要的信息,使得生成的摘要可能無法概括文本的核心內容。因此,需要突顯源文本中的顯著特征,即提取關鍵信息。關鍵信息是指編碼器提取的信息中與其他信息關聯度最大的信息。本文使用自注意機制[22-23]讓編碼器同自身匹配,動態地搜集文本中的關鍵信息。為了使模型能更好地處理數據,源文本的輸入序列單詞使用神經網絡轉化為分布式表示的詞向量X={x1,x2,…,xn},并使用雙向LSTM編碼器進行處理,獲取編碼器的隱藏狀態序列。前向和后向隱藏狀態進行連接后的隱藏狀態h作為輸入關鍵信息向量z的計算依據,如式(1)~式(4)所示。
H={h1,h2,…,hn}
(1)

(2)

(3)
z=∑a′H
(4)
由于自注意機制只關注文本內部信息,注意力相對固定,這使得在解碼的時候不能生成含有上下文語義的預測,生成的摘要中只會存在重復且分散的詞語。因此,本文引入了See等人[4]提出的指針網絡。其中的軟注意機制與自注意機制結合。通過上下文語義來產生詞語之間的關系,補充遺漏的上下文內容,保持生成的摘要的連貫性。同時為了提高摘要的準確度和緩解未登錄詞問題,依據注意力來指向復制單詞。
在指針網絡中,每一步的注意力可以告訴模型在解碼器的預測過程中原文的哪些詞更重要。因此在生成權重分布時,軟注意會加入當前步的解碼狀態序列st進行計算,如式(5)~式(7)所示。
(5)
at=softmax(et)
(6)
(7)

(8)
其中,Wm、Ws、Wx和bcor是可學習的參數,σ是sigmoid函數。gm用來在生成概率分布的時候選擇關鍵信息向量,還是上下文向量。最后生成詞匯的分布Pvocab,如式(9)、式(10)所示。
ot=(1-gm)ct+gmz
(9)
Pvocab=softmax(4(V3[s′t,ot]+b3)+b4)
(10)


(11)
(12)
其中,Uc、Us、Ux和bptr是可學習的參數,σ是sigmoid函數,生成概率pgen的范圍是[0,1]。最后,通過pgen來選擇從詞匯表生成單詞還是從源文本復制單詞。在預測階段,輸出一個概率分布p(w),其維度是詞匯表長度加上源文本中未出現在詞表中的單詞個數。
重復問題在許多自然語言處理任務都普遍存在,幾乎是所有生成模型的通病,特別是對于經常使用Seq2Seq作為基準架構的神經機器翻譯任務[21,24-25]。由于神經機器翻譯任務與文本摘要任務相近,且發展較早,因此很多文本摘要中針對這個問題的優化方案中都采用了神經機器翻譯的優化模型[4,27]。與See等人[4]的方法相似,本文采用了Xiao等人[24]的覆蓋模型來解決這一問題,并對其進行了改進。


(13)
其中,wk是學習參數,長度與v1一致。這樣做的目的在于,在模型進行當前步注意力計算的時候,告訴它之前已經關注過哪些詞,希望避免出現連續注意力到某幾個詞上的情形。

覆蓋向量可以傳遞之前已經關注過的詞的信息,如果某些詞已經被關注過了,在之后的時刻就需要抑制。為了防止模型重復關注這些詞,需要一個額外的損失函數來對重復的注意作懲罰,如式(14)所示。
(14)

2.4 混合學習目標2.4.1 計劃采樣

(15)

(16)
最后,為了使摘要不再重復,引入了改進的覆蓋率機制的損失,將其整合到學習目標。通過引入一個超參數λ,生成新的損失函數,如式(17)所示。
LMLE(ss)-COV=LMLE(ss)+λLCOV
(17)
2.4.2 混合訓練目標
策略梯度是強化學習的基本算法,本文通過策略梯度來最大限度地減小負獎勵期望,直接優化不可微的ROUGE評估指標。其中基線模型DAPT可以看作是與外部環境進行交互的代理,而模型生成單詞可看作是代理所采取的操作。在生成完整摘要序列y后,將其與參考摘要序列y*進行比較,計算獎勵r(y)。

(18)
在式(8)中最小化負期望,是為了使用梯度下降。當模型采樣得到的ys獲得比基線更好的回報時,最小化損失相當于最大化ys的條件似然,從而增加了基線模型DAPT的總體回報期望。
雖然強化學習的優化訓練解決了損失-評估不匹配問題,但是可能會導致生成摘要的可讀性和流暢性降低。而摘要的可讀性一般可以通過“教師強迫”算法來獲得,在這里本文通過計劃采樣獲取。和Paulus等人[5]的方法類似,本文同樣采用混合訓練目標來融合計劃采樣和強化學習,使得生成的摘要能保持可讀性和獲得更高的評估指標,即:
LMIXED=γLRL+(1-γ)LMLE(ss)
(19)
其中,γ是一個超參數,用來調節兩個目標函數的損失。一般而言,本文先對模型進行預訓練,再使用混合損失進行訓練優化。
為了體現所提出的模型對于面向短文本摘要生成與長段落摘要生成這兩個存在一定差異性的任務下的表現。本文在LCSTS和CNN/Daily Mail兩個數據集上進行了實驗[13,27-28],其中LCSTS是一個中文短文本摘要數據集,CNN/Daily Mail數據集是長段落摘要數據集。本文通過ROUGE-N和ROUGE-L[10]評價指標評估不同方法在抽象文本摘要任務中的性能。
在訓練中,截斷參數β的大小為注意力權重的最大值減去最小值的平均值。當然嘗試過更高的數值,結果影響了對重復的懲罰,其中λ的值為1。計劃采樣中的最小真實量q為0.6,在混合訓練中γ的值為0.975。
在訓練中,本文的編碼器和解碼器中LSTM的隱藏單元數設置為512。對于LCSTS數據集,為了降低分詞錯誤和減少未登錄詞,使用基于漢字的方法來處理源輸入和目標輸出。詞匯表大小限制為4 000個符號,輸入文章的大小限制為前140個字,而摘要限制為30個字。在CNN/Daily Mail數據集中將詞匯表大小限制為50 000。本文將輸入文章的大小限制為前800個單詞,而摘要限制為100個單詞。使用Adam優化器[29]在交叉熵損失下訓練模型,初始學習率為1×10-3,批量大小為64。最后,在訓練好的模型上運行混合訓練。在這個階段,學習率設置為3×10-4,批量大小為64。測試時,在搜索解碼過程中設置大小為5。
3.3.1 性能比較
表1和表2分別列出了本文模型在CNN/Daily Mail和LCSTS兩個數據集上的性能以及與其他先進模型的對比。表中的數據顯示了DAPT在ROUGE值上優于傳統的基線模型,達到了現有主流方法的性能。其中DAPT+imp_coverage為添加改進覆蓋率機制的雙注意指針網絡,RL+MLE(ss)表示使用了混合訓練進行優化。在模型收斂之后,本文通過混合訓練的方法來優化模型的ROUGE評估度量。可以看到,該方法可以使模型的各項評估度量整體上得到提升,有較大的性能改進。

表1 在CNN/Daily Mail數據集上的性能比較

表2 在LCSTS數據集上的性能比較
圖2展示了在CNN/Daily Mail數據集中的對重復處理的結果,可以觀察到改進后的覆蓋模型的百分比和參考摘要相近,重復的問題幾乎完全消除。改進的覆蓋率機制使得主要目標的生成不受到干擾,提高了懲罰的效果。

圖2 生成摘要中重復的百分比
3.3.2 消融分析
表3展示了在CNN/Daily Mail和LCSTS兩個數據集上添加不同的模塊后模型的效果。從表3可以觀察到,在CNN/Daily Mail數據集中各個模塊都使得模型獲得了一定的性能提升。而在LCSTS數據集上,雙注意指針網絡模型ROUGE-1的得分比基線模型要低,ROUGE-2和ROUGE-L的得分也沒有明顯提升。這是因為LCSTS數據集是短文本摘要數據集,文本短則信息更加精煉,編碼器很容易獲得主要信息,如果再進行關鍵信息的獲取,反而會造成信息冗余,影響摘要的生成。

表3 在兩個數據集上添加不同模塊的ROUGE評分
改進的覆蓋率機制與傳統的覆蓋率機制都可以減少重復,并且重復的減少程度相差不多,但是改進的覆蓋率機制能更好地提高摘要的質量。為了更好地展示這種效果。在CNN/Daily Mail數據集上,在以DAPT為基線的情況下,進行了改進的覆蓋率機制與傳統的覆蓋率機制的比較,結果如表4所示。可以看出,以CNN/Daily Mail數據集為例,改進的覆蓋率機制獲得的ROUGE評分更高。

表4 在DAPT添加不同的覆蓋率機制ROUGE評分
3.3.3 示例分析
圖3展示了一個由模型生成的摘要示例,并與pointer-generator模型和參考摘要進行了比較。源文本介紹蘭花的唇瓣形成的原因。很明顯,文章的主旨是蘭花的唇瓣。然而,pointer-generator模型生成的摘要沒有包含唇瓣的信息,反而關注了其他瑣碎的細節。與之相比,本文模型生成的摘要更加連貫,并且包含更突出的信息。本文的模型關注的是唇瓣而不是蘭花,它能夠提供最主要的思想信息。由于自注意負責從編碼器中選擇輸出的重要信息來提高注意分值的質量,所以瑣碎的細節能夠很好地被減弱。

圖3 生成摘要的對比
本文提出了一種用于文本摘要的雙注意指針網絡DAPT,引入自注意機制獲取源文本關鍵信息,同時結合門機制來控制信息的選擇。在現有的覆蓋率機制的基礎上,加入截斷參數,來防止該機制對生成其他目標的干擾。此外,本文通過混合訓練來優化模型的評估度量,在提升模型的整體性能的同時不失去生成摘要的可讀性。實驗結果表明,與傳統的pointer-generator模型相比,該方法在長段落摘要數據集中能夠生成更準確、更連貫的摘要,并在ROUGE評價指標上取得性能提升。