宋治勛, 趙鐵軍
(哈爾濱工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 哈爾濱150000)
目前主流生成式模型借鑒神經(jīng)機器翻譯中基于編碼器-解碼器結(jié)構(gòu)的序列到序列模型[1]。 這類模型通常采用循環(huán)神經(jīng)網(wǎng)絡(luò)作為網(wǎng)絡(luò)結(jié)構(gòu)的基本單元,并利用注意力機制實現(xiàn)源端與目標(biāo)端的詞語對齊。 本文認(rèn)為這種做法存在一些問題,原文與摘要間不存在與機器翻譯類似的顯示詞對齊關(guān)系,文摘任務(wù)的難點也不在于計算源端和目標(biāo)端詞對齊關(guān)系,而是在于解碼器如何關(guān)注到編碼端輸出的重要語義信息。 同時,編碼器輸出的隱狀態(tài)向量中存在噪聲,模型需要在信息傳遞過程中篩選語義向量各維度的重要特征,否則會導(dǎo)致解碼器對源端核心內(nèi)容認(rèn)識不充分,造成文摘語法錯誤以及語義不統(tǒng)一等問題。
為解決上述問題,本文對目前主流基于注意力機制編碼器-解碼器生成式文摘模型作出以下兩點改進(jìn):(1)引入全局編碼上下文信息,并使全局編碼信息既參與編碼器注意力計算和選擇門控單元計算,又參與解碼器每個時間步注意力更新以及目標(biāo)端詞表概率計算過程,模型通過參數(shù)共享實現(xiàn)全局編碼信息的梯度更新。 (2)引入選擇門控單元,在信息傳遞過程中過濾編碼器輸出的對摘要生成無益的語義信息,修正編碼器每個時間步的語義表示。實驗證明,本文提出的模型在TTNews 數(shù)據(jù)集上分別取得2.2 個百分點的提升。 依據(jù)組件消融分析實驗結(jié)構(gòu),證明本文引入的各組件對摘要生成起不同程度的提升作用。
關(guān)于生成式文摘方法,早期研究者們關(guān)于基于規(guī)則生成的方法、基于語法樹剪枝的方法、以及基于語言學(xué)規(guī)律等方法。 隨著深度學(xué)習(xí)技術(shù)的發(fā)展,很多學(xué)者開始展開對序列到序列的生成式文摘模型的研究。 Rush 首次在序列到序列模型中應(yīng)用注意力機制解決生成式文摘任務(wù),該模型在Gigaword 測試集取得當(dāng)時最好的成績。 隨后,Chopra 對該模型做了改進(jìn),將解碼器替換為循環(huán)神經(jīng)網(wǎng)絡(luò);Nallapati 則將模型修改為完全以循環(huán)神經(jīng)網(wǎng)絡(luò)為基本單元的序列到序列模型,同時在編碼端引入人工特征;Gu 于2016 年提出CopyNet 模型,通過引入拷貝機制來模擬人類生成摘要時從原文選擇詞語的過程,能夠比較好處理UNK 詞語生成的問題。 Gulcehre 提出使用門控機制,控制解碼器每一時間步是從原文復(fù)制詞語還是輸出目標(biāo)端詞表概率最大的詞。
本文提出的模型以基于注意力機制的序列到序列模型架構(gòu)為基礎(chǔ),引入同時參與模型編碼端、解碼端計算的全局編碼信息。 同時,本文提出融合全局編碼信息的選擇門控單元,用于修正編碼器輸出語義信息。 本文提出模型的結(jié)構(gòu)圖,如圖1 所示。
對于生成式文摘任務(wù),模型接收輸入序列x =(x1,x2,…,xn),其中n 表示輸入文檔長度,xi表示輸入文檔中的第i 個詞語, xi∈Vs,Vs表示源端詞表。 模型接收序列x 后,生成一段簡短的文摘序列y =(y1,y2,…,yl),其中:l ≤n 是文摘序列的長度,yi表示文摘序列中的第i 個詞語,yi∈VT,VT表示目標(biāo)端詞表。 通常情況下,生成式文摘任務(wù)允許|y |?|x |的情況出現(xiàn),表示輸出文摘序列的詞語可以未在輸入文檔中出現(xiàn)過。

圖1 基于全局編碼信息的生成式文摘模型結(jié)構(gòu)圖Fig. 1 Overview of abstractive summarization model based on global features of encoding
本文提出的模型以基于注意力機制的序列到序列模型為基礎(chǔ),遵循編碼器-解碼器架構(gòu)。 編碼器使用雙向門控循環(huán)單元(BiGRU)實現(xiàn),負(fù)責(zé)按序接收輸入文檔中每個單詞的詞向量 wS=詞嵌入矩陣WS∈查表得到。之后,編碼器(,…,) ,由輸入文檔中第i個詞語xi對輸出循環(huán)神經(jīng)單元計算得到的每個單詞的隱狀態(tài)h =(h1,h2,…,hn) , 作為單詞的上下文信息表示。門控循環(huán)單元GRU 的計算公式(1) ~公式(4)如下:

