鄭超凡,陳羽中,徐俊杰
(福州大學(xué) 計算機與大數(shù)據(jù)學(xué)院,福州 350108)
(福建省網(wǎng)絡(luò)計算與智能信息處理重點實驗室,福州 350108)
答案選擇是問答領(lǐng)域的一個重要子任務(wù)[1],目標(biāo)是根據(jù)問題從候選答案集合中選擇最合適的答案,問答語義匹配是該任務(wù)的核心問題.
近年來,端對端的深度學(xué)習(xí)方法[2-27]成為當(dāng)前自然語言處理領(lǐng)域研究的熱點之一,并廣泛應(yīng)用于答案選擇任務(wù).基于深度學(xué)習(xí)的問答匹配模型通常基于融合注意力機制的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[2,3]、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[4-7]、圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)[8-10]或預(yù)訓(xùn)練語言模型[11-19].采用卷積神經(jīng)網(wǎng)絡(luò)獲得問題、答案文本的局部語義信息.循環(huán)神經(jīng)網(wǎng)絡(luò)可以構(gòu)建文本序列的語義依賴關(guān)系.注意力機制使得模型能夠更加關(guān)注問答對中關(guān)鍵語義部分.根據(jù)不同單詞之間的文本關(guān)系例如句法關(guān)系將問答對抽象成圖數(shù)據(jù)結(jié)構(gòu),圖神經(jīng)網(wǎng)絡(luò)則可以根據(jù)不同單詞之間的文本關(guān)系將問答對抽象成圖數(shù)據(jù)結(jié)構(gòu),對圖節(jié)點間的依賴關(guān)系進行建模.基于大規(guī)模語料訓(xùn)練的預(yù)訓(xùn)練語言模型則在獲得文本的潛在語義信息表示方面展現(xiàn)出巨大的優(yōu)勢.目前,已有許多研究工作提出了基于BERT[11]、RoBERTa[12]等預(yù)訓(xùn)練語言模型的問答匹配模型.此外,一些研究工作將知識圖譜引入到答案選擇任務(wù)之中[20-23].知識圖譜中的事實背景包含大量實體信息,在問答匹配的過程中能夠提供有效的常識性推理信息,提高答案選擇的準(zhǔn)確度.
現(xiàn)有的問答匹配模型在答案選擇任務(wù)上取得了巨大進展,但仍存在一些亟待解決的問題.首先,現(xiàn)有的問答匹配模型主要專注于獲得問題、答案文本中單詞之間的上下文語義關(guān)聯(lián)信息的特征表示,未充分考慮從語法結(jié)構(gòu)的角度挖掘問題與答案之間的依賴信息,限制了模型對文本語義信息的理解.其次,現(xiàn)有的一些問答匹配模型雖引入了知識圖譜,但是知識實體之間缺少上下文語義關(guān)聯(lián)且未有效引導(dǎo)實體信息幫助模型學(xué)習(xí)不同語境下的正確語義表示,限制了模型性能的提升.最后,現(xiàn)有基于預(yù)訓(xùn)練語言模型的問答匹配模型通常將模型最后一層輸出視為文本特征,忽略模型各編碼層生成的語義信息,無法充分提取問答對的語義特征.針對上述問題,本文提出一種知識增強的圖卷積網(wǎng)絡(luò)KEGCN.主要貢獻(xiàn)如下:
1)KEGCN提出了一種基于圖卷積神經(jīng)網(wǎng)絡(luò)的問題-答案結(jié)構(gòu)信息提取機制.該機制首先將問題、答案文本轉(zhuǎn)換為具有句法結(jié)構(gòu)依賴關(guān)系的圖數(shù)據(jù)結(jié)構(gòu),計算句法結(jié)構(gòu)圖中不同單詞節(jié)點之間的依賴關(guān)聯(lián)權(quán)重.通過節(jié)點之間存在的結(jié)構(gòu)依賴關(guān)系引導(dǎo)圖卷積神經(jīng)網(wǎng)絡(luò)中語義信息的傳播與更新,從而得到符合句法規(guī)則的文本結(jié)構(gòu)信息特征,增強對問答對的語義信息的理解.
2)KEGCN提出了一種基于自注意力門控網(wǎng)絡(luò)的擴展知識語義構(gòu)建機制.該機制首先獲得問題與答案文本在知識圖譜中多跳擴展的知識節(jié)點.之后,利用自注意力機制構(gòu)建知識實體之間的上下文語義關(guān)聯(lián)性,并將問題、答案的知識特征經(jīng)過門控網(wǎng)絡(luò)進行過濾融合,減少知識噪聲的影響,提高模型的魯棒性.
3)針對預(yù)訓(xùn)練語言模型各編碼層生成的不同粒度的語義信息,KEGCN提出多尺寸的卷積神經(jīng)網(wǎng)絡(luò)提取問答對的多粒度全局語義信息特征,從而解決模型文本語義特征提取不充分的問題.
近年來,基于深度學(xué)習(xí)的問答匹配模型憑借其端對端的訓(xùn)練方式和強大的特征提取能力廣泛地應(yīng)用于答案選擇任務(wù)之中.該任務(wù)的本質(zhì)核心在于文本語義匹配,通過深度學(xué)習(xí)模型分別學(xué)習(xí)答案句子的不同文本特征表示,并計算特征之間語義相似性得分完成問答匹配.Severyn等人[3]提出一種基于CNN的問答匹配模型,通過逐層的卷積和池化操作將問題、答案的語義信息編碼為高級向量,并采用逐點比較的方法將問答對重新進行排序.Chen和Hu等人[5]提出CA-RNN模型,在利用RNN對文本建模的基礎(chǔ)上,提出一種上下文對齊的門控機制對問答對的隱藏狀態(tài)進行更新.Zhou等人[6]提出循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(Recurrent Convolutional Neural Network,RCNN)模型用于答案選擇.該模型將CNN與RNN相結(jié)合,以捕獲問答之間的語義匹配以及嵌入在問答序列之間的上下文相關(guān)性.注意力機制[24-27]可以使得模型更加關(guān)注句子中的一些關(guān)鍵信息,從而獲得更加精確的問答對特征表示.Sha等人[24]提出了從問題句子的疑問詞、動詞以及問題語義等方面進行注意力特征建模,并使用co-attention獲得問題、答案的交互特征.Yang等人[25]在通過CNN對文本表征的基礎(chǔ)上,采用注意力機制對齊問答對之間的上下文語義特征和原始詞嵌入點乘特征,極大的提高問答的匹配精度.Tian等人[8]提出了多視角圖編碼器(Multi-Perspective Graph Encoder,MPGE)應(yīng)用于答案選擇任務(wù).MPGE分別從問答對之間的實體共現(xiàn)、句子距離、語義相似度以及動態(tài)注意力等多個角度構(gòu)建問答之間的關(guān)系圖,并利用GCN對不同關(guān)系圖進行編碼,最后獲得聚合多種視角的問答特征表示.
近年來,預(yù)訓(xùn)練語言模型的出現(xiàn)極大推動自然語言處理領(lǐng)域的發(fā)展.預(yù)訓(xùn)練語言模型可以從海量的無標(biāo)注文本中學(xué)習(xí)到潛在的語義信息.一些研究學(xué)者開展將預(yù)訓(xùn)練語言模型應(yīng)用于答案選擇任務(wù)的研究工作.Devlin等人[11]提出一個基于Transformer 架構(gòu)[26]訓(xùn)練自然語言處理的通用模型BERT,并將其應(yīng)用于答案選擇任務(wù).Laskar等人[13]將上下文的詞嵌入送入BERT模型中進行問題與答案句子的相似度建模.Shao等人[14]提出BERT-MatchLSTM模型,在BERT模型獲取問答對的深層次語義表征的同時利用BiLSTM進行序列匹配聚合.Li和Zhou等人[15]提出了多片段級交互網(wǎng)絡(luò)(Multiple Fragment-level Interactive Network,MFIN),應(yīng)用BERT和BiGRU以及動態(tài)分片注意力機制構(gòu)建問答對的關(guān)鍵片段,從而實現(xiàn)片段級別的問答語義交互.
近年來,一些研究工作將知識圖譜引入答案選擇任務(wù),也取得了一定進展.Li和Wu等人[20]提出詞網(wǎng)增強層次模型,利用WordNet中同義詞集和上位詞來增強問答句中的詞嵌入表示,并設(shè)計了兩個基于同義詞集和上位詞的關(guān)系分?jǐn)?shù)的注意力機制,從而捕獲更加豐富的問答交互信息.Yang等人[21]提出一種知識豐富的層次化注意力機制,利用問答對中的上下文信息和知識庫中的常識信息,捕獲問答對之間的多層次交互,將問答中的語境信息和常識知識在3個粒度級別上充分融合.

