侯志榮,范曉東,張 華,馬曉楠
(1.工銀科技有限公司,北京 100029;2.北京大學 軟件與微電子學院,北京 102600)
復述生成是自然語言生成(Natural Language Generation,NLG)領域極具挑戰的重要任務,其核心是通過改變源句子的表述方法獲得與源句子語義相同的復述句子。目前,該任務在眾多自然語言處理(Natural Language Processing,NLP)下游任務中有著廣泛的應用潛力,如問答系統[1]、機器翻譯、語義解析等。
近年來,隨著基于Seq2Seq(Sequence-to-Sequence)[2]的端到端深度生成模型的發展,復述生成任務的生成效果取得了令人激動的進展[3]。Prakash 等[4]利用多層殘差長短期記憶(Long Short-Term Memory,LSTM)網絡堆疊的結構生成復述,是Seq2Seq 框架實現復述生成的經典模型。而后Gupta等[5]提出了一種基于變分自動編碼器(Variational Auto-Encoder,VAE)的深層變分自動句子生成模型(Variational Auto-Encoder-Sentence Variant Generation,VAE-SVG),將Seq2Seq 與VAE 結構結合,用于探索復述生成的多樣性問題。
雖然現有模型在Seq2Seq 基礎上進行了多種模型結構優化的探索,但主要研究集中在編碼階段,通過融入更多有效特征信息來豐富編碼階段的輸出特征,而解碼階段多是應用序列解碼逐字生成復述文本。參照人類構思生成文本過程,一般經過主題構思、上下文組織、句法規則修正,最終形成一句完整句子表述。雖然現有采用序列解碼的方式可以很好地關聯局部上下文信息,但仍然存在局限性。一方面該方式無法保證輸出句子整體語義的連貫性和句法可控性,導致模型生成的復述句子仍然存在較嚴重的語義重復、句法錯誤等問題;另一方面,由于序列解碼為了確保語義不變,訓練過程中會傾向于學習與源句子非常類似的表述方式甚至直接從源句子拷貝,導致生成句子的多樣性受到限制。
近年來,隨著圖神經領域的研究和應用不斷深入和推廣,圖神經網絡在復述生成任務中的應用也已經得到初步的探索。在最新的研究成果中,Chi 等[6]將圖神經網絡引入到Seq2Seq 框架的編碼階段,利用圖神經將句法關系特征融合到語義編碼中,并通過構建循環時間網絡與圖卷積神經網絡組合的編碼模型提升生成語義的連貫性;但在解碼階段該模型采用的還是傳統的序列解碼,仍然存在序列生成重復或語法錯誤的固有缺陷。
為了解決上述問題,本文提出一種基于序列與圖的聯合學習復述生成網絡(Paraphrase Generation Network based on Joint learning of Sequence and Graph,J-SGPGN)。該網絡模型的主要思路是采用編碼器-解碼器框架。在編碼階段,首先采用自注意力機制對輸入句子進行上下文語義學習,獲得初步的多粒度上下文語義融合特征;然后將句子中的詞作為圖中節點、依存句法關系作為邊,實現圖的構建,并利用融合上下文的詞特征初始化節點特征,再通過門控圖神經網絡(Gated Graph Neural Network,GGNN)[7]進行基于句法關系的節點特征聚合,最終輸出圖級別的編碼特征。在解碼階段,聯合圖生成與序列生成任務,分別在非時序化的圖空間和時序化的上下文語義空間進行復述生成聯合學習。訓練過程中,模型通過對圖空間解碼的節點生成損失、邊預測損失以及時序空間解碼的局部上下文局部語義損失的聯合學習,分別針對性提升對全局語義、句法關系、上下文局部語義的顯式監督優化。
本文的主要工作如下:
1)提出了一種基于序列與圖的聯合學習復述生成網絡(J-SGPGN),在解碼階段將圖生成通過聯合學習方式應用到復述生成領域,是生成算法框架的新探索。
2)提出了一種新的文本圖解碼算法,采用迭代式方法實現節點和邊關系的全圖預測,并利用圖級別的節點及邊的損失函數、聯合序列解碼的語義損失進行聯合學習。
3)在Quora 和MSCOCO[8]公開數據集上進行了實驗,結果表明本文提出的方法在語義準確性、表述多樣性等多個評價指標中均取得了超越最新基線模型的性能。
復述生成任務的實質是通過改寫句子中的成分或表達方法生成新句子,早期的研究方法主要依賴于規則模板或者數據驅動,難以在不同領域擴展應用。隨著深度學習的發展,復述生成任務被類比于單語機器翻譯,將任務目標設置為從源句子到復述句子的端到端文本生成問題,旨在生成語義可控、表達多樣的復述句子[9]。Prakash 等[4]首先將神經網絡技術應用在復述生成任務,利用多層殘差LSTM 網絡構建Seq2Seq 的編碼器和解碼器,實現首個端到端復述生成模型。Gupta 等[5]發現將變分自編碼器網絡應用到Seq2Seq 模型中可以有效提升生成質量和多樣性。Li 等[10]將復述過程進行細粒度劃分,以達到生成可控和可解釋,且可以被用于無監督領域進行領域適應。最新的研究中,外部知識和顯式的句法引導生成被應用到該任務中。最新提出的知識增強復述網 絡(Knowledge-Enhanced Paraphrase Network,KEPN)模型[11]和多輪回譯復述生成(Back-Translation guided multiround Paraphrase Generation,BTmPG)模型[12]分別利用知識增強、回譯增強等方法,通過增加同義表述或引用中間生成結果豐富模型可學習內容,提升復述生成的多樣性。Kumar等[13]考慮句法可控性,提出句法控制引導復述生成(Syntax Guided Controlled Paraphraser,SGCP)算法,通過句法示例指導生成不同粒度級別的復述句子,以保證生成句子的語法保持與句法示例模板一致。
上述研究雖然對Seq2Seq 框架在結構上進行了改造探索,但生成結果中仍然存在語法錯誤、表述多樣性不足的問題。近年來,圖神經領域的研究和應用不斷深入和推廣,如已有學者將圖生成方法應用在新藥發現[14-15]、蛋白質結構建模[16-17]等研究領域;也有研究開始將圖神經網絡應用于NLP領域[18]。在機器閱讀理解任務中,Song 等[19]以文本中提到的命名實體和代詞為基礎構建圖,有效地整合了篇章內容中不同線索的信息,顯著提升了候選答案匹配質量。在最新復述生成研究方法中,Chi 等[6]引入了圖神經網絡,將句法關系用于上下文語義聚合,旨在通過顯式融入句法特征,提升生成效果。該方法與上述相關方法的共同點,都是從編碼階段進行模型改造,嘗試通過優化編碼特征提升最終生成結果,而對解碼階段的優化鮮有探索。參考人類構思成文行為模式,假設在解碼階段增加圖空間的解碼可以顯式監督優化生成句子的句法結構,以達到提升生成句子句法可控性的效果。目前,圖生成方法尚未在文本生成領域得以應用[20]。為此,本文提出一種基于序列和圖聯合學習的復述生成算法框架,通過圖生成與序列生成的聯合學習,旨在提升生成文本的質量和多樣性,同時為優化復述生成文本質量開拓新思路。
設句子對{X,Y},其中X={x1,x2,…,xn}為由n個詞組成的源句子,Y={y1,y2,…,ym}為由m個詞組成的目標句子。復述生成過程可定義為Y=F(X),模型通過訓練學習F轉換,在給定源句子X時可通過F(X)生成出目標句子Y。
本文提出的J-SGPGN 模型基于經典的編碼器-解碼器框架,結構如圖1 所示。

