姜志祥,葉 青,傅 晗,張 帆
(中國航天科工集團(tuán)第二研究院 七〇六所,北京 100854)
文本自動(dòng)摘要方法通常可分為抽取式摘要和生成式摘要兩種。抽取式方法在理解源文本語義的基礎(chǔ)上,利用詞庫中的單詞,將源文本中重要的句子和段落組合成較短的文本,生成摘要。由于抽取式摘要主要考慮單詞的詞頻等特性,并不包含語義信息,所以無法完整表達(dá)文本的語義信息。生成式摘要方法利用自然語言處理算法進(jìn)行轉(zhuǎn)述、同義替換、句子縮寫等操作來獲得文檔的摘要。生成式摘要的質(zhì)量更高,但難度較大、復(fù)雜性較高。
本文針對生成式摘要方法中基于序列到序列(sequence-to-sequence,seq2seq)模型存在準(zhǔn)確率不高、詞語重復(fù)、訓(xùn)練時(shí)間長等問題,提出了一個(gè)改進(jìn)的模型。在原序列到序列結(jié)構(gòu)的基礎(chǔ)上加入指針生成網(wǎng)絡(luò)以及自注意力機(jī)制,提升了模型摘要準(zhǔn)確率,同時(shí)引入復(fù)制機(jī)制,以解決未登錄詞(out of vocabulary,OOV)問題,利用輸入供給(input-feeding)方法來避免摘要中出現(xiàn)重復(fù)短語問題,使用自注意力(self-attention)來代替?zhèn)鹘y(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),提升了模型訓(xùn)練的并行性,消除了卷積計(jì)算,減少了訓(xùn)練時(shí)間。
抽取式摘要方法分為無監(jiān)督抽取式方法和有監(jiān)督抽取式方法。
抽取式摘要源于詞頻-逆文檔詞頻(TF-IDF)算法,它根據(jù)文章中的詞語的權(quán)重來獲得摘要。Google的Mihalcea等在網(wǎng)頁排序算法的基礎(chǔ)上提出了基于圖的TextRank算法,該算法通過構(gòu)建節(jié)點(diǎn)連接圖,將句子的相似度作為圖中邊的權(quán)重值,計(jì)算得到排名高的句子組成摘要,提升了抽取式方法的準(zhǔn)確率。
隨著機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,抽取式摘要的研究逐漸從無監(jiān)督方法向有監(jiān)督方法發(fā)展。Cheng J等[1]利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)與循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)來提取句子特征,改善了人工提取特征不穩(wěn)定的缺陷。Nallapati等[2]使用分層神經(jīng)網(wǎng)絡(luò)提取句子的特征,獲取單詞以及句子和文檔之間的分層關(guān)系,同時(shí)還加入了位置信息變量。
隨著近幾年深度神經(jīng)網(wǎng)絡(luò)的發(fā)展,不少生成式摘要模型的在測試集上的性能已經(jīng)超越了最好的抽取式模型。由于生成式摘要具有更好的表征和生成文本能力,已經(jīng)稱為主流的自動(dòng)摘要方法。
生成式模型的基本結(jié)構(gòu)是由編碼器和解碼器組成的序列到序列模型。Nallapati等[3]將注意力機(jī)制與基于RNN的序列到序列模型相結(jié)合,其中注意力機(jī)制使得每個(gè)時(shí)刻的輸出向量都有不同的權(quán)重值。Hu等[4]利用微博數(shù)據(jù),得到大規(guī)模中文短文本摘要(large scale Chinese short text summarization,LCSTS)數(shù)據(jù)集,并提出了以RNN為基礎(chǔ)的自動(dòng)摘要系統(tǒng)。Chopra等[5]將卷積神經(jīng)網(wǎng)絡(luò)作為編碼器,將長短期記憶神經(jīng)網(wǎng)絡(luò)作為解碼器。吳仁守等[6]通過對文檔進(jìn)行字、句和全文檔等多層次編碼。
Vinyals等[7]提出了指針網(wǎng)絡(luò),指針網(wǎng)絡(luò)是seq2seq模型的一種變體。該網(wǎng)絡(luò)不執(zhí)行序列轉(zhuǎn)換,而是生成一系列指向輸入序列元素的指針。指針網(wǎng)絡(luò)用于文本摘要,主要解決單詞稀疏和詞匯不足的問題。Gu等[8]提出了復(fù)制機(jī)制,即當(dāng)包含指針網(wǎng)絡(luò)的模型生成摘要時(shí),通常會(huì)生成兩個(gè)概率,即現(xiàn)有詞匯中的生成概率和在指針處復(fù)制的概率。必要時(shí)模型會(huì)直接在原文中復(fù)制單詞作為摘要輸出,此方法的提出能夠緩解未登錄詞問題。Li等[9]提出了配備深度遞歸生成解碼器的摘要框架,基于遞歸潛在隨機(jī)模型學(xué)習(xí)目標(biāo)摘要中隱含的潛在結(jié)構(gòu)信息,根據(jù)生成的潛在變量和判別式確定性狀態(tài)生成高質(zhì)量摘要。
Abigail等[10]利用詞頻等特征,復(fù)制原文本的詞來處理低頻詞,解決了未登錄詞問題。并加以改進(jìn),融合注意力機(jī)制形成混合式指針生成網(wǎng)絡(luò),緩解了細(xì)節(jié)偏差和低頻詞問題。谷歌的Ashis等提出了變換器(transformer)模型[11],利用自注意力機(jī)制實(shí)現(xiàn)快速并行,并且可以增加深度,提升了訓(xùn)練速度和準(zhǔn)確度,在多項(xiàng)自然語言處理任務(wù)中表現(xiàn)良好。Zhang等[12]將根據(jù)自注意力機(jī)制訓(xùn)練的預(yù)訓(xùn)練模型轉(zhuǎn)換器的雙向編碼表示(bidirectional encoder representation from transformers,BERT)應(yīng)用到自動(dòng)摘要任務(wù)中。
李晨斌等[13]提出了基于改進(jìn)編碼器-解碼器(encoder-decoder)模型的方法,提升了摘要的連貫性與準(zhǔn)確性。Guo等[14]提出將多頭注意力Multi-Head與指針網(wǎng)絡(luò)結(jié)合,抽象化了摘要文本的結(jié)構(gòu),增強(qiáng)了文本的語義表示。Wang等[15]提出概念指針網(wǎng)絡(luò),利用基于知識(shí)的上下文感知概念來擴(kuò)展候選概念集,能夠生成具有更高層次語義概念的摘要。Li等[16]提出雙注意指針網(wǎng)絡(luò),自注意力機(jī)制從編碼器收集關(guān)鍵信息,軟注意力和指針網(wǎng)絡(luò)生成更一致的核心內(nèi)容,兩者的組合會(huì)生成準(zhǔn)確且一致的摘要。
由于RNN、LSTM和CNN等網(wǎng)絡(luò)模型在序列到序列模型中取得了較好的效果,循環(huán)結(jié)構(gòu)的模型和編碼器-解碼器結(jié)構(gòu)得到了很好的發(fā)展。但是循環(huán)神經(jīng)網(wǎng)絡(luò)固有的順序?qū)傩灾萍s了訓(xùn)練的并行化,增加了訓(xùn)練時(shí)間;CNN網(wǎng)絡(luò)在計(jì)算兩個(gè)位置之間的關(guān)系時(shí),訓(xùn)練次數(shù)會(huì)隨著距離的增加而增加,不利于模型的訓(xùn)練。
本文提出了一個(gè)基于組合指針式網(wǎng)絡(luò)和自注意力機(jī)制的模型,但由于自注意力機(jī)制對句子整體進(jìn)行處理,并不包含序列的位置信息,因此在嵌入層引入了位置嵌入編碼來表示序列中元素的相對關(guān)系,保證模型按照正確的序列順序來進(jìn)行處理。模型完全消除了重復(fù)和卷積,避免了遞歸,具有更高的并行性,提升了訓(xùn)練速度,降低了長時(shí)間訓(xùn)練導(dǎo)致的性能下降。與原來的混合指針式網(wǎng)絡(luò)相比,提出的模型能夠快速降低損失函數(shù)值,減少訓(xùn)練時(shí)間,并提升摘要的準(zhǔn)確度。
自注意力機(jī)制的基礎(chǔ)是序列到序列模型,它屬于編碼器-解碼器結(jié)構(gòu),本文使用的原始指針網(wǎng)絡(luò)模型如圖1所示。
圖1 指針網(wǎng)絡(luò)模型
在原始指針網(wǎng)絡(luò)模型中,源文本中的信息被輸出到由單層雙向長短時(shí)記憶網(wǎng)絡(luò)(LSTM)組成的編碼器中,從而產(chǎn)生一系列隱藏狀態(tài),通過隱藏狀態(tài)計(jì)算得到文本的注意力分布,然后注意力分布用于生成編碼器隱藏狀態(tài)的加權(quán)總和上下文向量,上下文向量通過與兩個(gè)線性變化層的解碼器狀態(tài)拼接在一起組成詞匯分布,從上下文向量以及解碼器狀態(tài)計(jì)算得到生成概率Pgens,根據(jù)生成概率選擇是從原文復(fù)制還是在詞匯分布中生成得到最終分布。
原始的指針生成網(wǎng)絡(luò)模型雖然取得了一定的成果,但是仍存在一些問題。首先是無法聚焦核心內(nèi)容,無法概括重要內(nèi)容;其次是可能錯(cuò)誤組合原文片段,導(dǎo)致出現(xiàn)錯(cuò)誤結(jié)果;最后存在語句不夠通順和連貫的問題,降低了摘要效果[7]。
本文提出的改進(jìn)模型結(jié)構(gòu)如圖2所示。編碼器部分由6層編碼器疊加在一起構(gòu)成,解碼器部分也是6層解碼器疊加在一起。每個(gè)編碼器在結(jié)構(gòu)上是相同的,但不會(huì)共享它們之間的參數(shù),每個(gè)編碼器可以分解為自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層。解碼器中結(jié)構(gòu)類似,但在中間加了一個(gè)編碼-解碼注意力層(多頭自注意力層),用來關(guān)注輸入句子的相關(guān)部分。模型最后利用解碼器向量輸出與注意力分布來計(jì)算概率分布Pgens,結(jié)合指針生成網(wǎng)絡(luò)對詞匯分布以及注意力分布進(jìn)行加權(quán)計(jì)算,以確定是最終通過固定詞匯表生成詞還是通過指針復(fù)制單詞。
圖2 本文提出模型
本文提出的改進(jìn)模型基于序列到序列模型,組合指針生成式網(wǎng)絡(luò)模型和自注意力模型,增加了處理OOV單詞的能力和準(zhǔn)確性。模型保留了生成新單詞的能力,運(yùn)用自注意力模型加快了訓(xùn)練速度,能夠快速并行計(jì)算,增加深度,較快降低損失函數(shù)值。
編碼組件由6層編碼器組成,編碼器由自注意力層和全連接前饋神經(jīng)網(wǎng)絡(luò)層兩個(gè)子層構(gòu)成,子層之間的連接采用殘差連接(residual connection)[18],然后進(jìn)行層歸一化(layer normalization)[19]。每個(gè)子層的輸出都為LayerNorm(x+Sublayer(x)),其中Sublayer(x)是由子層本身實(shí)現(xiàn)的功能,為了使殘差連接更加方便計(jì)算,所有子層以及嵌入層輸出的維度大小dmodel都為512。
解碼組件由6層相同的解碼器組成,子層之間也是采用殘差連接并進(jìn)行歸一化,與編碼器不同的是,解碼器加入第3個(gè)子層,該層用來對編碼器輸出結(jié)果進(jìn)行多頭注意力關(guān)注,同時(shí)自我注意力層,加入掩碼(mask)機(jī)制[11],用來關(guān)注輸入隊(duì)列,確保對位置i的預(yù)測只能依賴i之前的已知輸出。
輸入句子通過詞嵌入轉(zhuǎn)為向量矩陣,進(jìn)入編碼器后經(jīng)過自注意力層,計(jì)算得到自注意力向量,輸出會(huì)傳遞到前饋神經(jīng)網(wǎng)絡(luò)中,每個(gè)位置對應(yīng)的前饋神經(jīng)網(wǎng)絡(luò)都是一致的,然后經(jīng)過多頭注意力層向量拼接后,得到多頭部注意力Z,編碼器輸出中包含有鍵向量和值向量的注意力向量集,這些向量會(huì)傳輸?shù)浇獯a器中編碼器-解碼器注意力層。編碼階段結(jié)束后進(jìn)入解碼階段,每個(gè)解碼的步驟都會(huì)輸出一個(gè)輸出序列的元素,直到出現(xiàn)終止符號(hào)。解碼器最后會(huì)輸出一個(gè)向量,經(jīng)過線性變化層把向量投射到一個(gè)對數(shù)幾率(logits)的向量中,向量中的每個(gè)單元格都會(huì)產(chǎn)生一個(gè)分?jǐn)?shù),經(jīng)過softmax后會(huì)將這些變?yōu)橐粋€(gè)概率,其中概率最高的單元格會(huì)被選中,然后對應(yīng)單詞會(huì)作為這一時(shí)刻的輸出。利用解碼器當(dāng)前時(shí)刻以及前一時(shí)刻的輸出以及注意力分布拼接得到指針生成網(wǎng)絡(luò)的生成概率Pgens,該概率控制是復(fù)制源文本中內(nèi)容生成摘要還是根據(jù)注意力生成摘要,若詞匯表分布中不存在解碼的詞,則直接利用多頭部注意力分布復(fù)制得到,若詞匯表分布中存在分布,則使用詞匯表分布。
在改進(jìn)的模型中,輸入信息通過嵌入層轉(zhuǎn)化為嵌入向量。因?yàn)槟P褪菍渥又兴性~同時(shí)處理的,不包含遞歸和卷積,所以在嵌入層并不包含句子中相對位置信息,必須加入有關(guān)序列的位置信息,因此我們在編碼器和解碼器的底部輸入嵌入中為其加入位置編碼。在這里選擇使用不同頻率的正弦和余弦函數(shù)
PE(pos,2i)=sin(pos/100002i/dmodel)PE(pos,2i+1)=cos(pos/100002i/dmodel)
式中:pos表示在句子中的位置,i是維度,dmodel為512。
注意力計(jì)算方式如圖3所示,首先根據(jù)嵌入向量和加權(quán)矩陣計(jì)算得到3個(gè)向量,分別是查詢向量Q、鍵向量K和值向量V。這3個(gè)向量的生成方式是詞嵌入與3個(gè)權(quán)重矩陣 (WQ,WK,WV) 相乘
圖3 兩種注意力計(jì)算
接下來計(jì)算縮放點(diǎn)積注意力[11],計(jì)算公式如下所示,計(jì)算完成后,通過softmax傳遞結(jié)果,得到注意力向量就可以傳遞給前饋神經(jīng)網(wǎng)絡(luò)。除以dk是為了防止經(jīng)過softmax后的結(jié)果變得更加集中,使得梯度更穩(wěn)定
計(jì)算出自注意力頭部矩陣后,需要將8個(gè)矩陣拼接起來,然后與矩陣WO相乘,得到多頭部自注意力向量,WO是經(jīng)過聯(lián)合訓(xùn)練的矩陣
多注意力網(wǎng)絡(luò)相當(dāng)于多個(gè)不同自注意力的集成,將數(shù)據(jù)X分為8個(gè)頭,分別輸入到8個(gè)自注意力層中,乘以各個(gè)加權(quán)矩陣,得到8個(gè)加權(quán)后的特征矩陣Z,將8個(gè)矩陣Z按列拼成一個(gè)大的特征矩陣,乘以權(quán)重矩陣WO得到輸出Z。
編碼器和解碼器每一層還包括一個(gè)全連接的前饋神經(jīng)網(wǎng)絡(luò),由兩個(gè)線性變化組成,在它們中間包含一個(gè)ReLu激活函數(shù),使用Relu函數(shù)能提升計(jì)算速度以及收斂速度。內(nèi)層維度為dff=2048,輸入輸出維度dmodel為512
FFN(x)=max(0,xW1+b1)W2+b2
在解碼器中,注意力模塊(transformer block)比編碼器中多了個(gè)編碼器-解碼器注意力(encoder-decoder attention)。在編碼器-解碼器注意力中,Q來自于解碼器的上一個(gè)輸出,K和V則來自于與編碼器的輸出。掩碼自注意力(mask-self-attention)是計(jì)算當(dāng)前摘要的內(nèi)容和摘要的前文之間的關(guān)系,而編碼器-解碼器注意力是計(jì)算當(dāng)前摘要內(nèi)容和編碼的特征向量之間的關(guān)系。最后再經(jīng)過一個(gè)全連接層,輸出解碼器的結(jié)果。加入掩碼機(jī)制原因是,因?yàn)樵陬A(yù)測摘要內(nèi)容時(shí),為防止信息泄露,當(dāng)前時(shí)刻應(yīng)該無法獲取到未來時(shí)刻的信息。輸入供給(input-feeding)[10]方法通過對上一時(shí)刻的注意力進(jìn)行跟蹤,將此時(shí)刻詞嵌入向量與將前一時(shí)刻的注意力向量進(jìn)行拼接,得到新的注意力向量,作為輸入到解碼器中。該方法能夠考慮前一時(shí)刻的注意力信息,從而幫助模型注意力更準(zhǔn)確地決策,提高了摘要準(zhǔn)確率。
設(shè)解碼器輸出為di,注意力分布為ai,t-1時(shí)刻的注意力向量為ai-1,詞嵌入向量為embXi,l2為輸出端最大長度,詞匯注意力分布為Pv ocab。 將t-1時(shí)刻注意力與t時(shí)刻嵌入向量進(jìn)行拼接得到新向量embYi
embYi=concat[embXi,ai-1]
那么在t時(shí)刻解碼器的輸出即為
Si為解碼器輸出經(jīng)過全連接層后的輸出
Si=FFN(di)
根據(jù)t時(shí)刻和t-1時(shí)刻解碼器已經(jīng)得到的摘要字符的向量,以及最新的注意力分布,利用輸入供給可以計(jì)算出生成概率Pgens
Pgens=sigmod[Si-1,Si,ai]Pv ocab=softmax([Si,ai])
最終單詞的概率分布為
Pgens可以看作是一個(gè)開關(guān),控制是從輸入隊(duì)列復(fù)制詞還是生成新詞,如果是OOV單詞,Pv ocab=0,只能通過復(fù)制得到,并保留右側(cè)部分;如果沒有出現(xiàn)在輸入文本中時(shí),單詞只能通過模型生成,并保留左側(cè)部分。復(fù)制網(wǎng)絡(luò)的引用能夠在很大程度上減輕OOV問題[8],防止摘要對原文的描述出現(xiàn)細(xì)節(jié)偏差問題。
在時(shí)刻t,目標(biāo)單詞在此時(shí)刻被解碼,那t時(shí)刻的損失函數(shù)就是該單詞對應(yīng)的概率分布的對數(shù)值的負(fù)數(shù),在損失函數(shù)前面添加一個(gè)以e為底的對數(shù)
在訓(xùn)練過程中對語料進(jìn)行自動(dòng)摘要訓(xùn)練時(shí),并不是只需要對每一時(shí)刻計(jì)算損失函數(shù)值,還需要計(jì)算整體損失函數(shù)值的反向傳播,以更新模型。設(shè)當(dāng)前解碼總時(shí)長為T,則對應(yīng)輸入序列的總體損失函數(shù)值為
實(shí)驗(yàn)使用的訓(xùn)練數(shù)據(jù)集為LCSTS,其特性見表1。LCSTS分為訓(xùn)練集、測試集、驗(yàn)證集3部分,訓(xùn)練集包含2 400 591組數(shù)據(jù)(包含短文本和摘要),驗(yàn)證集10 666組數(shù)據(jù),是人為標(biāo)記的,包含有不同的分?jǐn)?shù),從1到5。得分越高表示摘要與原文越相關(guān),摘要更簡潔,包含信息較多;得分較低的摘要中,許多單詞比較抽象,有的單詞沒有在原文中出現(xiàn)。測試集包含1106組數(shù)據(jù),不具有很高的抽象性,比較適合作為生成任務(wù)的測試集。不同的分?jǐn)?shù)代表任務(wù)的困難程度。
圖4是從測試集中隨機(jī)選取的不同分?jǐn)?shù)測試用例,用來觀測模型在不同困難程度的摘要效果。
實(shí)驗(yàn)時(shí),設(shè)置字典大小為10 396,通過預(yù)處理將每篇正文和原摘要放在同一行中,利用jieba對數(shù)據(jù)集進(jìn)行分詞處理,對照詞典,生成句子的有向無環(huán)圖(DAG),找到最短路徑后,直接對原句進(jìn)行截取,如果某個(gè)字在字典中出現(xiàn)的概率為零,則使用UNK標(biāo)記代替。對OOV詞,使用隱馬爾可夫模型進(jìn)行新詞發(fā)現(xiàn),得到分詞后,再使用gensim進(jìn)行字向量訓(xùn)練,訓(xùn)練得到的結(jié)果再作為編碼器端的輸入。
表1 LCSTS數(shù)據(jù)集數(shù)據(jù)統(tǒng)計(jì)
圖4 不同分?jǐn)?shù)的測試案例
模型的訓(xùn)練環(huán)境Tensorflow,使用基于RTX 2080s的機(jī)器進(jìn)行訓(xùn)練測試。
訓(xùn)練參數(shù)設(shè)置如下:編碼器和解碼器部分由6層相同的編碼器組成,它們之間并不共享參數(shù),編碼器解碼器的內(nèi)部隱藏層都包括512個(gè)節(jié)點(diǎn)單元,前饋神經(jīng)網(wǎng)絡(luò)層節(jié)點(diǎn)單元數(shù)量是2048。一次訓(xùn)練所使用的樣本數(shù)batch_size=32。學(xué)習(xí)率(learning rate)初始設(shè)置為0.0005,利用學(xué)習(xí)率動(dòng)態(tài)衰減公式,初期學(xué)習(xí)率增加,步長較長,梯度下降較快;訓(xùn)練預(yù)熱步數(shù)到達(dá)設(shè)定值后,逐步減小學(xué)習(xí)率,有利于快速收斂,容易得到接近最優(yōu)的解,Warmup_steps為4000。學(xué)習(xí)率的變化為
最大輸入長度為150,超過后進(jìn)行截?cái)?,輸出序列最大長度為25。訓(xùn)練輪數(shù)為32。搜索解碼時(shí)采用集束搜索,按順序生成摘要內(nèi)容,每生成一個(gè)詞匯時(shí),需要對結(jié)果進(jìn)行排序,保留與集束寬度相同數(shù)量的詞匯,通過剪枝操作來提升解碼速度。解碼時(shí)設(shè)置寬度為beam_size=4。
由Lin等提出的Rouge(recall-oriented understudy for gisting evaluation)標(biāo)準(zhǔn)被廣泛應(yīng)用于文本自動(dòng)摘要的評價(jià)中。Rouge的基本思想為將系統(tǒng)生成的自動(dòng)摘要與人工生成的摘要對比,通過統(tǒng)計(jì)兩者之間重疊的n元詞的數(shù)目,來評價(jià)生成摘要質(zhì)量。評價(jià)時(shí),一般采用Rouge-1、Rouge-2和Rouge-L作為標(biāo)準(zhǔn),即計(jì)算一元詞和兩元詞以及最長公共子序列的重疊程度。
本文提出的模型在訓(xùn)練集上得到Rouge評價(jià)結(jié)果見表2,表2還給出了其它模型的Rouge結(jié)果。
表2 模型Rouge結(jié)果
第1個(gè)模型是傳統(tǒng)的序列到序列模型,由Hu等[4]在LCSTS的基礎(chǔ)上提出,沒有引入注意力機(jī)制,編碼器使用循環(huán)神經(jīng)網(wǎng)絡(luò)對文本進(jìn)行建模,可以得知最后一個(gè)詞的狀態(tài)包含句子所有信息,將此狀態(tài)傳遞到解碼器中。
第2個(gè)模型在第一個(gè)模型的基礎(chǔ)上引入了上下文,將RNN編碼器的內(nèi)部隱藏狀態(tài)組合起來以概括地表示單詞的上下文[4],其余同第一個(gè)模型。
第3個(gè)模型結(jié)構(gòu)將復(fù)制機(jī)制[8]與序列到序列模型結(jié)合,復(fù)制機(jī)制可以很好地將解碼器中常規(guī)的單詞生成方式與新的復(fù)制機(jī)制集成在一起,該機(jī)制可以選擇輸入序列中的子序列,并將它們放置在輸出序列中的適當(dāng)位置。
第4個(gè)模型將提出了一種新的摘要框架,該模型是配備深度遞歸生成解碼器的序列到序列模型[9],基于遞歸學(xué)習(xí)目標(biāo)摘要中隱含的結(jié)構(gòu)信息以提高摘要質(zhì)量。
第5個(gè)模型為指針生成式網(wǎng)絡(luò)[10],采用了基于注意力機(jī)制的序列到序列模型[8],引入了指針網(wǎng)絡(luò)的復(fù)制機(jī)制指導(dǎo)生成過程,同時(shí)引入覆蓋率向量。
第6個(gè)模型提出了一種基于雙注意指針網(wǎng)絡(luò)(DAPT)的編解碼器模型[16],自注意力機(jī)制從編碼器收集關(guān)鍵信息,軟注意力和指針網(wǎng)絡(luò)生成更一致的核心內(nèi)容。
第7個(gè)模型是本文提出的模型,采用基于自注意力的transformer機(jī)制,組合了指針生成網(wǎng)絡(luò),引入了復(fù)制機(jī)制和輸入供給(input-feeding)方法。
從表2可以看出,本文提出的模型Rouge評價(jià)結(jié)果,相比其它模型有較大的提升,Rouge-1、Rouge-2、Rouge-L均高于其它模型。
本文提出的模型沒有采用傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)和生成式對抗網(wǎng)絡(luò),而是使用了自注意力機(jī)制,可以并行訓(xùn)練;經(jīng)過較少步驟后,損失函數(shù)值能夠達(dá)到穩(wěn)定狀態(tài),減少了訓(xùn)練所需時(shí)間,同時(shí)也提升了摘要的準(zhǔn)確性。圖5為指針式生成網(wǎng)絡(luò)[10]的損失函數(shù)值變化曲線,可以看到,經(jīng)過較多訓(xùn)練步驟后,損失函數(shù)值才下降到較低的范圍,所需訓(xùn)練時(shí)間較長。圖6本文提出模型的損失函數(shù)值曲線,可見其下降速度很快,到達(dá)穩(wěn)定值后曲線十分平穩(wěn)。
圖5 指針式生成網(wǎng)絡(luò)損失值變化曲線
圖6 本文模型的損失值變化曲線
本文在序列到序列模型的框架下,提出了一種將指針生成式網(wǎng)絡(luò)與自注意力機(jī)制相結(jié)合的模型,通過復(fù)制機(jī)制防止了UNK標(biāo)記的出現(xiàn),解決了OOV問題。與循環(huán)神經(jīng)網(wǎng)絡(luò)或生成式對抗網(wǎng)絡(luò)相比,自注意力模型能夠并行訓(xùn)練,消除了卷積,加速了訓(xùn)練過程,損失函數(shù)值能夠較快下降并達(dá)到穩(wěn)定。同時(shí),采用輸入供給方法也能追蹤過去時(shí)刻的注意力信息,提升注意力機(jī)制作出決定的準(zhǔn)確率。所提出的模型的Rouge評分相對原模型有一定的提升。但有時(shí)會(huì)概括一些不太重要的信息,并且沒有使用覆蓋率機(jī)制,摘要會(huì)出現(xiàn)重復(fù)詞語,下一步研究工作將考慮添加覆蓋率機(jī)制來提升在長文本摘要上的性能,減少重復(fù)短語的出現(xiàn),以及將模型部署到實(shí)際應(yīng)用中,實(shí)現(xiàn)從理論到實(shí)際應(yīng)用的轉(zhuǎn)變。