本文提出的KEGCN模型架構(gòu)如圖1所示,模型主要分為5層:文本特征表示層、知識特征表示層、特征編碼層、特征融合層以及分類層.其中,特征編碼層包括文本結(jié)構(gòu)特征編碼、外部知識特征編碼以及全局語義特征編碼3個模塊.首先,文本特征表示層采用預(yù)訓(xùn)練模型BERT獲取問題、答案的語義特征表示,以及問題-答案的全局語義特征表示[CLS]序列.知識特征表示層利用知識圖譜進行文本-知識匹配和多跳知識節(jié)點擴展.將獲得知識節(jié)點信息轉(zhuǎn)換為低維的向量表示,從而得到文本的知識擴展序列特征表示.特征編碼層中的文本結(jié)構(gòu)特征編碼模塊則根據(jù)問題-答案之間的句法結(jié)構(gòu)依賴關(guān)系,通過圖卷積網(wǎng)絡(luò)獲得文本之間的結(jié)構(gòu)化信息.外部知識特征編碼模塊包含了自注意力門控機制,對來自知識圖譜的信息進行學(xué)習(xí),從而獲得豐富的知識信息.全局語義特征編碼模塊利用多尺寸的卷積神經(jīng)網(wǎng)絡(luò)來獲取多粒度的問題-答案全局語義特征信息.融合層將問答對的語義信息、結(jié)構(gòu)信息以及外部知識信息進行融合,得到用于答案選擇的最終特征表示.最后,分類層通過學(xué)習(xí)分類函數(shù)來預(yù)測給定問題的答案標(biāo)簽概率分布.

