董張慧雅,張 凡,王 莉
(1.太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,山西 太原 030600; 2.太原理工大學(xué) 軟件學(xué)院,山西 太原 030600;3.太原理工大學(xué) 大數(shù)據(jù)學(xué)院,山西 太原 030600)
關(guān)于自動(dòng)文摘的研究方法主要兩種方法:抽取式方法[1]和生成式方法。抽取式方法主要提取原文中的重要句子或段落組成摘要,需要考慮摘要內(nèi)容的相關(guān)性和冗余性。而生成式方法是基于對(duì)文檔的理解,然后歸納總結(jié)生成摘要,所以它更接近摘要的本質(zhì),然而,在抽象概括方面仍有很大的改進(jìn)空間,這也是我們研究的主要方向。Rush等[2]提出基于注意力的端到端網(wǎng)絡(luò)模型來(lái)生成摘要,在此基礎(chǔ)上許多工作都得到了改進(jìn);See等[3]提出了一種指針生成器網(wǎng)絡(luò)(pointer-generator network),該模型通過(guò)指針從文檔中復(fù)制單詞,解決了未登錄單詞(out-of-vocabulary,OOV)的問(wèn)題,還增加了一種覆蓋機(jī)制來(lái)解決輸出重復(fù)的問(wèn)題;Paulus等[4]提出一種目標(biāo)函數(shù),該函數(shù)結(jié)合了交叉熵?fù)p失與從策略梯度得到的獎(jiǎng)勵(lì),減少了暴露偏差[5];Liu等[6]將生成對(duì)抗網(wǎng)絡(luò)[7]與強(qiáng)化學(xué)習(xí)的策略梯度算法[8]結(jié)合起來(lái)并應(yīng)用到自然語(yǔ)言處理領(lǐng)域,它采用對(duì)抗策略訓(xùn)練網(wǎng)絡(luò),并取得較高的ROUGE分?jǐn)?shù)[9]。Hsu等[10]提出了提取式和抽象式結(jié)合的方法生成摘要,使得文檔的上下文向量表示更準(zhǔn)確地反映了文檔主旨。
以上方法都是基于單詞層注意力對(duì)文檔進(jìn)行表征,忽略了句子信息,這對(duì)于非頻繁但重要的單詞并不友好,很容易丟失文檔中的重要信息。事實(shí)上,關(guān)鍵的句子往往反映了句子中的單詞也非常重要。為此,本文提出一種基于聯(lián)合注意力的生成對(duì)抗網(wǎng)絡(luò)模型,將句子的信息融入對(duì)單詞向量的表示中,減少對(duì)非重要句子中單詞的關(guān)注度并提高重要句子中單詞的注意力,從而提高了對(duì)文檔上下文向量表示的合理性,使得最終生成的摘要質(zhì)量更高。另外,為了更好的訓(xùn)練效果,提出一種聯(lián)合損失函數(shù)訓(xùn)練生成器。
為了驗(yàn)證本文所提模型的有效性,在公共數(shù)據(jù)集CNN/Daily Mail 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并與相關(guān)主流模型進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果表明,該方法可有效提高自動(dòng)文摘的質(zhì)量。
本文使用生成對(duì)抗網(wǎng)絡(luò)機(jī)制[7]訓(xùn)練兩個(gè)模型:生成器和判別器。生成器采用編碼器-解碼器結(jié)構(gòu),編碼器通過(guò)雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(bi-directional long short-term memory,Bi-LSTM)和聯(lián)合注意力機(jī)制得到文檔的上下文向量表示,解碼器使用長(zhǎng)短記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)生成摘要,最后將生成的摘要和參考摘要(人工總結(jié)的摘要)共同輸入到判別器中,迭代訓(xùn)練生成器和判別器。整體模型如圖1所示。
圖1 基于聯(lián)合注意力的生成對(duì)抗網(wǎng)絡(luò)訓(xùn)練模型
(1)
圖2 聯(lián)合單詞層和句子層注意力
生成器采用編碼器-解碼器結(jié)構(gòu),單詞序列w輸入Bi-LSTM轉(zhuǎn)換成編碼器隱藏狀態(tài)h={h1,h2,…,hm,…},在第t步時(shí),解碼器(LSTM)接受參考摘要中的第t-1個(gè)單詞嵌入生成解碼器隱藏狀態(tài)st,根據(jù)編碼器和解碼器的隱藏狀態(tài),得到在t時(shí)刻文本單詞的注意力分布為
(2)
αt=softmax(et)
(3)
(4)
該上下文向量表示可以看作當(dāng)前步對(duì)文檔的表征,再經(jīng)過(guò)與解碼器隱藏狀態(tài)連接和兩個(gè)線性層,可以得到在固定詞匯表上的單詞分布,公式如下所示
(5)
(6)
(7)
判別器是一種二元分類器,其目的是區(qū)分輸入的摘要是由人產(chǎn)生的還是由機(jī)器產(chǎn)生的。因?yàn)榫矸e神經(jīng)網(wǎng)絡(luò)在文本分類中顯示了極大的有效性[12],本文使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)輸入序列進(jìn)行編碼。先使用不同大小的過(guò)濾器得到多種特征,然后對(duì)這些特征應(yīng)用最大池化操作。這些合并的特征被傳遞給一個(gè)全連接的softmax層,最后輸出為真或?yàn)榧俚母怕省?/p>
生成對(duì)抗網(wǎng)絡(luò)主要采用零和博弈的思想,生成器G與判別器D是博弈的兩方,判別器盡可能地區(qū)分輸入的摘要是由人生成的還是由機(jī)器生成的,而生成器盡可能地產(chǎn)生更真實(shí)的高質(zhì)量摘要騙過(guò)判別器,這樣在博弈過(guò)程中生成器被訓(xùn)練的越來(lái)越好,生成的摘要越來(lái)越真實(shí),像人類寫的一樣,而判別器也被訓(xùn)練的更加“聰明”,有更強(qiáng)的區(qū)分能力。生成器與判別器的最大最小博弈函數(shù)為式(8)
(8)
Y表示模型生成的摘要或者人工生成的參考摘要,D(Y)是判別器判別輸入摘要為真的概率,或者說(shuō)是獎(jiǎng)勵(lì)。越高的獎(jiǎng)勵(lì)說(shuō)明生成的摘要越好,判別器與生成器相互對(duì)抗,最后訓(xùn)練的理想結(jié)果是判別器判別不出輸入的摘要是由人類生成的還是由機(jī)器生成的,同時(shí)生成器生成的摘要質(zhì)量也很高。
按照?qǐng)D1所示的自動(dòng)文摘生成模型,本文提出了由極大似然估計(jì)損失Lml、策略梯度損失Lpg、不一致注意力損失Linc以及句子層注意力損失Lsen構(gòu)成的聯(lián)合損失函數(shù)用于訓(xùn)練生成器。本節(jié)將依次介紹判別器、句子層注意力和生成器各自的損失函數(shù)。
在生成器與判別器的對(duì)抗訓(xùn)練過(guò)程中,判別器作為生成器的獎(jiǎng)勵(lì)函數(shù),它判別輸入的文本是由人工生成的還是由機(jī)器生成的。通過(guò)對(duì)判別器的動(dòng)態(tài)更新,迭代地改進(jìn)生成器,使其生成質(zhì)量更好的摘要。一旦生成器生成高質(zhì)量和更加真實(shí)的摘要,就重新訓(xùn)練判別器,訓(xùn)練判別器公式
Ldis=minΦ-EY~Pdata[logDΦ(Y)]-EY~GΘ[log(1-DΦ(Y))]
(9)
DΦ(Y)是判別器給輸入序列的獎(jiǎng)勵(lì),它代表輸入序列為真的概率,即判別輸入序列為人工生成的概率。Φ和Θ分別代表了判別器和生成器的參數(shù)集。該公式的含義是判別器給參考摘要盡可能高的分?jǐn)?shù),給生成器生成的摘要盡量低的分?jǐn)?shù),這樣損失函數(shù)的值才會(huì)小。
為了鼓勵(lì)單詞層和句子層這兩個(gè)層的注意力在訓(xùn)練過(guò)程中有一致的學(xué)習(xí)目標(biāo)和一致性,即在該單詞注意力很高時(shí)該單詞所屬的句子注意力也很高,本文采用不一致注意力損失函數(shù)
(10)
在計(jì)算某個(gè)單詞的損失時(shí),只選取其前k個(gè)單詞,對(duì)它們的單詞層注意力和所在句子的句子層注意力相乘并求和,依次計(jì)算T個(gè)單詞的損失函數(shù),進(jìn)行相加取均值得到整篇摘要的不一致?lián)p失,T是摘要的單詞總數(shù)。注意到如果采用兩階段的訓(xùn)練方式,式(1)是唯一句子層注意力參與到編碼器的部分,不一致?lián)p失只有在端到端訓(xùn)練時(shí)才加入到生成器的損失函數(shù)中。
為了得到句子層的注意力分布,本文參考了Nallapati等[11]的方法,采用雙層的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),第一層得到句子的表征,第二層作為分類器得到每個(gè)句子的注意力大小。首先第一層輸入句子中每個(gè)單詞的單詞嵌入,經(jīng)過(guò)雙向的GRU(gated recurrent unit)網(wǎng)絡(luò)得到每個(gè)單詞的隱藏狀態(tài),再經(jīng)過(guò)向量求和得到每個(gè)句子的表征。第二層輸入剛剛得到的每個(gè)句子的表征,經(jīng)過(guò)雙向GRU網(wǎng)絡(luò)和一個(gè)sigmoid函數(shù),最終得到每個(gè)句子的注意力β,該網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 句子層注意力結(jié)構(gòu)
在訓(xùn)練句子層注意力網(wǎng)絡(luò)時(shí),由于在頂層采用了sigmoid激活函數(shù),所以本文采用交叉熵?fù)p失函數(shù)訓(xùn)練網(wǎng)絡(luò),損失函數(shù)如下
(11)
式中:gn∈{0,1}是第n個(gè)句子的真實(shí)標(biāo)簽,N是參考摘要中的句子總數(shù)。當(dāng)gn=1時(shí),表示第n個(gè)句子含有的信息量高,若gn=0,則表示第n個(gè)句子含有的信息量少。而句子層注意力就是為了得到具有高信息量的句子,所以準(zhǔn)確地為句子打標(biāo)簽至關(guān)重要。為了獲得真實(shí)標(biāo)簽g={gn}n,首先,通過(guò)計(jì)算句子sn和參考摘要的ROUGE-L值獲得文檔中每個(gè)句子sn含有的信息量,然后我們根據(jù)ROUGE-L值對(duì)句子排序并從高到低選擇信息含量豐富的句子。如果新句子可以提高已經(jīng)選擇的句子的信息量,則把該句子的標(biāo)簽gn置為1,并加入已經(jīng)選擇的句子集合中,最后通過(guò)式(11)訓(xùn)練句子層注意力網(wǎng)絡(luò)。
當(dāng)判別器更新后,再訓(xùn)練生成器G,生成器的損失由極大似然估計(jì)損失Lml、策略梯度損失Lpg、不一致注意力損失Linc以及句子層注意力損失Lsen組成,分別賦予λ1,λ2,λ3,λ4權(quán)重,極大似然估計(jì)損失為式(12)
(12)
通過(guò)最小化極大似然估計(jì)損失,使得生成器生成的文本越來(lái)越接近參考摘要。由于極大似然估計(jì)存在兩個(gè)重要問(wèn)題。第一,評(píng)價(jià)指標(biāo)為ROUGE評(píng)價(jià)指標(biāo),而損失函數(shù)為極大似然估計(jì)損失,評(píng)估指標(biāo)和訓(xùn)練損失不同。第二,解碼器在訓(xùn)練過(guò)程中每個(gè)時(shí)間步的輸入往往是參考摘要中的單詞表征,但在測(cè)試階段解碼器的輸入是上一步的輸出,一旦上一步出現(xiàn)錯(cuò)誤,會(huì)影響下一步的輸出結(jié)果,這樣造成錯(cuò)誤累計(jì),形成暴露偏差。為了緩解上述問(wèn)題,本文使用策略梯度算法對(duì)ROUGE-1進(jìn)行了直接優(yōu)化。生成器經(jīng)過(guò)訓(xùn)練,使判別器給的最終獎(jiǎng)勵(lì)最大化,策略梯度損失如下
(13)
(14)
b(X,Y1∶t)是基線值以減少獎(jiǎng)勵(lì)的方差。由于生成器加入了句子層注意力來(lái)更新單詞層注意力,需要再加上不一致注意力損失和句子層注意力損失,構(gòu)成生成器的聯(lián)合損失函數(shù)如下
LG(Θ)=λ1Lml+λ2Lpg+λ3Linc+λ4Lsen
(15)
需要注意的是在分階段訓(xùn)練時(shí)生成器的損失不包含不一致注意力損失和句子層注意力損失。
本文實(shí)驗(yàn)使用CNN/Daily Mail數(shù)據(jù)集[3,11],它收錄了大量美國(guó)有限新聞網(wǎng)(CNN)和每日郵報(bào)(Daily Mail)的新聞數(shù)據(jù)。每篇文章都有人工總結(jié)的參考摘要與之對(duì)應(yīng)。本數(shù)據(jù)集有匿名版本和非匿名版本兩種,前者把所有的命名實(shí)體替換成特殊的標(biāo)記(例如@entity2),后者保留原始的新聞內(nèi)容。我們使用非匿名版本,其中包含287個(gè)、226個(gè)訓(xùn)練對(duì)、13 368個(gè)驗(yàn)證對(duì)以及11 490個(gè)測(cè)試對(duì)。固定詞匯表的大小是50k。
實(shí)驗(yàn)采用ROUGE評(píng)估指標(biāo),將生成摘要與參考摘要相對(duì)比,其中ROUGE-1和ROUGE-2指標(biāo)是分別是1元詞(1-gram)和2元詞(2-gram)的召回率,ROUGE-L指標(biāo)計(jì)算的是最長(zhǎng)公共子序列(longest common subsequence)的得分,具體計(jì)算方法參見文獻(xiàn)[9]。
為了獲得更好的實(shí)驗(yàn)結(jié)果,本文實(shí)驗(yàn)對(duì)獲取句子注意力模型(圖2)和整體模型進(jìn)行了預(yù)訓(xùn)練,詞嵌入均為128維,學(xué)習(xí)率設(shè)置為0.15,隱藏層大小分別為200和256。在預(yù)訓(xùn)練獲取句子注意力模型時(shí),限制原始文本的句子數(shù)和每個(gè)句子的長(zhǎng)度為50。在預(yù)訓(xùn)練整體模型時(shí),把信息量高的句子(gn=1)作為模型的輸入,限制原始文本的長(zhǎng)度為400,摘要的長(zhǎng)度為100,批次大小為32。
為了探究句子層注意力對(duì)實(shí)驗(yàn)結(jié)果的影響,本文設(shè)置兩種訓(xùn)練方式:①分階段訓(xùn)練;②端到端訓(xùn)練。
實(shí)驗(yàn)1:分階段訓(xùn)練
實(shí)驗(yàn)設(shè)置句子層注意力β為硬注意力,此時(shí)句子層注意力模型為一個(gè)二元分類器,把βn>0.5的句子作為整體模型的輸入,而β是通過(guò)預(yù)訓(xùn)練得到的。實(shí)驗(yàn)參數(shù)設(shè)置見表1。
表1 本文模型參數(shù)
實(shí)驗(yàn)2:端到端訓(xùn)練
要最小化聯(lián)合損失函數(shù)(式(15)),其中λ1=λ3=1,λ2=λ4=5,在計(jì)算Linc損失時(shí)設(shè)置k=3。學(xué)習(xí)率降到0.0001,這樣可以保證訓(xùn)練的穩(wěn)定性,神經(jīng)網(wǎng)絡(luò)模型采用Adagrad優(yōu)化器進(jìn)行優(yōu)化。端到端訓(xùn)練時(shí)模型的輸入為整篇文檔。實(shí)驗(yàn)將本文提出的方法與主流方法進(jìn)行對(duì)比,包括pointer-generator[3]、abstractive deep reinforce model(DeepRL)[5]、GAN[6]、unified model[10]。不同的方法進(jìn)行實(shí)驗(yàn)得到的ROUGE-1、ROUGE-2和ROUGE-L值見表2。
表2 不同算法的ROUGE值
每一行顯示了一個(gè)算法的結(jié)果,可以看出,主流方法表現(xiàn)較好的是unified model,ROUGE-1和ROUGE-L值分別為40.68和37.13,而本文模型采用分階段訓(xùn)練方式時(shí)ROUGE-1值有所提高,為40.98,采用端到端訓(xùn)練方式時(shí)ROUGE-1和ROUGE-L值均有所提高,分別為41.01和37.50,表明端到端的訓(xùn)練方式可以獲得更好的訓(xùn)練結(jié)果。綜上所述,本文提出的模型有效提高自動(dòng)文摘的質(zhì)量,同時(shí)由于結(jié)合了句子層注意力,從而可以準(zhǔn)確捕捉重要單詞,表達(dá)的中心思想更加準(zhǔn)確。
下面對(duì)這幾種模型和本文提出的模型生成的摘要進(jìn)行比較,選取了其中一篇文檔作為實(shí)驗(yàn)結(jié)果的展示,文檔內(nèi)容與其匹配的參考摘要如圖4所示。對(duì)圖4所示文本,幾種不同模型生成的文摘如圖5所示。
圖4 樣例文檔和參考摘要
圖5給出了幾種不同模型的實(shí)驗(yàn)結(jié)果,本文用下劃波浪線標(biāo)示原文的重要信息,用粗體標(biāo)示參考摘要與本文模型重合的部分,從結(jié)果可以看出,本文提出的模型可以生成更加準(zhǔn)確的摘要,與參考摘要更加匹配,而其余幾種模型存在重復(fù)問(wèn)題或者缺乏重要信息的問(wèn)題(如下劃直線所示)??傮w來(lái)看,本文提出的模型對(duì)自動(dòng)文摘生成有改進(jìn)作用。
圖5 幾種模型生成的文摘
本文根據(jù)越重要的句子包含越多的關(guān)鍵字,在生成對(duì)抗網(wǎng)絡(luò)的基礎(chǔ)上,加入句子層注意力,通過(guò)句子層注意力對(duì)單詞層注意力的調(diào)節(jié),使得獲取的上下文向量表示更準(zhǔn)確地表達(dá)了當(dāng)前狀態(tài)的文檔信息,從而使得后續(xù)的文摘生成更加準(zhǔn)確。另外本文在原有的生成對(duì)抗網(wǎng)絡(luò)損失函數(shù)上加入單詞層與句子層注意力的不一致性損失,反過(guò)來(lái)協(xié)調(diào)了句子層注意力。生成對(duì)抗網(wǎng)絡(luò)生成的句子具有很好的連貫性,再加上句子層注意力幫助生成的主旨更加準(zhǔn)確,最終使得生成的摘要具有更好的連貫性和可讀性,實(shí)驗(yàn)結(jié)果表明,聯(lián)合注意力對(duì)結(jié)果有了一定改進(jìn)。本文提出的模型在自動(dòng)文摘領(lǐng)域效果良好,能提升文摘的質(zhì)量。在大規(guī)模文檔理解、分析和總結(jié)方面有廣泛用途。本文采用LSTM得到文檔的上下文向量表示,未來(lái)可考慮更好的方法對(duì)文檔進(jìn)行表征,以使向量容納更多的文本信息。