圖1 J-SGPGN模型結構Fig.1 Structure of J-SGPGN model
2.2.1 編碼器
編碼器部分實現對源句子X的特征編碼。采用詞向量自注意力編碼和語句圖編碼兩階段策略來豐富語義特征及融合句法特征。
1)詞向量自注意力編碼。
詞向量自注意力編碼階段通過計算句子中上下文詞之間的語義關聯重要性關系,對原始詞向量進行初步的上下文語義特征融合。
設源句子X的詞向量編碼為E∈RDw*N,詞性特征編碼為El∈RDl*N,其中:Dw、Dl分別為編碼維度,N為句子長度。為了讓模型的初始化詞向量能根據不同領域數據在訓練過程中進行微調,詞向量分別取GloVe[21]靜態詞向量Eg和可微調訓練的BERT(Bidirectional Encoder Representations from Transformers)[22]詞向量Eb兩種。基于詞粒度的自注意力特征融合計算過程如下:
首先,采用靜態詞向量Eg計算自注意力加權分數,得到詞級別語義關系權重βw:
其中:激活函數選擇線性整流函數(Rectified Linear Unit,ReLU);W為可訓練的權重參數。
然后,將靜態向量編碼Eg與βw相乘,得到詞級別語義加權編碼H:
最后,將靜態詞向量Eg、可訓練的BERT 詞向量Eb、詞性特征編碼El、上下文語義加權編碼H進行拼接,得到最終的詞級別注意力編碼特征H':
為了獲取更抽象的上下文隱藏狀態的語義加權信息,首先將詞級別的編碼表示H'輸入雙向長短期記憶(Bidirectional Long Short Term Memory,BiLSTM)網絡中,得到隱藏狀態編碼。然后對其進行與詞級別自注意力相同的計算過程,最終通過隱藏狀態編碼計算得到加權矩陣βc和上下文注意力編碼表示,計算公式如下:
2)語義圖編碼。
通過BiLSTM 和注意力網絡可以很好地捕獲句子的局部上下文語義信息,而圖神經網絡可以在空間中針對非時序的隱藏句法關系進行高維度信息融合,進一步豐富編碼特征信息。
具體地,本研究通過Stanford Parser[23]句法關系解析工具獲取源句子X的依存句法關系,將句子中的詞作為節點,依存關系作為邊,構造有向無權圖。
為了有效地從構建的文本圖中學習圖嵌入,本文算法采用雙向門控圖神經網絡(Bidirectional Gated Graph Neural Network,BiGGNN)[7],通過包括出度和入度的鄰接矩陣以交錯方式學習節點特征,來擴展門控圖神經網絡。在BiGGNN中,本文算法使用詞向量自注意力編碼階段最終輸出的上下文編碼特征-H'來初始化節點特征表示,同一組網絡參數在計算的每一跳共享。在每個計算跳躍點,對圖中的每個節點應用平均聚合器,該聚合器分別根據入度和出度計算該節點的向量表示:
針對獨立學習的兩個方向的獨立節點嵌入,本文算法在節點處融合兩個方向的節點嵌入:
將i時刻節點的入度和出度節點向量通過門控函數進行求和:
其中:a是入度節點向量,b是出度節點向量;⊙是分量乘法;σ是sigmoid 函數;Z是門控選通向量,WZ是門控函數權重,bZ是門控函數偏置。
然后,使用門控循環單元(Gated Recurrent Unit,GRU)[24]合并聚合信息來更新節點嵌入:
最后,為了獲得文本圖級別的上下文信息編碼,通過一個全聯接層和最大池化層,將節點編碼轉換為圖編碼genc。
2.2.2 解碼器
在解碼階段,本文算法分別從時序空間和圖空間兩方面同時進行解碼,并通過聯合學習方式,基于全局誤差更新網絡參數。
1)圖空間解碼。
圖空間解碼在文本生成領域是首次嘗試,在生成預測語義信息的基礎上,增加預測句法關系的任務,一方面提升了對全局句法準確性的監督,另一方面進一步促進語義生成的準確性和連貫性。
圖空間解碼主要包含節點生成和邊生成兩部分。首先基于批量訓練中的最大句子輸入長度確定圖生成規模,即節點個數,設為N。使用編碼階段的圖編碼genc初始化圖生成編碼H和零節點隱藏狀態編碼hv0,然后利用節點特征函數Ffeature初始化零節點的節點特征表示v0。
根據圖的節點個數和初始節點,在循環過程中依次生成節點。當生成新節點i(1 ≤i≤N-1)時,先利用邊預測函數計算與已生成節點之間是否存在邊關系,公式如下:
其中:邊預測函數Fedge是一個多層感知機(MultiLayer Perceptron,MLP)網絡;u是已生成節點集合V中的節點特征;Hi-1是i-1 時刻的圖生成編碼是邊預測概率。
設邊預測閾值為σ,當≥σ,則判定節點u與節點vi存在邊關聯,更新邊關聯集合,并通過關聯節點求解第i個節點的節點特征vi和隱藏狀態表示hvi,計算公式如下:
其中:節點特征函數Ffeature是另一個MLP 網絡;Vrel是與當前節點有邊關聯的節點集合;vm是與vi有邊關聯節點特征,vn是所有生成節點特征。
同時更新i時刻圖生成的圖編碼表示Hi:
最終,經過N輪迭代生成,得到圖空間中生成的所有節點集合V及其邊關聯關系集合E,并分別通過全連接層映射成節點和邊的概率預測向量pnode和pedge。
2)時序空間解碼。
時序空間解碼采用Seq2Seq 的解碼規則,以圖編碼特征作為初始狀態,采用LSTM 進行逐字預測生成概率pseq。預測過程中為了避免重復生成,引用覆蓋機制[25]進行調節。該機制在預測過程中會參考已生成的上文概率預測情況,對已預測過的單詞增加生成懲罰權重,降低已生成單詞在后續預測中的概率。此外,為了更好地收斂訓練過程,本文算法以一定概率隨機選擇在下一步預測過程中是否采用Teacher-Forcing 的模式。
J-SGPGN 模型在訓練階段,圖生成解碼和序列解碼共享編碼部分的輸出,解碼解段相互獨立。在計算損失時,通過加權求和方式,聯合兩個解碼模塊的損失函數進行模型全局損失訓練優化。
其中,圖解碼模塊的損失函數包含節點損失函數Lnode和邊損失函數Ledge,分別用交叉熵損失函數和二值交叉熵損失函數在每完成一次整圖預測后進行計算。公式如下:
序列解碼模塊損失函數Lseq主要預測上下文語義損失,同樣采用交叉熵損失函數計算:
所以總損失函數L為:
J-SGPGN 模型分別在Quora 數據集和MSCOCO 數據集上進行了評估實驗,如表1 所示。Quora 是一個包含超過40 萬對問題的數據集,用(0,1)標簽表示問題對之間的語義是否相似。本文在訓練集中篩選出標簽為1 的問題對用于復述生成任務,總計約15 萬對問題。MSCOCO 中包含超12 萬張圖片的文本描述注釋數據,每張圖片包含來自5 個不同標注者對圖中內容的描述,這些描述視為語義相近。本文隨機抽取2 個描述組成句子對,構成復述生成數據集。