圖1 KEGCN整體架構(gòu)Fig.1 Overall architecture of KEGCN

(1)

(2)
首先,令BERT模型的最后一層輸出為Es,根據(jù)[CLS]和[SEP]標(biāo)簽在Es序列中的位置,對問題、答案的語義特征表示進行切分,從而分別獲得問題、答案的語義表示Eq和Ea:
(3)
(4)
(5)
其中Eq∈m×d,Eq∈n×d,m為問題序列的長度,n為答案序列的長度,d為表征向量的維度.
連接BERT的各編碼層輸出中的[CLS]標(biāo)記,得到問題與答案的全局語義序列Ecls:
(6)
其中Ecls∈l1×d,l1為BERT的編碼器層數(shù),d為表征向量維度.



(7)

(8)
其中Cq∈l2×d,Ca∈l3×d,l2=(m+max_n×m)為問題知識擴展序列的長度,l3=(n+max_n×n)為答案知識擴展序列的長度,d為知識表征向量的維度.為的擴展知識節(jié)點,max_n為擴展節(jié)點的個數(shù).
2.5.1 文本結(jié)構(gòu)特征編碼模塊
文本結(jié)構(gòu)特征編碼模塊利用多層圖卷積神經(jīng)網(wǎng)絡(luò)在問題-答案文本的句法依賴圖上進行卷積操作,通過句法結(jié)構(gòu)依賴關(guān)系進行傳播并學(xué)習(xí)鄰接節(jié)點的信息來更新自身節(jié)點的結(jié)構(gòu)信息.從而獲得問題-答案之間的結(jié)構(gòu)信息特征.

