高 巍,馬 輝+,李大舟,于 沛,孟智慧
(1.沈陽化工大學 計算機科學與技術學院,遼寧 沈陽 110142;2.中國移動通信集團設計院有限公司 河北分公司,山西 太原 030000)
自動文摘技術[1]可以通過計算機對文本信息進行壓縮得到簡短的句子或者短文,對比人工生成摘,很大程度上節約了時間和人力。目前生成式摘要模型在生成摘要時會出現事實性錯誤,事實性錯誤是指摘要有時歪曲或捏造文本事實的問題,現有的摘要模型大多采用條件語言模型,只關注摘要的字符級準確性,忽略了摘要與文章語義級的一致性。通過研究[2]發現基于神經網絡生成的摘要中有30%會出現與原文內容不相符的現象[3],例如,由于主語和謂語賓語搭配不當的問題而存在捏造事實的現象。并且,事實描述的單詞比源文的其它單詞多40%的可能性出現在文本摘要中,這表明了事實描述在很大程度上真正濃縮了句子的語義。因此,認為一個完整的生成式摘要模型必須具備事實性知識,才能準確地總結文章。
近年來,生成式摘要模型大多都是基于序列到序列框架[4]進行研究。Chopra等[5]將注意力機制(Attention)融入到基于卷積神經網絡和長短期記憶網絡的序列到序列模型中,通過加入注意力機制對中間語義信息重新進行編碼,將上一時刻解碼器的輸出與中間語義信息重新計算權重后輸入到解碼器中,從而編碼出更為完善的語義信息。Nallapati等[6]對關鍵詞建模獲得層次結構,融入命名實體等特征來提升模型效果,在解碼端引入指針機制解決未登錄詞問題,解決了編碼不充分和解碼信息不完整、重復等問題。Zeng等[7]通過循環神經網絡先對源文本進行編碼獲得全文的語義信息,以此達到人工生成摘要時先通讀原文獲取原文主題信息的目的。Zhou等[8]采用選擇性編碼模型實現解碼過程中有針對性讀取源文本的目的,模型采用門控循環神經網絡對輸入向量的隱層重新計算權重選出文本中比較重要的部分。Li等[9]通過融入外部語義信息的方法將額外信息融入到解碼器中提高生成摘要的質量。Amplayo等[10]研究指出先驗知識可以更好的幫助模型理解源文本,通過識別文本主題提高解碼質量。Cao等[11]從文本中提取關系信息,并將其映射到序列中,作為對編碼器的額外輸入。Xie等[12]提出了一個基于雙重注意力機制的序列到序列模型,采用句子排序算法提取文本的事實關系,將提取到的事實關系與源文向量相結合,解決事實性錯誤。谷歌團隊[13]提出Transformer模型,該模型完全采用Attention機制構成,摒棄了CNN和RNN等網絡結構。Transformer模型改善了RNN網絡不能并行計算的能力,解決了CNN網絡在計算兩個位置之間的關聯時所需要的操作次數隨距離增長而增多的缺點。王侃等[14]在文本預處理階段引入先驗知識到Transformer模型中,采用ELMo(embeddings from language models)動態詞向量作為訓練文本的詞表征,解決了生成的摘要存在不通順、準確率較低的問題。Gunel等[15]使用實體感知的transformer結構來提高生成式摘要中的事實正確性,采用Wikidata知識圖提取實體。
以上工作通過增強編解碼能力有效提高了生成的摘要質量,這些研究在自動摘要領域已取得了很好的成果。然而,這些模型存在生成摘要與源文信息事實不一致的現象。針對生成的摘要出現事實性錯誤的問題,本文提出將事實感知融入到Transformer模型的FA-TR模型。FA-TR模型提取出文本的事實性信息作為特征向量融入到Transformer模型中,通過基于大規模中文短文本數據集LCSTS[16]進行實驗,結果表明該模型減少了與事實不符的假摘要并提高了生成摘要的質量。
FA-TR是基于Transformer框架構建的模型,將源文本輸入該模型后,輸出是目標摘要。FA-TR模型由堆疊的編碼器和解碼器連接而成,將源文本輸入到模型后,得到上下文語義向量,再經解碼器解碼得到目標摘要,FA-TR模型的宏觀圖如圖1所示。

