宋鵬程,單麗莉,孫承杰,林 磊
(1. 人民網(wǎng) 傳播內(nèi)容認(rèn)知國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京100733;2. 哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150001)
知識(shí)庫是一種用于存儲(chǔ)知識(shí)的數(shù)據(jù)庫,其將從現(xiàn)實(shí)世界中抽取出來的概念作為實(shí)體,以結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)據(jù)形式進(jìn)行存儲(chǔ)。知識(shí)庫存在多種表現(xiàn)形式,其中使用最廣泛的一種形式被稱為知識(shí)圖譜,它是以相互關(guān)聯(lián)的實(shí)體及其屬性為核心的圖結(jié)構(gòu)數(shù)據(jù)。知識(shí)圖譜用圖上的頂點(diǎn)代表實(shí)體的集合E,用邊代表實(shí)體屬性的集合P,用三元組集合K代表知識(shí)庫,即以三元組(s,p,o)∈E×P×E的形式對(duì)知識(shí)庫系統(tǒng)進(jìn)行資源描述與存儲(chǔ)。本文后續(xù)章節(jié)中的“知識(shí)庫”專指“知識(shí)圖譜類型的知識(shí)庫”。為了更加便捷地從知識(shí)庫中獲取信息,基于知識(shí)庫的問答系統(tǒng)應(yīng)運(yùn)而生。如圖1所示,系統(tǒng)以用戶提出的自然語言問題q作為輸入,通過對(duì)問題進(jìn)行語義分析,從給定的知識(shí)庫Κ中找到與問題相關(guān)的三元組組合query={(si,pi,oi)|(si,pi,oi)∈Κ},進(jìn)而根據(jù)三元組組合的結(jié)構(gòu)從特定位置抽取實(shí)體或?qū)傩灾底鳛榇鸢阜祷亟o用戶。由于相互關(guān)聯(lián)的三元組在圖上表現(xiàn)為一條路徑,因此我們也將與問題相關(guān)的三元組組合稱為查詢路徑。由一個(gè)三元組構(gòu)成的查詢路徑稱為單跳路徑,由多個(gè)三元組構(gòu)成的查詢路徑稱為多跳路徑??梢哉f,系統(tǒng)查找答案的過程,本質(zhì)上就是將問題映射為知識(shí)庫中查詢路徑的過程。同樣,我們還可以根據(jù)問題所對(duì)應(yīng)的查詢路徑中三元組的數(shù)量將問題劃分為兩種類型,分別為簡(jiǎn)單問題和復(fù)雜問題。
圖1 基于知識(shí)庫的問答系統(tǒng)的工作流程
簡(jiǎn)單問題即結(jié)構(gòu)簡(jiǎn)單的問題,通過知識(shí)庫中的一個(gè)三元組即可獲得答案。例如,圖2中問題“莫妮卡·貝魯奇的代表作?”,可以通過三元組(莫妮卡·貝魯奇,代表作品,西西里的美麗傳說)獲取答案。
復(fù)雜問題也稱為多約束問題,即需要知識(shí)庫中多個(gè)三元組進(jìn)行推理,并根據(jù)約束條件不斷地進(jìn)行篩選才能夠獲取答案。例如,圖2中問題“李清照的丈夫有哪些代表作?”,先找到與問題相關(guān)的三元組(李清照_宋代女詞人,配偶,趙明誠(chéng)),確定與“李清照的丈夫”對(duì)應(yīng)的實(shí)體“趙明誠(chéng)”后,再進(jìn)一步地識(shí)別出與“趙明誠(chéng)”相關(guān)的三元組(趙明誠(chéng),代表作品,《金石錄》)從而獲取答案“《金石錄》”。
圖2 簡(jiǎn)單問題與復(fù)雜問題實(shí)例及各自對(duì)應(yīng)的查詢路徑
相比于簡(jiǎn)單問題,復(fù)雜問題需要確定的三元組更多,涉及的查詢路徑集合規(guī)模更大,因此計(jì)算復(fù)雜度更高,更難求解。
為了將簡(jiǎn)單問題映射為知識(shí)庫上的三元組,目前大多數(shù)方法所采用的流程主要包括兩個(gè)步驟:①通過實(shí)體識(shí)別獲取問題中包含的知識(shí)庫實(shí)體s作為查詢的主題; ②通過屬性映射從實(shí)體s的屬性集中選取與問題相關(guān)度最高的屬性p,從而確定唯一的三元組(s,p,o)。利用這一方法,Zhou[1]等基于LSTM構(gòu)建的問答系統(tǒng)與Liu[2]等基于BERT構(gòu)建的問答系統(tǒng),在只包含簡(jiǎn)單問題的NLPCC2016 KBQA數(shù)據(jù)集上均取得了較好的效果。由于每執(zhí)行一次上述操作只能獲取一個(gè)三元組,因此在將方法應(yīng)用于同時(shí)包含簡(jiǎn)單問題與復(fù)雜問題的數(shù)據(jù)集時(shí),還需要提前確定問題的類型,以決定操作的次數(shù)。比較常見的方法為借助分類模型來對(duì)問題的類型進(jìn)行判斷。但是,這種方法沒有充分考慮知識(shí)庫的特點(diǎn),由于知識(shí)庫可能缺失某些實(shí)體,或缺失實(shí)體的某些屬性,一些看似屬于簡(jiǎn)單類型的問題,可能會(huì)因?yàn)槿鄙僦苯訉?duì)應(yīng)的三元組而需要借助推理的方式,通過多個(gè)三元組才能獲取答案。例如,對(duì)于問題“黑曼巴的妻子是誰?”,傳統(tǒng)方法會(huì)將這一問題判別為簡(jiǎn)單問題,并解析為三元組<黑曼巴,妻子,?x>。而實(shí)際在知識(shí)庫中,“黑曼巴”這一實(shí)體并不具有“妻子”這一屬性,這將導(dǎo)致系統(tǒng)無法找到問題的正確答案。
為了避免這一問題,Yih等人[3]提出了一種新的流程,在通過實(shí)體識(shí)別獲取問題中的主題實(shí)體后,采用動(dòng)態(tài)擴(kuò)展的方式獲取候選查詢路徑集合,使用邏輯回歸模型對(duì)候選查詢路徑與問題進(jìn)行相關(guān)度打分,并選擇得分最高的查詢路徑以獲取答案。這一方法省略了問題類型判斷與屬性映射的環(huán)節(jié),避免了因誤分類造成的誤差。在這種情況下,即使知識(shí)庫存在實(shí)體或?qū)傩匀笔В到y(tǒng)也能夠通過其他屬性間接地找到答案。例如,對(duì)于問題“黑曼巴的妻子是誰?”,該方法可以在主題實(shí)體“黑曼巴”關(guān)聯(lián)的全部三元組中找到正確的三元組組合〈科比·布萊恩特,別名,黑曼巴〉〈科比·萊恩特,妻子,瓦妮莎·布萊恩特〉,進(jìn)而找到問題對(duì)應(yīng)的答案。
受這一方法的啟發(fā),本文提出了一種基于查詢路徑排序方法的問答系統(tǒng),相比于其他問答系統(tǒng),本文的貢獻(xiàn)如下:
(1) 構(gòu)建了一個(gè)完整的知識(shí)庫問答系統(tǒng),基于查詢路徑排序的方法,實(shí)現(xiàn)了對(duì)簡(jiǎn)單問題與復(fù)雜問題的統(tǒng)一處理,克服了因?yàn)橹R(shí)庫缺失而導(dǎo)致的匹配不到三元組的問題;
(2) 通過LambdaRank排序算法構(gòu)建排序打分模型,對(duì)候選查詢路徑與問題進(jìn)行相關(guān)度打分,提高了系統(tǒng)計(jì)算查詢路徑與問題間相關(guān)度的能力,從而提升了系統(tǒng)整體的效果;
(3) 提出了一種基于融合方法的實(shí)體識(shí)別方式,借助知識(shí)庫對(duì)模型識(shí)別到的實(shí)體結(jié)果進(jìn)行修正,解決了模型標(biāo)注出的某些結(jié)果無法與知識(shí)庫中的實(shí)體對(duì)應(yīng)的問題,提高了系統(tǒng)識(shí)別問題中主題實(shí)體的能力;
(4) 通過使用預(yù)訓(xùn)練模型BERT以及BERT的變體,提高了用于排序的語義特征的質(zhì)量,從而實(shí)現(xiàn)了用較少的特征篩選路徑,降低了系統(tǒng)的復(fù)雜度。
本文將在第1節(jié)重點(diǎn)介紹所使用的排序算法與基于排序算法構(gòu)建的排序打分模型,并于第2節(jié)具體介紹問答系統(tǒng)的搭建過程。
對(duì)于一個(gè)查詢query,以及信息檢索系統(tǒng)針對(duì)query返回的多個(gè)文檔,可以使用排序模型對(duì)各個(gè)文檔進(jìn)行打分,以反映文檔與查詢之間相關(guān)度的大小?;谶@一思想,本文使用排序模型計(jì)算問題與查詢路徑之間的相關(guān)度,進(jìn)而選取相關(guān)度最高的路徑用于抽取答案。相比于Yih等人[3]使用的邏輯回歸模型,本文使用基于LambdaRank算法構(gòu)建的排序模型,模型以對(duì)應(yīng)于同一問題的兩條查詢路徑作為輸入,在訓(xùn)練過程中側(cè)重考慮對(duì)應(yīng)于同一問題的查詢路徑間相對(duì)順序的準(zhǔn)確性,并克服了邏輯回歸模型在進(jìn)行二分類時(shí)無法有效區(qū)分相似路徑的缺點(diǎn),進(jìn)而提升了排序模型的準(zhǔn)確性。
模型如圖3所示,它是由兩個(gè)前饋神經(jīng)網(wǎng)絡(luò)模型構(gòu)成的孿生網(wǎng)絡(luò)模型。其中,前饋神經(jīng)網(wǎng)絡(luò)模型為輸入的查詢路徑計(jì)算相關(guān)度打分。我們采用LambdaRank算法訓(xùn)練好孿生網(wǎng)絡(luò)后,可以使用其中的前饋神經(jīng)網(wǎng)絡(luò)作為打分模型計(jì)算測(cè)試數(shù)據(jù)中問題與查詢路徑間的相關(guān)度得分。下面將重點(diǎn)介紹模型的訓(xùn)練過程。我們用xi,xj來表示查詢路徑pathi和pathj的特征向量,作為孿生網(wǎng)絡(luò)模型的輸入。設(shè)s=f(x;w)表示前饋神經(jīng)網(wǎng)絡(luò)模型輸出的相關(guān)度得分。那么pathi和pathj與問題q的相關(guān)度得分如式(1)、式(2)所示。
圖3 本文所構(gòu)建的用于排序的孿生網(wǎng)絡(luò)模型
LambdaRank算法關(guān)注的是兩個(gè)查詢路徑間相對(duì)順序的準(zhǔn)確性,我們可以用獲得正確排序結(jié)果的概率作為孿生網(wǎng)絡(luò)的輸出。因此可以借助sigmoid函數(shù)來定義pathi比pathj更接近q的預(yù)測(cè)概率,如式(3)所示。
本文以sij∈{-1,+1,0}來表示實(shí)際情況中pathi與pathj按照與問題相關(guān)度大小進(jìn)行比較的結(jié)果,如式(4)所示。
那么,pathi比pathj更接近q的真實(shí)概率可以表示為式(5):
模型使用交叉熵作為損失函數(shù)以保證兩條查詢路徑相對(duì)順序出錯(cuò)的概率最小,那么為一對(duì)查詢路徑pathi與pathj進(jìn)行排序操作的損失可以表示為式(6):
(6)將式(3)~式(5)代入到式(6)中整理可以得到式(7):
使用Cij對(duì)任一參數(shù)w求偏導(dǎo),如式(8)所示。
通過計(jì)算可以證明式(9):
因此,定義Lambda梯度如式(10)所示。
根據(jù)式(8)~式(10)可以得到基于梯度下降法的參數(shù)更新公式,其中,η是學(xué)習(xí)率,如式(11)所示。
(11)
在任務(wù)中應(yīng)該更關(guān)注排名靠前的查詢路徑,因此,為了進(jìn)一步提升top-k個(gè)排序結(jié)果的準(zhǔn)確性,LambdaRank算法在Lambda梯度上增加了歸一化折損累計(jì)增益變量,用以影響每次參數(shù)更新的方向和強(qiáng)度。折損累計(jì)增益表達(dá)式如式(12)所示。
(12)
其中,reli表示pathi與問題q之間的相關(guān)度。通過在相關(guān)度上除以一個(gè)關(guān)于位置i的折損值,增大了排名靠前的查詢路徑對(duì)指標(biāo)的影響程度。對(duì)式(12)進(jìn)行歸一化,即得到式(13)所示的歸一化折損累計(jì)增益。
(13)
其中,IDCGp為理想情況下最大的DCGp值。我們?cè)贚ambda梯度上乘以歸一化折損累計(jì)增益變量,以使排名靠前的查詢路徑位置提升得更快,從而提升top-k個(gè)排序結(jié)果的準(zhǔn)確性,如式(14)所示。
(14)
用于計(jì)算實(shí)體與問題間相關(guān)度的排序模型也使用同樣的方法進(jìn)行訓(xùn)練。
本文所構(gòu)建的系統(tǒng)主要包括四個(gè)功能模塊: 實(shí)體識(shí)別模塊,實(shí)體鏈接模塊,候選查詢路徑生成模塊以及查詢路徑排序模塊,系統(tǒng)架構(gòu)如圖4所示。
圖4 本文所構(gòu)建的知識(shí)庫問答系統(tǒng)框架
用戶輸入自然語言問題,系統(tǒng)首先通過實(shí)體識(shí)別模塊識(shí)別出問題中的實(shí)體指稱,然后通過實(shí)體鏈接模塊從實(shí)體指稱對(duì)應(yīng)的全部實(shí)體中找到問題的查詢主題,進(jìn)而利用候選查詢路徑生成模塊,找到所有與問題相關(guān)的查詢路徑。最后,通過查詢路徑排序模塊選出與問題相關(guān)度最高的路徑,用以抽取答案。
知識(shí)庫實(shí)體以實(shí)體指稱的形式出現(xiàn)在自然語言問題中,其中,實(shí)體指稱是實(shí)體的簡(jiǎn)稱或者代稱,例如,實(shí)體“馬云_阿里巴巴董事局主席”的指稱為“馬云”。進(jìn)行實(shí)體識(shí)別的主要目的是為了在問題q中找到可以作為查詢主題的知識(shí)庫實(shí)體指稱。常用的實(shí)體識(shí)別方法包括基于模型的方法與基于字符串匹配的方法,由于兩種方法均存在一定的局限性,因此在本文中對(duì)這兩種方法進(jìn)行了融合處理,進(jìn)而提高了結(jié)果的準(zhǔn)確率及召回率。
2.1.1 基于模型的實(shí)體識(shí)別方法
常用的實(shí)體識(shí)別模型為序列標(biāo)注模型,通常由神經(jīng)網(wǎng)絡(luò)模型與CRF模型組合而成,用于將句子中的每個(gè)詞映射為相應(yīng)的標(biāo)簽。其中,神經(jīng)網(wǎng)絡(luò)模型用于預(yù)測(cè)詞屬于各類標(biāo)簽的概率,CRF模型用于學(xué)習(xí)標(biāo)簽間的轉(zhuǎn)移規(guī)則,以保證輸出序列的合理性。在工作時(shí),將句子序列對(duì)應(yīng)的向量q={q1,q2,…,qn}輸入神經(jīng)網(wǎng)絡(luò)模型,經(jīng)過計(jì)算輸出標(biāo)簽概率矩陣H作為CRF模型的輸入,CRF將矩陣H映射為標(biāo)注序列y={y1,y2,…yn},其中,yi∈{"B", "I", "O"}。通過識(shí)別句子序列q中各個(gè)詞qi對(duì)應(yīng)的標(biāo)注結(jié)果yi,即可獲得指稱識(shí)別的答案集合Smodel,如式(15)所示。
Smodel={[yi,yi+1,…,yi+l]|yi="B",yi+1=yi+2=…yi+l="I"}
(15)
序列標(biāo)注模型中較為常用的神經(jīng)網(wǎng)絡(luò)為Bi-LSTM模型,近年來,隨著BERT[4]的提出,人們開始使用BERT來代替Bi-LSTM進(jìn)行指稱識(shí)別工作并取得了良好的效果。
SpanBERT[5]模型是BERT的變體之一,相比于BERT模型,SpanBERT模型在預(yù)訓(xùn)練過程中隨機(jī)掩蓋一段連續(xù)的字符序列,通過無監(jiān)督學(xué)習(xí)的方式對(duì)掩蓋內(nèi)容進(jìn)行預(yù)測(cè)。這一改動(dòng)使得SpanBERT更適用于序列預(yù)測(cè)任務(wù)。本文嘗試?yán)肧panBERT模型對(duì)問題中實(shí)體指稱的起點(diǎn)位置及終點(diǎn)位置進(jìn)行預(yù)測(cè),這一方法能夠很好地發(fā)揮SpanBERT模型的優(yōu)勢(shì)并解決嵌套實(shí)體的問題。通過實(shí)驗(yàn),證明了這種改進(jìn)在數(shù)據(jù)集上可以取得更好的實(shí)體識(shí)別效果。
2.1.2 基于字符串匹配的實(shí)體識(shí)別方法
基于字符串匹配的實(shí)體識(shí)別方法從問題的全部子串中挑選能夠作為知識(shí)庫實(shí)體指稱的子串作為答案。假設(shè)知識(shí)庫中所有實(shí)體指稱與所有的屬性值構(gòu)成知識(shí)庫實(shí)體指稱集合Mention,問題序列q的全部子串構(gòu)成集合Sub,基于字符串匹配的方法以Mention與Sub的交集作為指稱識(shí)別結(jié)果集合Smatch,如式(16)所示。
(16)
這種操作,可以獲取一個(gè)問題中全部可能的指稱。
2.1.3 基于模型與字符串匹配相融合的實(shí)體識(shí)別方法
上述兩種方法均具有局限性?;谀P偷姆椒o法保證識(shí)別的結(jié)果是可以在知識(shí)庫中找到的實(shí)體;而基于字符串匹配的方法雖然可以保證這一點(diǎn),但在識(shí)別出正確實(shí)體的同時(shí),也識(shí)別出了大量無關(guān)的實(shí)體,影響了結(jié)果的精度,會(huì)給后面實(shí)體鏈接環(huán)節(jié)帶來大量噪聲。為了同時(shí)保證準(zhǔn)確率與召回率,本文對(duì)兩種方法的結(jié)果進(jìn)行了融合處理。
通過對(duì)識(shí)別結(jié)果進(jìn)行分析可以發(fā)現(xiàn),基于模型的方法主要存在兩種錯(cuò)誤形式:
(1) 正確的指稱是由多個(gè)詞構(gòu)成的詞組,而模型只標(biāo)注了指稱中的一部分;
(2) 模型將與正確指稱相連的修飾詞也識(shí)別成了指稱的內(nèi)容。
這兩種情況雖然沒有識(shí)別出正確結(jié)果,但限定了正確指稱在問題中的大致范圍。因此,我們只需要在所有可能與問題相關(guān)的指稱(即基于字符串匹配的指稱識(shí)別結(jié)果)中保留那些與模型標(biāo)注結(jié)果編輯距離最小的即可。具體融合方法見算法1。
實(shí)體鏈接一般是指將從問題中識(shí)別出來的實(shí)體指稱映射為知識(shí)庫實(shí)體的過程。而在知識(shí)庫問答任務(wù)中,為了覆蓋復(fù)雜問題中涉及的多個(gè)實(shí)體,以及提高實(shí)體鏈接模塊的容錯(cuò)能力,實(shí)體鏈接環(huán)節(jié)應(yīng)該盡可能地保留那些與問題相關(guān)度較高的實(shí)體。本文中實(shí)體鏈接環(huán)節(jié)的工作過程可以形式化地定義為如下形式: 假設(shè)實(shí)體識(shí)別模塊的結(jié)果集合為Smerge={m1,m2,…,mn},對(duì)于集合中的指稱項(xiàng)mi,可以根據(jù)實(shí)體別名詞典從知識(shí)庫中找到與mi對(duì)應(yīng)的候選實(shí)體集合Ei={e1,e2,…,eT},那么與問題q對(duì)應(yīng)的全部候選實(shí)體集合可以表示為E=E1∪E2∪,…,∪En。對(duì)于E中的候選實(shí)體e,本文通過提取e與問題q之間的相似度特征,及e自身的特征構(gòu)建特征向量X=(x1,x2,…,xk),然后利用第2節(jié)構(gòu)建的打分模型計(jì)算e與問題q的相關(guān)度得分s=f(X;W)。對(duì)所有候選實(shí)體按照相關(guān)度得分進(jìn)行排序,保留top-3的實(shí)體作為實(shí)體鏈接模塊的結(jié)果集合Etopic。在實(shí)體鏈接過程中使用的特征主要包括以下三類。
(1)實(shí)體與問題的相關(guān)度特征本文主要提取了實(shí)體與問題的字面相似度與語義相似度。其中,字面相似度包括Jaccard相似度與編輯距離。語義相似度則是基于BERT對(duì)實(shí)體和問題進(jìn)行二分類,以預(yù)測(cè)為同類的概率作為得分。
(2)實(shí)體上下文與問題的相關(guān)度特征同一指稱下的實(shí)體,其在知識(shí)庫中的主要區(qū)別為具有不同的謂詞和屬性值。因此,通過比較實(shí)體相關(guān)的三元組與指稱在問題中的上下文之間的相關(guān)程度,可以對(duì)實(shí)體起到篩選作用。本文選取候選實(shí)體兩跳范圍內(nèi)的三元組同問題計(jì)算字面相似度,取其中最大值作為實(shí)體上下文與問題的相關(guān)度特征。
(3)實(shí)體自身的特征主要提取了實(shí)體在知識(shí)圖譜中的出度與入度。直觀上,出度與入度越大的實(shí)體,說明在知識(shí)庫中與其他的實(shí)體關(guān)聯(lián)越密切,包含的信息越多,更有可能是我們?cè)谌粘L釂栔薪?jīng)常會(huì)涉及的實(shí)體。
對(duì)于主題實(shí)體集合Etopic中的實(shí)體e,我們采用動(dòng)態(tài)擴(kuò)展的方式獲取候選查詢路徑集合Q,同時(shí)為了縮小候選查詢路徑集合Q的規(guī)模,提高系統(tǒng)的準(zhǔn)確性,本文在擴(kuò)展的過程中設(shè)置了相應(yīng)的剪枝策略,以確保生成的候選查詢路徑與問題具有較高的相關(guān)性。具體的擴(kuò)展方式如圖5所示。
圖5 本文生成候選查詢路徑集合的方式
(1) 對(duì)于etopic∈Etopic,從知識(shí)庫中獲取包含etopic的全部三元組(etopic,r1,x),構(gòu)成單跳查詢路徑{etopicr1x}的集合Qonehop,其中,x是單跳路徑對(duì)應(yīng)的答案。
(2) 對(duì)于{etopicr1x}∈Qonehop,基于實(shí)體x對(duì)查詢路徑進(jìn)行擴(kuò)展,得到三元組組合(etopic,r1,x),(x,r2,e2),之后根據(jù)剪枝策略1生成多跳路徑 {etopicr1x,xr2e2},并以實(shí)體x作為查詢路徑對(duì)應(yīng)的答案;根據(jù)剪枝策略2生成多跳路徑{etopicr1x,xr2y},并以實(shí)體y作為查詢路徑對(duì)應(yīng)的答案,從而構(gòu)成兩跳查詢路徑的集合Qtwohop。
(3) 對(duì)于{etopicr1x,xr2e2}∈Qtwohop,以實(shí)體x對(duì)查詢路徑進(jìn)行擴(kuò)展,得到三元組組合(etopic,r1,x),(x,r2,e2)(x,r3,e3),之后根據(jù)剪枝策略1生成多跳路徑 {etopicr1x,xr2e2,xr3e3},并以x作為查詢路徑對(duì)應(yīng)的答案;根據(jù)剪枝策略2生成多跳路徑{etopicr1x,xr2e2,xr3y},并以y作為查詢路徑對(duì)應(yīng)的答案,從而構(gòu)成多跳查詢路徑的集合Qthreehop。
(4)Qonehop、Qtwohop以及Qthreehop合并生成問題的候選查詢路徑集合Q:Q=Qonehop∪Qtwohop∪Qthreehop。
剪枝策略1由于在實(shí)體鏈接環(huán)節(jié),我們保留了top-3的實(shí)體,并且通過實(shí)驗(yàn)可以驗(yàn)證保留的三個(gè)實(shí)體可以覆蓋問題中90%以上的主題實(shí)體。因此,如果查詢路徑上的實(shí)體都出現(xiàn)在實(shí)體鏈接結(jié)果集合中,查詢路徑與問題的相關(guān)度更高,值得保留。以擴(kuò)展兩跳路徑為例: 對(duì)于兩跳路徑{etopicr1x,xr2e2},如果e2∈Etopic,則將路徑加入集合Qtwohop;否則對(duì)這條路徑進(jìn)行剪枝。
剪枝策略2對(duì)于單實(shí)體多跳路徑,只有當(dāng)多跳屬性與問題在字面上存在交集時(shí)才保留。例如,路徑{etopicr1x,xr2y}來說,如果問題q與屬性r2存在相同的字符,即{q}∩{r2}≠?,才將路徑加入集合Qtwohop;否則對(duì)這條路徑進(jìn)行剪枝。這種策略可以過濾掉大量與問題無關(guān)的多跳路徑。
直觀上,我們對(duì)一個(gè)與問題相關(guān)的三元組進(jìn)行擴(kuò)展時(shí),如果新擴(kuò)展出來的部分涵蓋了問題中的相關(guān)內(nèi)容,那么擴(kuò)展得到的查詢路徑與之前相比將會(huì)包含更多有用信息,其與問題的相關(guān)度也會(huì)相應(yīng)提高;相反,如果新擴(kuò)展出來的部分與問題無關(guān),那么相當(dāng)于在原來的查詢路徑中引入了噪聲,其與問題的相關(guān)度非但不會(huì)增加,反而會(huì)有所下降。在擴(kuò)展查詢路徑的過程中,路徑的某些特征具有同樣的變化規(guī)律,因此我們可以借助這些特征來反映查詢路徑與問題間的相關(guān)度。本文提取了如下四類特征,并借助第2.1節(jié)中構(gòu)建的打分模型計(jì)算查詢路徑與問題間的相關(guān)度,選擇相關(guān)度最高的路徑作為問題在知識(shí)庫中的映射,進(jìn)而根據(jù)查詢路徑的結(jié)構(gòu)從特定位置抽取實(shí)體或?qū)傩灾底鳛閱栴}的答案。
路徑中實(shí)體與問題相關(guān)度的平均值本文以實(shí)體鏈接模型輸出的分?jǐn)?shù)作為實(shí)體與問題的相關(guān)度。假設(shè)對(duì)于問題q,我們找到一條相關(guān)的單跳路徑q1={E1R1M},其中,實(shí)體E1與問題q的相關(guān)度打分為f1;通過對(duì)q1進(jìn)行擴(kuò)展,進(jìn)一步得到一條多實(shí)體多跳路徑q2={E1R1M,MR2E2},其中,實(shí)體E2與問題q的相關(guān)度打分為f2??梢宰鋈缦路治觯?/p>
(1) 如果實(shí)體E2與問題q相關(guān),那么有:f2≈f1,(f1+f2)/2≈f1;
(2) 如果實(shí)體E2與問題q無關(guān),那么有:f2?f1,(f1+f2)/2 由上可見,在查詢路徑上擴(kuò)展出與問題無關(guān)的實(shí)體,造成擴(kuò)展路徑與問題間相關(guān)度降低的同時(shí),路徑中實(shí)體與問題相關(guān)度的平均值也會(huì)下降。因此,可以使用路徑中實(shí)體與問題相關(guān)度的平均值來反映查詢路徑與問題之間相關(guān)度的大小。 路徑中實(shí)體屬性與問題相關(guān)度的平均值本文使用BERT模型對(duì)路徑中的實(shí)體屬性與問題進(jìn)行分類,以標(biāo)記為同類的概率作為兩者之間的相關(guān)度。采用與實(shí)體相關(guān)度平均值特征相同的分析方法,可以證明路徑中實(shí)體屬性與問題的相關(guān)度平均值能夠反映出查詢路徑與問題間的相關(guān)度大小。 路徑與問題的語義相似度特征Sentence-BERT[6]是一種基于BERT的孿生網(wǎng)絡(luò),模型相比于BERT可以產(chǎn)生質(zhì)量更高的句向量。本文使用SentenceBERT模型來獲取查詢路徑與問題的句向量表示,再根據(jù)Cosine相似度計(jì)算兩者之間的語義特征。路徑與問題越接近,句向量的相似度越大。 路徑與問題的字面相似度特征本文使用Jaccard相似度作為查詢路徑與問題的字面相似度特征。路徑與問題越接近,重疊的字符也越多。 本文系統(tǒng)使用的知識(shí)庫為北京大學(xué)所構(gòu)建的大規(guī)模中文知識(shí)圖譜PKU-base,知識(shí)庫中包含41 009 141條三元組,共涉及13 930 117條實(shí)體。在構(gòu)建系統(tǒng)的過程中,本文以CCKS2019 KBQA任務(wù)的數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù),數(shù)據(jù)集中的問題涉及文化、體育、歷史、金融、醫(yī)療等多個(gè)領(lǐng)域,具有較強(qiáng)的開放性。其中,訓(xùn)練集包含2 298條數(shù)據(jù),驗(yàn)證集包含766條數(shù)據(jù),測(cè)試集包含766條數(shù)據(jù)。訓(xùn)練數(shù)據(jù)與驗(yàn)證數(shù)據(jù)以“問題-SPARQL查詢語句-答案”的形式給出,例如: Question莫妮卡·貝魯奇的代表作?SPARQLselect ?x where { <莫妮卡· 貝魯奇> <代表作品> ?x. }Answer<西西里的美麗傳說> 此外,數(shù)據(jù)集中還同時(shí)包含簡(jiǎn)單問題與復(fù)雜問題,在測(cè)試集中,簡(jiǎn)單問題共476條,復(fù)雜問題共300條。 本文在對(duì)相關(guān)方法進(jìn)行實(shí)驗(yàn)驗(yàn)證時(shí),采用的評(píng)價(jià)指標(biāo)包括宏觀準(zhǔn)確率P(Macro Precision)、宏觀召回率R(Macro Recall),AveragedF1值。 本文所構(gòu)建的排序模型是由兩個(gè)前饋神經(jīng)網(wǎng)絡(luò)構(gòu)成的孿生網(wǎng)絡(luò)模型。前饋神經(jīng)網(wǎng)絡(luò)由兩層全連接層構(gòu)成,維度分別為128與64,并以ReLU函數(shù)作為激活函數(shù),以Adam優(yōu)化算法進(jìn)行參數(shù)更新,共訓(xùn)練10個(gè)epoch。 本文實(shí)體識(shí)別模塊中的序列標(biāo)注模型以SpanBERT的Base形式作為計(jì)算標(biāo)簽概率的神經(jīng)網(wǎng)絡(luò)。在訓(xùn)練過程中,batch大小為32,神經(jīng)網(wǎng)絡(luò)模型的學(xué)習(xí)率為3e-5,共訓(xùn)練4個(gè)epoch。 本文用于計(jì)算句向量語義相似度的Sentence-BERT模型是一個(gè)孿生網(wǎng)絡(luò),由兩個(gè)Base形式的BERT模型構(gòu)成。本文直接使用作者提供的中文預(yù)訓(xùn)練模型,未進(jìn)行微調(diào)。 本文針對(duì)不同的實(shí)體識(shí)別模型進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1所示,可以看出,BERT模型在進(jìn)行序列標(biāo)注時(shí)的效果要優(yōu)于Bi-LSTM模型,而利用SpanBERT通過預(yù)測(cè)位置的方式進(jìn)行實(shí)體識(shí)別的效果,要進(jìn)一步優(yōu)于序列標(biāo)注模型的效果。 表1 使用不同實(shí)體識(shí)別模型時(shí)在測(cè)試集上的效果 表2則反映了基于模型的方法,基于字符串匹配的方法以及融合方法在測(cè)試集上的指稱識(shí)別效果。表2中盡管模型標(biāo)注方法得到的實(shí)體識(shí)別結(jié)果同時(shí)具有較高的準(zhǔn)確率與召回率,但相對(duì)于理想情況,召回率仍存在接近13%的差距。融合方法借助字符串匹配方法的結(jié)果對(duì)模型標(biāo)注方法的結(jié)果進(jìn)行修正,以使指稱識(shí)別結(jié)果都可以在知識(shí)庫中找到,從而將與理想狀況間的差距縮小到4%,并且與另外兩種方法相比,也取得了最高的準(zhǔn)確率。 表2 使用不同實(shí)體識(shí)別方法時(shí)在測(cè)試集上的效果 表3展示了本文所采用的實(shí)體鏈接策略在保留top-3個(gè)實(shí)體時(shí)實(shí)驗(yàn)結(jié)果的召回率指標(biāo)??梢钥闯?,基于排序的實(shí)體鏈接方法在保留前三個(gè)實(shí)體的情況下,可以覆蓋問題中91%的實(shí)體。同時(shí),本文還設(shè)計(jì)了關(guān)于實(shí)體自身特征的對(duì)比實(shí)驗(yàn),當(dāng)去掉實(shí)體上下文特征后,實(shí)驗(yàn)結(jié)果衰減了近4%,而當(dāng)去掉實(shí)體的出度、入度特征后,實(shí)驗(yàn)結(jié)果衰減了近9%。根據(jù)實(shí)驗(yàn)結(jié)果可以看出,實(shí)體自身的特征對(duì)于實(shí)體鏈接的結(jié)果具有較大影響。實(shí)體在知識(shí)庫中的上下文與問題的相關(guān)度越高,說明實(shí)體產(chǎn)生與問題相關(guān)的查詢路徑的概率越大,即實(shí)體作為查詢主題的概率越大;實(shí)體的出度、入度特征則能夠幫助系統(tǒng)選擇那些在日常場(chǎng)景中使用頻率更高的實(shí)體,提高鏈接結(jié)果作為查詢主題的概率。 表3 本文實(shí)體鏈接方法在測(cè)試集上的效果 在CCKS2019 KBQA數(shù)據(jù)集上,本文所構(gòu)建的系統(tǒng)平均為每個(gè)問題生成15 400條候選查詢路徑;在應(yīng)用相應(yīng)的剪枝策略后,這一數(shù)值降低為115條??梢钥闯觯疚脑O(shè)計(jì)的剪枝策略極大地縮小了候選查詢路徑集合的規(guī)模,提高了最終排序的準(zhǔn)確度。 如表4所示,本文所構(gòu)建的系統(tǒng)在CCKS2019 KBQA任務(wù)測(cè)試集上的宏平均F1值達(dá)到了0.731 3,與參與CCKS2019 KBQA任務(wù)的前四名相比,接近第一名的 0.735 4和第二名的0.730 7。其中第一名也是基于查詢路徑排序的方法構(gòu)建系統(tǒng),但他們?yōu)椴樵兟窂竭x取的特征數(shù)目高達(dá)39個(gè),且大多數(shù)特征更關(guān)注路徑與問題在字、詞層面的相似度與路徑自身的屬性特征。本文系統(tǒng)則更關(guān)注語義層面的特征,并通過合理構(gòu)建訓(xùn)練數(shù)據(jù)來學(xué)習(xí)在擴(kuò)展查詢路徑過程中路徑與問題相關(guān)度的變化規(guī)律,從而將用于排序的特征減少到4個(gè),極大地降低了系統(tǒng)復(fù)雜性,且取得了相近的效果。第二名則是通過構(gòu)建多個(gè)子系統(tǒng),對(duì)答案進(jìn)行融合來回答問題,系統(tǒng)復(fù)雜度也相對(duì)較高。 表4 不同問答系統(tǒng)在CCKS2019 KBQA任務(wù)上的效果 此外,本文還比較了基于LambdaRank算法的排序模型與邏輯回歸模型在對(duì)候選查詢路徑進(jìn)行排序時(shí)的效果,結(jié)果如表5所示。 表5 基于LambdaRank算法的排序模型與邏輯回歸模型的比較 同時(shí),我們還在CCKS2020 KBQA任務(wù)的數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),結(jié)果如表6所示,在任務(wù)中排名第四。CCKS2020 KBQA任務(wù)的數(shù)據(jù)集中包含大量的醫(yī)療問題,本文系統(tǒng)仍然取得了較好的效果,驗(yàn)證了系統(tǒng)具有較強(qiáng)的泛化能力。 表6 本文系統(tǒng)在CCKS2020 KBQA任務(wù)上的效果 本文構(gòu)建了一種基于查詢路徑排序的知識(shí)庫問答系統(tǒng),實(shí)現(xiàn)了對(duì)簡(jiǎn)單問題和復(fù)雜問題的統(tǒng)一處理。系統(tǒng)借助LambdaRank排序算法訓(xùn)練打分模型,提升了系統(tǒng)計(jì)算查詢路徑與問題之間相關(guān)度的能力,從而在CCKS2019 KBQA任務(wù)數(shù)據(jù)集以及CCKS2020 KBQA任務(wù)數(shù)據(jù)集上都取得了較好的效果。此外,本文還提出了一種基于融合方式的實(shí)體識(shí)別方法,借助知識(shí)庫對(duì)基于模型的實(shí)體識(shí)別結(jié)果進(jìn)行修正,同時(shí)提高了識(shí)別結(jié)果的準(zhǔn)確率與召回率,增強(qiáng)了系統(tǒng)確定問題中主題實(shí)體的能力。 但是,與CCKS2020 KBQA任務(wù)的前三名相比,本文所構(gòu)建的系統(tǒng)仍存在一定差距。通過對(duì)結(jié)果進(jìn)行分析,可以看出本文所構(gòu)建的系統(tǒng)主要存在如下兩點(diǎn)缺陷: 一方面,在生成候選查詢路徑集合時(shí),本文所采用的剪枝方法可能會(huì)過濾掉正確的路徑,影響系統(tǒng)的召回率;另一方面,由于每個(gè)問題都對(duì)應(yīng)著大量的候選查詢路徑,在進(jìn)行排序篩選時(shí)存在大量的噪聲,會(huì)影響系統(tǒng)的準(zhǔn)確率。因此對(duì)候選查詢路徑生成模塊進(jìn)行改進(jìn),能夠有效提升系統(tǒng)性能。由于自然語言問題所對(duì)應(yīng)的語義依存樹在一定程度上反映了問題的結(jié)構(gòu),因此,后續(xù)我們將重點(diǎn)研究如何利用自然語言問題的語義依存樹指導(dǎo)查詢路徑的生成,進(jìn)而達(dá)到同時(shí)提升系統(tǒng)準(zhǔn)確率與召回率的目的。3 實(shí)驗(yàn)
3.1 實(shí)驗(yàn)設(shè)置
3.2 指稱識(shí)別效果評(píng)估
3.3 實(shí)體鏈接模塊效果評(píng)估
3.4 候選路徑排序模塊效果評(píng)估
4 總結(jié)