(9)
(10)
對文本序列Xqa依賴解析,生成無向的句法結(jié)構(gòu)依賴圖并轉(zhuǎn)換為相對應(yīng)的(m+n)階句法結(jié)構(gòu)依賴鄰接矩陣A:
(11)
(12)

(13)
(14)


(15)
(16)


(17)
(18)
(19)

2.5.2 外部知識特征編碼模塊

αq=softmax(tanh(W6Eq×(W7Cq)T))
(20)
(21)


(22)

(23)
(24)

為了充分融合問題與答案的知識上下文表征Hq,Ha,抑制知識噪聲,KEGCN利用門控機制對問題與答案的知識上下文進行過濾融合,獲得問題-答案知識上下文特征Hqa:
g=sigmoid(W15Hq:W16Ha)
(25)
Hqa=(1-g)⊙Hq+gt⊙Ha
(26)
其中Hqa∈(l2+l3)×d,l2為Cq長度,l3為Ca長度.W15,WQ6為可訓(xùn)練參數(shù),“:”為連接操作.

(27)
(28)

2.5.3 全局語義特征編碼模塊

(29)
其中MCNN()表示多尺寸CNN.
(30)
(31)
將問答特征表示Efinal通過一個線性分類層并使用softmax函數(shù)進行歸一化處理,生成問題-答案之間的相關(guān)性分?jǐn)?shù)f(q,a)∈[0,1]:
f(q,a)=softmax(W19Efinal+b4)
(32)
KEGCN在訓(xùn)練過程中,采用交叉熵?fù)p失函數(shù)作為目標(biāo)函數(shù),計算公式如下:
(33)
其中f(q,a)i∈[0,1]是由softmax分類器計算出的問題-答案的相關(guān)性分?jǐn)?shù),yi∈[0,1]是二元分類標(biāo)簽.
本文使用WikiQA和TrecQA(TrecQA-CLEAN)兩個數(shù)據(jù)集對KEGCN模型進行評估.WikiQA數(shù)據(jù)集是使用最廣泛的公開數(shù)據(jù)集之一,其內(nèi)容收集于英文維基百科之中.TrecQA數(shù)據(jù)集中的數(shù)據(jù)是從文本檢索會議QA track 8-13 收集得到.TrecQA包含兩個版本(TrecQA-RAW,TrecQA-CLEAN),兩個版本的區(qū)別在于在TrecQA-RAW中,一些問題沒有答案或者只有正確/錯誤答案,在TrecQA-CLEAN中則將這些問題去除.為了減少數(shù)據(jù)集噪聲對模型訓(xùn)練造成影響,本文選用TrecQA-CLEAN版本數(shù)據(jù)集.WikiQA和TrecQA數(shù)據(jù)集的統(tǒng)計信息如表1所示.

