侯志榮,范曉東,張 華,馬曉楠
(1.工銀科技有限公司,北京 100029;2.北京大學(xué) 軟件與微電子學(xué)院,北京 102600)
復(fù)述生成是自然語言生成(Natural Language Generation,NLG)領(lǐng)域極具挑戰(zhàn)的重要任務(wù),其核心是通過改變?cè)淳渥拥谋硎龇椒ǐ@得與源句子語義相同的復(fù)述句子。目前,該任務(wù)在眾多自然語言處理(Natural Language Processing,NLP)下游任務(wù)中有著廣泛的應(yīng)用潛力,如問答系統(tǒng)[1]、機(jī)器翻譯、語義解析等。
近年來,隨著基于Seq2Seq(Sequence-to-Sequence)[2]的端到端深度生成模型的發(fā)展,復(fù)述生成任務(wù)的生成效果取得了令人激動(dòng)的進(jìn)展[3]。Prakash 等[4]利用多層殘差長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)堆疊的結(jié)構(gòu)生成復(fù)述,是Seq2Seq 框架實(shí)現(xiàn)復(fù)述生成的經(jīng)典模型。而后Gupta等[5]提出了一種基于變分自動(dòng)編碼器(Variational Auto-Encoder,VAE)的深層變分自動(dòng)句子生成模型(Variational Auto-Encoder-Sentence Variant Generation,VAE-SVG),將Seq2Seq 與VAE 結(jié)構(gòu)結(jié)合,用于探索復(fù)述生成的多樣性問題。
雖然現(xiàn)有模型在Seq2Seq 基礎(chǔ)上進(jìn)行了多種模型結(jié)構(gòu)優(yōu)化的探索,但主要研究集中在編碼階段,通過融入更多有效特征信息來豐富編碼階段的輸出特征,而解碼階段多是應(yīng)用序列解碼逐字生成復(fù)述文本。參照人類構(gòu)思生成文本過程,一般經(jīng)過主題構(gòu)思、上下文組織、句法規(guī)則修正,最終形成一句完整句子表述。雖然現(xiàn)有采用序列解碼的方式可以很好地關(guān)聯(lián)局部上下文信息,但仍然存在局限性。一方面該方式無法保證輸出句子整體語義的連貫性和句法可控性,導(dǎo)致模型生成的復(fù)述句子仍然存在較嚴(yán)重的語義重復(fù)、句法錯(cuò)誤等問題;另一方面,由于序列解碼為了確保語義不變,訓(xùn)練過程中會(huì)傾向于學(xué)習(xí)與源句子非常類似的表述方式甚至直接從源句子拷貝,導(dǎo)致生成句子的多樣性受到限制。
近年來,隨著圖神經(jīng)領(lǐng)域的研究和應(yīng)用不斷深入和推廣,圖神經(jīng)網(wǎng)絡(luò)在復(fù)述生成任務(wù)中的應(yīng)用也已經(jīng)得到初步的探索。在最新的研究成果中,Chi 等[6]將圖神經(jīng)網(wǎng)絡(luò)引入到Seq2Seq 框架的編碼階段,利用圖神經(jīng)將句法關(guān)系特征融合到語義編碼中,并通過構(gòu)建循環(huán)時(shí)間網(wǎng)絡(luò)與圖卷積神經(jīng)網(wǎng)絡(luò)組合的編碼模型提升生成語義的連貫性;但在解碼階段該模型采用的還是傳統(tǒng)的序列解碼,仍然存在序列生成重復(fù)或語法錯(cuò)誤的固有缺陷。
為了解決上述問題,本文提出一種基于序列與圖的聯(lián)合學(xué)習(xí)復(fù)述生成網(wǎng)絡(luò)(Paraphrase Generation Network based on Joint learning of Sequence and Graph,J-SGPGN)。該網(wǎng)絡(luò)模型的主要思路是采用編碼器-解碼器框架。在編碼階段,首先采用自注意力機(jī)制對(duì)輸入句子進(jìn)行上下文語義學(xué)習(xí),獲得初步的多粒度上下文語義融合特征;然后將句子中的詞作為圖中節(jié)點(diǎn)、依存句法關(guān)系作為邊,實(shí)現(xiàn)圖的構(gòu)建,并利用融合上下文的詞特征初始化節(jié)點(diǎn)特征,再通過門控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Network,GGNN)[7]進(jìn)行基于句法關(guān)系的節(jié)點(diǎn)特征聚合,最終輸出圖級(jí)別的編碼特征。在解碼階段,聯(lián)合圖生成與序列生成任務(wù),分別在非時(shí)序化的圖空間和時(shí)序化的上下文語義空間進(jìn)行復(fù)述生成聯(lián)合學(xué)習(xí)。訓(xùn)練過程中,模型通過對(duì)圖空間解碼的節(jié)點(diǎn)生成損失、邊預(yù)測損失以及時(shí)序空間解碼的局部上下文局部語義損失的聯(lián)合學(xué)習(xí),分別針對(duì)性提升對(duì)全局語義、句法關(guān)系、上下文局部語義的顯式監(jiān)督優(yōu)化。
本文的主要工作如下:
1)提出了一種基于序列與圖的聯(lián)合學(xué)習(xí)復(fù)述生成網(wǎng)絡(luò)(J-SGPGN),在解碼階段將圖生成通過聯(lián)合學(xué)習(xí)方式應(yīng)用到復(fù)述生成領(lǐng)域,是生成算法框架的新探索。
2)提出了一種新的文本圖解碼算法,采用迭代式方法實(shí)現(xiàn)節(jié)點(diǎn)和邊關(guān)系的全圖預(yù)測,并利用圖級(jí)別的節(jié)點(diǎn)及邊的損失函數(shù)、聯(lián)合序列解碼的語義損失進(jìn)行聯(lián)合學(xué)習(xí)。
3)在Quora 和MSCOCO[8]公開數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),結(jié)果表明本文提出的方法在語義準(zhǔn)確性、表述多樣性等多個(gè)評(píng)價(jià)指標(biāo)中均取得了超越最新基線模型的性能。
復(fù)述生成任務(wù)的實(shí)質(zhì)是通過改寫句子中的成分或表達(dá)方法生成新句子,早期的研究方法主要依賴于規(guī)則模板或者數(shù)據(jù)驅(qū)動(dòng),難以在不同領(lǐng)域擴(kuò)展應(yīng)用。隨著深度學(xué)習(xí)的發(fā)展,復(fù)述生成任務(wù)被類比于單語機(jī)器翻譯,將任務(wù)目標(biāo)設(shè)置為從源句子到復(fù)述句子的端到端文本生成問題,旨在生成語義可控、表達(dá)多樣的復(fù)述句子[9]。Prakash 等[4]首先將神經(jīng)網(wǎng)絡(luò)技術(shù)應(yīng)用在復(fù)述生成任務(wù),利用多層殘差LSTM 網(wǎng)絡(luò)構(gòu)建Seq2Seq 的編碼器和解碼器,實(shí)現(xiàn)首個(gè)端到端復(fù)述生成模型。Gupta 等[5]發(fā)現(xiàn)將變分自編碼器網(wǎng)絡(luò)應(yīng)用到Seq2Seq 模型中可以有效提升生成質(zhì)量和多樣性。Li 等[10]將復(fù)述過程進(jìn)行細(xì)粒度劃分,以達(dá)到生成可控和可解釋,且可以被用于無監(jiān)督領(lǐng)域進(jìn)行領(lǐng)域適應(yīng)。最新的研究中,外部知識(shí)和顯式的句法引導(dǎo)生成被應(yīng)用到該任務(wù)中。最新提出的知識(shí)增強(qiáng)復(fù)述網(wǎng) 絡(luò)(Knowledge-Enhanced Paraphrase Network,KEPN)模型[11]和多輪回譯復(fù)述生成(Back-Translation guided multiround Paraphrase Generation,BTmPG)模型[12]分別利用知識(shí)增強(qiáng)、回譯增強(qiáng)等方法,通過增加同義表述或引用中間生成結(jié)果豐富模型可學(xué)習(xí)內(nèi)容,提升復(fù)述生成的多樣性。Kumar等[13]考慮句法可控性,提出句法控制引導(dǎo)復(fù)述生成(Syntax Guided Controlled Paraphraser,SGCP)算法,通過句法示例指導(dǎo)生成不同粒度級(jí)別的復(fù)述句子,以保證生成句子的語法保持與句法示例模板一致。
上述研究雖然對(duì)Seq2Seq 框架在結(jié)構(gòu)上進(jìn)行了改造探索,但生成結(jié)果中仍然存在語法錯(cuò)誤、表述多樣性不足的問題。近年來,圖神經(jīng)領(lǐng)域的研究和應(yīng)用不斷深入和推廣,如已有學(xué)者將圖生成方法應(yīng)用在新藥發(fā)現(xiàn)[14-15]、蛋白質(zhì)結(jié)構(gòu)建模[16-17]等研究領(lǐng)域;也有研究開始將圖神經(jīng)網(wǎng)絡(luò)應(yīng)用于NLP領(lǐng)域[18]。在機(jī)器閱讀理解任務(wù)中,Song 等[19]以文本中提到的命名實(shí)體和代詞為基礎(chǔ)構(gòu)建圖,有效地整合了篇章內(nèi)容中不同線索的信息,顯著提升了候選答案匹配質(zhì)量。在最新復(fù)述生成研究方法中,Chi 等[6]引入了圖神經(jīng)網(wǎng)絡(luò),將句法關(guān)系用于上下文語義聚合,旨在通過顯式融入句法特征,提升生成效果。該方法與上述相關(guān)方法的共同點(diǎn),都是從編碼階段進(jìn)行模型改造,嘗試通過優(yōu)化編碼特征提升最終生成結(jié)果,而對(duì)解碼階段的優(yōu)化鮮有探索。參考人類構(gòu)思成文行為模式,假設(shè)在解碼階段增加圖空間的解碼可以顯式監(jiān)督優(yōu)化生成句子的句法結(jié)構(gòu),以達(dá)到提升生成句子句法可控性的效果。目前,圖生成方法尚未在文本生成領(lǐng)域得以應(yīng)用[20]。為此,本文提出一種基于序列和圖聯(lián)合學(xué)習(xí)的復(fù)述生成算法框架,通過圖生成與序列生成的聯(lián)合學(xué)習(xí),旨在提升生成文本的質(zhì)量和多樣性,同時(shí)為優(yōu)化復(fù)述生成文本質(zhì)量開拓新思路。
設(shè)句子對(duì){X,Y},其中X={x1,x2,…,xn}為由n個(gè)詞組成的源句子,Y={y1,y2,…,ym}為由m個(gè)詞組成的目標(biāo)句子。復(fù)述生成過程可定義為Y=F(X),模型通過訓(xùn)練學(xué)習(xí)F轉(zhuǎn)換,在給定源句子X時(shí)可通過F(X)生成出目標(biāo)句子Y。
本文提出的J-SGPGN 模型基于經(jīng)典的編碼器-解碼器框架,結(jié)構(gòu)如圖1 所示。
圖1 J-SGPGN模型結(jié)構(gòu)Fig.1 Structure of J-SGPGN model
2.2.1 編碼器
編碼器部分實(shí)現(xiàn)對(duì)源句子X的特征編碼。采用詞向量自注意力編碼和語句圖編碼兩階段策略來豐富語義特征及融合句法特征。
1)詞向量自注意力編碼。
詞向量自注意力編碼階段通過計(jì)算句子中上下文詞之間的語義關(guān)聯(lián)重要性關(guān)系,對(duì)原始詞向量進(jìn)行初步的上下文語義特征融合。
設(shè)源句子X的詞向量編碼為E∈RDw*N,詞性特征編碼為El∈RDl*N,其中:Dw、Dl分別為編碼維度,N為句子長度。為了讓模型的初始化詞向量能根據(jù)不同領(lǐng)域數(shù)據(jù)在訓(xùn)練過程中進(jìn)行微調(diào),詞向量分別取GloVe[21]靜態(tài)詞向量Eg和可微調(diào)訓(xùn)練的BERT(Bidirectional Encoder Representations from Transformers)[22]詞向量Eb兩種?;谠~粒度的自注意力特征融合計(jì)算過程如下:
首先,采用靜態(tài)詞向量Eg計(jì)算自注意力加權(quán)分?jǐn)?shù),得到詞級(jí)別語義關(guān)系權(quán)重βw:
其中:激活函數(shù)選擇線性整流函數(shù)(Rectified Linear Unit,ReLU);W為可訓(xùn)練的權(quán)重參數(shù)。
然后,將靜態(tài)向量編碼Eg與βw相乘,得到詞級(jí)別語義加權(quán)編碼H:
最后,將靜態(tài)詞向量Eg、可訓(xùn)練的BERT 詞向量Eb、詞性特征編碼El、上下文語義加權(quán)編碼H進(jìn)行拼接,得到最終的詞級(jí)別注意力編碼特征H':
為了獲取更抽象的上下文隱藏狀態(tài)的語義加權(quán)信息,首先將詞級(jí)別的編碼表示H'輸入雙向長短期記憶(Bidirectional Long Short Term Memory,BiLSTM)網(wǎng)絡(luò)中,得到隱藏狀態(tài)編碼。然后對(duì)其進(jìn)行與詞級(jí)別自注意力相同的計(jì)算過程,最終通過隱藏狀態(tài)編碼計(jì)算得到加權(quán)矩陣βc和上下文注意力編碼表示,計(jì)算公式如下:
2)語義圖編碼。
通過BiLSTM 和注意力網(wǎng)絡(luò)可以很好地捕獲句子的局部上下文語義信息,而圖神經(jīng)網(wǎng)絡(luò)可以在空間中針對(duì)非時(shí)序的隱藏句法關(guān)系進(jìn)行高維度信息融合,進(jìn)一步豐富編碼特征信息。
具體地,本研究通過Stanford Parser[23]句法關(guān)系解析工具獲取源句子X的依存句法關(guān)系,將句子中的詞作為節(jié)點(diǎn),依存關(guān)系作為邊,構(gòu)造有向無權(quán)圖。
為了有效地從構(gòu)建的文本圖中學(xué)習(xí)圖嵌入,本文算法采用雙向門控圖神經(jīng)網(wǎng)絡(luò)(Bidirectional Gated Graph Neural Network,BiGGNN)[7],通過包括出度和入度的鄰接矩陣以交錯(cuò)方式學(xué)習(xí)節(jié)點(diǎn)特征,來擴(kuò)展門控圖神經(jīng)網(wǎng)絡(luò)。在BiGGNN中,本文算法使用詞向量自注意力編碼階段最終輸出的上下文編碼特征-H'來初始化節(jié)點(diǎn)特征表示,同一組網(wǎng)絡(luò)參數(shù)在計(jì)算的每一跳共享。在每個(gè)計(jì)算跳躍點(diǎn),對(duì)圖中的每個(gè)節(jié)點(diǎn)應(yīng)用平均聚合器,該聚合器分別根據(jù)入度和出度計(jì)算該節(jié)點(diǎn)的向量表示:
針對(duì)獨(dú)立學(xué)習(xí)的兩個(gè)方向的獨(dú)立節(jié)點(diǎn)嵌入,本文算法在節(jié)點(diǎn)處融合兩個(gè)方向的節(jié)點(diǎn)嵌入:
將i時(shí)刻節(jié)點(diǎn)的入度和出度節(jié)點(diǎn)向量通過門控函數(shù)進(jìn)行求和:
其中:a是入度節(jié)點(diǎn)向量,b是出度節(jié)點(diǎn)向量;⊙是分量乘法;σ是sigmoid 函數(shù);Z是門控選通向量,WZ是門控函數(shù)權(quán)重,bZ是門控函數(shù)偏置。
然后,使用門控循環(huán)單元(Gated Recurrent Unit,GRU)[24]合并聚合信息來更新節(jié)點(diǎn)嵌入:
最后,為了獲得文本圖級(jí)別的上下文信息編碼,通過一個(gè)全聯(lián)接層和最大池化層,將節(jié)點(diǎn)編碼轉(zhuǎn)換為圖編碼genc。
2.2.2 解碼器
在解碼階段,本文算法分別從時(shí)序空間和圖空間兩方面同時(shí)進(jìn)行解碼,并通過聯(lián)合學(xué)習(xí)方式,基于全局誤差更新網(wǎng)絡(luò)參數(shù)。
1)圖空間解碼。
圖空間解碼在文本生成領(lǐng)域是首次嘗試,在生成預(yù)測語義信息的基礎(chǔ)上,增加預(yù)測句法關(guān)系的任務(wù),一方面提升了對(duì)全局句法準(zhǔn)確性的監(jiān)督,另一方面進(jìn)一步促進(jìn)語義生成的準(zhǔn)確性和連貫性。
圖空間解碼主要包含節(jié)點(diǎn)生成和邊生成兩部分。首先基于批量訓(xùn)練中的最大句子輸入長度確定圖生成規(guī)模,即節(jié)點(diǎn)個(gè)數(shù),設(shè)為N。使用編碼階段的圖編碼genc初始化圖生成編碼H和零節(jié)點(diǎn)隱藏狀態(tài)編碼hv0,然后利用節(jié)點(diǎn)特征函數(shù)Ffeature初始化零節(jié)點(diǎn)的節(jié)點(diǎn)特征表示v0。
根據(jù)圖的節(jié)點(diǎn)個(gè)數(shù)和初始節(jié)點(diǎn),在循環(huán)過程中依次生成節(jié)點(diǎn)。當(dāng)生成新節(jié)點(diǎn)i(1 ≤i≤N-1)時(shí),先利用邊預(yù)測函數(shù)計(jì)算與已生成節(jié)點(diǎn)之間是否存在邊關(guān)系,公式如下:
其中:邊預(yù)測函數(shù)Fedge是一個(gè)多層感知機(jī)(MultiLayer Perceptron,MLP)網(wǎng)絡(luò);u是已生成節(jié)點(diǎn)集合V中的節(jié)點(diǎn)特征;Hi-1是i-1 時(shí)刻的圖生成編碼是邊預(yù)測概率。
設(shè)邊預(yù)測閾值為σ,當(dāng)≥σ,則判定節(jié)點(diǎn)u與節(jié)點(diǎn)vi存在邊關(guān)聯(lián),更新邊關(guān)聯(lián)集合,并通過關(guān)聯(lián)節(jié)點(diǎn)求解第i個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)特征vi和隱藏狀態(tài)表示hvi,計(jì)算公式如下:
其中:節(jié)點(diǎn)特征函數(shù)Ffeature是另一個(gè)MLP 網(wǎng)絡(luò);Vrel是與當(dāng)前節(jié)點(diǎn)有邊關(guān)聯(lián)的節(jié)點(diǎn)集合;vm是與vi有邊關(guān)聯(lián)節(jié)點(diǎn)特征,vn是所有生成節(jié)點(diǎn)特征。
同時(shí)更新i時(shí)刻圖生成的圖編碼表示Hi:
最終,經(jīng)過N輪迭代生成,得到圖空間中生成的所有節(jié)點(diǎn)集合V及其邊關(guān)聯(lián)關(guān)系集合E,并分別通過全連接層映射成節(jié)點(diǎn)和邊的概率預(yù)測向量pnode和pedge。
2)時(shí)序空間解碼。
時(shí)序空間解碼采用Seq2Seq 的解碼規(guī)則,以圖編碼特征作為初始狀態(tài),采用LSTM 進(jìn)行逐字預(yù)測生成概率pseq。預(yù)測過程中為了避免重復(fù)生成,引用覆蓋機(jī)制[25]進(jìn)行調(diào)節(jié)。該機(jī)制在預(yù)測過程中會(huì)參考已生成的上文概率預(yù)測情況,對(duì)已預(yù)測過的單詞增加生成懲罰權(quán)重,降低已生成單詞在后續(xù)預(yù)測中的概率。此外,為了更好地收斂訓(xùn)練過程,本文算法以一定概率隨機(jī)選擇在下一步預(yù)測過程中是否采用Teacher-Forcing 的模式。
J-SGPGN 模型在訓(xùn)練階段,圖生成解碼和序列解碼共享編碼部分的輸出,解碼解段相互獨(dú)立。在計(jì)算損失時(shí),通過加權(quán)求和方式,聯(lián)合兩個(gè)解碼模塊的損失函數(shù)進(jìn)行模型全局損失訓(xùn)練優(yōu)化。
其中,圖解碼模塊的損失函數(shù)包含節(jié)點(diǎn)損失函數(shù)Lnode和邊損失函數(shù)Ledge,分別用交叉熵?fù)p失函數(shù)和二值交叉熵?fù)p失函數(shù)在每完成一次整圖預(yù)測后進(jìn)行計(jì)算。公式如下:
序列解碼模塊損失函數(shù)Lseq主要預(yù)測上下文語義損失,同樣采用交叉熵?fù)p失函數(shù)計(jì)算:
所以總損失函數(shù)L為:
J-SGPGN 模型分別在Quora 數(shù)據(jù)集和MSCOCO 數(shù)據(jù)集上進(jìn)行了評(píng)估實(shí)驗(yàn),如表1 所示。Quora 是一個(gè)包含超過40 萬對(duì)問題的數(shù)據(jù)集,用(0,1)標(biāo)簽表示問題對(duì)之間的語義是否相似。本文在訓(xùn)練集中篩選出標(biāo)簽為1 的問題對(duì)用于復(fù)述生成任務(wù),總計(jì)約15 萬對(duì)問題。MSCOCO 中包含超12 萬張圖片的文本描述注釋數(shù)據(jù),每張圖片包含來自5 個(gè)不同標(biāo)注者對(duì)圖中內(nèi)容的描述,這些描述視為語義相近。本文隨機(jī)抽取2 個(gè)描述組成句子對(duì),構(gòu)成復(fù)述生成數(shù)據(jù)集。
表1 數(shù)據(jù)集統(tǒng)計(jì)Tab.1 Statistics of datasets
在模型評(píng)估中,本文實(shí)驗(yàn)選取復(fù)述生成任務(wù)中的經(jīng)典模型和最新的模型,包括:首個(gè)將Seq2Seq 結(jié)構(gòu)應(yīng)用到復(fù)述生成任務(wù)的經(jīng)典模型Residual-LSTM[4];首個(gè)將VAE 結(jié)構(gòu)融入Seq2Seq 結(jié)構(gòu)的模型VAE-SVG[5],它試圖解決生成多樣性問題;BTmPG[12]通過將復(fù)述句子加入到生成迭代中,擴(kuò)展生成語義空間,旨在提升生成多樣性;首個(gè)將圖神經(jīng)應(yīng)用到復(fù)述生成任務(wù)中的RNN+GCN[6]模型,它嘗試通過融入句法特征來提升復(fù)述生成效果。選取上述基線模型可從生成準(zhǔn)確性和多樣性兩方面進(jìn)行對(duì)比評(píng)估,以說明模型改進(jìn)有效性。
本文使用torch-1.7.0 作為代碼主框架。編碼輸入所用的兩種詞向量編碼分別選取GloVe.840.300d 中的靜態(tài)編碼,維度為300。BERT 編碼選取bert_large_uncased 網(wǎng)絡(luò)最后一層輸出作為編碼,維度為1 024,最大序列長度設(shè)置為500。模型中,涉及到隱藏狀態(tài)規(guī)模均設(shè)置為300。在編碼器的自注意力上下文語義融合網(wǎng)絡(luò)和序列解碼網(wǎng)絡(luò)中,所用到的BiLSTM 網(wǎng)絡(luò)層數(shù)設(shè)置為1。圖生成階段,多層感知機(jī)網(wǎng)絡(luò)層數(shù)設(shè)置為2。模型優(yōu)化器選擇Adam 優(yōu)化器進(jìn)行參數(shù)調(diào)優(yōu)。解碼階段,集束搜索規(guī)模(beam_size)設(shè)置為5。在Quora 數(shù)據(jù)集實(shí)驗(yàn)中,最優(yōu)模型訓(xùn)練主要超參數(shù)設(shè)置如下,以供參考。訓(xùn)練次數(shù)epoch 為57,批數(shù)據(jù)大小batch_size 為64,學(xué)習(xí)率learning_rate 為0.000 1。聯(lián)合損失函數(shù)系數(shù)分別設(shè)置為序列解碼損失權(quán)重α=0.4,圖生成節(jié)點(diǎn)損失權(quán)重β=0.4,圖生成邊損失權(quán)重γ=0.2。
參考基線模型,本文實(shí)驗(yàn)選擇BLEU-4 和METEOR(Metric for Evaluation of Translation with Explicit ORdering)兩個(gè)廣泛使用的指標(biāo)對(duì)生成準(zhǔn)確性進(jìn)行評(píng)估。BLEU(BiLingual Evaluation Understudy,BLEU)是基于精準(zhǔn)率的評(píng)價(jià)指標(biāo),它通過計(jì)算生成句子與目標(biāo)句子之間的N-gram 模型,統(tǒng)計(jì)其匹配個(gè)數(shù)得到最終得分,BLEU-4 即為N=4 時(shí)的gram 統(tǒng)計(jì)結(jié)果,更能代表語句連續(xù)生成準(zhǔn)確性。METEOR 是基于召回率的評(píng)價(jià)指標(biāo),且可兼容同義詞匹配,所以對(duì)語義相似度的評(píng)估更全面。此外,選擇Self-BLEU 指標(biāo)評(píng)估生成句子與源句子之間的差異性,計(jì)算方法與BLEU 相同,不同的是它的輸入為生成句子與源句子,該指標(biāo)越低說明生成的多樣性越好。
在Quora 和MSCOCO 兩個(gè)公開數(shù)據(jù)集上,J-SGPGN 模型與所有基線模型在各自最優(yōu)的參數(shù)配置下的評(píng)價(jià)指標(biāo)對(duì)比結(jié)果如表2 和表3 所示。其中,Residual-LSTM 和RNN+GCN由于未給出代碼,故相關(guān)指標(biāo)參考BTmPG 論文中復(fù)現(xiàn)結(jié)果或用“—”代替。
表2 Quora數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 單位:%Tab.2 Experimental results on Quora dataset unit:%
表3 MSCOCO數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 單位:%Tab.3 Experimental results on MSCOCO dataset unit:%
由表2 可以看出,在Quora 數(shù)據(jù)集上,J-SGPGN 模型在生成準(zhǔn)確性指標(biāo)BLEU-4 和考慮同義詞表述的語義相關(guān)性指標(biāo)METEOR 上超越了所有基線模型,其中:J-SGPGN 模型的BLEU-4 指標(biāo)比次優(yōu)模型Residual-LSTM 高0.85 個(gè)百分點(diǎn),METEOR 指標(biāo)則比次優(yōu)模型RNN+GCN 高3.44個(gè)百分點(diǎn)。這一方面說明J-SGPGN 模型在生成過程中保持了很好的語義相關(guān)性,另一方面說明它在多樣性方面能實(shí)現(xiàn)同義改寫。J-SGPGN 模型的Self-BLEU 指標(biāo)分?jǐn)?shù)低于所有基線模型,其中比次優(yōu)模型BTmPG 降低了12.79 個(gè)百分點(diǎn),這也佐證了復(fù)述生成的多樣性更好。
在MSCOCO 數(shù)據(jù)集上,J-SGPGN 模型的METEOR 指標(biāo)也超越了已有基線模型,且Self-BLEU 指標(biāo)控制在基線模型相當(dāng)水平,說明J-SGPGN 在不同的數(shù)據(jù)集上均能實(shí)現(xiàn)復(fù)述生成準(zhǔn)確性和多樣性的提升,模型方案具有良好的遷移性。MSCOCO 數(shù)據(jù)集上BLEU-4 指標(biāo)結(jié)果相對(duì)較低,分析原因主要是由于MSCOCO 數(shù)據(jù)集中源句子與目標(biāo)句子的字面差異性較大,導(dǎo)致模型在預(yù)測時(shí)更傾向于生成多樣化的輸出,所以基于N-gram 統(tǒng)計(jì)結(jié)果并沒有得到提升,反而是METEOR更能說明生成語義的相關(guān)且表述多樣化。
為了研究圖生成模塊在解碼階段與序列生成聯(lián)合學(xué)習(xí)產(chǎn)生的積極效果,本實(shí)驗(yàn)對(duì)該模塊在Quora 數(shù)據(jù)集上進(jìn)行變體實(shí)驗(yàn),探索其最優(yōu)網(wǎng)絡(luò)配置。
1)邊預(yù)測閾值實(shí)驗(yàn)。該實(shí)驗(yàn)旨在探索在圖生成過程中,對(duì)于邊預(yù)測的概率條件嚴(yán)格或?qū)捤蓪?duì)最終生成結(jié)果的影響。實(shí)驗(yàn)中采用等差分布進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如表4 所示。
表4 邊預(yù)測閾值的實(shí)驗(yàn)結(jié)果Tab.4 Experimental results of edge prediction thresholds
由表4 可見,隨著閾值的增大,生成結(jié)果的語義準(zhǔn)確性逐漸提升,當(dāng)閾值為0.5 時(shí),生成的準(zhǔn)確性最好,而后準(zhǔn)確性逐漸變差;當(dāng)閾值為0.1 時(shí),可以認(rèn)為判斷節(jié)點(diǎn)間是否存在邊關(guān)系的條件非常嚴(yán)格,圖中很可能出現(xiàn)很多孤立的節(jié)點(diǎn);而當(dāng)閾值為0.9 時(shí),可以認(rèn)為判斷節(jié)點(diǎn)是否存在邊關(guān)系的條件非常寬松,節(jié)點(diǎn)間可能形成全連接圖。在這兩種極端情況下,句法邊關(guān)系的預(yù)測失去了其合理性,故無法形成良好的監(jiān)督優(yōu)化作用。
2)節(jié)點(diǎn)預(yù)測網(wǎng)絡(luò)實(shí)驗(yàn)。該實(shí)驗(yàn)旨在探索在圖生成過程中,節(jié)點(diǎn)預(yù)測的MLP 網(wǎng)絡(luò)深度對(duì)最終生成結(jié)果的影響。實(shí)驗(yàn)結(jié)果如表5 所示??梢娫诠?jié)點(diǎn)預(yù)測的MLP 網(wǎng)絡(luò)中,增加網(wǎng)絡(luò)層數(shù)對(duì)提升節(jié)點(diǎn)生成效果有一定作用,但隨著網(wǎng)絡(luò)層數(shù)增加,提升效果達(dá)到瓶頸。
表5 節(jié)點(diǎn)預(yù)測網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果Tab.5 Experimental results of node prediction networks
本文在損失函數(shù)設(shè)計(jì)中,采用了序列損失Lseq、圖生成節(jié)點(diǎn)損失Lnode和圖生成邊損失Ledge的聯(lián)合學(xué)習(xí)方式,對(duì)模型參數(shù)進(jìn)行優(yōu)化訓(xùn)練。由于在測試階段,主要依賴序列解碼網(wǎng)絡(luò)進(jìn)行復(fù)述文本的生成,所以損失函數(shù)中,序列損失為主要優(yōu)化目標(biāo),圖節(jié)點(diǎn)生成和圖邊生成損失為輔助優(yōu)化目標(biāo)。為了證實(shí)圖生成任務(wù)對(duì)序列生成任務(wù)的優(yōu)化輔助效果,本文針對(duì)損失函數(shù)設(shè)計(jì)消融實(shí)驗(yàn),分別取消圖節(jié)點(diǎn)生成損失和圖邊生成損失,并基于ROUGE-L 指標(biāo)在Quora 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)結(jié)果對(duì)比,對(duì)比實(shí)驗(yàn)的權(quán)重設(shè)置如表6。
表6 損失函數(shù)消融實(shí)驗(yàn)的權(quán)重設(shè)置Tab.6 Weight setting of loss function ablation experiment
根據(jù)不同損失比例參數(shù)設(shè)置,在Quora 數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)結(jié)果如圖2 所示,對(duì)比評(píng)價(jià)指標(biāo)選擇ROUGE-L。ROUGE(Recall-Oriented Understudy for Gisting Evaluation)指標(biāo)是基于召回率統(tǒng)計(jì)的評(píng)價(jià)指標(biāo),主要統(tǒng)計(jì)目標(biāo)句子與生成句子之間N元詞組的共現(xiàn)。其中ROUGE-L 中的L 指最長公共子序列,即該類ROUGE 的計(jì)算過程中,N元詞組將選用最長公共子序列進(jìn)行統(tǒng)計(jì)計(jì)算。
圖2 Quora數(shù)據(jù)集上的損失去權(quán)重消融實(shí)驗(yàn)結(jié)果對(duì)比Fig.2 Results comparison of loss weight ablation experiment on Quora dataset
由實(shí)驗(yàn)結(jié)果可知,在基于LSTM 序列解碼的交叉熵?fù)p失函數(shù)的基礎(chǔ)上,單獨(dú)增加圖生成節(jié)點(diǎn)損失或者邊損失,均會(huì)導(dǎo)致模型的評(píng)價(jià)指標(biāo)ROUGE-L 小幅下降,因?yàn)樵谖谋旧扇蝿?wù)中,圖模型對(duì)代表文本的節(jié)點(diǎn)的解碼和代表文本關(guān)聯(lián)關(guān)系、句法邏輯的邊關(guān)系解碼同樣重要。在圖生成解碼過程中,只有同時(shí)優(yōu)化節(jié)點(diǎn)損失和邊損失才能控制圖生成文本的有效性,同時(shí)也才能通過調(diào)整編碼部分的共享參數(shù)達(dá)到輔助優(yōu)化序列解碼任務(wù)的作用。
從Quora 數(shù)據(jù)集選取若干例子,分別與基線模型VAESVG 和BTmPG 進(jìn)行對(duì)比,以較直觀地說明模型結(jié)構(gòu)創(chuàng)新的有效性。詳細(xì)情況如表7 所示。從表7 中兩個(gè)示例可以看出,在對(duì)源句子1 的復(fù)述生成結(jié)果中,基線模型VAE-SVG 模型的多樣性主要體現(xiàn)在對(duì)應(yīng)的同義詞替換,句式與目標(biāo)句子基本一致,而J-SGPGN 模型則可以通過同義但句式不同的表述方法生成復(fù)述句子;在對(duì)源句子2 的復(fù)述生成中,基線模型BTmPG 的生成結(jié)果確實(shí)引入了與源句子相關(guān)的額外信息以實(shí)現(xiàn)生成的多樣性,但其生成的語義卻與目標(biāo)句子存在較大差異,在多樣性增強(qiáng)的同時(shí),損失了一定的準(zhǔn)確性,而本文的J-SGPGN 模型在輸入源句子較長情況下,能通過同義詞替換的方式準(zhǔn)確生成與目標(biāo)句子語義一致且存在變化的復(fù)述句子,體現(xiàn)出模型在保持生成語義準(zhǔn)確性上的優(yōu)勢。
表7 Quora測試數(shù)據(jù)的生成樣例Tab.7 Generation samples of Quora test data
本文提出了一種新穎的基于序列與圖的聯(lián)合學(xué)習(xí)復(fù)述生成網(wǎng)絡(luò),將圖編碼技術(shù)和圖生成技術(shù)分別引入編碼和解碼階段,編碼階段利用句法特征增強(qiáng)上下文語義特征對(duì)句法關(guān)系的關(guān)注,解碼階段通過與序列生成任務(wù)進(jìn)行聯(lián)合學(xué)習(xí),實(shí)現(xiàn)在解碼階段對(duì)全局語義和句法關(guān)系的顯式監(jiān)督學(xué)習(xí),優(yōu)化復(fù)述生成文本的句法準(zhǔn)確性和表述多樣性。在公開數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有基線模型相比,該模型可更好地指導(dǎo)生成過程,有效降低生成描述錯(cuò)誤率,且能保證與源句子之間的差異性。
后續(xù)研究工作考慮將句法類型屬性融入圖中,進(jìn)一步豐富圖中的信息量,在解碼階段的邊預(yù)測階段,同時(shí)探索利用維特比(Viterbi)等解碼算法對(duì)圖生成解碼的結(jié)果直接進(jìn)行離散序列預(yù)測可能是一個(gè)有效的思路。