高 巍,馬 輝+,李大舟,于 沛,孟智慧
(1.沈陽化工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 沈陽 110142;2.中國移動通信集團(tuán)設(shè)計(jì)院有限公司 河北分公司,山西 太原 030000)
自動文摘技術(shù)[1]可以通過計(jì)算機(jī)對文本信息進(jìn)行壓縮得到簡短的句子或者短文,對比人工生成摘,很大程度上節(jié)約了時(shí)間和人力。目前生成式摘要模型在生成摘要時(shí)會出現(xiàn)事實(shí)性錯誤,事實(shí)性錯誤是指摘要有時(shí)歪曲或捏造文本事實(shí)的問題,現(xiàn)有的摘要模型大多采用條件語言模型,只關(guān)注摘要的字符級準(zhǔn)確性,忽略了摘要與文章語義級的一致性。通過研究[2]發(fā)現(xiàn)基于神經(jīng)網(wǎng)絡(luò)生成的摘要中有30%會出現(xiàn)與原文內(nèi)容不相符的現(xiàn)象[3],例如,由于主語和謂語賓語搭配不當(dāng)?shù)膯栴}而存在捏造事實(shí)的現(xiàn)象。并且,事實(shí)描述的單詞比源文的其它單詞多40%的可能性出現(xiàn)在文本摘要中,這表明了事實(shí)描述在很大程度上真正濃縮了句子的語義。因此,認(rèn)為一個完整的生成式摘要模型必須具備事實(shí)性知識,才能準(zhǔn)確地總結(jié)文章。
近年來,生成式摘要模型大多都是基于序列到序列框架[4]進(jìn)行研究。Chopra等[5]將注意力機(jī)制(Attention)融入到基于卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶網(wǎng)絡(luò)的序列到序列模型中,通過加入注意力機(jī)制對中間語義信息重新進(jìn)行編碼,將上一時(shí)刻解碼器的輸出與中間語義信息重新計(jì)算權(quán)重后輸入到解碼器中,從而編碼出更為完善的語義信息。Nallapati等[6]對關(guān)鍵詞建模獲得層次結(jié)構(gòu),融入命名實(shí)體等特征來提升模型效果,在解碼端引入指針機(jī)制解決未登錄詞問題,解決了編碼不充分和解碼信息不完整、重復(fù)等問題。Zeng等[7]通過循環(huán)神經(jīng)網(wǎng)絡(luò)先對源文本進(jìn)行編碼獲得全文的語義信息,以此達(dá)到人工生成摘要時(shí)先通讀原文獲取原文主題信息的目的。Zhou等[8]采用選擇性編碼模型實(shí)現(xiàn)解碼過程中有針對性讀取源文本的目的,模型采用門控循環(huán)神經(jīng)網(wǎng)絡(luò)對輸入向量的隱層重新計(jì)算權(quán)重選出文本中比較重要的部分。Li等[9]通過融入外部語義信息的方法將額外信息融入到解碼器中提高生成摘要的質(zhì)量。Amplayo等[10]研究指出先驗(yàn)知識可以更好的幫助模型理解源文本,通過識別文本主題提高解碼質(zhì)量。Cao等[11]從文本中提取關(guān)系信息,并將其映射到序列中,作為對編碼器的額外輸入。Xie等[12]提出了一個基于雙重注意力機(jī)制的序列到序列模型,采用句子排序算法提取文本的事實(shí)關(guān)系,將提取到的事實(shí)關(guān)系與源文向量相結(jié)合,解決事實(shí)性錯誤。谷歌團(tuán)隊(duì)[13]提出Transformer模型,該模型完全采用Attention機(jī)制構(gòu)成,摒棄了CNN和RNN等網(wǎng)絡(luò)結(jié)構(gòu)。Transformer模型改善了RNN網(wǎng)絡(luò)不能并行計(jì)算的能力,解決了CNN網(wǎng)絡(luò)在計(jì)算兩個位置之間的關(guān)聯(lián)時(shí)所需要的操作次數(shù)隨距離增長而增多的缺點(diǎn)。王侃等[14]在文本預(yù)處理階段引入先驗(yàn)知識到Transformer模型中,采用ELMo(embeddings from language models)動態(tài)詞向量作為訓(xùn)練文本的詞表征,解決了生成的摘要存在不通順、準(zhǔn)確率較低的問題。Gunel等[15]使用實(shí)體感知的transformer結(jié)構(gòu)來提高生成式摘要中的事實(shí)正確性,采用Wikidata知識圖提取實(shí)體。
以上工作通過增強(qiáng)編解碼能力有效提高了生成的摘要質(zhì)量,這些研究在自動摘要領(lǐng)域已取得了很好的成果。然而,這些模型存在生成摘要與源文信息事實(shí)不一致的現(xiàn)象。針對生成的摘要出現(xiàn)事實(shí)性錯誤的問題,本文提出將事實(shí)感知融入到Transformer模型的FA-TR模型。FA-TR模型提取出文本的事實(shí)性信息作為特征向量融入到Transformer模型中,通過基于大規(guī)模中文短文本數(shù)據(jù)集LCSTS[16]進(jìn)行實(shí)驗(yàn),結(jié)果表明該模型減少了與事實(shí)不符的假摘要并提高了生成摘要的質(zhì)量。
FA-TR是基于Transformer框架構(gòu)建的模型,將源文本輸入該模型后,輸出是目標(biāo)摘要。FA-TR模型由堆疊的編碼器和解碼器連接而成,將源文本輸入到模型后,得到上下文語義向量,再經(jīng)解碼器解碼得到目標(biāo)摘要,F(xiàn)A-TR模型的宏觀圖如圖1所示。
圖1 FA-TR模型宏觀圖
FA-TR模型分為3部分,分別是輸入層、編碼器層和解碼器層。首先,構(gòu)建FA-TR模型的輸入層。提取文本的事實(shí)感知并建立對應(yīng)的分布式向量表示,將事實(shí)性描述特征向量與源文本的分布式向量融合在一起后,再加入位置編碼得到輸入序列的最終向量表示。其次,將由輸入層構(gòu)建的含有事實(shí)性和位置信息的文本向量輸入到編碼器中進(jìn)行編碼,編碼器部分包含6個小的編碼器,每個小編碼器的輸入是上一個小編碼器的輸出。最后,解碼器部分包含6個小的解碼器,每個小的編碼器輸入不僅包含上一個小解碼器的輸出還包含編碼器部分的輸出以及位置編碼。FA-TR模型整體框架如圖2所示。
圖2 FA-TR模型整體框架
為了讓模型能夠感知事實(shí),需要從從源文本中提取、表示和集成事實(shí)知識到摘要生成過程中。本文采用開放信息抽取工具(open information extraction,OpenIE)抽取出原文的事實(shí)。OpenIE[17]是由斯坦福大學(xué)提出的,它可以從文本中提取結(jié)構(gòu)化關(guān)系元組。首先,OpenIE可以從每一個句子中提取出一對三元組(主語,謂語,賓語),那么一篇文章就會得到一系列的三元組;其次,將每一對三元組信息轉(zhuǎn)換成文本表示“主語+謂語+賓語”,這段文本就是該三元組的事實(shí)描述;最后,我們使用標(biāo)識符“|||”將所有事實(shí)描述拼接起來得到該文章的事實(shí)描述。一個句子可以提取多組元組來表示該句子的事實(shí)性,見表1。
表1 不同粒度下的句子元組表示
從表1可以看出,一個句子在不同的粒度下會有不同的元組表示相同事實(shí),為了去除冗余和保證事實(shí)的完整性,如果一個元組關(guān)系的所有單詞都被另一個元組關(guān)系的單詞覆蓋,則刪掉這個元組。對于一段文本,“我們安靜地坐在山頂上,我看見一輪紅紅的太陽從海平面升起?!庇脴?biāo)識符“|||”將事實(shí)性描述拼接在一起,可表示為“我坐在山頂上|||我看見太陽從海平面升起”。
在自然語言處理領(lǐng)域,詞語在句子中的位置不僅表述一個句子的語法結(jié)構(gòu)是否合理,更是表達(dá)句子語義的重要概念。詞語在句子中的排列順序不同,整個句子的語義也有所不同。FA-TR模型采用注意力機(jī)制取代傳統(tǒng)自動摘要模型中的序列學(xué)習(xí)等基本模型,因此FA-TR模型失去了詞序信息,無法確定詞語在文本中的相對位置和絕對位置。為了解決這一問題,在FA-TR模型中添加位置編碼來達(dá)到具備學(xué)習(xí)詞序信息的能力。位置編碼根據(jù)詞的位置信息對文本序列信息中的每個詞進(jìn)行二次表示,再將得到的詞序信息與文本詞向量結(jié)合在一起生成新的包含位置信息的輸入序列。
(1)
(2)
表2 位置編碼
FA-TR模型的輸入層由3部分構(gòu)成,分別是原文編碼、事實(shí)描述編碼和位置編碼。用X{x1,x2,…,xn} 表示原文詞向量,詞向量維度為m(本文m為512)。用R{r1,r2,…,rn} 表示事實(shí)描述詞向量,用P{p1,p2,…,pn} 表示位置向量。
首先,將原文詞向量和事實(shí)描述詞向量聯(lián)合在一起。采用多層感知機(jī)(Muti-Layer Perception,MLP)將兩個詞向量加權(quán)求和結(jié)合在一起,計(jì)算過程如式(3)~式(4)所示
gt=MLP(xt,rt)
(3)
ot=gt⊙xt+(1-gt)⊙rt
(4)
MLP將兩個詞向量壓縮為一個特征向量gt, 符號⊙表示對應(yīng)元素相乘,ot表示最后得到的含有事實(shí)描述的文本向量。其次,將含有事實(shí)性描述的文本向量與位置向量結(jié)合在一起作為輸入層的最終輸入向量。采用加權(quán)求和的方式求取最終特征向量,計(jì)算過程如式(5)所示
ct=ot⊕pt
(5)
符號⊕代表向量相加,ct為包含了位置信息的含有事實(shí)性描述的文本特征向量,得到最終的輸入向量C{c1,c2,…,cn}。
將輸入層得到的文本向量輸入到編碼器中。編碼器部分由N個小的編碼器棧式堆疊而成,本文的N取值為6。每個小的編碼器由多頭自注意力機(jī)制和前饋神經(jīng)網(wǎng)絡(luò)兩部分組成。文本向量輸入到多頭注意力機(jī)制后得到含有上下文語義信息的向量,再將上下文語義向量與文本向量歸一化后作為前饋神經(jīng)網(wǎng)絡(luò)的輸入,前饋神經(jīng)網(wǎng)絡(luò)的輸出是下一個編碼器的輸入。
2.4.1 多頭注意力模型
多頭注意力事實(shí)上是對h個不同且獨(dú)立的單頭注意力進(jìn)行集成,提高了模型可以共同注意來自不同位置的不同表示子空間信息的性能,本文h取值為8。多頭注意力在擴(kuò)展模型關(guān)注不同位置能力的同時(shí)也防止了模型過擬合,單頭注意力機(jī)制計(jì)算過程如圖3所示。
圖3 單頭注意力計(jì)算過程
構(gòu)建單頭自注意力機(jī)制。首先,對于輸入序列C{c1,c2,…,cn}, 分別乘以3個不同權(quán)重矩陣Wq,Wk,Wv來捕捉更豐富的特征,得到3個不同的矩陣Q,K,V這3個權(quán)重矩陣是隨機(jī)初始化權(quán)重方陣。如式(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)。 其次,計(jì)算自注意力向量,自注意力分?jǐn)?shù)是Q與各個詞向量的K點(diǎn)積的結(jié)果,再將結(jié)果分別除以K向量維度的平方根讓梯度更加穩(wěn)定。過程如式(9)所示
(9)
得到注意力得分后,對得分矩陣進(jìn)行softmax運(yùn)算將分?jǐn)?shù)標(biāo)準(zhǔn)化,得到n×n的權(quán)重矩陣A, 計(jì)算過程如式(10)所示
(10)
其次,為了保持想要關(guān)注的單詞的值不變,需要掩蓋掉不相關(guān)的單詞。將向量V與權(quán)重矩陣A相乘得到特征矩陣Z, 計(jì)算過程如式(11)所示
(11)
最后,計(jì)算多頭注意力機(jī)制。多頭注意力機(jī)制是多個單頭自注意力機(jī)制的集成,F(xiàn)A-TR模型使用8個注意力頭,則需要8次不同的權(quán)重矩陣運(yùn)算得到8個不同的特征矩陣Z。8個不同的權(quán)重矩陣都采用隨機(jī)初始化得到,多頭注意力機(jī)制的運(yùn)算過程如式(12)所示
(12)
MultiHead(Q,K,V)=Concat(head1,head2,…,head8)WO
(13)
圖4 多頭注意力計(jì)算過程
2.4.2 前饋神經(jīng)網(wǎng)絡(luò)
前饋神經(jīng)網(wǎng)絡(luò)的輸入是多頭注意力模型得到的最終輸出矩陣Z。前饋神經(jīng)網(wǎng)絡(luò)有兩層,第一層的激活函數(shù)是Relu,第二層是線性激活函數(shù),線性函數(shù)的公式如式(14)所示
FFN(Z)=max(0,ZW1+b1)W2+b2
(14)
其中,W1和W2是可學(xué)習(xí)的權(quán)重矩陣,b1和b2是隨機(jī)偏置矩陣。
FA-TR模型的解碼器同編碼器一樣由N個小的解碼器棧式堆疊而成,本文的N取值為6,每個小的解碼器由掩碼多頭自注意力層、編碼-解碼注意力層和前饋神經(jīng)網(wǎng)絡(luò)層這3層構(gòu)成。解碼器每個時(shí)間步都會輸出一個輸出序列的元素,直到解碼到一個特殊的終止符號或者達(dá)到設(shè)置的摘要長度。
掩碼多頭自注意力層的輸入是目標(biāo)序列,并添加位置編碼來表示每個單詞的位置。掩碼多頭自注意力對后文進(jìn)行遮擋,如預(yù)測t時(shí)刻的元素,則只能對t-1時(shí)刻及以前的元素進(jìn)行Attention計(jì)算來求解,將計(jì)算結(jié)果輸入到編碼-解碼注意力層。
編碼-解碼注意力層的輸入由兩部分構(gòu)成,分別是編碼器的輸出和掩碼多頭自注意力的輸出。編碼器的輸出作為K、V矩陣,掩碼多頭自注意力的輸出作為Q矩陣,對這3個矩陣進(jìn)行Attention運(yùn)算,得到的輸出結(jié)果輸入到前饋神經(jīng)網(wǎng)絡(luò)層。
前饋神經(jīng)網(wǎng)絡(luò)層的輸入為編碼-解碼注意力層的輸出,計(jì)算過程同編碼器的前饋神經(jīng)網(wǎng)絡(luò)層。前饋神經(jīng)網(wǎng)絡(luò)層的輸出經(jīng)線性變換投射到對數(shù)幾率的向量里,再經(jīng)過softmax層將得到的分?jǐn)?shù)變?yōu)樯擅總€詞語的概率,選取概率最高單元格所對應(yīng)的詞語作為該時(shí)間步的輸出。
本文采用從新浪微博獲取的新聞?wù)獢?shù)據(jù)集LCSTS,該數(shù)據(jù)集是由B.Hu收集整理得到的大規(guī)模、高質(zhì)量的中文短文本數(shù)據(jù)集。該數(shù)據(jù)集共有200多萬個新聞-摘要數(shù)據(jù)對,并分為3部分,見表3。
表3 LCSTS數(shù)據(jù)集介紹
第一部分?jǐn)?shù)據(jù)是數(shù)據(jù)集的主要部分用來訓(xùn)練本文的生成摘要模型,這一部分沒有對其進(jìn)行打分,所以用“-”符號表示;第二部分是人工標(biāo)注摘要,從第一部分?jǐn)?shù)據(jù)集中隨機(jī)抽取10 666個新聞-摘要數(shù)據(jù)對,并對每個樣本進(jìn)行打分,分?jǐn)?shù)為‘1’的樣本代表摘要和源文本的相關(guān)性最弱,分?jǐn)?shù)為‘5’代表相關(guān)性最強(qiáng);第三部分?jǐn)?shù)據(jù)獨(dú)立于第一部分和第二部分由3個人同時(shí)對1106個新聞-數(shù)據(jù)對進(jìn)行打分,作為本文的測試集。
評價(jià)指標(biāo)采用自動文摘評價(jià)方法ROUGE進(jìn)行評價(jià)。ROUGE基于面向N元詞匯召回率的方法,統(tǒng)計(jì)生成摘要與參考摘要的N元詞(N-gram)的共現(xiàn)信息對模型進(jìn)行評價(jià)。ROUGE包括ROUGE-N(N=1,2,3,4等自然數(shù))和ROUGE-L等一系列評價(jià)準(zhǔn)則,其中的N代表N元詞,L代表最長公共子序列。如式(15)~式(18)
(15)
(16)
(17)
(18)
本文選擇ROUGE-N(N=1,2) 和ROUGE-L作為本文的評價(jià)指標(biāo),公式中的X表示生成摘要,Y表示參考摘要,Cmatch(N-gram) 表示生成摘要與參考摘要相匹配的N-gram 個數(shù)。Rlcs表示召回率,Plcs表示準(zhǔn)確率, LCS(X,Y) 表示生成摘要與參考摘要的最長公共子序列的長度,len(m) 和len(n) 分別表示參考摘要和生成摘要的長度。
本文實(shí)驗(yàn)環(huán)境見表4。
表4 實(shí)驗(yàn)環(huán)境
本文參數(shù)設(shè)置見表5。
表5 參數(shù)設(shè)置
本文FA-TR模型的輸入是文本,輸出是文本摘要。將LCSTS短文本數(shù)據(jù)集的第一部分作為模型的訓(xùn)練集,第三部分作為模型的測試集。首先,清洗數(shù)據(jù)集,將文本切分成詞,本文采用Word2vec預(yù)訓(xùn)練模型將分詞表示成分布式向量;其次,將融合了事實(shí)感知和位置編碼的文本向量作為FA-TR模型的編碼器輸入;最后,編碼器的輸出作為解碼器的輸入,解碼器的輸入還包括上一個解碼器的輸出和位置編碼,獲得到解碼器的輸出文本摘要。該模型的訓(xùn)練集迭代次數(shù)與測試集的迭代次數(shù)與損失值變化關(guān)系如圖5所示。
圖5 FA-TR模型訓(xùn)練集與測試集損失值變化關(guān)系
為了驗(yàn)證本模型的有效性,本文從近年相關(guān)工作中選取4種具有代表性的基線模型與本模型進(jìn)行對比與分析。分別是采用融入了注意力機(jī)制的序列到序列模型,編碼器采用卷積神經(jīng)網(wǎng)絡(luò),解碼器采用神經(jīng)網(wǎng)絡(luò)語言模型的ABS模型[1]、在ABS基礎(chǔ)上加入了一些人工特征,采用循環(huán)神經(jīng)網(wǎng)絡(luò)作為編解碼器的ABS+模型[2]、以序列到序列模型為基礎(chǔ)框架,加入一些特征來加強(qiáng)編碼,引入指針機(jī)制提高解碼能力的Feats2s模型[3]、以Transformer為框架,在文本預(yù)處理階段引入先驗(yàn)知識的DWEM模型[11]。本文模型與其它4個模型的實(shí)驗(yàn)結(jié)果評分見表6。
表6 不同模型實(shí)驗(yàn)結(jié)果
圖6 不同模型的ROUGE評分
從表6和圖6中可以看出,F(xiàn)A-TR模型雖然以抽取源文本事實(shí)性為目的來解決捏造事實(shí)的問題,但是本模型的ROUGE評分對比其余4個模型都有所提高,這是因?yàn)樘崛〉氖聦?shí)描述本身已經(jīng)是一個適當(dāng)?shù)目偨Y(jié)。為了能夠更加直觀說明本模型的有效性,從測試集中抽取了本模型與其它4種模型所生成的摘要實(shí)例,表7展示了各個模型在LCSTS數(shù)據(jù)集上生成的摘要結(jié)果,其它4種模型生成的摘要,雖然在內(nèi)容上與源文本的非常相似,但是并沒有表達(dá)出源文本的關(guān)鍵信息,而且還出現(xiàn)了事實(shí)性錯誤。FA-TR模型能夠較為完整表達(dá)出源文本的主要信息,而且更貼近原文事實(shí),其生成的摘要與標(biāo)準(zhǔn)摘要更加具有可比性??梢娚傻恼Ч?,從而驗(yàn)證了FA-TR模型的有效性。
本文對生成式文本摘要方法進(jìn)行研究,提出了將事實(shí)感知融入到Transformer模型中的FA-TR模型,解決了傳統(tǒng)生成式摘要模型生成的摘要存在捏造事實(shí)的問題,同時(shí)也改善了長期依賴不能并行處理語義信息的問題?;贚CSTS數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果表明,本模型獲得的摘要更符合源文本信息,而且,由于事實(shí)描述通常濃縮了句子的語義,融入事實(shí)感知也帶來了摘要質(zhì)量的顯著提高。但是,目前沒有一種好的方法來自動評估文章的事實(shí)性,只能通過人工的方法進(jìn)行評測,所以接下來會對如何評價(jià)摘要的事實(shí)準(zhǔn)確性進(jìn)行研究。
表7 各個模型摘要生成結(jié)果