羅森林, 王睿怡, 吳倩, 潘麗敏, 吳舟婷
(1.北京理工大學(xué) 信息與電子學(xué)院,北京 100081;2.國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心,北京 100094)
自動(dòng)摘要技術(shù)是將文本濃縮為簡(jiǎn)明、符合語(yǔ)法規(guī)則和保留原始文本重要信息的摘要,該技術(shù)能夠幫助處理海量的信息、節(jié)省大量的時(shí)間和精力. 隨著基于生成式語(yǔ)言模型的深度學(xué)習(xí)技術(shù)在分布式語(yǔ)義、語(yǔ)言模型、機(jī)器翻譯等[1-2]任務(wù)上取得的一系列突破性成果,自動(dòng)摘要技術(shù)領(lǐng)域的研究熱點(diǎn)逐步從抽取式轉(zhuǎn)移到生成式. 生成式摘要可以被看作是對(duì)原文本進(jìn)行編碼,再進(jìn)行解碼得到目標(biāo)摘要的編碼-解碼任務(wù). 因此,編碼-解碼模型可以應(yīng)用于生成式摘要當(dāng)中. 生成式摘要方法分為基于結(jié)構(gòu)、基于語(yǔ)義和基于深度學(xué)習(xí)的方法.
基于結(jié)構(gòu)的方法[3-7]是從文本中找到最重要的信息,使用模板、規(guī)則、樹(shù)或本體等創(chuàng)建摘要. 基于語(yǔ)義的方法[8-9]是從文本中使用信息項(xiàng)、謂詞-參數(shù)、語(yǔ)義圖和多模態(tài)等創(chuàng)建文本的語(yǔ)義表示,并通過(guò)該表示生成摘要. 隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的編碼-解碼模型在生成式摘要上取得令人矚目的進(jìn)步,研究者開(kāi)始嘗試在編碼-解碼模型基礎(chǔ)上進(jìn)行各種改進(jìn)方案以提升摘要的效果[10-13].
如今,注意力機(jī)制也已廣泛用于編碼-解碼模型,例如在Bahdanau等[14]和Luong等[15]的工作中解碼器利用注意力機(jī)制對(duì)編碼器信息進(jìn)行打分. 許多基于注意力機(jī)制的編碼-解碼模型已經(jīng)被提出并用于生成式摘要任務(wù)中,如Rush等[16]、Chopra等[17]、Nallapati等[18]工作,均優(yōu)于傳統(tǒng)的統(tǒng)計(jì)學(xué)習(xí)方法.
針對(duì)生成的摘要存在語(yǔ)義和語(yǔ)法錯(cuò)誤的問(wèn)題,Chopra等[19]通過(guò)改進(jìn)編碼器和解碼器的模型來(lái)學(xué)習(xí)訓(xùn)練語(yǔ)料中更多的語(yǔ)法規(guī)則和上下文信息;Nallapati等[20]將large vocabulary trick(LVT)技術(shù)引入到文本摘要問(wèn)題中,通過(guò)更新詞表來(lái)提高摘要的表達(dá)質(zhì)量. 但是,需要注意的是,這些工作僅僅使用原文本語(yǔ)料進(jìn)行訓(xùn)練,使得生成的摘要依賴于詞匯的統(tǒng)計(jì)共現(xiàn),某些語(yǔ)法結(jié)構(gòu)在訓(xùn)練數(shù)據(jù)中沒(méi)有頻繁出現(xiàn),則使模型很難學(xué)習(xí)到相應(yīng)的語(yǔ)法規(guī)則.
目前大部分工作都使用循環(huán)神經(jīng)網(wǎng)絡(luò)作為編碼器,但循環(huán)神經(jīng)網(wǎng)絡(luò)編碼長(zhǎng)文本時(shí)易遺忘歷史信息且無(wú)法并行計(jì)算,從而導(dǎo)致無(wú)法捕獲長(zhǎng)文本的中心思想. 為了解決這個(gè)問(wèn)題,Rush等[18]通過(guò)引入注意力機(jī)制使編碼-解碼模型能夠獲取到被遺忘但重要的信息; See等[21]引入指針網(wǎng)絡(luò)來(lái)保證了原文中心思想;Li等[22]提出一個(gè)關(guān)鍵信息指導(dǎo)網(wǎng)絡(luò)來(lái)提高摘要主旨的顯著性. 雖然這些工作在一定程度上解決了長(zhǎng)文本摘要中無(wú)法處理詞表之外詞匯、顯著性的問(wèn)題,但是由于這些工作主要使用了雙向LSTM-單向LSTM的編碼-解碼框架,因此長(zhǎng)文本編碼速度慢的問(wèn)題還未得到解決,以及無(wú)法捕獲長(zhǎng)文本中心思想的效果也有待進(jìn)一步提高.
為了解決上述問(wèn)題,本文提出了一種融合序列語(yǔ)法知識(shí)的卷積-自注意力生成式摘要方法. 該方法將語(yǔ)法結(jié)構(gòu)信息加入到編碼器中使生成的摘要更符合語(yǔ)法規(guī)則,使用卷積-自注意力模型取代循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行文本編碼. 其中,深度可分離卷積可以捕獲文本的局部結(jié)構(gòu)信息,自注意力模型則學(xué)習(xí)文本的全局交互信息,從而達(dá)到提高摘要的顯著性和模型的編碼速度的效果.
圖1為融合序列語(yǔ)法知識(shí)的卷積-自注意力生成式摘要方法的原理框架圖.
首先對(duì)文本進(jìn)行數(shù)據(jù)預(yù)處理以獲得文本序列;其次利用Berkeley Parser工具(https:∥github.com/slavpetrov/berkeleyparser)對(duì)語(yǔ)料中的文本進(jìn)行語(yǔ)法分析,以獲得對(duì)應(yīng)于每篇文本的語(yǔ)法結(jié)構(gòu)樹(shù);接著使用深度優(yōu)先遍歷算法序列化短語(yǔ)結(jié)構(gòu)樹(shù),得到包含有單詞和語(yǔ)法標(biāo)簽的混合序列;使用卷積-自注意力對(duì)混合序列進(jìn)行編碼,編碼過(guò)程經(jīng)過(guò)向量初始化、位置編碼層、卷積層、自注意力層和前饋層,得到混合文本表示矩陣,從中抽取單詞向量序列組成文本表示矩陣;最后將文本表示矩陣輸入到基于注意力機(jī)制和指針網(wǎng)絡(luò)的單向LSTM中進(jìn)行解碼,得到摘要序列.
首先對(duì)文本進(jìn)行去除雜亂符號(hào)、標(biāo)點(diǎn)符號(hào)統(tǒng)一、將所有大寫(xiě)字母都替換成小寫(xiě)字母等文本清洗操作;再將文本分詞,對(duì)于英文來(lái)說(shuō)直接用空格進(jìn)行分割.
句子的短語(yǔ)結(jié)構(gòu)樹(shù)是將句子分成組件,較大的組件由較小的組件組合得到. 圖2是一個(gè)輸入句子序列的例子,它的短語(yǔ)結(jié)構(gòu)樹(shù)如圖3所示. Berkeley Parser[23]是由伯克利大學(xué)自然語(yǔ)言處理小組開(kāi)發(fā)的開(kāi)源語(yǔ)法解析器,支持的語(yǔ)種主要有英文、中文、法文等. Berkeley Parser是一個(gè)純PCFG解析器,只能執(zhí)行組件分析. 因此,首先使用Berkeley Parser對(duì)語(yǔ)料中的文本進(jìn)行語(yǔ)法分析,得到每個(gè)文本對(duì)應(yīng)的短語(yǔ)結(jié)構(gòu)樹(shù).
圖2 單詞序列Fig.2 Word sequence
直接構(gòu)建一個(gè)帶語(yǔ)法信息的模型不僅能夠捕獲和記錄整個(gè)短語(yǔ)結(jié)構(gòu)樹(shù)的結(jié)構(gòu),而且能夠區(qū)分任意兩個(gè)不同詞語(yǔ)的內(nèi)容. 然而,直接構(gòu)建這樣一個(gè)帶有語(yǔ)法結(jié)構(gòu)信息的模型缺少一個(gè)有效的方法,可以使用一個(gè)可替代的方法——將短語(yǔ)結(jié)構(gòu)樹(shù)線性化成一個(gè)結(jié)構(gòu)標(biāo)簽序列. 利用深度優(yōu)先遍歷算法,將短語(yǔ)結(jié)構(gòu)樹(shù)序列化,得到混合文本序列. 例如,圖4就是利用深度優(yōu)先遍歷算法遍歷圖3后得到的混合文本序列,通過(guò)該序列可學(xué)到結(jié)構(gòu)化的語(yǔ)法信息.
圖4 混合文本序列Fig.4 Mixed text sequence
1.3.1編碼器
在編碼過(guò)程中,首先將混合文本序列進(jìn)行向量初始化,得到混合文本向量序列;再對(duì)混合文本序列的位置進(jìn)行向量表示得到位置向量,其中詞向量和位置向量的維度設(shè)置相同,將兩個(gè)向量相加,得到新的向量表示. 其中,位置向量是將向量中每個(gè)維度的值使用不同頻率的正弦和余弦函數(shù)實(shí)現(xiàn)得到余弦向量和正弦向量的加和,正弦函數(shù)和余弦函數(shù)計(jì)算如式(1)和式(2)所示.
PE(pos,2i)=sin(pos/10 0002i/dmod)
(1)
PE(pos,2i+1)=cos(pos/10 0002i/dmod)
(2)
式中:pos表示位置;i表示維度. 波長(zhǎng)組成幾何級(jí)數(shù)從2π到1 000·2π. 相對(duì)位置,因?yàn)閷?duì)于任何固定偏移k,PEpos+k可以表示為PEpos的線性函數(shù).
將新的混合文本向量序列分別輸入卷積層進(jìn)行編碼,得到混合文本卷積向量序列. 因?yàn)樯疃瓤煞蛛x卷積具有高效記憶和更好的泛化性,因此該方法使用深度可分離卷積來(lái)完成卷積層的功能,其中內(nèi)核大小為7,過(guò)濾器數(shù)量為d=128,塊內(nèi)卷積層數(shù)量為4,卷積層模型如圖5所示.
圖5 卷積層模型圖Fig.5 Convolutional layer model
卷積層由4個(gè)ConvStep組成,并且輸入x與第2個(gè)和第4個(gè)ConvStep的輸出之間有兩個(gè)跳過(guò)連接. 卷積層計(jì)算如式(3)~(7)所示.
(3)
(4)
(5)
(6)
ConvModule(x)=
(7)
式中,每個(gè)ConvStep都由三部分組成:ReLU激活函數(shù)、深度可分離卷積其他和層規(guī)范化. 深度可分離卷積[24]包含逐深度卷積和逐點(diǎn)卷積. 逐深度卷積如式(8)所示,逐點(diǎn)卷積如式(9)所示,深度可分離卷積如式(10)所示,卷積步驟計(jì)算如式(11)所示.
(8)
(9)
SepConv(Wp,Wd,y)(i,j)=PointwiseConv(i,j)(Wp,
DepthwiseConv(Wd,y))
(10)
ConvStepd,s(W,x)=LN(SepConvd,s(W,ReLU(x)))
(11)
層規(guī)范化(layernormalization,LN)計(jì)算如式(12)(13)(14)所示.
(12)
(13)
(14)
其中,通過(guò)可訓(xùn)練參數(shù)G和B對(duì)x進(jìn)行縮放和移位.
接著,將混合文本卷積向量序列輸入到自注意力層進(jìn)行編碼,得到混合文本注意向量序列. 對(duì)于自注意力層,采用“多頭”注意力模型,該模型如圖6所示.
圖6 “多頭”注意力模型Fig.6 Multi-head attention model
輸入的查詢Q、鍵K和值V首先進(jìn)行h次線性變換,其中每次線性變換的參數(shù)W是不一樣的,分別輸入到放縮點(diǎn)積注意力模型中,然后將放縮點(diǎn)積模型輸出的解決進(jìn)行拼接,再對(duì)拼接之后的值進(jìn)行線性變換得到的值即為“多頭”注意力模型輸出的結(jié)果. “多頭”注意力模型能夠使用不同序列位置的不同子空間的表征信息來(lái)進(jìn)行序列數(shù)據(jù)處理. 而在單一注意力模型中,不同位置不同子空間的表征信息由于取均值操作的存在,而將被模型丟失. 整個(gè)過(guò)程計(jì)算如式(15)、(16)和(17)所示.
(15)
(16)
MultiHead(Q,K,V)=Concat(head1,…,headh)WO
(17)
其中查詢Q、鍵K和值V都是用相同的向量表示序列,將其代入式(12)、(13)和(14)中,可得到對(duì)應(yīng)的注意向量序列.
混合文本注意向量序列經(jīng)過(guò)前饋層,輸出為混合文本表示向量序列,即混合文本表示矩陣. 然后從混合文本表示矩陣中抽取出單詞向量序列,組成文本表示矩陣輸入到解碼器中.
1.3.2解碼器
在解碼過(guò)程中,使用一個(gè)結(jié)合注意力機(jī)制和指針網(wǎng)絡(luò)的單層單向LSTM作為解碼器,如圖7所示.
圖7 基于注意力機(jī)制和指針網(wǎng)絡(luò)的單向LSTM解碼模型圖Fig.7 LSTM decoding model diagram based on attention mechanism and pointer network
圖中的LSTM可以預(yù)測(cè)一個(gè)目標(biāo)序列y={y1,y2…,yn}. 在一個(gè)LSTM隱層向量st、前一個(gè)預(yù)測(cè)詞yt-1,和一個(gè)上下文向量ct的基礎(chǔ)上,通過(guò)一個(gè)多層感知機(jī)預(yù)測(cè)目標(biāo)詞yt. 其中,ct是通過(guò)文本表示矩陣中的隱層向量序列(h1,h2…,hm)進(jìn)行加權(quán)求和得到的. 其中,注意力概率分布的計(jì)算如式(18)和(19)所示為
(18)
at=softmax(et)
(19)
式中,v、Wh、Ws和battn為可訓(xùn)練學(xué)習(xí)的參數(shù). 注意力概率分布是一個(gè)關(guān)注編碼器中隱層向量對(duì)輸出目標(biāo)詞的重要程度的概率分布,該概率分布的計(jì)算對(duì)解碼器生成下一個(gè)目標(biāo)詞能起到重要的指導(dǎo)作用. 使用注意力概率分布對(duì)編碼器隱層向量進(jìn)行加權(quán)求和,得到上下文向量ct為
(20)
該上下文向量ct,可被看作一個(gè)經(jīng)過(guò)編碼器后對(duì)原文本語(yǔ)義信息的表示向量. 將上下文向量ct和解碼器中隱層向量st拼接在一起,將合成的向量經(jīng)過(guò)兩次線性變換得到詞表分布P詞表,P詞表計(jì)算如式(21)所示.
P詞表=softmax(V′(V[st,ct]+b)+b′) (21)
式中:V、V′、b和b′都是可訓(xùn)練學(xué)習(xí)的參數(shù);P詞表是一個(gè)表示詞表中所有詞概率分布的函數(shù). 根據(jù)上下文向量ct、解碼器隱層向量st和解碼器該時(shí)刻t的輸入詞yt-1(在訓(xùn)練過(guò)程中,指的是參考摘要的前一個(gè)詞;在測(cè)試過(guò)程中,指的是解碼器生成的前一個(gè)詞)計(jì)算該時(shí)刻t的生成概率p生成∈[0,1] 如式(22)所示.
(22)
(23)
(24)
計(jì)算整個(gè)序列的全部損失值計(jì)算如式(25)所示.
(25)
使用CNN/DailyMail語(yǔ)料進(jìn)行實(shí)驗(yàn). 該語(yǔ)料最初是Hermann等[23]從CNN和DailyMail這兩個(gè)網(wǎng)站中的新聞故事中收集人工總結(jié)的摘要構(gòu)成的,其中包含在線新聞文章(平均791個(gè)單詞)與摘要(平均62個(gè)單詞),該語(yǔ)料已經(jīng)廣泛用于長(zhǎng)文本生成式摘要任務(wù). 實(shí)驗(yàn)使用了See等[19]提供的腳本進(jìn)行同樣的預(yù)處理操作來(lái)獲得相同版本的數(shù)據(jù),其訓(xùn)練集數(shù)據(jù)有287 226對(duì),驗(yàn)證集數(shù)據(jù)有13 368對(duì)和測(cè)試集數(shù)據(jù)有11 490對(duì).
采用標(biāo)準(zhǔn)ROUGE[24]評(píng)價(jià)指標(biāo)來(lái)評(píng)估模型.ROUGE評(píng)價(jià)方法通過(guò)計(jì)算生成摘要和參考摘要的單詞重合度來(lái)區(qū)分生成摘要的質(zhì)量. 本文具體使用pyrouge庫(kù)(pypi.python.org/pypi/pyrouge/0.1.3)工具來(lái)計(jì)算ROUGE-1、ROUGE-2和ROUGE-L值來(lái)評(píng)價(jià)模型的效果. 其中,ROUGE-1基于uni-grams單詞的共現(xiàn)程度進(jìn)行統(tǒng)計(jì);ROUGE-2基于bi-grams單詞的共現(xiàn)程度進(jìn)行統(tǒng)計(jì),ROUGE-L基于參考摘要和要評(píng)估的摘要之間的最長(zhǎng)公共序列的重疊程度進(jìn)行統(tǒng)計(jì).
為了驗(yàn)證本文方法的有效性,建立兩個(gè)對(duì)比方法的分析實(shí)驗(yàn).abstractivemodel[18]是Nallapati于2016年提出的使用循環(huán)神經(jīng)網(wǎng)絡(luò)作為編碼器和解碼器、基于注意力機(jī)制的生成式摘要模型.pointer-generator是See等[19]于2017年提出的基于指針網(wǎng)絡(luò)和注意力機(jī)制的生成式摘要模型,并作為本文的基線模型.pointer-generator+cnn+selfattention是本文提出的卷積-自注意力編碼的生成式摘要模型. 該模型以不經(jīng)過(guò)語(yǔ)法分析的原文本作為輸入,直接輸入到摘要生成模型中進(jìn)行訓(xùn)練,模型的詞向量維度設(shè)為128,隱層維度為256,卷積層數(shù)為4,內(nèi)核大小為7,輸入文本序列長(zhǎng)度最大設(shè)為400,詞表大小為50 000,批處理大小為16,單向LSTM隱層維度為128,優(yōu)化算法為Adagrad,學(xué)習(xí)率為0.15,梯度裁剪的最大梯度范數(shù)為2,集束搜索大小為4,輸出摘要序列最大長(zhǎng)度為100,最小長(zhǎng)度為20.pointer-generator+cnn+selfattention+mixedsyn是文本提出的融合序列語(yǔ)法知識(shí)的卷積-自注意力生成式摘要模型,該模型的輸入文本序列(帶有語(yǔ)法標(biāo)簽)長(zhǎng)度最大設(shè)為1 200,其他參數(shù)與pointer-generator+cnn+selfattention模型一致.
使用測(cè)試集進(jìn)行模型評(píng)估,摘要對(duì)比實(shí)驗(yàn)結(jié)果如表1所示.
表1 摘要對(duì)比實(shí)驗(yàn)結(jié)果
表1顯示,pointer-generator+cnn+self attention和pointer-generator+cnn+self attention+mixed syn模型結(jié)果超過(guò)了pointer-generator模型. 其中,與pointer-generator相比,pointer-generator+cnn+self attention+mixed syn的ROUGE-1值提高了2.46、ROUGE-2值提高了0.95,ROUGE-L值提高了1.86. 這說(shuō)明使用卷積-自注意力模型進(jìn)行文本表示能夠整體提升摘要質(zhì)量. 將序列語(yǔ)法知識(shí)融入到卷積-自注意力編碼模型中,能夠使單詞的向量表示學(xué)習(xí)到更多的語(yǔ)法結(jié)構(gòu)信息,使得文本表示不僅包含上下文信息、還能包含更多的語(yǔ)法結(jié)構(gòu)信息,從而進(jìn)一步提升摘要的閱讀質(zhì)量. 同時(shí),訓(xùn)練過(guò)程中模型平均迭代一次用時(shí)與對(duì)比模型相比加快4倍多,說(shuō)明卷積-自注意力模型的并行計(jì)算可以提高模型的編碼速度和訓(xùn)練時(shí)間效率,緩解模型訓(xùn)練長(zhǎng)序列語(yǔ)料時(shí)間效率低的問(wèn)題. 由于加入序列語(yǔ)法知識(shí)后,混合序列的長(zhǎng)度增加,因此模型平均迭代一次用時(shí)也會(huì)稍微增加一些,但相比pointer-generator模型,時(shí)間效率還是提高不少.
用具體樣例來(lái)分析結(jié)果,如表2所示.
表2 摘要結(jié)果對(duì)比實(shí)例
由實(shí)例可以看出,提出的兩種模型和基線模型基本都能準(zhǔn)確地總結(jié)出文本的內(nèi)容. 仔細(xì)觀察參考摘要和三個(gè)模型生成摘要的內(nèi)容發(fā)現(xiàn),提出的模型概括性更強(qiáng)且能夠準(zhǔn)確地提煉出與參考摘要相符的連貫短語(yǔ),比如在第一個(gè)例子中,pointer-generator+cnn+self attention+mixed syn能夠提煉出“president obama”、“andress lubitz”和“entire nation into the rocks”,這幾個(gè)短語(yǔ)也在參考摘要中出現(xiàn). 在第二個(gè)例子中,pointer-generator+cnn+self attention能夠提煉出同在參考摘要中出現(xiàn)的“be lefted”和“families are not interested in attending”,pointer-generator+cnn+self attention+mixed syn能提煉出同在參考摘要中出現(xiàn)的“the ban will be lifted for some events”. 而這些短語(yǔ)在pointer-generaotr中均未被提煉出來(lái). 通過(guò)分析可以看出,pointer-generator+cnn+self attention模型中使用卷積-自注意力編碼器,能夠更好地學(xué)習(xí)文本的全局信息和局部信息,pointer-generator+cnn+self attention+mixed syn模型中加入序列語(yǔ)法知識(shí)能夠給編碼器在學(xué)習(xí)的過(guò)程中提供更多語(yǔ)法結(jié)構(gòu)信息,從而提高摘要的語(yǔ)法質(zhì)量,能夠提煉出更多準(zhǔn)確的短語(yǔ)結(jié)構(gòu)信息.
針對(duì)基于編碼-解碼的生成式摘要模型不能充分提取語(yǔ)法知識(shí)導(dǎo)致摘要易不符合語(yǔ)法規(guī)則、循環(huán)神經(jīng)網(wǎng)絡(luò)易遺忘歷史信息且訓(xùn)練時(shí)無(wú)法并行計(jì)算導(dǎo)致處理長(zhǎng)文本時(shí)生成的摘要主旨不顯著且編碼速度慢,提出了一種融合序列語(yǔ)法知識(shí)的卷積-自注意力生成式摘要方法. 該方法使用卷積-自注意力模型來(lái)取代雙向LSTM進(jìn)行編碼,并將語(yǔ)法知識(shí)以序列化的形式嵌入到編碼模型當(dāng)中,得到同時(shí)包含上下文信息和語(yǔ)法信息的文本表示矩陣,最后使用基于注意力機(jī)制和指針網(wǎng)絡(luò)的單向LSTM進(jìn)行解碼生成摘要. 實(shí)驗(yàn)結(jié)果表明,在CNN/Daily Mail語(yǔ)料上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)效果優(yōu)于當(dāng)前先進(jìn)算法,其中ROUGE-1、ROOUGE-2和ROUGE-L值分別達(dá)到38.90、16.61和35.28,訓(xùn)練過(guò)程中平均一次迭代用時(shí)能達(dá)到0.92 s. 該方法使用卷積-自注意力模型進(jìn)行文本表示和并行計(jì)算,通過(guò)卷積層學(xué)習(xí)文本的局部結(jié)構(gòu)信息,自注意力層學(xué)習(xí)單詞與單詞之間的全局交互信息,同時(shí)將語(yǔ)法知識(shí)序列化嵌入到編碼器中,使得在編碼過(guò)程中能夠充分利用語(yǔ)法結(jié)構(gòu)信息,進(jìn)一步使摘要更符合語(yǔ)法規(guī)則、突出了摘要的主旨以及提高了模型的編碼速度.