陳 千,高曉影,王素格,郭 鑫
(1. 山西大學 計算機與信息技術學院,山西 太原 030006;2. 山西大學 計算智能與中文信息處理教育部重點實驗室,山西 太原 030006)
問題生成任務指在給定形式的數據(如文本[1-2]、圖像[3]、表格[4]或知識圖譜[5-7])上生成對應問題的任務。本文主要研究在給定的知識圖譜上生成對應問題的任務,該研究具有廣泛的應用前景,受到學術界和工業(yè)界的廣泛關注。如為了訓練一個基于知識圖譜的問答系統(tǒng)神經網絡,需要大規(guī)模的問答對訓練樣本,但人工標注訓練樣本的成本很高,且規(guī)模較小,問題生成任務尤其是在知識圖譜上生成高質量的問題對(樣本)成為解決該問題的有效手段;基于知識圖譜的問題生成技術在聊天機器人、智能客服、閱讀理解系統(tǒng)等諸多下游應用中具有重要應用價值。
目前,知識圖譜問題生成任務普遍使用編碼器-解碼器框架將知識圖譜子圖作為輸入生成對應的問題[8-9]。其中,在對使用知識圖譜中一個三元組生成問題的研究中,Elsahar等[9]用額外的上下文信息豐富編碼器,并為解碼器提供注意力機制和復制機制提升生成問題的質量。Liu等[10]提出一個包含多種上下文和可感知答案的損失函數的編碼器-解碼器來表達給定的謂詞和答案。雖然這些模型能夠生成高質量的問答對,它們沒有解決多跳推理問答任務中問答對短缺的問題。Kumar等[6]提出用基于Transformer的模型從知識圖譜子圖(即多個三元組)中生成難度可控的多跳問題。Bi等[7]提出在知識圖譜子圖上使用額外知識庫生成語義豐富且多樣性的問題。然而他們只是將知識圖譜子圖看作是多個三元組的集合,但沒有利用子圖本身含有的顯式圖形結構信息。為了解決這個問題,Chen等[11]提出利用雙向圖編碼器獲取知識圖譜子圖的顯式結構信息、生成有目標答案的問題的Graph2Seq模型。但其忽視了在編碼器中知識圖譜子圖中獨特的二部圖結構以及在解碼器中來自窗口大小相鄰節(jié)點的局部信息對節(jié)點的重要程度。
為了應對上面提及的挑戰(zhàn),首先,我們利用知識圖譜子圖獨特的二部結構進行信息傳遞,擴展圖神經網絡編碼器,學習具有多關系邊的知識圖譜子圖信息,用來應對第一個挑戰(zhàn)。此外,我們將Graph2Seq思想應用到知識圖譜問題生成中,用來應對第二個挑戰(zhàn)。最后我們提出滑動窗口分層注意力機制提升知識圖譜子圖窗口大小相鄰節(jié)點帶來的局部信息對節(jié)點的重要度,用來應對第三個挑戰(zhàn)。
本文的主要貢獻如下:
(1) 提出了用于從知識圖譜子圖中生成問題的Graph2Seq模型,使用一種沿著知識圖譜子圖的拓撲結構迭代傳遞節(jié)點和邊信息完成圖表示的方法,提高具有多關系邊的知識圖譜子圖表示。
(2) 使用滑動窗口分層注意力機制擴展RNN解碼器,能夠在生成問題詞時,提升知識圖譜子圖窗口大小相鄰節(jié)點帶來的局部信息對節(jié)點的重要度。
(3) 本文方法在WebQuestions和PathQuestions兩個數據集上BLEU-4指標均有明顯提升。
傳統(tǒng)問題生成技術主要使用基于模板的方法在知識圖譜上生成問題[5,12-13],但模板的設計需要大量的人力,且當任務領域不同時,系統(tǒng)泛化性較差,基本沒有可擴展性。隨著神經網絡的發(fā)展,編碼器-解碼器框架被用于知識圖譜問題生成任務。Serban等[8]首次提出將知識圖譜三元組用于回答自然語言問題的神經網絡模型,并創(chuàng)建了30M Factoid Question-Answer語料庫。然而,他們的方法需要大量的客觀問題對作為訓練數據。為了解決這個問題,Song等[13]提出一種不需要人工設計模板的無監(jiān)督系統(tǒng),解決從特定領域的知識圖譜中生成問題。Indurhi等[14]提出一種基于RNN的問題生成模型,用于從知識圖譜中生成問答對。然而,這些方法[8-9,14]僅僅使用單個三元組生成簡單的問題,且采用的RNN編碼器不能有效處理具有圖形結構的數據。Kumar等[6]提出基于Transformer的編碼器-解碼器用于編碼知識圖譜子圖,同時生成多跳且難度可控的問題,這是首次使用神經網絡從知識圖譜子圖(即多個三元組)生成問題的模型。為了生成多樣且更流暢的問題,Bi等[7]提出使用額外知識庫獲取更多信息以生成高質量的問題,但以上的方法只是將知識圖譜子圖看成一個三元組集合,沒有充分利用知識圖譜子圖顯式的結構特征,也沒有充分利用三元組之間相互傳遞的信息。受場景圖生成任務Xu等[15]的啟發(fā),本文提出一種沿著知識圖譜子圖拓撲結構迭代傳遞節(jié)點和邊信息的圖編碼器,有效獲取子圖的顯式結構信息,提高具有多關系邊的知識圖譜子圖表示。Chen等[11]提出利用雙向圖編碼器獲取知識圖譜子圖的顯示結構信息、生成有目標答案的問題的Graph2Seq模型,但解碼器中的注意力機制是普通的全局注意力,不能提高來自窗口大小相鄰節(jié)點的局部信息對節(jié)點的重要程度。本文使用滑動窗口分層注意力機制來關注來自窗口大小相鄰節(jié)點的局部信息,準確得到節(jié)點注意力權重分布和詞典中每個詞的分布,進一步完善了解碼器中對知識圖譜子圖節(jié)點豐富信息的獲取。
知識圖譜問題生成任務是指: 給定知識圖譜子圖,生成與子圖相對應的問題。
具體示例如表1所示。
表1 知識圖譜問題生成的相關示例
本文提出一種基于迭代信息傳遞和滑動窗口注意力的問題生成模型(Iterative Message Passing and Sliding Window Hierachical based Question Generative Model,ImpSWH-QG),如圖1所示。該模型由節(jié)點和邊編碼模塊、迭代信息傳遞(Iterative Message Passing,Imp)圖編碼器模塊和基于滑動窗口分層(Sliding Window Hierachical,SWH)注意力的RNN解碼器模塊構成。該模型首先將知識圖譜子圖和答案輸入到迭代信息傳遞圖編碼器中,得到子圖和節(jié)點的向量化表示;然后利用SWH注意力機制關注知識圖譜子圖中的每一個節(jié)點,得到節(jié)點注意力分布pv(v),利用pv(v)循環(huán)神經網絡(Recurrent Neural Network,RNN)的輸出狀態(tài)和上下文向量得到詞表詞預測分布pvocab(w)和生成概率pgen;最后利用生成概率pgen,結合節(jié)點注意力分布和詞表詞預測分布pvocab(w)來生成問題,本文接下來將對該模型進行具體介紹。
圖1 基于迭代信息傳遞和滑動窗口注意力的問題生成模型圖
RNN能對序列數據進行有效建模,但其不能有效處理圖結構數據,如知識圖譜。在對知識圖譜進行編碼的時候,一種解決方案是將子圖線性化為一個序列,進而使用基于RNN的編碼器對序列進行編碼,但這種編碼方式丟失了獲取子圖顯式結構的完整信息。
本文的編碼器由節(jié)點和邊編碼模塊以及Imp圖編碼模塊構成。其中,節(jié)點和邊編碼模塊對輸入知識圖譜中節(jié)點和邊使用預訓練模型實現向量初始化,Imp圖編碼模塊在知識圖譜子圖上利用信息傳遞的基本思想來學習具有顯式圖結構信息的子圖和節(jié)點表示,具體細節(jié)如下所述。
2.2.1 節(jié)點和邊編碼模塊
我們用V表示知識圖譜子圖中節(jié)點的集合{v1,v2,…,vi,…,vg},其中每個節(jié)點都有自己的屬性,如節(jié)點名或節(jié)點ID;同樣,使用E表示知識圖譜子圖中邊的集合{e1,e2,…,ej,…,er},其中每個邊都有自己的屬性,如邊名或邊ID。
2.2.2 迭代信息傳遞圖編碼模塊
為了將知識圖譜子圖顯式的圖結構信息融入到子圖表示中以及對節(jié)點或邊的雙向信息進行建模,本文引入Imp圖編碼模塊,如圖2所示,獲取具有顯式圖結構信息的子圖表示和節(jié)點表示。
圖2 迭代信息傳遞圖編碼模塊的結構
Imp圖編碼模塊主要包括信息池化和信息傳遞兩個模塊。其中,信息池化模塊構建以節(jié)點為中心的原始圖作為節(jié)點信息池化層的輸入,以邊為中心的對偶圖作為邊信息池化層的輸入,節(jié)點信息池化層和邊信息池化層分別從進、出邊兩個方向(融合)得到節(jié)點信息(向量),從進、出節(jié)點兩個方向(融合)得到邊信息(向量);信息傳遞模塊接收節(jié)點信息(向量)和邊信息(向量)作為輸入,并分別輸入到節(jié)點GRUv層和邊GRUe層,完成一次知識圖譜子圖中節(jié)點和邊的信息傳遞,具體細節(jié)如下:
為了計算子圖的向量表示,首先將所有的節(jié)點向量表示經過一個全連接層,再對它們進行最大池化,最終得到一個d維的向量hG表示子圖的向量表示,子圖中節(jié)點向量表示和子圖向量表示用作后續(xù)的解碼器工作。
3.選中水印。利用菜單欄的“選區(qū)工具”(可根據要去除的水印的形狀選擇“矩形選框”或“橢圓選框”),選中我們要去除的水印部分(如圖3所示)??梢园醋℃I盤上的Alt按鈕同時向上滾動鼠標對圖片進行放大,這樣可以更準確地對水印區(qū)域進行選擇。
在解碼階段,本文引入基于SWH 注意力機制的RNN解碼器,提升對知識圖譜子圖中來自窗口大小相鄰節(jié)點的局部信息對節(jié)點的重要程度,由SWH注意力機制得到的節(jié)點注意力分布和已解碼的詞表詞預測分布共同得到問題詞預測分布。
2.3.1 滑動窗口分層注意力
為了生成更加流暢的相關問題,解碼器的每一步會生成一個單詞,當前步單詞的選擇依賴于節(jié)點注意力分布和已解碼的詞表詞預測分布。為了準確得到節(jié)點注意力分布,本文提出SWH注意力機制,如圖3所示。其中,滑動窗口的大小與獲取節(jié)點局部信息的多少有關,滑動窗口越大,能夠獲取的節(jié)點的局部信息越多。
圖3 滑動窗口分層注意力機制圖
具體來講,對于輸入子圖中的節(jié)點vi來講,首先將當前解碼器的輸出狀態(tài)st作為查詢單元,對節(jié)點vi及其節(jié)點vi左右兩邊各w個窗口大小的節(jié)點進行局部注意力,并得到局部上下文向量Li,如式(10)、式(11)所示。
其中,Z為參數矩陣。
然后將當前解碼器的輸出狀態(tài)st作為查詢單元,對上一步得到的局部上下文向量集合={L1, …,Li, …,Lg}進行全局注意力,得到節(jié)點注意力分布pv(vi)以及最終的上下文向量如式(12)~式(14)所示。節(jié)點獲取到的局部注意力和全局注意力共同構成了SWH注意力機制中的分層注意力,因此注意力機制融入分層中。
其中,節(jié)點注意力分布表示模型在解碼過程中對知識圖譜子圖中不同節(jié)點狀態(tài)的比重。
2.3.2 基于SWH注意力機制的RNN解碼器
在解碼階段,本文將子圖嵌入hG分別經過兩個全連接層得到解碼器LSTM的初始隱藏狀態(tài)(c0和s0),對于第t個時間步,將t-1步的隱藏狀態(tài)st-1和前一個單詞qt-1作為解碼器的輸入,獲得該時間步解碼器隱藏狀態(tài)st,如式(15)所示。
(16)
通過采用Chen等[11]提出的節(jié)點級的復制機制從輸入子圖中直接復制子圖中的節(jié)點屬性,解決了詞級別復制機制的問題。由于由SWH注意力機制得到的節(jié)點注意力分布pv(vi)已經度量了知識圖譜子圖中節(jié)點與部分解碼隱藏狀態(tài)的相關性,結合詞表詞預測分布pvocab(w)及對應的生成概率pgen,得到問題詞預測分布p(w),如式(17)所示。
p(w)=pgenpvocab(w)+(1-pgen)pv(vi)
(17)
(18)
此外,本文使用交叉熵損失函數作為目標函數,并用Adam優(yōu)化器進行優(yōu)化,如式(19)所示。
本文使用ImpSWH-QG模型分別在Web Questions(WQ)和PathQuestions(PQ)兩個數據集上進行實驗。本節(jié)首先介紹了要比較的基線模型;然后給出了任務的數據集與評測指標;接著分析了ImpSWH-QG模型與基線模型的實驗結果;最后用兩組實驗驗證了本文模型的有效性。
本文將以下模型作為問題生成任務的基線模型:
(1) L2A模型[1],該模型是一個具有注意力機制的基于LSTM的Seq2Seq模型,最初用在文本生成問題的任務中。
(2) Transformer(w/copy)模型[18],該模型使用Transformer編碼器-解碼器架構,將線性化的知識圖譜子圖作為輸入,并使用Klein等人[19]提出的具有復制機制的開源Transformer實驗設置。
(3) MHQG+AE模型[6],這是首次使用神經網絡從知識圖譜子圖(即多個三元組)生成問題的模型,該模型使用基于Transformer編碼器對知識圖譜子圖進行編碼,并使用基于Transformer解碼器生成問題。
(4) KTG模型[7],該模型使用額外知識庫獲取更多信息生成語義豐富且多樣的問題。
本文使用WQ和PQ兩組數據集來對比評估模型,這兩組數據集都是以Freebase作為基礎知識圖譜,其中WQ數據集包含了來自WebQuestionsSP[20]和ComplexWebQuestions[21]的問答數據集,每一條問答數據集都包含自然語言問題、問題對應的SPARQL語句和答案實體。為了構建知識圖譜子圖,Kumar等[6]將WQ中的每一條數據中的SPARQL查詢轉換成對應的子圖,我們的實驗數據集使用Kumar等[6]轉換后的數據。WQ數據集包含18 989/2 000/2 000(訓練/驗證/測試)條數據。與WQ數據集不同的是,PQ數據集[22]中的知識圖譜子圖是跨越2到3跳兩個實體之間的路徑,包含9 793/1 000/1 000(訓練/驗證/測試)條數據。表2描述了WQ和PQ兩個數據集中知識圖譜中最小/最大/平均三元組數,問題長度的最小/最大/平均值。
表2 WQ &PQ規(guī)模統(tǒng)計
本文使用BLEU-4[23]、METEOR[24]和ROUGE-L[25]3個指標評價實驗結果。其中BLEU-4統(tǒng)計了問題生成模型生成的問題句中4元詞組與標準答案匹配的個數,驗證問題生成模型生成的問題句的流暢性;METEOR綜合考慮生成問題句的準確率和召回率,準確把握同義詞對語義的影響;ROUGE-L用來預測標準答案中的單詞在問題生成模型生成的問題句中出現的數量。
本節(jié)展示了本文模型與其他基線模型在WQ和PQ數據集上的評估結果,如表3所示。
表3 問題生成結果
從實驗結果可以發(fā)現,在WQ和PQ兩個數據集上,ImpSWH-QG模型與其他4個基線模型相比,BLEU-4、METEOR和ROUGE-L值都明顯提高,說明基于圖神經網絡的編碼器比基于RNN和Transformer的編碼器更適合處理知識圖譜子圖,表明獲取知識圖譜子圖顯式圖結構信息的重要性。與WQ數據集上的結果相比,基于Transformer的編碼器在PQ數據集上的結果要高于其他3個基線模型,說明基于Transformer的編碼器在處理序列模型上比其他3個基線模型更有效,因為PQ數據集中的子圖結構偏向路徑結構,而WQ數據集中的子圖結構偏向樹結構。但在PQ數據集上,ImpSWH-QG模型的BLEU-4和ROUGE-L值明顯高于Transformer模型,這得益于解碼器中SWH注意力機制的使用,準確得到節(jié)點注意力分布。
3.4.1 迭代信息傳遞圖編碼器跳數的研究
本文在WQ數據集上探究了跳數對Imp圖編碼器編碼的影響,如圖4所示。實驗結果表明,圖編碼器跳數在一定的閾值內,能夠提高模型的性能。具體而言,當跳數小于閾值4時,隨著圖編碼器跳數的增加,圖編碼器有助于知識圖譜子圖的編碼效果,但當跳數大于4時,圖編碼器降低了知識圖譜子圖的編碼效果。
圖4 迭代信息傳遞圖編碼器跳數的探究
3.4.2 SWH注意力機制的有效性
本文在WQ數據集上對ImpSWH-QG模型進行消融實驗驗證模型中SWH注意力機制的有效性,如表4所示。其中,Imp-QG模型是用普通注意力機制代替滑動窗口分層注意力的模型。
表4 問題生成結果
實驗結果表明,與普通的注意力機制相比,模型中使用滑動窗口分層注意力機制后,三項評測指標都有明顯的提升,準確得到節(jié)點注意力權重分布和詞表詞預測分布。
本文使用注意力可視化的方式對SWH注意力機制進行分析,如圖5所示。
圖5 SWH注意力機制的可視化分析
其中,縱坐標表示生成目標問題對應的知識圖譜子圖中的節(jié)點以及詞典中相關的詞,橫坐標表示生成的目標問題中的各個單詞;圖中顏色的深淺表示權重大小。由圖5可知,目標問題中的各個單詞通過SWH注意力機制可以有效注意到節(jié)點詞或詞典詞,提高了生成目標問題的質量。
3.4.3 實例分析
本文通過實例分析驗證使用SWH注意力能提高生成問題的質量。表5分別展示了由未加SWH注意力機制的Imp-QG模型和含有SWH注意力機制的ImpSWH-QG模型生成的問題。
表5 問題生成結果
通過兩個模型生成的問題來看,SWH注意力機制的添加,使問題生成模型在一定程度上改善了知識圖譜子圖和答案與問題不匹配的現象,ImpSWH-QG模型在生成問題時,滑動窗口技術能有效將知識圖譜子圖中節(jié)點名“i-duck-of-savoy”看作一個整體,并通過對知識圖譜子圖中相鄰節(jié)點局部信息的關注,成功預測了生成問題中的疑問詞“Where”。
本文提出的ImpSWH-QG模型,用Imp圖編碼模塊編碼知識圖譜子圖,用SWH注意力機制得到的節(jié)點注意力分布和詞表詞預測分布,來預測問題詞預測分布,從而生成問題。實驗結果表明,該模型在兩個數據集三項指標上取得的結果都比基線高。
雖然本文提出的模型有助于在知識圖譜子圖上生成高質量的問題,由于僅僅依靠從輸入的知識圖譜子圖中獲取信息,導致生成的問題多樣性低。未來我們將添加額外的知識作為輸入,對生成問題的質量做進一步提高。