表1 WikiQA和TrecQA數(shù)據(jù)集統(tǒng)計信息Table 1 Statistics of WikiQA and TrecQA datasets
本文使用MAP( Mean Average Precision)和MRR(Mean Reciprocal Rank)兩個指標(biāo)衡量模型的性能.
KEGCN模型基于Pytorch框架實現(xiàn),使用Tesla-P100 GPU進行實驗.預(yù)訓(xùn)練語言模型使用由 huggingface 官方提供的 BERT-base-uncased 模型,BERT-base-uncased包括12層transformer編碼層,詞嵌入維度為768,12個注意力頭.預(yù)訓(xùn)練模型的最大輸入長度為128個詞,若超過將會被截斷.外部知識圖譜采用ConceptNet 提供的300維詞嵌入.知識匹配過程中,未匹配到的單詞通過在正態(tài)分布N(0,0.05)中采樣完成詞向量初始化.問題-答案句法依賴圖通過Spacy工具構(gòu)建,輸入的長度為當(dāng)前batch中問題長度和答案長度之和的最大值,當(dāng)問題和答案長度之和小于輸入長度時用0補充.模型采用Adam優(yōu)化器進行優(yōu)化,初始學(xué)習(xí)率設(shè)置為2×105,并在訓(xùn)練過程中逐漸減小.batch_size大小為32.多尺寸卷積神經(jīng)網(wǎng)絡(luò)采用2個不同大小的卷積過濾器,過濾窗口大小設(shè)置為[2,4].知識擴展的多跳次數(shù)設(shè)置為2,擴展節(jié)點的個數(shù)max_n設(shè)置為3.GCN的層數(shù)K設(shè)置為2.知識編碼中的自注意力機制的注意力頭的數(shù)量為6,BiGRU的隱藏單元維度為768.
為了實驗的公平性比較,除基于RNN的CARNN[5]、Cross-Bi-nGRUR[7]、WHEM[20]、KE-HNN[22]外,選擇基于BERT-base的答案選擇模型KHAAS[21]、BERT[11]、BERT-Transformer[17]、BERT-GSAMN[17]、MFIN[15]、CKANN-BERT[23]、CETE[13]、BERT-INTall[18]以及BERT-BIG[19]作為對比模型.
KEGCN及對比模型的在兩個數(shù)據(jù)集上的實驗結(jié)果如表2所示,表中所有對比模型的結(jié)果均取自對應(yīng)的文獻(xiàn).從實驗結(jié)果可以看出,KEGCN模型在WikiQA數(shù)據(jù)集上的兩項指標(biāo)MAP和MRR分別達(dá)到85.7%和87.45%,均優(yōu)于所有的對比模型,包括WHEM、KE-HNN、KHASS以及CKANN-BERT等同樣使用外部知識的模型.與綜合性能最好的基準(zhǔn)模型BERT-INTall相比,KEGCN模型的MAP和MRR分別提升了1.77%和1.45%.在TrecQA數(shù)據(jù)集上,KEGCN的MAP值為90.57%,略低于BERT-GSAMN和CKANN-BERT;MRR值為95.95%,略低于BERT-BIG.但是,KEGCN在WikiQA數(shù)據(jù)集上取得了遠(yuǎn)優(yōu)于上述模型的MAP和MRR值.綜合比較,KEGCN獲得了最優(yōu)的總體性能,且模型的魯棒性更佳.

