李帥馳,楊志豪,王鑫雷,韓欽宇,林鴻飛
大連理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 大連 116024
近年來(lái),隨著諸如DBpedia[1]、Freebase[2]、Yago[3]、NLPCC-ICCPOL-2016KBQA 評(píng)測(cè)任務(wù)[4]發(fā)布的中文知識(shí)庫(kù)等大規(guī)模知識(shí)庫(kù)(knowledge base,KB)的產(chǎn)生,基于知識(shí)庫(kù)的問(wèn)答(knowledge based question answering,KBQA)任務(wù)逐漸成為自然語(yǔ)言處理研究領(lǐng)域的熱點(diǎn)之一。知識(shí)庫(kù)是將知識(shí)結(jié)構(gòu)化存儲(chǔ)的數(shù)據(jù)庫(kù)系統(tǒng),其中的知識(shí)以三元組的形式存在,如<實(shí)體,謂詞,目標(biāo)值>?;谥R(shí)庫(kù)的問(wèn)答系統(tǒng)以知識(shí)庫(kù)作為知識(shí)來(lái)源,理解用戶輸入的自然語(yǔ)言形式的問(wèn)題,識(shí)別出實(shí)體和謂詞查找對(duì)應(yīng)的目標(biāo)值作為答案。例如,對(duì)于問(wèn)題“誰(shuí)是奧巴馬的妻子?”,結(jié)合三元組<貝拉克·奧巴馬,妻子,米歇爾·奧巴馬>,可以查找到米歇爾·奧巴馬作為答案。根據(jù)回答問(wèn)題所需三元組的數(shù)目為單個(gè)或者多個(gè),可以分為簡(jiǎn)單問(wèn)題和復(fù)雜問(wèn)題,本文工作聚焦在簡(jiǎn)單問(wèn)題問(wèn)答的研究。
現(xiàn)有的中文簡(jiǎn)單問(wèn)題知識(shí)庫(kù)問(wèn)答的主流方法通常將問(wèn)答任務(wù)拆分為實(shí)體鏈接和謂詞匹配兩個(gè)子任務(wù),其中實(shí)體鏈接包含實(shí)體提及識(shí)別和實(shí)體消歧兩部分,構(gòu)建一個(gè)流水線式的問(wèn)答系統(tǒng),如圖1 所示。以“精忠岳飛由誰(shuí)運(yùn)營(yíng)?”這一問(wèn)題為例,首先通過(guò)實(shí)體提及識(shí)別模型識(shí)別問(wèn)句中的實(shí)體提及“精忠岳飛”;結(jié)合知識(shí)庫(kù)可以生成與“精忠岳飛”相關(guān)的候選實(shí)體集合,通過(guò)實(shí)體消歧模型打分,將得分最高的候選實(shí)體“精忠岳飛(2014年全新戰(zhàn)爭(zhēng)策略游戲)”作為該問(wèn)題的主題實(shí)體;結(jié)合該主題實(shí)體和知識(shí)庫(kù),將主題實(shí)體的一度謂詞作為候選謂詞集合,接下來(lái)將實(shí)體提及替換為統(tǒng)一標(biāo)識(shí)符“entity”的問(wèn)句和候選謂詞輸入謂詞匹配模型,得到得分最高的謂詞“運(yùn)營(yíng)商”;結(jié)合實(shí)體和謂詞,查詢知識(shí)庫(kù)得出最終答案。
圖1 知識(shí)庫(kù)問(wèn)答整體流程Fig.1 Overview of CKBQA
對(duì)于上述示例中,問(wèn)題中提及的“精忠岳飛”,在知識(shí)庫(kù)中可以找到多個(gè)相關(guān)的實(shí)體,問(wèn)答系統(tǒng)應(yīng)該判斷問(wèn)句詢問(wèn)的“精忠岳飛”是哪一個(gè),在問(wèn)句較短、信息較少的情況下為實(shí)體消歧任務(wù)帶來(lái)了難度。并且,同一個(gè)問(wèn)句意圖可以有不同的表達(dá)形式,然而知識(shí)庫(kù)中的三元組表達(dá)形式是固定的,導(dǎo)致了問(wèn)題與知識(shí)庫(kù)知識(shí)的差異性,為謂詞匹配任務(wù)帶來(lái)了挑戰(zhàn)。另外,在開(kāi)放域知識(shí)庫(kù)中,實(shí)體數(shù)量和謂詞的數(shù)量往往規(guī)模較大,而用于訓(xùn)練的數(shù)據(jù)集由于需要人工標(biāo)注通常規(guī)模較小。針對(duì)上述問(wèn)題,本文提出一種基于中文預(yù)訓(xùn)練語(yǔ)言模型BERT[5]的流水線式問(wèn)答系統(tǒng)BERT-CKBQA,用于提升中文知識(shí)庫(kù)問(wèn)答的性能,其創(chuàng)新性在于:(1)融合知識(shí)庫(kù)的拓?fù)湫畔?,引入從候選實(shí)體出發(fā)的一度謂詞集合特征,來(lái)增強(qiáng)候選實(shí)體的上下文信息的BERT-CNN模型進(jìn)行實(shí)體消歧,提高實(shí)體消歧的準(zhǔn)確率,進(jìn)而啟發(fā)式地縮小候選謂詞集合的規(guī)模,提升系統(tǒng)的問(wèn)答效率。(2)提出通過(guò)注意力機(jī)制引入答案實(shí)體一度鏈出謂詞的BERTBiLSTM-CNN 模型進(jìn)行謂詞匹配,提升謂詞匹配任務(wù)的性能。(3)BERT-CKBQA 方法在NLPCC-ICCPOL-2016KBQA數(shù)據(jù)集上取得了最高的平均F1值,為88.75%。同時(shí)該方法在各個(gè)子任務(wù)中也取得了較好的結(jié)果,充分說(shuō)明了該方法的有效性。
目前主流的知識(shí)庫(kù)問(wèn)答方法主要分為:語(yǔ)義解析方法、信息檢索方法和向量建模方法。語(yǔ)義解析方法[6]對(duì)自然語(yǔ)言問(wèn)句成分進(jìn)行解析,將查詢轉(zhuǎn)化成邏輯表達(dá)式,再結(jié)合知識(shí)圖譜轉(zhuǎn)換成知識(shí)圖譜查詢,得到答案,如謂詞邏輯表達(dá)式[7]、依存組合語(yǔ)義表達(dá)式[8]等。這種方法雖然可解釋性強(qiáng),但需要大量人工標(biāo)注,且在開(kāi)放域知識(shí)庫(kù)中難以解決歧義。信息檢索方法從問(wèn)句中提取關(guān)鍵信息,用這些信息限定知識(shí)庫(kù)的知識(shí)范圍再檢索答案。Yao 等人[9]首先抽取問(wèn)句中的實(shí)體和謂詞,構(gòu)建問(wèn)題的圖模型,與知識(shí)庫(kù)進(jìn)行匹配。王玥等人[10]提出了DPQA,采用動(dòng)態(tài)規(guī)劃的思想進(jìn)行問(wèn)答。隨著深度學(xué)習(xí)的發(fā)展,基于向量建模的方法逐漸興起。Xie 等人[11]使用深度語(yǔ)義相似度模型,計(jì)算問(wèn)題和謂詞之間的相似度。Hao 等人[12]訓(xùn)練TransE 模型來(lái)獲取知識(shí)庫(kù)中的實(shí)體和謂詞的向量表示,并與問(wèn)題向量匹配,選擇最相似的三元組。
在中文知識(shí)庫(kù)問(wèn)答的研究中,多數(shù)工作集中于NLPCC-ICCPOL 2016 KBQA 任務(wù)發(fā)布的數(shù)據(jù)集與知識(shí)庫(kù)。Wang等人[13]使用卷積神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元模型獲取問(wèn)句向量表示。Lai等人[14]通過(guò)別名詞典生成候選實(shí)體,構(gòu)建人工規(guī)則進(jìn)行實(shí)體消歧,并且基于詞向量計(jì)算余弦相似度對(duì)謂詞打分。隨著預(yù)訓(xùn)練語(yǔ)言模型BERT的出現(xiàn),Liu等人[15]針對(duì)CKBQA 流程中不同的子任務(wù),使用基于BERT的預(yù)訓(xùn)練任務(wù)的模型進(jìn)行微調(diào),在開(kāi)放域中文知識(shí)庫(kù)問(wèn)答任務(wù)上取得了相當(dāng)不錯(cuò)的結(jié)果。
本文提出的BERT-CKBQA流水線式問(wèn)答系統(tǒng)的實(shí)體鏈接模型分為實(shí)體提及識(shí)別和實(shí)體消歧兩部分。
首先,實(shí)體提及識(shí)別模型用于識(shí)別問(wèn)句中的主題實(shí)體,作為問(wèn)題語(yǔ)義解析的出發(fā)點(diǎn),例如“精忠岳飛由誰(shuí)運(yùn)營(yíng)?”中的“精忠岳飛”為該問(wèn)題的主題實(shí)體的提及形式。實(shí)體提及識(shí)別可以看作一個(gè)序列標(biāo)注任務(wù),該部分?jǐn)?shù)據(jù)使用的是序列標(biāo)注任務(wù)中常用的標(biāo)簽體系“BIO”標(biāo)簽,其中,B 表示實(shí)體提及的起始位置,I 表示實(shí)體提及的中間或結(jié)尾位置,O表示該字符非實(shí)體提及。將問(wèn)句中“精忠岳飛”對(duì)應(yīng)的位置標(biāo)記為“B I I I”,其他非實(shí)體提及部分標(biāo)記為“O”,進(jìn)行序列標(biāo)注模型訓(xùn)練。
實(shí)體提及識(shí)別部分采用BERT-CRF[15]模型,首先將問(wèn)題的字符序列Q輸入到BERT預(yù)訓(xùn)練語(yǔ)言模型,得到每個(gè)字符的上下文表示,之后輸入給CRF層,對(duì)輸入特征序列求出條件概率最大的標(biāo)注路徑,即得到預(yù)測(cè)的標(biāo)簽序列,即得到問(wèn)句中的實(shí)體提及。完成模型訓(xùn)練后,對(duì)輸入的問(wèn)題進(jìn)行實(shí)體識(shí)別,得到實(shí)體提及m,如公式(1)所示:
接下來(lái),由于自然語(yǔ)言問(wèn)句中提及的實(shí)體可能對(duì)應(yīng)知識(shí)庫(kù)中存儲(chǔ)的多個(gè)實(shí)體,因此在得到每個(gè)問(wèn)句中的主題實(shí)體的實(shí)體提及之后,需要從知識(shí)庫(kù)中生成與該實(shí)體提及相關(guān)的候選實(shí)體集合,并對(duì)這些候選實(shí)體集進(jìn)行消歧,從而選擇正確的候選實(shí)體。準(zhǔn)確匹配問(wèn)題中所詢問(wèn)的主題實(shí)體也可以為下一步的謂詞匹配減小候選集規(guī)模,提升問(wèn)答系統(tǒng)的效率。本文提出引入實(shí)體一度鏈出謂詞特征的BERT-CNN 模型來(lái)提升實(shí)體消歧任務(wù)的性能,例如圖1 中的問(wèn)題,游戲類型的“精忠岳飛”更有可能有“運(yùn)營(yíng)商”這樣的謂詞。
在實(shí)體消歧部分,首先,為了獲得與問(wèn)句中主題實(shí)體更為接近的候選實(shí)體集,根據(jù)NLPCC-ICCPOL-2016KBQA 評(píng)測(cè)所提供的別名詞典文件,將上一步識(shí)別的實(shí)體提及映射到該詞典中,生成候選實(shí)體集合。對(duì)于無(wú)法映射的實(shí)體提及,依托知識(shí)庫(kù)檢索字符級(jí)別相似的實(shí)體作為候選實(shí)體集合。然后,將問(wèn)句和候選實(shí)體集輸入至BERT-CNN模型,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)來(lái)增強(qiáng)BERT模型預(yù)訓(xùn)練的實(shí)體特征進(jìn)行實(shí)體消歧,BERT-CNN模型如圖2所示。
圖2 實(shí)體消歧模型Fig.2 Entity disambiguation model
該子任務(wù)可以看作一個(gè)二分類任務(wù),候選實(shí)體如果為標(biāo)注的三元組中的主題實(shí)體,則輸出標(biāo)簽1,否則輸出標(biāo)簽為0。輸入數(shù)據(jù)由[CLS],問(wèn)題字符序列,[SEP],與謂詞特征拼接的候選實(shí)體,[SEP]組成。其中一度鏈出謂詞特征即為知識(shí)圖譜中從候選實(shí)體出發(fā),相連接的一度謂詞的集合,如公式(2)所示。其中q表示問(wèn)題,e表示候選實(shí)體,pi表示從e出發(fā)的一度鏈出謂詞。
經(jīng)過(guò)BERT 網(wǎng)絡(luò)編碼得到后四層encoder 輸出的隱層向量,相加后得到隱層輸出H,卷積層的特征C可以表示為公式(3):
其中,σ為sigmoid 函數(shù),?為卷積運(yùn)算,W為卷積核內(nèi)的權(quán)重,b為偏置。H分別通過(guò)步長(zhǎng)為1、3、5的三個(gè)卷積層提取特征。之后輸入最大池化層,將得到的三個(gè)向量拼接后輸入Softmax層分類,輸出標(biāo)簽為0或1。損失函數(shù)為交叉熵?fù)p失函數(shù),如公式(4)所示,訓(xùn)練時(shí)最小化損失函數(shù)。在預(yù)測(cè)時(shí),將候選實(shí)體被預(yù)測(cè)為標(biāo)簽1的概率作為候選實(shí)體的得分。
由于自然語(yǔ)言問(wèn)句的表達(dá)形式多樣,不同的表達(dá)可能對(duì)應(yīng)相同的問(wèn)句意圖,并且對(duì)于同一個(gè)主題實(shí)體會(huì)產(chǎn)生大量的不同謂詞,這為開(kāi)放域知識(shí)庫(kù)問(wèn)答任務(wù)帶來(lái)了巨大挑戰(zhàn),如圖一中問(wèn)題的“由誰(shuí)運(yùn)營(yíng)”與“運(yùn)營(yíng)商”之間的匹配。謂詞匹配模型用于將問(wèn)句中的謂詞與知識(shí)庫(kù)中的謂詞匹配,理解問(wèn)句意圖,選擇與問(wèn)句最匹配的謂詞。首先,實(shí)體消歧結(jié)果可以很大程度地減少候選謂詞集合的規(guī)模,因此從實(shí)體消歧任務(wù)中獲得的候選實(shí)體樣本出發(fā),檢索知識(shí)庫(kù)中該實(shí)體的一度謂詞集合作為候選謂詞集合。接下來(lái),注意到在回答“精忠岳飛由誰(shuí)運(yùn)營(yíng)?”問(wèn)題時(shí),通過(guò)加入候選謂詞檢索到的候選答案實(shí)體的一度鏈出謂詞信息可以豐富候選謂詞的信息,如圖3中的“發(fā)行時(shí)間”“業(yè)務(wù)范圍”等答案實(shí)體的一度鏈出謂詞與候選謂詞“運(yùn)營(yíng)商”有一定的關(guān)聯(lián)。
圖3 知識(shí)圖譜子圖Fig.3 Subgraph of knowledge base
于是本文提出了一種通過(guò)注意力機(jī)制引入答案實(shí)體的一度鏈出謂詞特征的BERT-BiLSTM-CNN 模型進(jìn)行謂詞匹配,豐富候選謂詞在知識(shí)圖譜中的結(jié)構(gòu)信息,如圖4所示。
圖4 謂詞匹配模型Fig.4 Predicate matching model
該任務(wù)同樣可以看做是二分類任務(wù),對(duì)于能夠正確反映問(wèn)句意圖的候選謂詞樣本輸出標(biāo)簽為1,不能正確反映問(wèn)句意圖的候選謂詞樣本輸出標(biāo)簽為0。輸入數(shù)據(jù)由兩部分組成:?jiǎn)柧渲^詞對(duì)部分和答案實(shí)體一度鏈出謂詞特征部分。問(wèn)句謂詞對(duì)部分的輸入數(shù)據(jù)由[CLS],將實(shí)體提及替換為entity 字符的問(wèn)題字符序列,[SEP],候選謂詞,[SEP]組成,如公式(5)所示。其中,pi表示候選實(shí)體的一度謂詞。
經(jīng)過(guò)BERT 網(wǎng)絡(luò)編碼得到后四層encoder 輸出的隱層向量,相加后通過(guò)由兩個(gè)方向的LSTM 網(wǎng)絡(luò)構(gòu)成的BiLSTM 網(wǎng)絡(luò)學(xué)習(xí)序列的上下文信息。給定輸入序列[x1,x2,…,xt,…,xn] ,t時(shí)刻LSTM 網(wǎng)絡(luò)的計(jì)算公式如公式(6)~(11)所示:
其中,it、ft、ot分別表示LSTM網(wǎng)絡(luò)的輸入門、遺忘門和輸出門,W和U為權(quán)重矩陣,b為偏置,Ct表示細(xì)胞狀態(tài),ht表示網(wǎng)絡(luò)輸出。將兩個(gè)方向的LSTM的輸出拼接即得到BiLSTM的輸出Ht,如公式(12)所示:
再通過(guò)步長(zhǎng)為1、3、5的三個(gè)卷積層提取特征,之后輸入最大池化層將得到的三個(gè)向量拼接后得到y(tǒng)2。
答案實(shí)體一度鏈出謂詞特征部分的輸入數(shù)據(jù)由以候選實(shí)體出發(fā),沿候選謂詞檢索到的答案實(shí)體的一度鏈出謂詞集合[r1,r2,…,ri] 組成。由于在開(kāi)放域知識(shí)圖譜中,謂詞詞表較大,本文工作采用組成謂詞的字對(duì)應(yīng)的預(yù)訓(xùn)練字向量的平均來(lái)作為謂詞的向量表示。通過(guò)謂詞矩陣映射后,得到謂詞特征的向量表示[R1,R2,…,Ri] 。接下來(lái),利用注意力機(jī)制將答案實(shí)體一度鏈出謂詞特征與隱層向量中[CLS]位置的向量H[CLS]進(jìn)行交互,得到y(tǒng)1。在BERT 預(yù)訓(xùn)練任務(wù)中,通常將H[CLS]用作分類,所以H[CLS]中包含了問(wèn)答謂詞對(duì)經(jīng)過(guò)BERT 編碼后的交互信息。注意力機(jī)制部分的計(jì)算公式如公式(13)~(16)所示:
其中,Wt為可學(xué)習(xí)參數(shù)的變換矩陣,維度為dR×dBERT。
將y1和y2拼接后輸入Softmax 層分類,輸出標(biāo)簽為0 或1。損失函數(shù)同樣為交叉熵?fù)p失函數(shù),訓(xùn)練時(shí)最小化損失函數(shù)。在預(yù)測(cè)時(shí),將預(yù)測(cè)候選謂詞為標(biāo)簽1的概率作為候選謂詞的得分。
本文使用NLPCC-ICCPOL-2016KBQA評(píng)測(cè)任務(wù)發(fā)布的中文知識(shí)庫(kù)和中文簡(jiǎn)單問(wèn)題問(wèn)答數(shù)據(jù)集。NLPCC中文知識(shí)庫(kù)包含大約4 300 萬(wàn)個(gè)三元組,謂詞種類有58萬(wàn)余個(gè)。首先對(duì)知識(shí)庫(kù)文件進(jìn)行預(yù)處理,例如將繁體中文轉(zhuǎn)換成簡(jiǎn)體中文,去除三元組中謂詞中多余的空格(如<羅育德,民族,漢族>和<羅育德,民 族,漢族>只保留前者),將過(guò)長(zhǎng)的實(shí)體名稱截?cái)?,將英文字母統(tǒng)一轉(zhuǎn)換為小寫便于實(shí)驗(yàn)等處理,導(dǎo)入到Neo4j圖數(shù)據(jù)庫(kù)存儲(chǔ)和檢索。
問(wèn)答數(shù)據(jù)集中訓(xùn)練集共有14 609個(gè)問(wèn)答對(duì),測(cè)試集有9 870 個(gè)問(wèn)答對(duì),結(jié)合知識(shí)庫(kù)中的單個(gè)三元組即可回答問(wèn)題。但是由于原始數(shù)據(jù)集中并沒(méi)有實(shí)體提及和三元組的標(biāo)注,所以本文參考Liu等人[15]的數(shù)據(jù)標(biāo)注,生成各個(gè)子任務(wù)的數(shù)據(jù)集,數(shù)據(jù)集標(biāo)注和子任務(wù)數(shù)據(jù)集的劃分情況分別如表1和表2所示。
表1 數(shù)據(jù)集樣本標(biāo)注示例Table 1 Dataset annotation sample
表2 子任務(wù)數(shù)據(jù)集劃分Table 2 Subtask dataset statistic
實(shí)驗(yàn)運(yùn)行 在CPU 為Intel?Xeon?CPU E5-2650 v4 @ 2.20 GHz、內(nèi)存為128 GB 的計(jì)算機(jī),操作系統(tǒng)為Ubuntu 16.04.6 LTS。模型訓(xùn)練所用顯卡為NVIDIA TITAN Xp,顯存12 GB,所用深度學(xué)習(xí)框架為CUDA 9.0 和PyTorch 1.1.0,知識(shí)庫(kù)數(shù)據(jù)存儲(chǔ)和檢索使用Neo4j-community-3.5.8版本。
本文使用預(yù)訓(xùn)練模型為BERT-Base Chinese。預(yù)訓(xùn)練模型為基于PyTorch 框架實(shí)現(xiàn)和微調(diào),有12 層Transformer 編碼器,每一層隱層輸出的維度為768。預(yù)訓(xùn)練字向量使用的是基于中文維基百科預(yù)訓(xùn)練的300 維字向量。模型的優(yōu)化方式采用Adam 優(yōu)化器。不同子任務(wù)的超參數(shù)設(shè)置如表3所示。
表3 子任務(wù)超參數(shù)設(shè)置Table 3 Subtask hyperparameter setting
實(shí)體提及識(shí)別實(shí)驗(yàn)結(jié)果如表4 所示,結(jié)果表明BERT-CRF 模型均取得了基本準(zhǔn)確的結(jié)果。傳統(tǒng)的命名實(shí)體識(shí)別任務(wù)需要識(shí)別不同類型的實(shí)體和實(shí)體的邊界位置,而實(shí)體提及識(shí)別子任務(wù)只需要識(shí)別出實(shí)體提及的位置,不需要區(qū)分類型,并且簡(jiǎn)單問(wèn)句中通常只包含單個(gè)實(shí)體提及,這都降低了該子任務(wù)的難度。
表4 實(shí)體提及識(shí)別實(shí)驗(yàn)結(jié)果Table 4 Result of entity mention recognition %
實(shí)體消歧子任務(wù)訓(xùn)練集中正負(fù)例的比例為1∶5,驗(yàn)證集和測(cè)試集中均選取所有的候選實(shí)體進(jìn)行預(yù)測(cè)。該子任務(wù)在訓(xùn)練過(guò)程中容易發(fā)生過(guò)擬合,所以選取了較少的訓(xùn)練輪次和較低的學(xué)習(xí)率。評(píng)價(jià)指標(biāo)采用Acc@N,定義如公式(17)所示:
其中,Q是數(shù)據(jù)集中的所有問(wèn)題的集合,Ci是正確的答案集合,Ai是模型預(yù)測(cè)給出的答案集合,|·|表示集合的大小。當(dāng)Ai中的答案至少被Ci包含一個(gè)時(shí),δ(Ci,Ai)為1,否則為0。
在測(cè)試集上實(shí)體消歧實(shí)驗(yàn)結(jié)果如表5所示。其中,引入謂詞特征在Acc@1 指標(biāo)上均提高了約10 個(gè)百分點(diǎn)。這是因?yàn)閮H使用問(wèn)句和實(shí)體名稱作為輸入的基準(zhǔn)模型可利用的信息較少,而謂詞特征蘊(yùn)含了主題實(shí)體在知識(shí)庫(kù)中的拓?fù)湫畔⒁约捌潢P(guān)聯(lián)的謂詞內(nèi)容,從而增強(qiáng)了主題實(shí)體與問(wèn)句的匹配程度,對(duì)于改善實(shí)體消歧是有效的。并且,結(jié)合CNN的特征提取能力,也帶來(lái)了一定的提升。保留得分前三的候選實(shí)體可以達(dá)到一個(gè)很高的準(zhǔn)確率,有助于減少謂詞匹配的候選謂詞集合規(guī)模,進(jìn)而提升問(wèn)答系統(tǒng)的效率。
表5 實(shí)體消歧實(shí)驗(yàn)結(jié)果Table 5 Result of entity disambiguation %
謂詞匹配子任務(wù)訓(xùn)練集中正負(fù)例的比例為1∶5,驗(yàn)證集和測(cè)試集中均取所有候選謂詞進(jìn)行預(yù)測(cè)。評(píng)價(jià)指標(biāo)同樣使用Acc@N。在測(cè)試集上的實(shí)驗(yàn)結(jié)果如表6 所示。在只利用問(wèn)句和謂詞的較少信息的情況下,相比于對(duì)比基準(zhǔn)的的BERT 模型,BERT-BiLSTM-CNN 模型在保留前1~3 個(gè)候選謂詞時(shí)均提高了2~3 個(gè)百分點(diǎn),表明使用BiLSTM 結(jié)構(gòu)建模BERT 編碼后的上下文信息,對(duì)于理解問(wèn)句語(yǔ)義是有效的。增加CNN 后,可以增強(qiáng)模型提取特征的能力,進(jìn)一步提高了問(wèn)答的準(zhǔn)確率。并且在通過(guò)注意力機(jī)制引入謂詞特征后,帶來(lái)了進(jìn)一步的準(zhǔn)確率提升,本文提出的模型取得了最好的結(jié)果,驗(yàn)證了謂詞特征的有效性。
表6 謂詞匹配實(shí)驗(yàn)結(jié)果Table 6 Result of predicate matching %
在完成了上述子任務(wù)的訓(xùn)練之后,可以得到每個(gè)問(wèn)題對(duì)應(yīng)的候選實(shí)體的得分Se和候選謂詞Sp的得分。選擇得分前三的候選實(shí)體,以及每個(gè)候選實(shí)體對(duì)應(yīng)的得分前三的候選謂詞,加權(quán)相加,選擇總分最高的候選實(shí)體和候選謂詞組成查詢路徑,轉(zhuǎn)換成Cypher 查詢語(yǔ)句到Neo4j 知識(shí)庫(kù)中檢索答案。問(wèn)答系統(tǒng)的整體性能評(píng)價(jià)指標(biāo)平均F1值。定義如公式(18)~(20):
其中,Q是數(shù)據(jù)集中的所有問(wèn)題的集合,Ci是正確的答案集合,Ai是模型預(yù)測(cè)給出的答案集合,|·|表示集合的大小。Pi表示預(yù)測(cè)正確的答案在預(yù)測(cè)答案集合中所占的比例,反映了問(wèn)答系統(tǒng)的準(zhǔn)確程度;Ri表示預(yù)測(cè)正確的答案在正確答案集合中所占的比例,反應(yīng)問(wèn)答系統(tǒng)的完備程度。計(jì)算每一個(gè)問(wèn)題的F1 值,再對(duì)所有問(wèn)題的F1值求和取平均值作為問(wèn)答系統(tǒng)的評(píng)價(jià)指標(biāo)。本文方法與其他公開(kāi)方法的性能對(duì)比如表7所示。
其中,DPQA[10]是王玥等人基于動(dòng)態(tài)規(guī)劃思想進(jìn)行的研究。InsunKBQA[16]是周博通等人基于知識(shí)庫(kù)三元組中謂詞的屬性映射構(gòu)建的問(wèn)答系統(tǒng),加入了少量人工特征。Lai 等人[14]、Xie 等人[11]、Yang 等人[17]的系統(tǒng)是評(píng)測(cè)任務(wù)的前三名,結(jié)合神經(jīng)網(wǎng)絡(luò)和人工構(gòu)建規(guī)則保證問(wèn)答質(zhì)量。BB-KBQA[15]基于BERT的預(yù)訓(xùn)練任務(wù)微調(diào),實(shí)現(xiàn)實(shí)體提及識(shí)別、實(shí)體消歧和謂詞匹配三個(gè)子任務(wù),但在各個(gè)子任務(wù)上的表現(xiàn)弱于本文模型,導(dǎo)致最后的表現(xiàn)低于本文的問(wèn)答系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,本文提出的問(wèn)答方法BERT-CKBQA取得了88.75%的平均F1值,相比于其他公開(kāi)的問(wèn)答方法,取得了現(xiàn)有最好的結(jié)果,提升了問(wèn)題回答的準(zhǔn)確度。
最后,對(duì)問(wèn)答系統(tǒng)的回答結(jié)果進(jìn)行了分析。除了存在一些三元組標(biāo)注和答案錯(cuò)誤的情況,整個(gè)問(wèn)答系統(tǒng)的結(jié)果比較準(zhǔn)確。例如,問(wèn)題“王杰是在什么地方出道的???”,對(duì)應(yīng)的知識(shí)三元組為<王杰,出道地,臺(tái)灣>,本文的系統(tǒng)預(yù)測(cè)的主題實(shí)體和謂詞為<王杰(港臺(tái)男歌手),出道地>,表明實(shí)體消歧模塊可以正確選擇是歌手的王杰;問(wèn)題“請(qǐng)問(wèn)212型潛艇是哪個(gè)廠建造的?”,對(duì)應(yīng)的知識(shí)三元組為<212 型潛艇,建造,哈德威造船廠(hdw)>,本文的系統(tǒng)預(yù)測(cè)的主題實(shí)體和謂詞為<212 型潛艇,制造廠>,可見(jiàn)雖然謂詞匹配模塊選擇的謂詞與標(biāo)注謂詞不同,但通過(guò)理解問(wèn)句意圖,選擇了正確的謂詞,最終找到正確答案。綜上,本文工作提出的BERT-CKBQA 問(wèn)答系統(tǒng)的準(zhǔn)確率較高,可以滿足中文簡(jiǎn)單問(wèn)題的開(kāi)放域知識(shí)庫(kù)問(wèn)答的實(shí)際應(yīng)用。
針對(duì)中文簡(jiǎn)單問(wèn)題的開(kāi)放域知識(shí)庫(kù)問(wèn)答系統(tǒng)中實(shí)體消歧和謂詞匹配任務(wù)存在的難點(diǎn),本文工作提出一種基于中文預(yù)訓(xùn)練語(yǔ)言模型BERT 的流水線式問(wèn)答系統(tǒng)BERT-CKBQA,應(yīng)用BERT-CRF 模型進(jìn)行實(shí)體提及識(shí)別;提出謂詞特征增強(qiáng)的BERT-CNN模型用于提升實(shí)體消歧任務(wù)的性能,提高實(shí)體消歧的準(zhǔn)確率,進(jìn)而啟發(fā)式地縮小候選謂詞集合的規(guī)模,提升系統(tǒng)的問(wèn)答效率;提出引入答案實(shí)體一度鏈出特征的BERT-BiLSTM-CNN模型進(jìn)行謂詞匹配,提升謂詞匹配任務(wù)的性能。最后,在NLPCC-ICCPOL-2016KBQA數(shù)據(jù)集上BERT-CKBQA系統(tǒng)取得了最高的平均F1值,為88.75%,取得了現(xiàn)有方法中最好的性能。在未來(lái)工作中,可以嘗試將不同的子任務(wù)聯(lián)合訓(xùn)練,或引入知識(shí)圖譜表示學(xué)習(xí)方法融入更豐富的知識(shí)圖譜特征,帶來(lái)進(jìn)一步的提升。