圖1 FA-TR模型宏觀圖
FA-TR模型分為3部分,分別是輸入層、編碼器層和解碼器層。首先,構建FA-TR模型的輸入層。提取文本的事實感知并建立對應的分布式向量表示,將事實性描述特征向量與源文本的分布式向量融合在一起后,再加入位置編碼得到輸入序列的最終向量表示。其次,將由輸入層構建的含有事實性和位置信息的文本向量輸入到編碼器中進行編碼,編碼器部分包含6個小的編碼器,每個小編碼器的輸入是上一個小編碼器的輸出。最后,解碼器部分包含6個小的解碼器,每個小的編碼器輸入不僅包含上一個小解碼器的輸出還包含編碼器部分的輸出以及位置編碼。FA-TR模型整體框架如圖2所示。

圖2 FA-TR模型整體框架
為了讓模型能夠感知事實,需要從從源文本中提取、表示和集成事實知識到摘要生成過程中。本文采用開放信息抽取工具(open information extraction,OpenIE)抽取出原文的事實。OpenIE[17]是由斯坦福大學提出的,它可以從文本中提取結構化關系元組。首先,OpenIE可以從每一個句子中提取出一對三元組(主語,謂語,賓語),那么一篇文章就會得到一系列的三元組;其次,將每一對三元組信息轉換成文本表示“主語+謂語+賓語”,這段文本就是該三元組的事實描述;最后,我們使用標識符“|||”將所有事實描述拼接起來得到該文章的事實描述。一個句子可以提取多組元組來表示該句子的事實性,見表1。

表1 不同粒度下的句子元組表示
從表1可以看出,一個句子在不同的粒度下會有不同的元組表示相同事實,為了去除冗余和保證事實的完整性,如果一個元組關系的所有單詞都被另一個元組關系的單詞覆蓋,則刪掉這個元組。對于一段文本,“我們安靜地坐在山頂上,我看見一輪紅紅的太陽從海平面升起。”用標識符“|||”將事實性描述拼接在一起,可表示為“我坐在山頂上|||我看見太陽從海平面升起”。
在自然語言處理領域,詞語在句子中的位置不僅表述一個句子的語法結構是否合理,更是表達句子語義的重要概念。詞語在句子中的排列順序不同,整個句子的語義也有所不同。FA-TR模型采用注意力機制取代傳統自動摘要模型中的序列學習等基本模型,因此FA-TR模型失去了詞序信息,無法確定詞語在文本中的相對位置和絕對位置。為了解決這一問題,在FA-TR模型中添加位置編碼來達到具備學習詞序信息的能力。位置編碼根據詞的位置信息對文本序列信息中的每個詞進行二次表示,再將得到的詞序信息與文本詞向量結合在一起生成新的包含位置信息的輸入序列。

(1)
(2)


表2 位置編碼
FA-TR模型的輸入層由3部分構成,分別是原文編碼、事實描述編碼和位置編碼。用X{x1,x2,…,xn} 表示原文詞向量,詞向量維度為m(本文m為512)。用R{r1,r2,…,rn} 表示事實描述詞向量,用P{p1,p2,…,pn} 表示位置向量。
首先,將原文詞向量和事實描述詞向量聯合在一起。采用多層感知機(Muti-Layer Perception,MLP)將兩個詞向量加權求和結合在一起,計算過程如式(3)~式(4)所示
gt=MLP(xt,rt)
(3)
ot=gt⊙xt+(1-gt)⊙rt
(4)
MLP將兩個詞向量壓縮為一個特征向量gt, 符號⊙表示對應元素相乘,ot表示最后得到的含有事實描述的文本向量。其次,將含有事實性描述的文本向量與位置向量結合在一起作為輸入層的最終輸入向量。采用加權求和的方式求取最終特征向量,計算過程如式(5)所示
ct=ot⊕pt
(5)
符號⊕代表向量相加,ct為包含了位置信息的含有事實性描述的文本特征向量,得到最終的輸入向量C{c1,c2,…,cn}。
將輸入層得到的文本向量輸入到編碼器中。編碼器部分由N個小的編碼器棧式堆疊而成,本文的N取值為6。每個小的編碼器由多頭自注意力機制和前饋神經網絡兩部分組成。文本向量輸入到多頭注意力機制后得到含有上下文語義信息的向量,再將上下文語義向量與文本向量歸一化后作為前饋神經網絡的輸入,前饋神經網絡的輸出是下一個編碼器的輸入。
2.4.1 多頭注意力模型
多頭注意力事實上是對h個不同且獨立的單頭注意力進行集成,提高了模型可以共同注意來自不同位置的不同表示子空間信息的性能,本文h取值為8。多頭注意力在擴展模型關注不同位置能力的同時也防止了模型過擬合,單頭注意力機制計算過程如圖3所示。