其中,Wz、Wh、Wh均為權(quán)重矩陣,方便起見,公式中省略了偏置b。 由于這里使用的是雙向門控循環(huán)單元,第i 個時刻的隱狀態(tài)hi實際上由兩個不同方向的隱狀態(tài)向量級聯(lián)得到hi=,hi∈R2dh,dh是GRU 的隱狀態(tài)向量維度。
本文在編碼端引入全局編碼信息us∈R2dh,是模型可學(xué)習(xí)的向量參數(shù),隨整個訓(xùn)練集的學(xué)習(xí)過程不斷更新。 本文利用全局編碼信息us與編碼器BiGRU 輸出的隱狀態(tài)h,計算源端注意力分布,利用每個單詞的注意力打分對隱狀態(tài)h 加權(quán)求和,得到輸入文檔的表示D,計算公式(5)~公式(7)如下:

其中,αi是使用softmax 函數(shù)分配的輸入序列概率權(quán)重,D ∈R2dh是整個輸入序列的向量表示。 本文采用公式(7)計算得到的向量D 作為整個輸入文檔的表示,并傳遞給解碼端用于初始化解碼器隱狀態(tài)s0。
本文提出融合全局編碼信息的選擇門控單元,以控制編碼端信息流動。 具體來講,選擇門控單元接收編碼器輸出的隱狀態(tài)h、 全局編碼信息us、 輸入序列的向量表示D。 對于每個單詞xi,選擇門控單元輸出一個門控向量gi,并使用門控向量gi和隱狀態(tài)hi計算調(diào)整后的編碼器隱狀態(tài)h'i。 上述過程計算公式(8)和公式(9)如下:

其中, Wg是參數(shù)矩陣, bg是偏置向量。 σ 是sigmoid 激活函數(shù),☉表示點乘操作。
經(jīng)過融合全局編碼信息的選擇門控單元,編碼端輸出更加精細(xì)的隱狀態(tài)向量h' =(h'1,h'2,…,h'n),之后將隱狀態(tài)向量傳遞給解碼器,用于生成相應(yīng)的摘要詞語。
本文使用單向門控循環(huán)單元(GRU)作為解碼器,通過逐詞生成的方式輸出文摘序列直到輸出標(biāo)志句子結(jié)束的詞語EOS。
首先,解碼器接收編碼器輸出的文檔向量表示D,初始化GRU 的隱狀態(tài),公式(10):

在每個解碼時刻t, 解碼器同時接收上一時刻的文摘序列輸入yt-1、 上一時刻解碼器的輸出的隱狀態(tài)st-1、以及上一時刻的編碼器-解碼器上下文向量ct-1,經(jīng)過循環(huán)單元計算,輸出當(dāng)前時刻的隱狀態(tài)st,公式(11):詞嵌入矩陣WT∈查表得到,dw是詞向量維


之后,采用Goodfellow 提出的maxout 網(wǎng)絡(luò),構(gòu)造特征向量rt,使用窗口大小為2 最大池化層提煉rt重要語義信息,最后使用全連接層輸出詞表VT大小的概率分布向量。 上述過程的計算公式(15)~公式(17):


其中,Wr、Wo是權(quán)重矩陣,特征向量rt∈R2d,公式(16)比較每兩個相鄰特征的最大值,得到更加精細(xì)的特征向量mt∈R2d。 y 表示模型訓(xùn)練階段輸入的真實文摘詞語,y^表示模型預(yù)測的文摘詞語。
本文認(rèn)為文摘模型需要在解碼端融入更多編碼端的信息。 這是因為在推理階段,解碼器僅僅依靠原文與已經(jīng)輸出的摘要序列計算下一時刻的摘要詞語,而已輸出的摘要序列可能會存在錯誤,解碼器需要融入更多的編碼端信息以指導(dǎo)下一時刻的摘要詞匯生成。
基于上述考慮,本文將全局編碼信息us, 進(jìn)一步應(yīng)用于模型解碼階段。 首先,在計算編碼器-解碼器上下文向量ct時,引入全局編碼信息,將公式(12)修改為公式(18):

此外,本文在計算詞表VT的概率分布向量是也融入全局編碼信息us,重新構(gòu)造信息量更為全面的特征向量rt,將公式(15)修改為公式(19):

如上所述,本文將全局編碼信息應(yīng)用于編碼器-解碼器上下文向量計算,以及詞表概率分布向量計算,除了能夠起到豐富特征信息量、融入更多編碼端信息以指導(dǎo)文摘生成的作用。
給定模型的可學(xué)習(xí)參數(shù)θ 和輸入文本序列x,文摘模型輸出預(yù)測的文摘序列y^。 模型的訓(xùn)練目標(biāo)如公式(20):

