張 敏,曾碧卿,韓旭麗,徐如陽
1.華南師范大學(xué) 計(jì)算機(jī)學(xué)院,廣州510631
2.華南師范大學(xué) 軟件學(xué)院,廣東 佛山528225
自動(dòng)文本摘要技術(shù)對(duì)給定源文本內(nèi)容進(jìn)行壓縮、提煉與總結(jié),并產(chǎn)生簡(jiǎn)潔、流暢且保留關(guān)鍵信息的文本來概括用戶所關(guān)注的主要內(nèi)容[1]。今天,人們普遍面臨著信息過載的問題,自動(dòng)文本摘要技術(shù)可以對(duì)文本信息進(jìn)行壓縮,同時(shí),提取出其中的重要信息,這無疑能有效地降低用戶的信息負(fù)載,幫助用戶更好地從互聯(lián)網(wǎng)中獲取想要的情報(bào)信息。
自動(dòng)文本摘要方法根據(jù)生成摘要覆蓋的文檔范圍,可以分為單文檔摘要和多文檔摘要。根據(jù)摘要內(nèi)容的來源可以分為抽取式摘要(Extractive Summarization)和生成式摘要(Abstractive Summarization)[2]兩類。其中,抽取式摘要生成的摘要內(nèi)容是按一定規(guī)則從原文本中抽取出來的詞、短語或句子組成的。生成式摘要產(chǎn)生的摘要文本則是通過理解文本內(nèi)容,用簡(jiǎn)練的文字將原文本的內(nèi)容表達(dá)出來。由于此過程與人類做摘要的過程相似,所以生成式摘要方法在文本摘要模型中得到了廣泛使用[3-7]。
近年來,隨著計(jì)算機(jī)軟硬件不斷升級(jí),深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)技術(shù)得到快速發(fā)展,并廣泛應(yīng)用于自然語言處理(Natural Language Processing,NLP)任務(wù),比如,機(jī)器翻譯[8-9]、情感分析[10]、自動(dòng)問答[11]、文本摘要[12]等,同時(shí),取得顯著的研究成果。其中,以序列到序列(Sequenceto-Sequence,Seq2Seq)神經(jīng)網(wǎng)絡(luò)模型(有時(shí)又被稱為編碼器-解碼器,encoder-decoder模型)為代表,其結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)或循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)和注意力機(jī)制,能更好地提取文本中蘊(yùn)含的隱藏特征信息,相比傳統(tǒng)自然語言處理方法有更明顯的優(yōu)勢(shì)。
然而,現(xiàn)有基于神經(jīng)網(wǎng)絡(luò)的文本摘要方法生成的摘要普遍存在以下問題:其一,這些方法由于忽略了之前解碼步生成的文本信息,從而導(dǎo)致生成摘要存在語義無關(guān)、語句不通順、詞句重復(fù)問題;其二,受詞表大小的限制以及生成式摘要模型可能產(chǎn)生不在文本中的詞等原因影響,生成的摘要存在未登錄詞(Out-Of-Vocabulary,OOV)問題,使得生成摘要的可讀性受到影響;第三,在模型的訓(xùn)練及驗(yàn)證的解碼階段,會(huì)把真實(shí)的摘要輸入decoder,但在測(cè)試階段,decoder部分當(dāng)前時(shí)刻的輸入摘要內(nèi)容是上一解碼步的輸出,這樣由于訓(xùn)練和測(cè)試階段的不同輸入,會(huì)導(dǎo)致一個(gè)偏差,這個(gè)偏差隨著序列長(zhǎng)度的增加會(huì)越來越大,這就會(huì)產(chǎn)生exposure bias問題。
為了解決以上問題,本文提出一個(gè)結(jié)合雙注意力(dual attention)和指針覆蓋機(jī)制(pointer-generator network and coverage mechanism)的生成式摘要新方法DAPC 模型。模型使用詞嵌入(word embedding)、局部注意力及CNN 作為隱藏特征提取器,使用雙向長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)作為encoder,單向LSTM作為decoder,最后,加入pointer-generator網(wǎng)絡(luò)和coverage機(jī)制?;贑NN/Daily Mail數(shù)據(jù)集(https://cs.nyu.edu/~kcho/DMQA/)的實(shí)驗(yàn)結(jié)果表明,該模型既可以提取文本高層次的n-gram 語言特征,避免生成重復(fù)文本,同時(shí),也能解決受詞表大小影響而產(chǎn)生的OOV問題,進(jìn)而提升摘要質(zhì)量。
本文的主要貢獻(xiàn)體現(xiàn)在以下三個(gè)方面:
(1)針對(duì)文本摘要存在的語義無關(guān)、語句不通順問題,提出一種隱藏特征提取器,該特征器由詞嵌入、局部注意力以及CNN 三個(gè)部分組成,實(shí)驗(yàn)表明該機(jī)制對(duì)摘要質(zhì)量有較好的表現(xiàn)。
(2)在摘要解碼階段,加入OOV 擴(kuò)展詞表,將指針機(jī)制與注意力機(jī)制結(jié)合集成到decoder中,提升摘要質(zhì)量。
(3)采用coverage機(jī)制解決文本摘要任務(wù)中產(chǎn)生的句內(nèi)重復(fù)的問題,實(shí)驗(yàn)表明模型DAPC 在ROUGE-2 指標(biāo)上相比最好的模型高0.87個(gè)百分點(diǎn)。
2014 年,Sutskever 等[13]采用Seq2Seq 模型實(shí)現(xiàn)基于神經(jīng)網(wǎng)絡(luò)的英-法互譯的機(jī)器翻譯。同年,Bahdanau等[14]提出encoder-decoder與注意力機(jī)制結(jié)合的模型,應(yīng)用在機(jī)器翻譯任務(wù)中,取得當(dāng)時(shí)最好的效果,為Seq2Seq 任務(wù)提供了一種全新的深度學(xué)習(xí)模型架構(gòu)。2015 年,Rush等人[15]對(duì)Bahdanau等[14]提出的模型進(jìn)行改進(jìn),并將其應(yīng)用到文本摘要任務(wù)中,取得突破性的進(jìn)展。Chopra等[16]在ABS 模型[15]基礎(chǔ)上進(jìn)行改進(jìn),他們保留原模型中encoder 部分的神經(jīng)網(wǎng)絡(luò)為CNN,并將decoder 部分的前饋神經(jīng)網(wǎng)絡(luò)語言模型修改為RNN,實(shí)驗(yàn)結(jié)果表明該模 型 在DUC 數(shù) 據(jù) 集(http://duc.nist.gov/data.html)上ROUGE-1得分有相對(duì)提高。更進(jìn)一步地,Nallapati等[17]將encoder 和decoder 部分的神經(jīng)網(wǎng)絡(luò)模型都改成為RNN,即模型是完全由RNN 組成的Seq2Seq 模型。除此之外,他們還在編碼器中引入詞匯和統(tǒng)計(jì)特征(如詞性、命名實(shí)體等特征)來提高模型的表現(xiàn),其在ROUGE-2、ROUGE-L兩個(gè)評(píng)價(jià)標(biāo)準(zhǔn)下的表現(xiàn)相對(duì)Chopra等[16]提出的模型效果又有提升。Hu等[18]利用新浪微博數(shù)據(jù)構(gòu)建了一個(gè)大規(guī)模、高質(zhì)量中文短文本摘要數(shù)據(jù)集LCSTS(Large Scale Chinese Short Text Summarization)(http://icrc.hitsz.edu.cn/Article/show/139.html),數(shù)據(jù)集彌補(bǔ)了在文本摘要領(lǐng)域沒有中文摘要數(shù)據(jù)集的空缺,并且在數(shù)據(jù)集的基礎(chǔ)上采用簡(jiǎn)單Seq2Seq 模型給出了一個(gè)baseline,為以后的學(xué)者提供相關(guān)研究基礎(chǔ)。2017 年,Vaswani 等[8]提出一個(gè)不用RNN 也不用CNN,而完全依賴注意力實(shí)現(xiàn)的翻譯模型,引入自注意力(self-attention),有時(shí)也被稱為內(nèi)注意力(inner-attention),在序列內(nèi)部做注意力尋找序列內(nèi)部的聯(lián)系,不僅降低模型計(jì)算復(fù)雜度,同時(shí)在機(jī)器翻譯任務(wù)中取得不錯(cuò)的成績(jī)。
給定一個(gè)長(zhǎng)文本并生成其摘要是文本摘要領(lǐng)域一項(xiàng)比較困難的任務(wù),已有的深度神經(jīng)網(wǎng)絡(luò)模型在處理這項(xiàng)任務(wù)時(shí),會(huì)出現(xiàn)生成摘要語句不通順、詞句重復(fù)等問題。Nema等[6]采用正交化上下文向量的方法,應(yīng)用于基于查詢的生成式摘要任務(wù)中,有效減少了生成摘要句內(nèi)重復(fù)問題的發(fā)生。另外,Paulus 等[19]首次將強(qiáng)化學(xué)習(xí)引入文本摘要任務(wù)中,并提出一個(gè)新的模型,該模型引入內(nèi)嵌注意力機(jī)制(intra-attention mechanism)和新的訓(xùn)練方法,有效地提升了自動(dòng)文本摘要的生成質(zhì)量。同時(shí),引入強(qiáng)化學(xué)習(xí)的訓(xùn)練方法對(duì)摘要結(jié)果進(jìn)行優(yōu)化,減輕exposure bias問題,更進(jìn)一步地提升摘要表現(xiàn)。但基于強(qiáng)化學(xué)習(xí)的訓(xùn)練方法的參數(shù)調(diào)整過程相對(duì)其他方法更難,且其訓(xùn)練時(shí)間更長(zhǎng),因此本文沒有實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)訓(xùn)練方法。
近年來,CNN 在許多自然語言處理任務(wù)中取得了巨大成功,例如文本分類[20]、情感分析[21]和神經(jīng)語言模型[22]等。CNN 進(jìn)行窗口式遍歷,方便并行計(jì)算,通過層疊方法增大感受野,能從輸入文本中提取更多的語境特征,獲取抽象特征信息[8,23]。RNN 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)CNN 來說更簡(jiǎn)單,常見的RNN 包括LSTM 和門控循環(huán)單元(Gated Recurrent Unit,GRU)。由于RNN 某一時(shí)刻的隱藏狀態(tài)與它前一時(shí)刻的隱藏狀態(tài)相關(guān),導(dǎo)致其無法進(jìn)行并行計(jì)算,因此訓(xùn)練速度相對(duì)CNN來說更慢;但也正是因?yàn)檫@個(gè)原因,RNN 可以保留長(zhǎng)序列的隱藏信息,擴(kuò)展到更長(zhǎng)的序列,很適合序列建模,適用于許多NLP任務(wù),比如:語言建模、機(jī)器翻譯、語音識(shí)別等[24]。
文本摘要由于受詞表大小的影響,會(huì)出現(xiàn)OOV 問題。為了解決這個(gè)問題,Gu 等[25]提出了COPYNET 模型,模型在基于注意力的Seq2Seq 模型基礎(chǔ)上,準(zhǔn)確地組合選擇使用COPY 模式和generate 模式,生成語義連貫的摘要,且摘要在ROUGE評(píng)估上的表現(xiàn)相對(duì)Hu等[18]提出的RNN、RNN content 模型有較大的提升。此外,See 等[26]提出Pointer-Generator 網(wǎng)絡(luò)模型。該模型在標(biāo)準(zhǔn)的Seq2Seq 加注意力機(jī)制模型的基礎(chǔ)上,通過指向(pointing)和生成(generating)兩種模式把抽取式摘要和生成式摘要結(jié)合起來,并加入coverage 機(jī)制,在文本摘要領(lǐng)域取得較好的表現(xiàn)。Wang 等[4]提出Reinforced-Topic-ConvS2S 模型,該模型在基于卷積神經(jīng)網(wǎng)絡(luò)的Seq2Seq 框架(ConvS2S)[9]基礎(chǔ)上引入主題模型注意力機(jī)制,并通過使用強(qiáng)化學(xué)習(xí)方法進(jìn)行優(yōu)化,使得通過模型產(chǎn)生的摘要具有更好的連貫性和多樣性。
基于上述研究,本文結(jié)合CNN 與RNN 的優(yōu)勢(shì),提出一種結(jié)合雙注意力和指針覆蓋機(jī)制的生成式摘要序列到序列模型。
本文提出雙注意力與指針覆蓋結(jié)合的生成式摘要模型,其主要框架如圖1所示。模型主要包含四個(gè)部分:隱藏特征提取器、編碼器、解碼器以及Pointer-Generator網(wǎng)絡(luò)。
圖1 雙注意力和指針覆蓋結(jié)合的生成式摘要模型
模型的隱藏特征提取器由詞嵌入層、局部注意力層以及CNN 三個(gè)部分組成,抽取輸入文本更高層次隱藏特征后輸入編碼器進(jìn)行編碼,然后將編碼器最后一個(gè)RNN 單元的隱藏狀態(tài)作為解碼器的輸入,進(jìn)行解碼工作,解碼器最后一個(gè)解碼步的輸出作為模型的輸出。各層主要說明如下:
(1)輸入層:該層的輸入是原文本序列,詞與詞之間通過空格分隔開來。
(2)詞嵌入層:將輸入層輸入的文本轉(zhuǎn)換為相應(yīng)的詞向量表示。
(3)局部注意力層:采用局部注意力機(jī)制,獲取一定窗口范圍內(nèi)給定文本序列中相應(yīng)詞語的重要性,并根據(jù)其重要性賦予不同的權(quán)重值。在計(jì)算權(quán)重的過程中,為保證不丟失輸入文本首尾兩端的上下文信息,需要對(duì)首尾兩端進(jìn)行全0補(bǔ)齊(padding)操作。然后,輸出輸入序列通過局部注意力加權(quán)后的詞向量表示。
(4)卷積層:卷積層將局部注意力層的輸出詞向量作為輸入,與局部注意力層類似,卷積層也需要對(duì)詞向量進(jìn)行padding 來避免首尾兩端文本的上下文信息丟失。同時(shí),卷積層通過多個(gè)不同大小的卷積核,獲取輸入文本更深層次的n-gram 特征。最后,將各個(gè)特征映射串接起來,作為輸入文本最終的詞向量表示。
(5)編碼器:編碼器由雙向LSTM神經(jīng)網(wǎng)絡(luò)組成,在t 時(shí)刻LSTM單元輸出的隱藏狀態(tài)為ht。
(6)具有注意力機(jī)制的解碼器:解碼器由單向LSTM組成,每個(gè)解碼單元有兩個(gè)輸入:上一解碼步的隱藏狀態(tài)以及當(dāng)前時(shí)間步文本序列的輸入。解碼器最初的隱藏狀態(tài)通過編碼器最后一個(gè)編碼單元的隱藏狀態(tài)hn進(jìn)行初始化?!癊OS”表示原文本終止符,同時(shí)也代表解碼開始符。st表示第t 個(gè)解碼步LSTM單元的隱藏狀態(tài),表示預(yù)測(cè)文本,yt-1則表示輸入文本,在訓(xùn)練階段,該文本是參考摘要的第t 個(gè)詞,而在測(cè)試階段由于沒有參考摘要作為輸入,則用前一解碼步的預(yù)測(cè)輸入代替,即在測(cè)試階段
(7)Pointer-Generator網(wǎng)絡(luò):該網(wǎng)絡(luò)是解碼器中的一部分,attention weighted matrix 表示注意力加權(quán)矩陣,context vector 表示帶注意力的上下文向量。 P( )w 表示當(dāng)前時(shí)刻預(yù)測(cè)詞為w 的概率,pgen是一個(gè)生成概率,表示該目標(biāo)詞是給定詞表中詞w 的概率,表示目標(biāo)詞是OOV詞表中詞w 的概率。
下面,將對(duì)模型各組成部分進(jìn)行詳細(xì)介紹。
3.1.1 詞嵌入
對(duì)于輸入文本s={w1,w2,…,wi,…,wn-1,wn},wi表示文本中第i 個(gè)詞,n 表示文本長(zhǎng)度。經(jīng)過詞嵌入層處理后,可以得到該文本的詞嵌入表示矩陣X={x1,x2,…,xi,…,xn-1,xn},其中,xi∈?d,d 表示詞嵌入的維度。
3.1.2 局部注意力
模型中的局部注意力模塊可以學(xué)習(xí)給定詞序列窗口中所有詞提供的信息量的特征[27],使用局部注意力后,可以獲得給定窗口范圍內(nèi)相對(duì)更重要的詞的信息,并且保持輸入序列中重要詞語的相對(duì)位置不變。記表示長(zhǎng)度為n 的文本的詞嵌入。通過滑動(dòng)內(nèi)核將注意力應(yīng)用到這個(gè)序列,用xi表示中心詞,w 表示內(nèi)核寬度,即局部注意力的窗口大小。最后,計(jì)算每個(gè)詞的加權(quán)分?jǐn)?shù),Wl-att∈?w×d表示注意力權(quán)重,bl-att表示偏置,其均為學(xué)習(xí)參數(shù)。
其中,xni表示長(zhǎng)度為n 的序列中第i 個(gè)詞xi的加權(quán)詞嵌入。
3.1.3 卷積神經(jīng)網(wǎng)絡(luò)
CNN 具有從輸入文本中提取更多語境特征,獲取文本局部信息的優(yōu)點(diǎn)。為減輕生成摘要語句不通順、語義不相關(guān)的問題,模型加入了CNN,并通過設(shè)置不同的卷積核大小來獲取文本更多的n-gram特征。卷積神經(jīng)網(wǎng)絡(luò)一般有兩個(gè)核心層,即卷積層和池化層??紤]到CNN 的池化層會(huì)丟失文本的位置信息,所以本模型中的CNN只采用卷積層,而沒有使用池化層。圖2展示了卷積神經(jīng)網(wǎng)絡(luò)對(duì)文本的處理過程。
圖2 卷積神經(jīng)網(wǎng)絡(luò)對(duì)文本的處理
卷積層的輸入是上一個(gè)局部注意力層的輸出。輸入文本經(jīng)過局部注意力處理后,得到注意力加權(quán)嵌入矩陣Xn∈?n×d。假設(shè)用xi:i+j表示向量xi,xi+1,…,xj的串接,卷積過濾器用k ∈?h×d表示,h 為一個(gè)卷積窗口中詞的個(gè)數(shù),那么使用詞xi:i+h-1生成的特征ci可由如下公式表示:
其中,b ∈? 是一個(gè)偏置項(xiàng),f 是一個(gè)非線性激活函數(shù)tanh。將過濾器應(yīng)用到整個(gè)嵌入矩陣,得到文本在該過濾器下的特征映射C。
在局部注意力層和卷積層,為了確保嵌入尺寸大小不變,所以在每層矩陣的邊界上進(jìn)行了全0 填充(zeropadding)的操作,以保證各層向前傳播結(jié)果的矩陣大小與當(dāng)前層的矩陣大小一致。
為了獲得文本更多層次的n-gram 特征,模型采用了多個(gè)不同大小的卷積核,最后串接各個(gè)特征映射并將其作為輸入文本的特征表示。假設(shè)共有j 個(gè)不同大小的卷積核,則最終的特征矩陣F 可記作:
模型的encoder-decoder部分以Nallapati等[17]提出模型作為baseline,其中,encoder 部分使用雙向LSTM,decoder部分使用單向LSTM。
LSTM 在簡(jiǎn)單RNN 模型的基礎(chǔ)上添加了一個(gè)遺忘門(forget gate),使其更易于學(xué)習(xí)長(zhǎng)期依賴[28]。它由輸入門(input gate)、遺忘門和輸出門(output gate)三個(gè)部分組成,并通過下面等式組合這三個(gè)門來計(jì)算t 時(shí)刻隱藏狀態(tài):
ft代表遺忘門,it代表輸入門,ot代表輸出門,ct表示上下文,ht表示LSTM 當(dāng)前時(shí)刻的輸出。Wf、Wi、Wo、Wc分別是遺忘門、輸入門、輸出門、上下文權(quán)重,bf、bi、bo、bc分別是遺忘門、輸入門、輸出門、上下文偏置,σ 是sigmoid非線性函數(shù)。
在編碼階段,模型使用雙向的LSTM計(jì)算輸入序列的隱藏狀態(tài)h ,記輸入序列的第t 個(gè)詞的隱藏狀態(tài)為ht,其前向和反向隱藏狀態(tài)分別用, 表示向量連接運(yùn)算符,則t 時(shí)刻隱藏狀態(tài)為因此,每個(gè)解碼器的隱藏狀態(tài)ht是對(duì)文本中第t 個(gè)詞和其上下文信息編碼后的結(jié)果[29]。
在解碼器中,模型加入注意力機(jī)制并使用單向的LSTM。在每個(gè)解碼時(shí)間步t ,編碼器隱藏狀態(tài)hj與第t 個(gè)目標(biāo)詞相關(guān)性權(quán)重etj由解碼器前一時(shí)刻的隱藏狀態(tài)st-1,當(dāng)前時(shí)刻的輸入文本yt-1(在模型的訓(xùn)練階段,yt-1是參考摘要中相應(yīng)的詞;在測(cè)試階段,則是解碼器t-1 時(shí)刻的輸出,見圖1 中解碼器部分)和hj共同計(jì)算得出:
其中f 是一個(gè)非線性函數(shù)。然后,使用softmax 回歸處理etj,得到第j 個(gè)詞的注意力權(quán)重:
由atj可以計(jì)算得到第t 個(gè)目標(biāo)詞的帶注意力的上下文向量ct:
通過LSTM 單元計(jì)算出當(dāng)前時(shí)刻解碼器的隱藏狀態(tài)st:
生成目標(biāo)詞的概率計(jì)算如下:
生成式摘要模型對(duì)輸入文本進(jìn)行編碼,將文本中的詞轉(zhuǎn)換為向量形式提取語言特征,然后再進(jìn)行解碼將詞嵌入轉(zhuǎn)換為文本。在這個(gè)過程中,模型可能會(huì)生成新詞,這些詞既不在詞表中,也沒有在原文本中出現(xiàn)過,或者在原文本中出現(xiàn)過,但由于受詞表大小的限制,不在模型使用的詞匯表中,這就導(dǎo)致OOV 問題的形成。為了解決受詞表大小影響而產(chǎn)生的OOV 問題,模型采用了pointer-generator 網(wǎng)絡(luò),該網(wǎng)絡(luò)可以通過pointing 機(jī)制從原文本中復(fù)制詞,同時(shí),也可以從給定的詞表中生成詞。對(duì)于解碼時(shí)間步t 來說,它的生成概率是由當(dāng)前時(shí)刻解碼器輸入xt、隱藏狀態(tài)st以及上下文向量ct計(jì)算得出:
其中,Wc、Ws、Wx分別是上下文權(quán)重、隱藏狀態(tài)權(quán)重、輸入權(quán)重,bgen為偏置項(xiàng),σ 是sigmoid 非線性函數(shù)。pgen可以看成是生成一個(gè)詞表中的詞,或通過注意力分布at從輸入文本中復(fù)制一個(gè)詞的軟開關(guān)。對(duì)于每一個(gè)輸入文本都有一個(gè)OOV 擴(kuò)展詞表,該詞表用于存儲(chǔ)該文本所有不在給定詞表中的未登錄詞。引入OOV詞表后,解碼時(shí)間步t 生成目標(biāo)詞w 的概率計(jì)算公式如下:
在生成目標(biāo)詞概率計(jì)算中,假如當(dāng)前時(shí)刻的生成詞是一個(gè)未登錄詞,則Pvocab( )w =0;類似的,假如生成詞沒有在原文本中出現(xiàn)過,且不在詞表中則P這時(shí),生成詞用“[UNK]”表示。
句內(nèi)重復(fù)是Seq2Seq模型中常見的問題,特別是在生成多句子的長(zhǎng)文本任務(wù)中尤為常見[26],為解決這個(gè)問題,模型引入coverage機(jī)制。
首先,記第t 個(gè)解碼步之前所有解碼步的注意力分布之和為覆蓋向量covt:
covt表示到第t 個(gè)解碼步為止,已經(jīng)被注意力機(jī)制覆蓋到的源文本的向量表示。由于在解碼步t=0 時(shí)還沒有文本被讀取覆蓋,所以,在這個(gè)解碼步的覆蓋向量cov0是一個(gè)0向量。
隨后,將covt作為注意力機(jī)制的一個(gè)附加的輸入內(nèi)容,因此,公式(13)被更新為:
最后,為了避免在同一個(gè)摘要句子中生成重復(fù)的詞,模型采用如下的方式來更新計(jì)算t 時(shí)刻的總損失losst:
其中,cov_losst表示覆蓋損失,用來懲罰同一位置反復(fù)出現(xiàn)的情況,wt表示第t 個(gè)時(shí)間步的目標(biāo)詞,表示在當(dāng)前時(shí)刻的目標(biāo)損失值,λ 參數(shù)的默認(rèn)值為1.0。
本文使用近年來廣泛應(yīng)用于自動(dòng)文本摘要任務(wù)的CNN/Daily Mail 數(shù)據(jù)集作為評(píng)測(cè)數(shù)據(jù)集。該數(shù)據(jù)集最初應(yīng)用在機(jī)器閱讀理解任務(wù)中[30],后由Nallapati 等[17]整理并應(yīng)用于文本摘要任務(wù)。它包含286 817 對(duì)訓(xùn)練集,13 368 對(duì)驗(yàn)證集,以及11 487 對(duì)測(cè)試集,每個(gè)原文本對(duì)應(yīng)多個(gè)摘要句子。訓(xùn)練集中的源文檔平均每個(gè)文檔包含766個(gè)詞,29.74個(gè)句子;相對(duì)應(yīng)的摘要平均包含53個(gè)詞和3.72 個(gè)句子。文獻(xiàn)[26]提供了該數(shù)據(jù)集的處理腳本(https://github.com/abisee/cnn-dailymail),為了與之具有可比性,所以本文也采用了該腳本進(jìn)行CNN/Daily Mail數(shù)據(jù)集預(yù)處理,并獲得數(shù)據(jù)的未標(biāo)記版本。
與Nallapati等人[17]在論文中采用的評(píng)價(jià)標(biāo)準(zhǔn)相同,本文的文本摘要質(zhì)量采用ROUGE[31]評(píng)估中ROUGE-1、ROUGE-2 和ROUGE-L 的F1 值進(jìn)行評(píng)估,分值由ROUGE 摘要評(píng)估包的Python 包裝器pyrouge(https://pypi.org/project/pyrouge/)計(jì)算得到,該包裝器為官方的ROUGE評(píng)估提供了一個(gè)簡(jiǎn)單可用的接口。
文獻(xiàn)[32]指出,模型使用詞表大小為150 000 相對(duì)詞表大小為50 000 來說,時(shí)間成本增加了一倍,但其測(cè)試表現(xiàn)分?jǐn)?shù)卻略有下降。另外,由于模型使用了兩個(gè)編碼器,所以最終模型使用詞表大小為40 000,模型表現(xiàn)相對(duì)baseline 仍有提升。綜上,考慮到本文模型使用了局部注意力和卷積神經(jīng)網(wǎng)絡(luò),本模型的詞表大小也設(shè)置為40 000。
此外,在模型的實(shí)驗(yàn)過程中,其他參數(shù)設(shè)置如下:詞向量的維度為128,編碼器隱藏層維度為200,解碼器隱藏層維度大小為400。模型使用AdagradOptimizer優(yōu)化器,學(xué)習(xí)率的初始值設(shè)置為0.03,增量器初始值(initial_accumulator_value)設(shè)為0.1。局部注意力窗口大小為5,卷積神經(jīng)網(wǎng)絡(luò)相關(guān)參數(shù)如表1。
表1 卷積神經(jīng)網(wǎng)絡(luò)相關(guān)參數(shù)設(shè)置
在訓(xùn)練階段batch 大小設(shè)置為32;為減少驗(yàn)證過程所需的內(nèi)存空間,并使訓(xùn)練和驗(yàn)證在同一個(gè)GPU 中運(yùn)行,在驗(yàn)證階段,將批次大小設(shè)置為8,但對(duì)于每個(gè)驗(yàn)證步,都迭代驗(yàn)證數(shù)據(jù)100次,這類似于在批次大小為800的數(shù)據(jù)基礎(chǔ)上尋找驗(yàn)證誤差。集束搜索(beam search)大小設(shè)置為4。對(duì)于所有隨機(jī)初始化的參數(shù)變量,都滿足標(biāo)準(zhǔn)差為1E-4的正態(tài)分布。
CNN/Daily Mail 數(shù)據(jù)集中的每一對(duì)數(shù)據(jù)由一篇文章和一個(gè)多句子的摘要組成。在實(shí)驗(yàn)過程中,只取文章的前400 個(gè)詞,并將摘要限制到100 個(gè)詞。在測(cè)試模式下,采用beam search算法生成至少40個(gè)詞。
本文以基于注意力的Seq2Seq模型為baseline,結(jié)合局部注意力、卷積神經(jīng)網(wǎng)絡(luò)、pointer-generator網(wǎng)絡(luò),以及coverage 機(jī)制來解決現(xiàn)有文本摘要模型存在的句內(nèi)重復(fù)、OOV 問題。為驗(yàn)證模型的效果,在實(shí)驗(yàn)中,與多個(gè)目前表現(xiàn)較好的模型效果進(jìn)行了驗(yàn)證比較。
4.4.1 對(duì)比模型
Seq2Seq+Attn:融合注意力與encoder-decoder 的基線模型。
abstractive model[17]:模型在基線模型的基礎(chǔ)上加入時(shí)空注意力(Temporal Attention),防止解碼器重復(fù)關(guān)注已生成文本內(nèi)容,解決在長(zhǎng)文本的多句子摘要中生成重復(fù)句子的問題。
pointer-generator[26]:模型將基線模型與指針網(wǎng)絡(luò)結(jié)合,允許通過指向從原文本中復(fù)制詞,也可以從一個(gè)定長(zhǎng)詞匯表中生成詞。
pointer-generator+coverage[26]:該模型在pointer-generator基礎(chǔ)上加入coverage機(jī)制,對(duì)解碼器重復(fù)關(guān)注同一位置信息的情況進(jìn)行懲罰,生成重復(fù)的文本。
WordNet+Dual-attn+PGN+Cov[32]:模型基于WordNet句子排名算法抽取重要句子,融合抽取式摘要與生成式摘要方法,并引入pointer-generator 網(wǎng)絡(luò)和coverage 機(jī)制,在CNN/Daily Mail數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),取得良好的效果。
ML+RL+Intra-attn[19]:模型在最初的encoder-decoder模型基礎(chǔ)上引入內(nèi)注意力(intra-attention)機(jī)制,并首次將強(qiáng)化學(xué)習(xí)應(yīng)用到長(zhǎng)文本摘要任務(wù)中,結(jié)合監(jiān)督學(xué)習(xí)方法對(duì)目標(biāo)函數(shù)進(jìn)行混合訓(xùn)練。
RL+Intra-attn[19]:在序列到序列模型中使用內(nèi)部注意力機(jī)制,采用強(qiáng)化學(xué)習(xí)方法訓(xùn)練目標(biāo)函數(shù)。
4.4.2 本文提出的模型
DAPC-1:模型以pointer-generator 模型為基礎(chǔ),在詞嵌入層后,encoder之前加入一個(gè)局部注意力層,提取文本的局部重要性特征信息。
DAPC-2:模型以pointer-generator 模型為基礎(chǔ),在詞嵌入層后,encoder之前加入一個(gè)卷積層,以獲取輸入文本更深層次的隱藏n-gram語言特征。
DAPC-3:在DAPC-1模型基礎(chǔ)上,局部注意力層之后,encoder層之前加入卷積層,綜合考慮文本信息的重要性和深層隱藏特征,對(duì)輸入文本進(jìn)行建模。
DAPC-4:在DAPC-3 模型基礎(chǔ)上,加入coverage 機(jī)制,在每個(gè)解碼步防止重復(fù)關(guān)注相同信息。
實(shí)驗(yàn)結(jié)果如表2 所示。表中部分模型帶有下標(biāo)“a”,表示該模型的數(shù)據(jù)集采用的是具有命名實(shí)體和數(shù)字標(biāo)注處理的CNN/Daily Mail 數(shù)據(jù)集;其他則是在未標(biāo)注處理的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)的結(jié)果。黑色加粗?jǐn)?shù)字表明模型的最好效果。
表2 的實(shí)驗(yàn)結(jié)果表明,在本文提出的四個(gè)模型中,DAPC-4 模型在ROUGE-1、ROUGE-2、ROUGE-L 三項(xiàng)指標(biāo)中都取得最好的效果。
本文提出的四個(gè)模型表現(xiàn)效果,相對(duì)Seq2Seq+Attn及abstractive model 均有大幅提升;DAPC-1、DAPC-2、DAPC-3、DAPC-4四個(gè)模型在pointer-generator模型基礎(chǔ)上進(jìn)行改進(jìn),從ROUGE評(píng)分來看,相對(duì)pointer-generator模型來說,DAPC-2 模型的ROUGE-1 指標(biāo)得分提高了0.35 個(gè)百分點(diǎn),ROUGE-2 評(píng)分提高了0.18 個(gè)百分點(diǎn),DAPC-1、DAPC-3、DAPC-4三個(gè)模型在三個(gè)指標(biāo)上的得分均有不同程度提升。
表2 實(shí)驗(yàn)結(jié)果對(duì)比
與文獻(xiàn)[19]中提出的引入強(qiáng)化學(xué)習(xí)訓(xùn)練方法的模型結(jié)果相比,盡管本文提出模型在ROUGE-1、ROUGE-L標(biāo)準(zhǔn)下沒有其表現(xiàn)效果好,但在ROUGE-2評(píng)價(jià)指標(biāo)上,本文提出的模型表現(xiàn)效果均比其表現(xiàn)效果好,特別是DAPC-4 模型在ROUGE-2 評(píng)價(jià)指標(biāo)下相比其最好得分提升了2.33 個(gè)百分點(diǎn)。分析原因,可能與RL 模型使用的是帶有標(biāo)注處理的CNN/Daily Mail數(shù)據(jù)集有關(guān)。
與文獻(xiàn)[32]中的模型相比,DAPC-4模型在ROUGE-1、ROUGE-2、ROUGE-L三個(gè)指標(biāo)上分別提升0.29%、1%、0.83%。數(shù)據(jù)表明,使用局部注意力與卷積相結(jié)合相對(duì)先對(duì)文本做抽取式摘要再編碼的方法而言,其能更有效地提取原文本的重點(diǎn)信息和深層語言特征,減輕非重點(diǎn)信息對(duì)重要信息的稀釋作用,從而提升文本摘要質(zhì)量。值得注意的是,與文獻(xiàn)[17,19,26,32]模型相比,本文提出的DAPC-4 模型具有最好的ROUGE-2 表現(xiàn),相比之前最好的模型提升了0.87個(gè)百分點(diǎn)。
圖3展示了模型生成的一個(gè)摘要樣例。從圖3可以看出,模型生成的摘要文本語義連貫,沒有句內(nèi)重復(fù)及OOV 詞,且生成了新詞“beat”,對(duì)原文內(nèi)容方面有較好的覆蓋,與參考摘要相似,總體表現(xiàn)良好。
圖3 生成摘要案例
針對(duì)目前基于深度學(xué)習(xí)的生成式文本摘要方法存在語句不通順、句內(nèi)重復(fù)以及未登錄詞問題,研究提出了基于雙層注意力的Seq2Seq 文本摘要模型。該模型集成了注意力機(jī)制、CNN 以及RNN 在處理文本方面的優(yōu)勢(shì),與pointer-generator 網(wǎng)絡(luò)和coverage 機(jī)制相結(jié)合,在不帶標(biāo)簽的CNN/Daily Mail數(shù)據(jù)集上進(jìn)行文本摘要任務(wù),取得了良好的效果。下一步,將進(jìn)一步對(duì)模型進(jìn)行改進(jìn),引入強(qiáng)化學(xué)習(xí)機(jī)制,解決exposure bias問題;此外,還考慮將該模型在中文數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn)驗(yàn)證,提升對(duì)多語言的通用性。