圖3 單頭注意力計算過程
構建單頭自注意力機制。首先,對于輸入序列C{c1,c2,…,cn}, 分別乘以3個不同權重矩陣Wq,Wk,Wv來捕捉更豐富的特征,得到3個不同的矩陣Q,K,V這3個權重矩陣是隨機初始化權重方陣。如式(6)~式(8)所示
Q=[c1,c2,…,cn]T·Wq
(6)
K=[c1,c2,…,cn]T·Wk
(7)
V=[c1,c2,…,cn]T·Wv
(8)
則整個輸入序列得到Q(q1,q2,…,qn),K(k1,k2,…,kn),V(v1,v2,…,vn)。 其次,計算自注意力向量,自注意力分數是Q與各個詞向量的K點積的結果,再將結果分別除以K向量維度的平方根讓梯度更加穩定。過程如式(9)所示
(9)
得到注意力得分后,對得分矩陣進行softmax運算將分數標準化,得到n×n的權重矩陣A, 計算過程如式(10)所示

(10)
其次,為了保持想要關注的單詞的值不變,需要掩蓋掉不相關的單詞。將向量V與權重矩陣A相乘得到特征矩陣Z, 計算過程如式(11)所示

(11)
最后,計算多頭注意力機制。多頭注意力機制是多個單頭自注意力機制的集成,FA-TR模型使用8個注意力頭,則需要8次不同的權重矩陣運算得到8個不同的特征矩陣Z。8個不同的權重矩陣都采用隨機初始化得到,多頭注意力機制的運算過程如式(12)所示
(12)
MultiHead(Q,K,V)=Concat(head1,head2,…,head8)WO
(13)


圖4 多頭注意力計算過程
2.4.2 前饋神經網絡
前饋神經網絡的輸入是多頭注意力模型得到的最終輸出矩陣Z。前饋神經網絡有兩層,第一層的激活函數是Relu,第二層是線性激活函數,線性函數的公式如式(14)所示
FFN(Z)=max(0,ZW1+b1)W2+b2
(14)
其中,W1和W2是可學習的權重矩陣,b1和b2是隨機偏置矩陣。
FA-TR模型的解碼器同編碼器一樣由N個小的解碼器棧式堆疊而成,本文的N取值為6,每個小的解碼器由掩碼多頭自注意力層、編碼-解碼注意力層和前饋神經網絡層這3層構成。解碼器每個時間步都會輸出一個輸出序列的元素,直到解碼到一個特殊的終止符號或者達到設置的摘要長度。
掩碼多頭自注意力層的輸入是目標序列,并添加位置編碼來表示每個單詞的位置。掩碼多頭自注意力對后文進行遮擋,如預測t時刻的元素,則只能對t-1時刻及以前的元素進行Attention計算來求解,將計算結果輸入到編碼-解碼注意力層。
編碼-解碼注意力層的輸入由兩部分構成,分別是編碼器的輸出和掩碼多頭自注意力的輸出。編碼器的輸出作為K、V矩陣,掩碼多頭自注意力的輸出作為Q矩陣,對這3個矩陣進行Attention運算,得到的輸出結果輸入到前饋神經網絡層。
前饋神經網絡層的輸入為編碼-解碼注意力層的輸出,計算過程同編碼器的前饋神經網絡層。前饋神經網絡層的輸出經線性變換投射到對數幾率的向量里,再經過softmax層將得到的分數變為生成每個詞語的概率,選取概率最高單元格所對應的詞語作為該時間步的輸出。
本文采用從新浪微博獲取的新聞摘要數據集LCSTS,該數據集是由B.Hu收集整理得到的大規模、高質量的中文短文本數據集。該數據集共有200多萬個新聞-摘要數據對,并分為3部分,見表3。