表2 KEGCN與基準(zhǔn)模型的性能對比Table 2 Overall performance of KEGCN and baseline models
本節(jié)通過消融實驗分析KEGCN的各模型對其整體性能的貢獻(xiàn)程度.KEGCN的消融模型包括KEGCN w/o GCN、KEGCN w/o KG,KEGCN w/o CNN.KEGCN w/o GCN表示從KEGCN中去除文本結(jié)構(gòu)編碼模塊,KEGCN w/o KG表示在KEGCN中去除外部知識編碼模塊.KEGCN w/o CNN表示不利用CNN捕獲BERT各編碼層中的多粒度全局語義信息,僅將BERT最后一層輸出的[CLS]視為全局語義特征與問答對文本特征相結(jié)合.
消融實驗的結(jié)果如表2所示,從不同消融模型的性能表現(xiàn)來看,KEGCN w/o GCN的性能最差,表明利用圖卷積網(wǎng)絡(luò)得到符合句法規(guī)則的文本結(jié)構(gòu)信息特征,對增強對問題、答案文本的理解具有重要作用.KEGCN w/o KG和KEGCN w/o CNN的性能分別排在第2和第3,KEGCN w/o KG的性能證明了KEGCN提出的自注意力門控網(wǎng)絡(luò)機制捕獲多跳擴展知識特征信息的方法能夠在答案選擇的過程中提供豐富的常識性推理信息,并增強模型的魯棒性.KEGCN w/o CNN的性能證明了利用CNN捕獲BERT各編碼層中的多粒度全局語義信息對于模型性能的提升具有積極意義.
本節(jié)通過多組參數(shù)實驗分析不同超參數(shù)對于KEGCN模型的影響,選擇的超參數(shù)包括KEGCN構(gòu)造知識擴展序列中擴展節(jié)點的個數(shù)max_n以及文本結(jié)構(gòu)特征編碼中GCN的層數(shù)K.
構(gòu)造知識擴展序列的過程中,擴展節(jié)點個數(shù)max_n的選擇決定了KEGCN模型中外部知識語義的豐富性程度.圖2給出了在WikiQA和TrecQA數(shù)據(jù)集上不同的max_n設(shè)置對于KEGCN的影響.從實驗結(jié)果中可以看出,當(dāng)max_n設(shè)置為3時,KEGCN在WikiQA和TrecQA均獲得了最佳性能.當(dāng)max_n設(shè)置為0,1,2時,KEGCN性能逐步提升,這表明擴展一定數(shù)量的知識節(jié)點可能幫助模型增強知識語義的豐富性,提高模型性能.其中max_n設(shè)置為0時表示沒有進行知識節(jié)點擴展.當(dāng)max_n設(shè)置大于3時,模型性能開始下降,表明擴展的知識節(jié)點太多,會對模型帶來一定的知識噪聲,影響性能.

圖2 擴展節(jié)點個數(shù)對KEGCN性能的影響Fig.2 Effect of the number of extension nodes on the performance of KEGCN
GCN網(wǎng)絡(luò)的層數(shù)K對節(jié)點信息傳播具有重要影響.圖3給出了在WikiQA和TrecQA數(shù)據(jù)集上GCN層數(shù)K對于KEGCN的影響.從實驗結(jié)果中可以看出,當(dāng)K設(shè)置為2時,KEGCN在WikiQA和TrecQA均獲得了最佳性能.K設(shè)置為1時,GCN對于模型性能的提升不明顯,這是由于單層GCN無法令模型充分學(xué)習(xí)文本的結(jié)構(gòu)信息.當(dāng)層數(shù)大于2時,模型性能開始逐步下降,表明過多的GCN層數(shù)可能引入大量參數(shù),增加了模型的復(fù)雜度,導(dǎo)致模型訓(xùn)練困難,可能造成學(xué)習(xí)的過程中信息的丟失.

圖3 GCN層數(shù)對KEGCN性能的影響Fig.3 Effect of the number of GCN layers on the performance of KEGCN
針對現(xiàn)有應(yīng)用于答案選擇任務(wù)的模型對文本理解不足,未能充分利用外部知識信息以及全局語義信息提取不充分等問題,本文提出一種知識增強圖卷積網(wǎng)絡(luò)的問答匹配模型KEGCN.首先,KEGCN在BERT獲取文本語義特征基礎(chǔ)上,通過圖卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)問答對之間的句法結(jié)構(gòu)依賴關(guān)系,增強對問題,答案文本的理解.其次,外部知識信息作為問答對語義信息的補充,KEGCN提出了一種基于知識圖譜的多跳擴展知識序列的表示方法,豐富了知識信息的語義性.并利用自注意力門控網(wǎng)絡(luò)機制構(gòu)建知識實體之間的上下文語義關(guān)聯(lián)和過濾知識噪聲,增強模型的魯棒性.最后,針對BERT各編碼器生成的不同有效信息,KEGCN提出了利用多尺寸的卷積神經(jīng)網(wǎng)絡(luò)提取多粒度的全局語義信息特征,進一步提高答案選擇推理的準(zhǔn)確性.在WikiQA和TrecQA進行實驗分析,實驗結(jié)果表明KEGCN在兩個數(shù)據(jù)集上均表現(xiàn)出優(yōu)異的性能,并通過消融實驗證實了模型中各個模塊的有效性.