表1 數據集統計Tab.1 Statistics of datasets
在模型評估中,本文實驗選取復述生成任務中的經典模型和最新的模型,包括:首個將Seq2Seq 結構應用到復述生成任務的經典模型Residual-LSTM[4];首個將VAE 結構融入Seq2Seq 結構的模型VAE-SVG[5],它試圖解決生成多樣性問題;BTmPG[12]通過將復述句子加入到生成迭代中,擴展生成語義空間,旨在提升生成多樣性;首個將圖神經應用到復述生成任務中的RNN+GCN[6]模型,它嘗試通過融入句法特征來提升復述生成效果。選取上述基線模型可從生成準確性和多樣性兩方面進行對比評估,以說明模型改進有效性。
本文使用torch-1.7.0 作為代碼主框架。編碼輸入所用的兩種詞向量編碼分別選取GloVe.840.300d 中的靜態編碼,維度為300。BERT 編碼選取bert_large_uncased 網絡最后一層輸出作為編碼,維度為1 024,最大序列長度設置為500。模型中,涉及到隱藏狀態規模均設置為300。在編碼器的自注意力上下文語義融合網絡和序列解碼網絡中,所用到的BiLSTM 網絡層數設置為1。圖生成階段,多層感知機網絡層數設置為2。模型優化器選擇Adam 優化器進行參數調優。解碼階段,集束搜索規模(beam_size)設置為5。在Quora 數據集實驗中,最優模型訓練主要超參數設置如下,以供參考。訓練次數epoch 為57,批數據大小batch_size 為64,學習率learning_rate 為0.000 1。聯合損失函數系數分別設置為序列解碼損失權重α=0.4,圖生成節點損失權重β=0.4,圖生成邊損失權重γ=0.2。
參考基線模型,本文實驗選擇BLEU-4 和METEOR(Metric for Evaluation of Translation with Explicit ORdering)兩個廣泛使用的指標對生成準確性進行評估。BLEU(BiLingual Evaluation Understudy,BLEU)是基于精準率的評價指標,它通過計算生成句子與目標句子之間的N-gram 模型,統計其匹配個數得到最終得分,BLEU-4 即為N=4 時的gram 統計結果,更能代表語句連續生成準確性。METEOR 是基于召回率的評價指標,且可兼容同義詞匹配,所以對語義相似度的評估更全面。此外,選擇Self-BLEU 指標評估生成句子與源句子之間的差異性,計算方法與BLEU 相同,不同的是它的輸入為生成句子與源句子,該指標越低說明生成的多樣性越好。
在Quora 和MSCOCO 兩個公開數據集上,J-SGPGN 模型與所有基線模型在各自最優的參數配置下的評價指標對比結果如表2 和表3 所示。其中,Residual-LSTM 和RNN+GCN由于未給出代碼,故相關指標參考BTmPG 論文中復現結果或用“—”代替。