表3 LCSTS數據集介紹
第一部分數據是數據集的主要部分用來訓練本文的生成摘要模型,這一部分沒有對其進行打分,所以用“-”符號表示;第二部分是人工標注摘要,從第一部分數據集中隨機抽取10 666個新聞-摘要數據對,并對每個樣本進行打分,分數為‘1’的樣本代表摘要和源文本的相關性最弱,分數為‘5’代表相關性最強;第三部分數據獨立于第一部分和第二部分由3個人同時對1106個新聞-數據對進行打分,作為本文的測試集。
評價指標采用自動文摘評價方法ROUGE進行評價。ROUGE基于面向N元詞匯召回率的方法,統計生成摘要與參考摘要的N元詞(N-gram)的共現信息對模型進行評價。ROUGE包括ROUGE-N(N=1,2,3,4等自然數)和ROUGE-L等一系列評價準則,其中的N代表N元詞,L代表最長公共子序列。如式(15)~式(18)
(15)
(16)
(17)
(18)
本文選擇ROUGE-N(N=1,2) 和ROUGE-L作為本文的評價指標,公式中的X表示生成摘要,Y表示參考摘要,Cmatch(N-gram) 表示生成摘要與參考摘要相匹配的N-gram 個數。Rlcs表示召回率,Plcs表示準確率, LCS(X,Y) 表示生成摘要與參考摘要的最長公共子序列的長度,len(m) 和len(n) 分別表示參考摘要和生成摘要的長度。
本文實驗環境見表4。

表4 實驗環境
本文參數設置見表5。

表5 參數設置
本文FA-TR模型的輸入是文本,輸出是文本摘要。將LCSTS短文本數據集的第一部分作為模型的訓練集,第三部分作為模型的測試集。首先,清洗數據集,將文本切分成詞,本文采用Word2vec預訓練模型將分詞表示成分布式向量;其次,將融合了事實感知和位置編碼的文本向量作為FA-TR模型的編碼器輸入;最后,編碼器的輸出作為解碼器的輸入,解碼器的輸入還包括上一個解碼器的輸出和位置編碼,獲得到解碼器的輸出文本摘要。該模型的訓練集迭代次數與測試集的迭代次數與損失值變化關系如圖5所示。

圖5 FA-TR模型訓練集與測試集損失值變化關系
為了驗證本模型的有效性,本文從近年相關工作中選取4種具有代表性的基線模型與本模型進行對比與分析。分別是采用融入了注意力機制的序列到序列模型,編碼器采用卷積神經網絡,解碼器采用神經網絡語言模型的ABS模型[1]、在ABS基礎上加入了一些人工特征,采用循環神經網絡作為編解碼器的ABS+模型[2]、以序列到序列模型為基礎框架,加入一些特征來加強編碼,引入指針機制提高解碼能力的Feats2s模型[3]、以Transformer為框架,在文本預處理階段引入先驗知識的DWEM模型[11]。本文模型與其它4個模型的實驗結果評分見表6。

表6 不同模型實驗結果

圖6 不同模型的ROUGE評分
從表6和圖6中可以看出,FA-TR模型雖然以抽取源文本事實性為目的來解決捏造事實的問題,但是本模型的ROUGE評分對比其余4個模型都有所提高,這是因為提取的事實描述本身已經是一個適當的總結。為了能夠更加直觀說明本模型的有效性,從測試集中抽取了本模型與其它4種模型所生成的摘要實例,表7展示了各個模型在LCSTS數據集上生成的摘要結果,其它4種模型生成的摘要,雖然在內容上與源文本的非常相似,但是并沒有表達出源文本的關鍵信息,而且還出現了事實性錯誤。FA-TR模型能夠較為完整表達出源文本的主要信息,而且更貼近原文事實,其生成的摘要與標準摘要更加具有可比性。可見生成的摘要效果更好,從而驗證了FA-TR模型的有效性。
本文對生成式文本摘要方法進行研究,提出了將事實感知融入到Transformer模型中的FA-TR模型,解決了傳統生成式摘要模型生成的摘要存在捏造事實的問題,同時也改善了長期依賴不能并行處理語義信息的問題。基于LCSTS數據集的實驗結果表明,本模型獲得的摘要更符合源文本信息,而且,由于事實描述通常濃縮了句子的語義,融入事實感知也帶來了摘要質量的顯著提高。但是,目前沒有一種好的方法來自動評估文章的事實性,只能通過人工的方法進行評測,所以接下來會對如何評價摘要的事實準確性進行研究。

表7 各個模型摘要生成結果