金書川 ,朱艷輝 ,沈加銳 ,滿芳藤 ,張志軒
(1.湖南工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,湖南 株洲 412007;2.湖南省智能信息感知及處理技術(shù)重點(diǎn)實(shí)驗(yàn)室,湖南 株洲 412007)
近年來,隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的大規(guī)模知識庫隨之出現(xiàn),如Freebase、Dbpedia、Wikidata、PKUBase等[1-3],基于知識庫的問答(knowledge base question answering,KBQA)任務(wù)逐漸成為自然語言處理研究領(lǐng)域熱點(diǎn)任務(wù)。它是基于人工智能快速發(fā)展而產(chǎn)生的新技術(shù),可以滿足用戶快捷獲取知識的需求,從而在學(xué)術(shù)和工業(yè)界引起了廣泛的關(guān)注。知識庫問答系統(tǒng)以知識庫為知識源,根據(jù)給定的自然語言問句,通過檢索知識庫,得到事實(shí)性答案。知識庫是一種存貯結(jié)構(gòu)化知識的數(shù)據(jù)庫,其中的知識是由大量的三元組(Eh,R,Et)構(gòu)成,其中Eh和Et為實(shí)體類型,R為關(guān)系類型。比如在三元組(<麻省理工學(xué)院>,<創(chuàng)辦者>,<威廉?巴頓?羅杰斯>)中<麻省理工學(xué)院>稱為頭實(shí)體,<創(chuàng)辦者>稱為關(guān)系,<威廉?巴頓?羅杰斯>稱為尾實(shí)體。
通常情況下,研究者將自然語言問題分為兩類,一類是簡單問題,它是指通過一個三元組就能夠回答的問句,例如圖1a中的問句“麻省理工學(xué)院的創(chuàng)建者是誰?”只需要包含形如(<麻省理工學(xué)院> <創(chuàng)辦者> ?)的三元組就能被回答;另一類就是復(fù)雜問題,它需要至少兩個三元組才能夠得出答案,如圖1b中問句“恒生電子股份有限公司的董事長畢業(yè)于哪所大學(xué)?”則需(<恒生電子>,<董事長>,?),(<彭政綱><畢業(yè)院校> ?)這兩個三元組才能得到準(zhǔn)確的答案;還有更復(fù)雜的問題需要更多的三元組才能得到答案。復(fù)雜問題相較于簡單問題有著更多的問法形式,非常具有挑戰(zhàn)性,本文工作聚焦于包含了簡單問題和復(fù)雜問題的問答。
圖1 問題路徑示例Fig.1 Illustration of problem paths
現(xiàn)有知識庫問答解決方法主要有兩種,第一種是基于語義解析(semantic parsing,SP)[4-6]的方法。語義解析方法指將自然語言問句進(jìn)行解析并轉(zhuǎn)化為可執(zhí)行的查詢語言。通常步驟先由一個問句理解模塊對句子進(jìn)行語義語法解析,得到問句的實(shí)體關(guān)系成分;再通過邏輯解析模塊對以上的實(shí)體關(guān)系成分轉(zhuǎn)為相應(yīng)的邏輯形式;最后,把得到的邏輯形式與知識庫進(jìn)行語義對齊并執(zhí)行查詢得到最終答案。J.Berant等[4]訓(xùn)練了一個可擴(kuò)展到Freebase的語義解析器,實(shí)現(xiàn)了不依賴傳統(tǒng)手工規(guī)則標(biāo)注將自然語言短語映射為邏輯謂詞的方法,從而將自然語言問題轉(zhuǎn)化為邏輯形式表達(dá)。首先,利用大規(guī)模文本語料庫和知識庫構(gòu)建問句短語與知識庫實(shí)體及關(guān)系之間的粗略對齊;然后,通過橋接操作生成基于相鄰謂詞的附加謂詞,進(jìn)一步將問句短語與知識庫實(shí)體及關(guān)系做映射。Yih W.T.等[5]提出了一種新的方法,即利用邏輯拓?fù)鋱D匹配的思路,從知識庫中的實(shí)體關(guān)系出發(fā),逐步生成與提問含義最相近的完整邏輯拓?fù)鋱D。該方法的創(chuàng)新點(diǎn)在于采用分階段方式,首先,在自然語言提問中選取可能的候選核心實(shí)體;然后,針對每個可能的核心實(shí)體和關(guān)系逐步生成候選核心鏈;接著,利用卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法,找到與提問含義最相近的核心鏈;最后,將一些限定條件添加到核心鏈中,得到與提問含義最相近的完整邏輯關(guān)系拓?fù)鋱D,通過在圖中的位置確定未知答案,從而得到正確可能性最大的答案。Chen Y.等[6]提出了雙向注意力記憶網(wǎng)絡(luò)模型,并在英文多關(guān)系問題數(shù)據(jù)集WebQuestion[4]上達(dá)到了先進(jìn)水平。
第二種是基于信息檢索(information retrieval,IR)[7-9]的方法?;谛畔z索的方法指從問句中獲取相應(yīng)的關(guān)鍵信息,直接從知識庫中檢索排序得到答案。一般首先確定問句的主題實(shí)體,以實(shí)體為中心從知識庫中提取出特定的問句子圖,一般情況下,該子圖包含了所有與問句相關(guān)的實(shí)體與關(guān)系組合;再使用相應(yīng)的特征提取模塊,對問句進(jìn)行特征提取,得到對應(yīng)的特征表示;最后通過推理排序模塊,對得到的特征表示做相應(yīng)的計(jì)算并排序,選取排名靠前的作為最終答案。這樣的方法適合流行的端到端訓(xùn)練,并使基于IR的方法更易于訓(xùn)練。Yao X.C.等[7]提出了一種基于特征工程的方法。該方法首先利用依存句法分析結(jié)果和問題詞等進(jìn)行特征提取,并將其轉(zhuǎn)化為問句特征圖;接著將主題實(shí)體子圖和候選特征圖相結(jié)合,以在特征提取和權(quán)重計(jì)算方面實(shí)現(xiàn)更好的性能。值得注意的是,該方法的權(quán)重計(jì)算偏向于與主題實(shí)體相關(guān)度較高的特征,從而能更好地解釋文本信息。Yu M.等[8]提出了一種新的知識庫關(guān)系檢測模型HRBiLSTM,該模型在問題和知識庫之間進(jìn)行分層匹配。Qu Y.等[9]提出了一種AR-SMCNN模型,它是基于相似矩陣的卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)的結(jié)合,能夠捕獲全面的層次信息,并確定問句中心實(shí)體。羅達(dá)等[10]等提出了一種基于多角度注意力機(jī)制的單一事實(shí)知識庫問答方法,其將基于知識圖譜的單一事實(shí)問答拆解成實(shí)體鏈接和關(guān)系識別兩部分任務(wù)。周博通等[11]提出了一種基于注意力機(jī)制的雙向長短期記憶網(wǎng)絡(luò)問答方法。該方法首先使用輔助詞典結(jié)合LSTM進(jìn)行命名實(shí)體識別,然后采用雙向LSTM融合不同的注意力機(jī)制進(jìn)行屬性映射,最終通過前兩步的結(jié)果進(jìn)行實(shí)體消歧和答案選擇。
在CKBQA中的某些任務(wù)上,歐陽康[12]、詹飛[13]等提出了一種聯(lián)合抽取和多任務(wù)方法,并在相應(yīng)的數(shù)據(jù)集上取得了較好的成績。參考以上方法[12-13],針對CKBQA任務(wù),本文提出一種基于多任務(wù)學(xué)習(xí)(multi-task learning,MTL)方法:先對主題實(shí)體、問題分類和路徑預(yù)測進(jìn)行多任務(wù)學(xué)習(xí);然后對主題實(shí)體識別出來實(shí)體提及進(jìn)行實(shí)體鏈接;再通過鏈接實(shí)體構(gòu)建知識庫子圖,結(jié)合問題類型預(yù)測和路徑預(yù)測模塊生成候選路徑;最后,通過語義相似度匹配模型對生成的候選路徑進(jìn)行排序,從中選出最匹配的路徑作為答案路徑,進(jìn)而從知識庫中得到問句答案。該方法在CCKS2022-CKBQA測試集上的F1值達(dá)到了76.2%。
對于知識庫問答任務(wù),有些較為復(fù)雜的任務(wù)需要做更多的處理,在任務(wù)驗(yàn)證過程中,有很多未見的實(shí)體和關(guān)系等,對這些數(shù)據(jù)的處理和建模成為提升模型性能的關(guān)鍵。之前大部分知識庫問答系統(tǒng)都是只針對簡單的問題(通過一個三元組就能回答的問題),生成的路徑較少。然而對于復(fù)雜問題所生成的候選路徑會呈現(xiàn)指數(shù)級別的增長,此時需要解決以下問題:
1)對于龐大的知識庫,當(dāng)問題變得復(fù)雜的時候,問句中的主題實(shí)體離答案的距離就會變得較遠(yuǎn),篩選的候選路徑可能會呈現(xiàn)指數(shù)級別的增長,如何有效處理這種情況,使得系統(tǒng)性能得到提升。
2)如何利用知識庫元素的多樣性,在訓(xùn)練過程中使模型學(xué)到一些驗(yàn)證和測試集中沒有出現(xiàn)的元組關(guān)系,從而提升語義相似度模型的魯棒性。
本文在CCKS2022-CKBQA評測任務(wù)上進(jìn)行了相關(guān)研究,提出了以下方法:1)將BERT(bidirectional encoder representation from transformers)預(yù)訓(xùn)練語言模型應(yīng)用于復(fù)雜問題知識庫問答系統(tǒng);2)在問句路徑生成上融合了問題類型特征;3)使用多任務(wù)學(xué)習(xí),將不同的任務(wù)共用一個BERT模型;4)改進(jìn)了子任務(wù)中的一些模型。
研究組提出的基于多任務(wù)學(xué)習(xí)的問答系統(tǒng),模型整體結(jié)構(gòu)如圖2所示。
圖2 基于多任務(wù)學(xué)習(xí)的知識庫問答系統(tǒng)整體框架Fig.2 Overall framework of knowledge base Q&A based on the multi-task learning model
多任務(wù)學(xué)習(xí)網(wǎng)絡(luò)模型由BERT編碼器、主題實(shí)體識別模塊、問題分類模塊、路徑預(yù)測模塊、實(shí)體鏈接模塊和路徑排序模塊構(gòu)成。此外,為了提升模型總體性能,研究組構(gòu)建了一些輔助詞典(分詞、詞頻等詞典)。其中主題實(shí)體識別、問題分類和路徑預(yù)測3個模塊構(gòu)成了多任務(wù)學(xué)習(xí)系統(tǒng),其模型參數(shù)共享模式采用硬共享模式,主題實(shí)體識別模塊、問題分類模塊和路徑預(yù)測模塊共同使用一個BERT編碼器部分,BERT與主題實(shí)體分類模塊構(gòu)成主題實(shí)體分類模型,與問題分類模塊構(gòu)成問題分類模型,與路徑預(yù)測模塊構(gòu)成路徑預(yù)測模型。模型訓(xùn)練期間,多個任務(wù)交替進(jìn)行,每個任務(wù)對應(yīng)的上下文作為模型輸入,來自不同任務(wù)的梯度信息均會傳遞到共享的BERT編碼器,并更新模型參數(shù),從而學(xué)到更深的底層信息。
多任務(wù)學(xué)習(xí)階段訓(xùn)的練目標(biāo)定義如下:
多任務(wù)學(xué)習(xí)模型損失函數(shù)定義如下:
式(1)~(3)中:p(y|x)為多任務(wù)訓(xùn)練階段的總目標(biāo);p(ye|x)為主題實(shí)體識別訓(xùn)練目標(biāo);p(yqt|x)為問題類型預(yù)測訓(xùn)練目標(biāo);p(yp|x)為路徑預(yù)測訓(xùn)練目標(biāo);ye為主題實(shí)體輸出表示;yqt為答案類型預(yù)測輸出表示;yp為路徑預(yù)測輸出表示;wi為第i個子任務(wù)權(quán)重;Li為第i個子任務(wù)損失函數(shù)。
多任務(wù)學(xué)習(xí)[14-15]是一種遷移學(xué)習(xí)的方法。從人類的角度來說,在面對一個新任務(wù)時,往往會結(jié)合自己以前的經(jīng)驗(yàn)和知識進(jìn)行學(xué)習(xí)。在機(jī)器學(xué)習(xí)中,多任務(wù)學(xué)習(xí)就是選取多個任務(wù)并將它們放到一個模型中進(jìn)行訓(xùn)練,不同任務(wù)間通過交互共享特征信息,緩解深度學(xué)習(xí)模型中的過擬合問題,多任務(wù)學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)包括了共享部分和各自特有部分。網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 多任務(wù)學(xué)習(xí)網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.3 Multi-task learning network
BERT模型是谷歌團(tuán)隊(duì)在2018年提出的一個基于雙向Transformer的預(yù)訓(xùn)練語言模型。自從該模型提出以來,得益于其中新提出的兩個任務(wù)MLM(masked language model)和NSP(next sentence prediction),就在自然語言處理領(lǐng)域取得了不錯的效果。MLM主要用于訓(xùn)練深度雙向語言表征,它是一個語言遮罩模型,會隨機(jī)遮住輸入句子中的一些詞,然后將預(yù)測這些被遮住詞,類似于完型填空。NSP主要用于做分類任務(wù)。BERT在預(yù)訓(xùn)練完成之后,只需要做相應(yīng)的fine-tuning,就能完成不同下游任務(wù),并取得不錯的效果。故本文決定采用BERT作為不同子任務(wù)之間的共享編碼器,它能夠較好地獲取上下文信息,將BERT對應(yīng)輸入文本使用詞向量的方式進(jìn)行表示。
本文使用了基于BERT+BiLSTM+CRF的序列標(biāo)注模型進(jìn)行主題實(shí)體識別,參考孔令巍等[16]的方法,將對抗訓(xùn)練用于主題實(shí)體識別,如圖3所示,先將長度為m的輸入問題分割成詞序列x={w1,w2, …,wm}傳入BERT網(wǎng)絡(luò)中,得到m個詞向量;之后將詞向量添加對抗訓(xùn)練擾動因子;隨后將相加后的向量送入BILSTM,雙向LSTM網(wǎng)絡(luò)對其進(jìn)行前向和后向的語義特征提??;之后輸出一個帶有上下文語義信息的特征向量;最后研究組將其輸入CRF層中,進(jìn)而識別出問題中的主題實(shí)體。研究組提出的主題識別模型如圖4所示。
圖4 主題實(shí)體識別模型Fig.4 Subject entity recognition model
通過主題實(shí)體識別模塊,研究組得到相應(yīng)的實(shí)體提及列表,設(shè)為ET,但這些實(shí)體提及在知識庫中可能對應(yīng)多個實(shí)體指稱(如:蘋果,可能存在水果蘋果和蘋果科技公司兩個實(shí)體指稱),亦可能沒有對應(yīng)的實(shí)體(如:恒生電子股份有限公司,在知識庫中沒有相應(yīng)的實(shí)體節(jié)點(diǎn))。需要將這些實(shí)體提及鏈接到知識庫相應(yīng)的實(shí)體節(jié)點(diǎn)上,這對之后生成相應(yīng)的子圖及之后的工作非常重要。研究組通過評測方提供的實(shí)體提及詞典及上面得到的實(shí)體提及ET,結(jié)合訓(xùn)練集中SPARQL語句中的答案實(shí)體,構(gòu)造實(shí)體鏈接訓(xùn)練集,研究組把實(shí)體鏈接作為一個二分類任務(wù),采用基于BERT的訓(xùn)練模型,如圖5所示。
圖5 實(shí)體鏈接模型Fig.5 Entity link model
如圖5所示,研究組首先構(gòu)建候選實(shí)體集(通過實(shí)體提及和實(shí)體提及詞典得到);然后將候選實(shí)體上下文和實(shí)體提及上下文輸入BERT中,中間用[SEP]([SEP]在BERT中用于分隔兩個不同的句子)隔開;除了取[CLS]對應(yīng)位置輸出向量外,還將實(shí)體提及對應(yīng)開頭和結(jié)尾位置向量取出與之進(jìn)行拼接,輸入下一層全連接層中;再經(jīng)過多層全鏈接和Dropout后輸入softmax,最終得到候選實(shí)體和實(shí)體提及相關(guān)概率得分k。在每組候選實(shí)體中,研究組選出得分最高的候選實(shí)體作為該實(shí)體提及對應(yīng)的知識庫鏈接實(shí)體。
在研究工作中,將問題類型預(yù)測任務(wù)作為分類任務(wù)來處理,首先預(yù)定義了幾種問題類型,分別是事實(shí)類、計(jì)算類、判斷類、推理類。同樣將問句上下文輸入BERT中,然后取BERT輸出的[CLS]位置向量([CLS]為BERT在文本前插入的特殊符號),之后經(jīng)過全連接層和softmax函數(shù)激活后,就得到了問句分類概率分布。
除了獲取問句中的主題實(shí)體外,還需要獲取問句中的一些屬性關(guān)系詞,方便生成后續(xù)的路徑,同樣將路徑預(yù)測任務(wù)作為序列標(biāo)注任務(wù),整體模型架構(gòu)同主題實(shí)體識別一致,問句中識別出的關(guān)系詞集合定義為路徑P={p1,p2, ...,pn}。
經(jīng)過主題實(shí)體識別、實(shí)體鏈接、問題分類和路徑預(yù)測模塊后,融合問句中的主題實(shí)體、問題類型和路徑預(yù)測來生成候選路徑。由于一個問題對應(yīng)的候選路徑比較多,課題組采用路徑剪枝方法減小路徑總數(shù),最后將候選路徑與問題同時輸入BERT語義相似度模型(如圖6所示)中進(jìn)行語義相似度匹配。
圖6 語義相似度匹配模型Fig.6 Semantic similarity matching model
給定一個問題q和對應(yīng)的n個候選路徑C,使用BERT模型計(jì)算路徑對應(yīng)的相似度得分[17],挑選得分最高的最優(yōu)候選路徑作為最終的答案路徑,公式如式(4)(5)所示:
式(4)(5)中:Fθ(q,C)為問題q與路徑C間的語義相似度得分;hq為問題經(jīng)過BERT編碼后得到的[CLS]位置向量;hC為候選路徑經(jīng)過BERT編碼后得到的[CLS]位置向量。
最后使用向量間的余弦相似度作為問題與候選路徑的相似度得分。為了增加正確路徑C+和錯誤路徑C-之間的得分差異,使用Ranking Loss來進(jìn)行訓(xùn)練,具體公式如下:
式中η為模型的一個超參。
使用CCKS2022評測任務(wù)五—開放領(lǐng)域知識圖譜問答評測中提供的數(shù)據(jù)集,同時還提供一個供查詢的知識庫PKUBASE。數(shù)據(jù)集詳細(xì)信息如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)集Table 1 Experimental dataset
評價(jià)指標(biāo)采用AveF1(averagedF1)值。設(shè)Q為問題集合,Ai為本問答系統(tǒng)對第i個問題給出的答案集合,Gi為第i個問題的標(biāo)準(zhǔn)答案集合。相關(guān)計(jì)算公式如下:
本文實(shí)驗(yàn)環(huán)境使用Windows操作系統(tǒng),CPU型號為i7-12700H@2.30 GHz,GPU型號為NVIDIA Geforce RTX3060,深度學(xué)習(xí)框架采用CUDA11.0和TensorFlow 2.4.0,知識庫數(shù)據(jù)存儲及檢索工具使用neo4j 3.5.30、Python 3.7。
本文各實(shí)驗(yàn)?zāi)P蛥?shù)設(shè)置如表2所示。
表2 各模型參數(shù)設(shè)置Table 2 Parameter settings for each model
不同主題實(shí)體識別模型結(jié)果分析如表3所示。
表3 主題實(shí)體識別實(shí)驗(yàn)結(jié)果Table 3 Experimental results of subject entity recognition
由表3可知,本文提出的融合多任務(wù)學(xué)習(xí)的主題實(shí)體識別方法與傳統(tǒng)序列標(biāo)注方法BiLSTM+CRF模型相比,F(xiàn)1值提高了0.103;與BERT+CRF、BERT+BiLSTM+CRF模型相比亦有顯著提高。結(jié)果證明融入多任務(wù)學(xué)習(xí)模型的主題實(shí)體識別模型學(xué)習(xí)到了額外的信息,取得了較好的識別結(jié)果。
驗(yàn)中訓(xùn)練集正負(fù)比例為1:4,驗(yàn)證集對所有候選實(shí)體都進(jìn)行預(yù)測,最終預(yù)測答案都只保留一個。實(shí)驗(yàn)結(jié)果如表4所示。
表4 實(shí)體鏈接實(shí)驗(yàn)結(jié)果Table 4 Entity link experiment results
從表4結(jié)果可以看出,本文提出的實(shí)體鏈接模型較之其他方法有了較大提升,比傳統(tǒng)詞典排序方法提升了0.130,說明在融合了多特征后,研究組的模型學(xué)到了更多的語義信息。
與傳統(tǒng)問答結(jié)果分析對比如表5所示。實(shí)驗(yàn)結(jié)果表明,課題組提出的方法對比傳統(tǒng)的方法有不錯的提升,主要?dú)w因于多任務(wù)學(xué)習(xí)模塊幫助部分子任務(wù)之間學(xué)習(xí)到了更多的語義信息。此外研究組在引入外部輔助詞典后得到的結(jié)果說明,在進(jìn)一步引入輔助詞典相關(guān)信息后,模型有了進(jìn)一步的提升,最后能有0.762的平均F1值。
表5 問答系統(tǒng)實(shí)驗(yàn)結(jié)果Table 5 Experimental results of Q&A system
本文構(gòu)建了一種基于多任務(wù)學(xué)習(xí)的通用領(lǐng)域知識問答方法[18],使用了多任務(wù)學(xué)習(xí)框架,對問題進(jìn)行了主題實(shí)體識別、實(shí)體鏈接、候選路徑生成、候選路徑和問題語義相似度匹配,驗(yàn)證了基于BERT的多任務(wù)學(xué)習(xí)模型在知識庫問答上的優(yōu)勢。在CCKSCKBQA評測任務(wù)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),取得了不錯的結(jié)果。但是問答系統(tǒng)日益向著更加智能的方向發(fā)展,在后續(xù)工作中需要在以下方面深化研究:
1)特定范圍內(nèi)的排序及計(jì)數(shù)問題,采用信息檢索的方式效果不佳,需要結(jié)合推理與語義分析方法進(jìn)行深入研究。
2)現(xiàn)有知識庫中的信息不完整,某些問題在知識庫中不存在直接答案,需要進(jìn)行補(bǔ)全和推理計(jì)算。
湖南工業(yè)大學(xué)學(xué)報(bào)2024年3期