表2 Quora數據集上的實驗結果 單位:%Tab.2 Experimental results on Quora dataset unit:%

表3 MSCOCO數據集上的實驗結果 單位:%Tab.3 Experimental results on MSCOCO dataset unit:%
由表2 可以看出,在Quora 數據集上,J-SGPGN 模型在生成準確性指標BLEU-4 和考慮同義詞表述的語義相關性指標METEOR 上超越了所有基線模型,其中:J-SGPGN 模型的BLEU-4 指標比次優模型Residual-LSTM 高0.85 個百分點,METEOR 指標則比次優模型RNN+GCN 高3.44個百分點。這一方面說明J-SGPGN 模型在生成過程中保持了很好的語義相關性,另一方面說明它在多樣性方面能實現同義改寫。J-SGPGN 模型的Self-BLEU 指標分數低于所有基線模型,其中比次優模型BTmPG 降低了12.79 個百分點,這也佐證了復述生成的多樣性更好。
在MSCOCO 數據集上,J-SGPGN 模型的METEOR 指標也超越了已有基線模型,且Self-BLEU 指標控制在基線模型相當水平,說明J-SGPGN 在不同的數據集上均能實現復述生成準確性和多樣性的提升,模型方案具有良好的遷移性。MSCOCO 數據集上BLEU-4 指標結果相對較低,分析原因主要是由于MSCOCO 數據集中源句子與目標句子的字面差異性較大,導致模型在預測時更傾向于生成多樣化的輸出,所以基于N-gram 統計結果并沒有得到提升,反而是METEOR更能說明生成語義的相關且表述多樣化。
為了研究圖生成模塊在解碼階段與序列生成聯合學習產生的積極效果,本實驗對該模塊在Quora 數據集上進行變體實驗,探索其最優網絡配置。
1)邊預測閾值實驗。該實驗旨在探索在圖生成過程中,對于邊預測的概率條件嚴格或寬松對最終生成結果的影響。實驗中采用等差分布進行對比實驗,結果如表4 所示。