TTNews 是NLPCC2017 單文檔文摘任務(wù)發(fā)布的評測數(shù)據(jù)集,源于今日頭條平臺上的真實數(shù)據(jù),共包含50 000 條訓(xùn)練集,2 000 條測試集。 TTNews 數(shù)據(jù)集的平均原文長度為669.0,平均摘要長度為35.8,原文詞表大小為28 755,摘要詞表大小為9 998。
在數(shù)據(jù)預(yù)處理階段,考慮到中文分詞錯誤造成的詞典誤差,本任務(wù)采用subword 方式重構(gòu)中文文摘數(shù)據(jù)。 相較于傳統(tǒng)的分詞方式,該方法可以減少分詞錯誤帶來的影響,也可以從一定程度上縮小中文詞表規(guī)模。
本文使用PyTorch 框架在NVIDIA V100 GPU上進(jìn)行實驗。 詞向量維度大小為512,編碼器隱狀態(tài)維度為256,解碼器隱狀態(tài)維度為512,批處理大小為32,Dropout 丟棄旅為0.5。 本文使用Adam 優(yōu)化器訓(xùn)練,初始學(xué)習(xí)率為1e-3,在模型訓(xùn)練階段根據(jù)模型性能采取學(xué)習(xí)率衰減策略,衰減比例為0.5。
NLP_ONE 是NLPCC2017 單文檔文摘任務(wù)中獲得第一名成績的模型;PGN 利用指針網(wǎng)絡(luò)判斷每一解碼時刻是否從原文中選擇詞語,利用覆蓋度損失減少輸出文摘中的重復(fù)詞語出現(xiàn)頻率;SEASS 應(yīng)用選擇門機制過濾編碼器輸出信息。 此外,本文還采用LEAD 和ORACLE 兩個具有代表性的啟發(fā)式策略作為以上3 種數(shù)據(jù)集的基線模型。
本文用ROUGE-1、ROUGE-2、ROUGE-L 的F1指標(biāo)作為評價指標(biāo)。 本模型在TTNews 數(shù)據(jù)集上的實驗結(jié)果如表1 所示。

表1 TTNews 數(shù)據(jù)集實驗結(jié)果Tab. 1 Evaluation results on TTNews data set
實驗結(jié)果表明,本文提出的模型在各項Rouge指標(biāo)上均超過所有基線模型,以ROUGE-2 F1 值為例,本模型在TTNews 取得2.2 個百分點的提升。 實驗結(jié)果中LEAD 和ORACLE 方法的表現(xiàn)較差,這表明數(shù)據(jù)集中的摘要與原文句子重合度較低,是高度人工生成的,利用該數(shù)據(jù)集驗證本模型在生成式文摘任務(wù)的效果具有一定說服力。
為分析本模型各組件對最終性能的貢獻(xiàn),本節(jié)以TTNews 數(shù)據(jù)集為例,采用消融分析,逐步驗證各組件對模型最終結(jié)果的影響程度。 本模型的消融分析結(jié)果如表2 所示。

表2 消融分析實驗結(jié)果Tab. 2 Results of ablation studies
通過分析消融分析結(jié)果可以發(fā)現(xiàn),每移除一個模型組件,模型的3 個指標(biāo)均以會不同程度下降。當(dāng)本模型僅使用融合編碼信息的選擇門控單元時,性能優(yōu)于同樣使用選擇門控單元的SEASS 模型,這證明全局編碼信息在編碼端發(fā)揮重要作用;當(dāng)移除選擇門控單元后,此時模型僅應(yīng)用全局編碼信息計算編碼端注意力,ROUGE 指標(biāo)略低于SEASS 模型,但仍優(yōu)于PGN 模型。 當(dāng)徹底不使用全局編碼信息時,本文的模型指標(biāo)略低于SEASS 和PGN 模型,但仍然優(yōu)于NLP_ONE 模型。
本文論證目前主流的基于注意力機制的序列到序列模型存在的不足,僅依靠注意力機制只能選擇重要的詞語對應(yīng)的隱狀態(tài)信息,但是無法對隱狀態(tài)各個維度信息進(jìn)一步把控。 如果模型將存在噪聲的語義信息全部接收,會導(dǎo)致模型輸出的文摘無法充分關(guān)注到原文的核心內(nèi)容。 為解決上述問題,本文提出應(yīng)用全局編碼信息的模型方案,將全局編碼信息應(yīng)用于編碼端的信息重構(gòu)、選擇門控單元的計算、解碼端注意力上下文的計算,以及全連接網(wǎng)絡(luò)中特征向量的融合。 經(jīng)實驗證明,本文提出的模型在TTNews 數(shù)據(jù)集上取得最好的結(jié)果,通模型不同組件的消融分析,證明本文提出的優(yōu)化方案對生成式文摘模型的性能起積極作用。