趙小虎,趙成龍*
(1.礦山互聯(lián)網(wǎng)應(yīng)用技術(shù)國家地方聯(lián)合工程實(shí)驗(yàn)室(中國礦業(yè)大學(xué)),江蘇徐州 221008;2.中國礦業(yè)大學(xué)信息與控制工程學(xué)院,江蘇徐州 221116)
(*通信作者電子郵箱zhaochenglong@cumt.edu.cn)
隨著大規(guī)模知識庫的出現(xiàn),基于知識庫問答(Question Answering over Knowledge Base,KBQA)研究得到了快速發(fā)展。知識庫(Knowledge Base,KB)是一種專門用來存儲結(jié)構(gòu)化知識的數(shù)據(jù)庫系統(tǒng),結(jié)構(gòu)化知識通常被叫作三元組(主語、謂語、賓語),其中主語和賓語代表知識庫中的節(jié)點(diǎn),謂語被用來連接主語和賓語。知識庫中大量三元組的連接構(gòu)成一個有向圖,主語和賓語代表圖中的節(jié)點(diǎn),謂語是從主語指向賓語的有向邊。如何根據(jù)知識庫中海量的事實(shí)三元組來實(shí)現(xiàn)知識問答成為目前研究的熱點(diǎn),基于知識庫問答任務(wù)在于根據(jù)用戶提出的自然語言問題從知識庫中得到匹配的事實(shí)三元組,并返回三元組中的賓語作為問題的答案。由于自然語言問題表達(dá)的多樣性,它與知識庫中結(jié)構(gòu)化的三元組事實(shí)存在語義差異,比如問題“王輝是干什么的”,可以通過知識庫中的三元組“王輝|||職業(yè)|||廣東省廣播電影電視局官員”來回答。但是“職業(yè)”跟“干什么的”之間的語義聯(lián)系機(jī)器很難捕捉。
現(xiàn)有的方法大多將知識問答任務(wù)分為實(shí)體識別和謂語匹配兩部分。首先根據(jù)實(shí)體識別得到問題的核心主題,然后將核心主題與知識庫中的主語節(jié)點(diǎn)進(jìn)行鏈接,檢索得到與核心主題相關(guān)的所有三元組為問答任務(wù)的候選三元組。然而實(shí)體識別的錯誤引起的誤差傳播導(dǎo)致所有的相關(guān)三元組都是錯誤的,從而無法獲取問題的正確答案。在謂語匹配時將候選三元組中的謂語和問題(去掉核心主題)映射到同一語義空間的高維語義向量,然后通過語義向量的相似度來衡量謂語和問題的匹配程度,該方法并沒有將答案的信息加入到語義匹配中去,從而丟失了部分語義信息。針對上面問題,本文提出的系統(tǒng)的創(chuàng)新性主要在于:1)提出一種端到端的解決方案,通過BM25 算法[1]來計(jì)算問題和知識庫中三元組的相關(guān)性來生成候選三元組,從而有效避免實(shí)體識別錯誤帶來的錯誤傳播;2)由于部分三元組的賓語也和問題具有語義相關(guān)性,把答案信息加入到三元組和自然語言問題的語義匹配中,來提高匹配的精度;3)提出多特征語義匹配模型,分別通過雙向長短時記憶網(wǎng)絡(luò)(Bi-directional Long Short Term Memory Network,Bi-LSTM)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)捕捉問題和三元組語義相似度和字符相似度,并通過融合來對三元組進(jìn)行排序,最后在NLPCC-ICCPOL 2016 KBQA 測試集上的平均F1達(dá)到了80.35%,接近了現(xiàn)有最好辦法的性能。
本文的知識問答系統(tǒng)如圖1 所示,首先給出問題“你可以告訴我虎門銷煙的時間嗎?”,通過BM25 算法在知識庫中進(jìn)行檢索得到的部分候選三元組如圖1 左下方所示。然后根據(jù)多特征語義匹配模型(Multi-Feature Semantic Matching Model,MFSMM)進(jìn)行候選三元組排序,發(fā)現(xiàn)最相關(guān)的三元組為“虎門銷煙|||時間|||清朝道光年間”,從而得到問題的最終答案“清朝道光年間”。
圖1 知識問答架構(gòu)Fig.1 Architecture of KBQA
知識問答中候選三元組生成的方法主要包括兩種:語義解析和序列標(biāo)注。Berant 等[2]通過解析器將輸入的問題解析為邏輯表達(dá),再基于這種結(jié)構(gòu)化的表達(dá)從知識庫檢索出候選三元組;Yih 等[3]通過將語義解析轉(zhuǎn)換成查詢圖的生成,利用simpleλ-DCS 來縮小候選三元組搜索的范圍;Zettlemoyer 等[4]以及Wong 等[5]提出了基于詞典學(xué)習(xí)的問答方法,這些方法需要人工標(biāo)注和固定模板的構(gòu)建。上述語義解析的方法都需要詳盡的語義推理,無法在問答中做到完善。在序列標(biāo)記方法中,翟社平等[6]應(yīng) 用Bi-LSTM 和條件隨機(jī)場(Conditional Random Field,CRF)來進(jìn)行命名實(shí)體識別雖然極大地提高了準(zhǔn)確率和可擴(kuò)展性,但是實(shí)體識別的錯誤會導(dǎo)致錯誤傳播。
自然語言問題和事實(shí)三元組匹配的方法通常通過語義相似度模型來進(jìn)行計(jì)算。語義相似度模型首先利用神經(jīng)網(wǎng)絡(luò)對問題和候選三元組進(jìn)行深層語義向量的計(jì)算,隨后通過余弦相似度等來衡量語義向量之間的相似性來找到最佳匹配。例如,Bordes 等[7]使用記憶網(wǎng)絡(luò)將問題和事實(shí)三元組編碼到相同的表達(dá)空間,并對它們的相似性進(jìn)行評分。Yin等[8]使用兩個獨(dú)立的帶有注意力最大值池化的字符級和單詞級CNN 模型進(jìn)行相似性計(jì)算。Dai 等[9]提出一種通過前后兩步來進(jìn)行條件概率估計(jì)問題,并使用雙向門控循環(huán)單元(Bi-directional Gated Recurrent Unit,Bi-GRU)網(wǎng)絡(luò)來實(shí)現(xiàn)問題和關(guān)系的匹配。
由于NLPCC-ICCPOL 2016 KBQA任務(wù)中發(fā)布了大規(guī)模的中文知識庫,基于中文知識庫的知識問答得到了發(fā)展。Wang等[10]使用了卷積神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元(Gated Recurrent Unit,GRU)模型對問句進(jìn)行語義層面的表示;Yang 等[11]先通過特征工程來挖掘特征,再使用梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)模型對命名實(shí)體進(jìn)行研究,最后結(jié)合了樸素貝葉斯和支持向量機(jī)(Naive Bayes and Support Vector Machine,NBSVM)以及卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行謂語映射;Lai等[12]使用基于詞向量的余弦相似度計(jì)算,并利用多種人工構(gòu)建的規(guī)則和特征,最后也取得了不錯的結(jié)果。
系統(tǒng)主要由兩部分組成:候選三元組生成和候選三元組排序。為了避免傳統(tǒng)命名實(shí)體識錯誤帶來的誤差傳播,首先通過BM25 算法直接計(jì)算問題和知識庫中三元組的相關(guān)性來生成候選三元組;然后通過本文提出的多特征語義匹配模型進(jìn)行三元組的排序,MFSMM分別通過Bi-LSTM和CNN實(shí)現(xiàn)語義相似度和字符相似度的計(jì)算,并通過融合來對三元組進(jìn)行排序
在NLPCC-ICCPOL 2016 KBQA數(shù)據(jù)集中事實(shí)三元組一共大約43 000 000 個,受Gupta 等[13]啟發(fā),在候選三元組生成時應(yīng)用BM25過濾出相關(guān)性得分最高的k個事實(shí)三元組,有效減少候選三元組的數(shù)量。
定義自然語言問題和事實(shí)三元組的相關(guān)性得分如式(1)所示:
其中:S(Q,T)代表自然語言問題和事實(shí)三元組的相關(guān)性得分,R(Qi,T)代表問題中的第i個字符Qi和三元組T的相關(guān)度值,wi代表字Qi的權(quán)重,通過其在整個文檔空間中的IDF(Inverse Document Frequency)值來設(shè)置wi。
其中:N是三元組的總數(shù),n(Qi)代表包含字Qi的三元組的總數(shù)。
問題中的字Qi和三元組T的相關(guān)度值如式(3)所示:
其中:k1和b是設(shè)置的先驗(yàn)參數(shù),k1用來表示Qi在三元組T中出現(xiàn)次數(shù)的影響程度,b主要用來調(diào)節(jié)三元組長度對結(jié)果的影響程度,本文設(shè)置k1=2,b=0.75。ti代表Qi在三元組T中出現(xiàn)的次數(shù)。l和lavg分別代表三元組T的長度和所有知識庫中所有三元組的平均長度。
傳統(tǒng)問答方法在三元組排序時將三元組中謂語和問題進(jìn)行語義匹配。如圖1中的問題“你可以告訴我虎門銷煙的時間嗎?”,傳統(tǒng)方法首先識別問句中的命名實(shí)體“虎門銷煙”,然后通過知識庫可以檢索到“虎門銷煙”相連的謂語為“時間”“地點(diǎn)”等,再進(jìn)行問題和謂語的匹配實(shí)現(xiàn)排序。
本文提出端到端的三元組排序模型(MFSMM)將答案的信息加入到模型中,直接匹配問題和三元組的相關(guān)性。例如圖1中“虎門銷煙|||時間|||清朝道光年間”中的答案“清朝道光年間”和問題“你可以告訴我虎門銷煙的時間嗎?”之間也有語義相關(guān)性。
2.2.1 語義相似度
首先將自然語言問題和事實(shí)三元組轉(zhuǎn)換成Qv=兩個序列,其中是問題的第m個字符的嵌入向量,eTn是三元組第n個字符的嵌入向量,m和n分別是問題Q和三元組T的長度。然后通過Bi-LSTM 提取問題和三元組的語義特征,其中Bi-LSTM 由兩個LSTM 拼接而成包含一個正向輸入序列和反向輸入序列來同時考慮了上下文的序列內(nèi)容,將Qv和Tv分別輸入到Bi-LSTM模型提取問題和三元組的語義特征。對于問題Q第i時刻的語義特征qi提取過程如式(5)~式(7)所示:
同樣三元組T的語義特征tj提取過程如式(8)~式(10)所示:
如式(11)、式(12)所示,通過連接各個時刻問題和三元組的語義特征得到各自的語義矩陣HQ和HT。
其中:qm表示問題在第m時刻的語義特征,tn表示三元組在第n時刻的語義特征,m和n分別是問題和三元組中字符的長度。
問題和三元組的全局語義向量根據(jù)語義矩陣在上下文的最大池化生成。問題的全局語義向量表示為vQ,三元組的全局語義向量表示為vT。
為了能夠從多種維度來捕獲自然語言問題和三元組之間的語義相關(guān)性,模型分別通過v1、v2和v3獲取它們之間的聯(lián)系,并通過全連接層(Fully Connected Layer,F(xiàn)CL)自動學(xué)習(xí)和組合特征,最后得到問題和三元組的語義相似度z1如式(15)所示:
其中:v1是問題和三元組全局語義向量的絕對差|vQ-vT|,v2代表向量之間的點(diǎn)乘|vQ⊙vT|,v3代表向量之間的絕對占比|vQ/vT|。其中為圖2中全連接網(wǎng)絡(luò)中隨機(jī)初始化第一層和第二層網(wǎng)絡(luò)的權(quán)重矩陣和偏置,σ為激活函數(shù)ReLU(Rectified Linear Unit)[14]。
圖2 多特征語義匹配模型Fig.2 Multi-feature semantic matching model
2.2.2 字符相似度
除了上述提取的問題和三元組語義相似度特征外,受韓萍等[15]的啟發(fā),本文將字符相似度的特征應(yīng)用到中文知識庫問答中去。首先構(gòu)建字符相似度矩陣S捕捉字符之間的相似度,其中sij如式(16)所示代表問題中第i個字符和三元組中的第j個字符之間的相似性,即之間的內(nèi)積,分別代表問題第i個字符和三元組第j個字符的嵌入向量。
其中:?代表向量之間的內(nèi)積,然后通過卷積層提取字符匹配特征。
特征提取過程如圖3 所示,例如針對問題“西游記屬于什么類型的書呢”和三元組“西游記|||類型|||奇幻”建立字符相似度矩陣,其中黑色代表字符之間的相似性,顏色程度代表兩者的相似程度,通過如圖3中所示不同的卷積核(虛線框內(nèi))來提取特征dk。
圖3 字符相似矩陣Fig.3 Character similarity matrix
通過全連接網(wǎng)絡(luò)生成字符相似度特征z2和z3如式(20)、式(21)所示。
2.2.3 融合
通過圖2中全連接網(wǎng)絡(luò)FCL()4 融合語義相似度特征和字符相似度特征如式(22)所示:
其中:σ表示Sigmoid函數(shù),z1為語義相似度特征,z2和z3為字符相似度特征,W(4)和b(4)為圖2中全連接網(wǎng)絡(luò)FCL(4)隨機(jī)初始化的權(quán)值矩陣和偏置。
將數(shù)據(jù)集分前80%作為訓(xùn)練集,剩余20%作為驗(yàn)證集,其中訓(xùn)練集、驗(yàn)證集和測試集的數(shù)目分別為11 536、2 884 和9 542。保存在驗(yàn)證集上效果比較好的模型在測試集上評估。
在訓(xùn)練過程中,目標(biāo)是最小化訓(xùn)練集中所有問題屬性的交叉熵。
其中:Qi和Ti分別表示訓(xùn)練集中的自然語言問題和候選三元組的樣本;yi表示該候選三元組是否是問題的答案;w代表模型中的所有參數(shù);pw為三元組是問題答案的概率值,是通過上面融合后的輸出o經(jīng)過softmax函數(shù)歸一化后的概率值。通常通過第一步候選三元組生成后的三元組數(shù)目為n,其中只有一個答案是正確答案,針對本題a個問題即有a×n個樣本,其中只有a個樣本是正樣本。
實(shí)驗(yàn)在Ubuntu 16.06 系統(tǒng)中進(jìn)行,其中CPU 為i7 6700k,GPU 為GTX1080Ti。模型訓(xùn)練過程在GPU 上開展,實(shí)驗(yàn)的代碼采用Tensorflow深度學(xué)習(xí)框架。
在實(shí)驗(yàn)中輸入詞向量的維度為200,MFSMM中使用雙向LSTM中每個方向的單元數(shù)為80,隱藏節(jié)點(diǎn)維度為100,CNN模型卷積核的尺寸為g×g,其中g(shù)的取值為3,使用16種不同的顏色通道;參數(shù)優(yōu)化使用Adam 優(yōu)化器,設(shè)置其學(xué)習(xí)率為0.000 5;Batch Size 設(shè)置為64。根據(jù)官方給出的評價指標(biāo)為平均F1值,由于每個樣例的標(biāo)準(zhǔn)答案樣例的標(biāo)準(zhǔn)答案和候選答案均為集合的形式,因此每個樣例都可以得到一個F1 值,最后取所有樣例F1值的平均值作為結(jié)果(見表1)。
表1 訓(xùn)練集、驗(yàn)證集、測試集的平均F1 單位:%Tab.1 Average F1 value on training,validation and test sets unit:%
為了驗(yàn)證該系統(tǒng)的先進(jìn)性,分別將經(jīng)典的文本語義匹配模 型Bi-LSTM[16]、雙向LSTM結(jié)合注意力機(jī)制(Bi-LSTM Attention,Bi-LSTM_ATT)[17]、增 強(qiáng)LSTM(Enhanced LSTM,ESIM)[18]、卷積神經(jīng)網(wǎng)絡(luò)對排序(Pairs with CNN Ranking,PairCNN Ranking)[19]、基于注意力機(jī)制的CNN(Attention-Based CNN,ABCNN)[20]在該數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4所示。
對比經(jīng)典語義匹配模型和其他論文在該數(shù)據(jù)集上的表現(xiàn),如表2所示,本文模型取得了較好的表現(xiàn)。
如表2 所示,對比經(jīng)典的基于循環(huán)神經(jīng)網(wǎng)絡(luò)以及融合注意力機(jī)制的模型如Bi-LSTM、Bi-LSTM_ATT 以及ESIM,本文模型平均F1 值分別提高了10.40、8.85、8.50 個百分點(diǎn);對比基于卷積神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制的模型PairCNN Ranking 和ABCNN 分別提高了5.98、3.90 個百分點(diǎn)。本文模型在該數(shù)據(jù)上的表現(xiàn)遠(yuǎn)遠(yuǎn)優(yōu)于經(jīng)典文本匹配模型在該數(shù)據(jù)上的表現(xiàn)。
同時對比在該數(shù)據(jù)集上發(fā)表的論文(Wang 等[10]和Xie等[21]),分別提高了1.21、0.78 個百分點(diǎn)。該數(shù)據(jù)集上現(xiàn)有最好的方法[12]的評測結(jié)果為82.47%,但是它通過復(fù)雜的數(shù)據(jù)清洗、規(guī)則和構(gòu)建模板等方法,耗費(fèi)了大量的人工,本文在沒有使用復(fù)雜人工特征的情況下取得了相當(dāng)?shù)男Ч?,?yàn)證了本文模型的有效性和可擴(kuò)展性。
圖4 經(jīng)典文本語義匹配模型和本文模型在NLPCC-ICCPOL 2016 KBQA數(shù)據(jù)集上的性能Fig.4 Performance of traditional text semantic matching model and the proposed model on NLPCC-ICCPOL 2016 KBQA dataset
表2 NLPCC-ICCPOL 2016 KBQA數(shù)據(jù)集上平均F1值的對比 單位:%Tab.2 Comparison of average F1 value on NLPCC-ICCPOL 2016 KBQA dataset unit:%
除了模型在重要指標(biāo)F1上的對比,本文還在訓(xùn)練時間和預(yù)測時間上進(jìn)行了對比,如表3 所示。因?yàn)楸疚慕M合了Bi-LSTM和CNN,所以訓(xùn)練和預(yù)測時間高于Bi-LSTM以及以CNN為基礎(chǔ)模型的PairCNN Ranking,但是在核心指標(biāo)F1上分別高了10.40個百分點(diǎn)和5.98個百分點(diǎn)。對比使用了注意力機(jī)制的模型Bi-LSTM_ATT、ESIM 和ABCNN 本文在時間和核心指標(biāo)上都具有先進(jìn)性。
表3 NLPCC-ICCPOL 2016 KBQA數(shù)據(jù)集上訓(xùn)練和預(yù)測時間的對比 單位:sTab.3 Comparison of training time and predication time on NLPCC-ICCPOL 2016 KBQA dataset unit:s
現(xiàn)有的知識問答方法大多將該任務(wù)分為實(shí)體識別和謂語匹配,但是命名實(shí)體識別的錯誤直接影響到后面的謂語匹配和答案檢索。在謂語匹配時僅通過匹配謂語和問題(去實(shí)體后)的高維語義向量之間余弦相似度或者全連接網(wǎng)絡(luò)進(jìn)行相似度的計(jì)算,這樣會丟失部分語義相似度信息。為了解決上述的問題,本文提出端到端的解決方案直接匹配自然語言問題和三元組的相關(guān)性來避免命名實(shí)體識別的誤差傳播;同時在候選三元組排序階段充分利用問題和三元組的語義相似度和字符相似度信息,并將答案的信息加入到模型中進(jìn)一步提高了知識問答的準(zhǔn)確率。最后在NLPCC KBQA 2016 數(shù)據(jù)集的平均F1 值達(dá)到了80.35%,接近了現(xiàn)有最好的辦法。相比最好方法通過復(fù)雜的規(guī)則和構(gòu)建別名詞典等方法,需耗費(fèi)大量的人工,本文僅通過簡單的處理,模型結(jié)構(gòu)也沒有堆疊很深的網(wǎng)絡(luò),證明了模型的可用性和擴(kuò)展性。