表4 邊預測閾值的實驗結果Tab.4 Experimental results of edge prediction thresholds
由表4 可見,隨著閾值的增大,生成結果的語義準確性逐漸提升,當閾值為0.5 時,生成的準確性最好,而后準確性逐漸變差;當閾值為0.1 時,可以認為判斷節點間是否存在邊關系的條件非常嚴格,圖中很可能出現很多孤立的節點;而當閾值為0.9 時,可以認為判斷節點是否存在邊關系的條件非常寬松,節點間可能形成全連接圖。在這兩種極端情況下,句法邊關系的預測失去了其合理性,故無法形成良好的監督優化作用。
2)節點預測網絡實驗。該實驗旨在探索在圖生成過程中,節點預測的MLP 網絡深度對最終生成結果的影響。實驗結果如表5 所示。可見在節點預測的MLP 網絡中,增加網絡層數對提升節點生成效果有一定作用,但隨著網絡層數增加,提升效果達到瓶頸。

表5 節點預測網絡的實驗結果Tab.5 Experimental results of node prediction networks
本文在損失函數設計中,采用了序列損失Lseq、圖生成節點損失Lnode和圖生成邊損失Ledge的聯合學習方式,對模型參數進行優化訓練。由于在測試階段,主要依賴序列解碼網絡進行復述文本的生成,所以損失函數中,序列損失為主要優化目標,圖節點生成和圖邊生成損失為輔助優化目標。為了證實圖生成任務對序列生成任務的優化輔助效果,本文針對損失函數設計消融實驗,分別取消圖節點生成損失和圖邊生成損失,并基于ROUGE-L 指標在Quora 數據集上進行實驗結果對比,對比實驗的權重設置如表6。

表6 損失函數消融實驗的權重設置Tab.6 Weight setting of loss function ablation experiment
根據不同損失比例參數設置,在Quora 數據集上的對比實驗結果如圖2 所示,對比評價指標選擇ROUGE-L。ROUGE(Recall-Oriented Understudy for Gisting Evaluation)指標是基于召回率統計的評價指標,主要統計目標句子與生成句子之間N元詞組的共現。其中ROUGE-L 中的L 指最長公共子序列,即該類ROUGE 的計算過程中,N元詞組將選用最長公共子序列進行統計計算。

圖2 Quora數據集上的損失去權重消融實驗結果對比Fig.2 Results comparison of loss weight ablation experiment on Quora dataset
由實驗結果可知,在基于LSTM 序列解碼的交叉熵損失函數的基礎上,單獨增加圖生成節點損失或者邊損失,均會導致模型的評價指標ROUGE-L 小幅下降,因為在文本生成任務中,圖模型對代表文本的節點的解碼和代表文本關聯關系、句法邏輯的邊關系解碼同樣重要。在圖生成解碼過程中,只有同時優化節點損失和邊損失才能控制圖生成文本的有效性,同時也才能通過調整編碼部分的共享參數達到輔助優化序列解碼任務的作用。
從Quora 數據集選取若干例子,分別與基線模型VAESVG 和BTmPG 進行對比,以較直觀地說明模型結構創新的有效性。詳細情況如表7 所示。從表7 中兩個示例可以看出,在對源句子1 的復述生成結果中,基線模型VAE-SVG 模型的多樣性主要體現在對應的同義詞替換,句式與目標句子基本一致,而J-SGPGN 模型則可以通過同義但句式不同的表述方法生成復述句子;在對源句子2 的復述生成中,基線模型BTmPG 的生成結果確實引入了與源句子相關的額外信息以實現生成的多樣性,但其生成的語義卻與目標句子存在較大差異,在多樣性增強的同時,損失了一定的準確性,而本文的J-SGPGN 模型在輸入源句子較長情況下,能通過同義詞替換的方式準確生成與目標句子語義一致且存在變化的復述句子,體現出模型在保持生成語義準確性上的優勢。

表7 Quora測試數據的生成樣例Tab.7 Generation samples of Quora test data
本文提出了一種新穎的基于序列與圖的聯合學習復述生成網絡,將圖編碼技術和圖生成技術分別引入編碼和解碼階段,編碼階段利用句法特征增強上下文語義特征對句法關系的關注,解碼階段通過與序列生成任務進行聯合學習,實現在解碼階段對全局語義和句法關系的顯式監督學習,優化復述生成文本的句法準確性和表述多樣性。在公開數據集上的實驗結果表明,與現有基線模型相比,該模型可更好地指導生成過程,有效降低生成描述錯誤率,且能保證與源句子之間的差異性。
后續研究工作考慮將句法類型屬性融入圖中,進一步豐富圖中的信息量,在解碼階段的邊預測階段,同時探索利用維特比(Viterbi)等解碼算法對圖生成解碼的結果直接進行離散序列預測可能是一個有效的思路。