張楚婷,常 亮,王文凱,陳紅亮,賓辰忠
(桂林電子科技大學(xué) a.廣西可信軟件重點實驗室;b.衛(wèi)星導(dǎo)航定位與位置服務(wù)國家地方聯(lián)合工程研究中心,廣西 桂林 541004)
隨著知識圖譜的發(fā)展,基于知識圖譜的各項應(yīng)用研究也不斷深入。在深度學(xué)習(xí)技術(shù)未被廣泛應(yīng)用前,傳統(tǒng)的問答旨在用語義解析的方式將自然語言問句通過語義解析器轉(zhuǎn)換為結(jié)構(gòu)化查詢語言,從而到數(shù)據(jù)庫中查詢答案。然而,隨著數(shù)據(jù)量的迅速增多,該方法已不能滿足人們快速獲取正確答案的需求?,F(xiàn)有多數(shù)關(guān)于知識圖譜問答的研究方法,都將問句和知識庫里的事實映射到一個共同的低維度空間內(nèi),通過計算問句向量與答案向量的余弦相似性來找到問句的正確答案。但此類方法在候選主實體的篩選上步驟繁瑣,并且忽略了問句中主實體與關(guān)系之間以及問句中原始詞語之間的相關(guān)性。
針對上述問題,本文構(gòu)建一種基于BiLSTM-CRF與N-Gram算法的細粒度知識庫問答模型。受知識圖譜表示學(xué)習(xí)中翻譯模型的啟發(fā),將問句與答案的關(guān)系表示為三元組的形式,把問答過程分為實體識別和關(guān)系預(yù)測2個部分。采用BiLSTM+CRF模型進行命名實體識別,并使用N-Gram算法為候選實體建立倒排索引,其中每個索引結(jié)點包含一個由萊溫斯坦距離計算得到的權(quán)值。在此基礎(chǔ)上,利用注意力機制和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)模型,分別從語義層次和詞層次捕獲問句主實體與候選關(guān)系之間和問句與關(guān)系原始詞語之間的相互關(guān)系。
知識圖譜又稱為科學(xué)知識圖譜,由谷歌公司于2012年正式提出,其本質(zhì)是一張巨大的圖,也可以稱為有向圖結(jié)構(gòu)的知識庫,即語義網(wǎng)絡(luò)的知識庫。在知識圖譜中,結(jié)點表示實體,邊表示實體之間的關(guān)系。知識圖譜的表示學(xué)習(xí)旨在學(xué)習(xí)實體和關(guān)系的向量化表示[1],其中基于多元關(guān)系的翻譯模型TransE[2],將每個三元組實例(head、relation和tail)中的關(guān)系看作從頭實體head到尾實體tail的翻譯,通過不斷調(diào)整h、r和t(分別表示head、relation和tail),使(h+r)盡可能與t相等,即h+r≈t。
目前基于知識圖譜的問答研究,已經(jīng)從先前基于語義解析的研究,逐漸轉(zhuǎn)變?yōu)橛尚畔⑻崛⊙苌幕谏疃葘W(xué)習(xí)的知識圖譜問答研究。文獻[3]提出將詞向量的表示學(xué)習(xí)方法用于基于知識圖譜的問答,因為知識庫總是以三元組的形式存放大量事實,所以該文提出將單一關(guān)系的自然語言問答視作已知三元組的頭實體和關(guān)系,尋找三元組尾實體的過程,即
注意力機制本質(zhì)上與人類的選擇性視覺注意力機制類似,其核心目標是從眾多信息中選擇出對當前任務(wù)目標更關(guān)鍵的信息。文獻[7]設(shè)計注意力與全局信息相結(jié)合的知識庫問答,采用注意力機制給問句中的各個詞語賦予權(quán)重,該權(quán)重表示答案的不同方面對問題表示的影響。文獻[8]則將模型分為2個部分,即答案問句端和問句答案端。該模型的第一部分采用注意力機制計算答案問句端的問句向量與答案向量相似性得分,第二部分同樣通過注意力機制計算問句答案端問句向量對答案各方面向量的不同關(guān)注程度,最后將第二部分的計算結(jié)果作為第一部分相似性得分的權(quán)值,從而求得問句向量與答案向量最終的相似性得分。受以上方法的啟發(fā),本文模型在關(guān)系預(yù)測部分采用注意力機制捕獲問句向量與關(guān)系向量語義層次上的相似性。
對于文本或字符串的相似性判斷,現(xiàn)有方法和多數(shù)實驗都選擇通過將文本或字符串向量化后用余弦值[9]來判斷其是否相似。文獻[10]提出利用圖像識別的方法進行文本匹配,構(gòu)造文本的相似度矩陣,然后用卷積神經(jīng)網(wǎng)絡(luò)來提取矩陣特征。本文將該方法應(yīng)用于問答領(lǐng)域,在關(guān)系預(yù)測部分通過使用卷積神經(jīng)網(wǎng)絡(luò)抽取問句向量與關(guān)系向量相似性矩陣的特征,從而得到問句向量與關(guān)系向量在詞層次上的相似性。
本文模型分為2個部分,即實體識別和關(guān)系預(yù)測。在實體識別部分,提出采用BiLSTM-CRF模型進行命名實體識別,與傳統(tǒng)基于BiLSTM的命名實體識別方法相比,CRF層的加入進一步提高了命名實體識別的準確性。同時,采用N-Gram算法為與實體名和實體別名相同的候選實體建立倒排索引,并以萊溫斯坦距離[11]作為得分為候選實體排序。在關(guān)系預(yù)測部分,將關(guān)系視為2個部分,一部分代表實體的類型,另一部分代表問句主實體與答案之間真實的關(guān)系,分別應(yīng)用注意力機制和CNN模型捕獲問句主實體與候選關(guān)系之間的相互聯(lián)系以及原始詞語之間的相互聯(lián)系。
2.1.1 BiLSTM-CRF模型
在對于問句的處理中,問句的命名實體識別是極為關(guān)鍵的一個步驟。最初的命名實體識別方法主要分為基于規(guī)則的方法和基于統(tǒng)計的方法,而目前多數(shù)研究更傾向于使用神經(jīng)網(wǎng)絡(luò)來提取問句特征進行命名實體的識別。BiLSTM由2個LSTM拼接而成,其包含1個正向輸入序列和1個反向輸入序列,同時考慮了過去的特征和未來的特征。當用BiLSTM進行命名實體識別時,BiLSTM的輸出為實體標簽的分數(shù)且選擇最高分數(shù)對應(yīng)的標簽。然而有時BiLSTM不能得到真正正確的實體標簽,在這種情況下,就需要加入CRF層。CRF結(jié)合了最大熵模型和隱馬爾科夫模型的特點,且近年來在分詞、詞性標注和命名實體識別等序列標注任務(wù)中取得了較好的效果。
例如,對問句“Where is Tsinghua University located?”用BiLSTM-CRF算法進行命名實體識別,實驗效果如圖1所示,可得“Tsinghua University”的實體標簽為“B-Organization I-Organization”。同理,對于問句“What is the height of Yao Ming?”,經(jīng)BiLSTM-CRF模型處理后可得到“Yao Ming”的實體標簽為“B-Person,I-person”。
圖1 BiLSTM-CRF模型結(jié)構(gòu)
通過實驗可知,CRF層的作用不僅在于可以進一步得到實體標簽的得分,同時還可以在訓(xùn)練過程中自動學(xué)習(xí)對于最后預(yù)測標簽的限制規(guī)則。以上述問句為例,限制條件如下:
1)因為問句中第1個詞通常為疑問詞,所以第1個詞的標簽應(yīng)為“O”。
2)在“B-label1,I-label2,I-label3”中,“l(fā)able1,label2,label3”等要有同樣的標簽類型,即“B-organizationI-organization”有效,“B-Person I-organization”無效。
2.1.2 基于N-Gram算法的候選實體的倒排索引
通過BiLSTM-CRF模型識別出問句實體后,還需要將該實體與知識圖譜中的相應(yīng)結(jié)點進行關(guān)聯(lián)。本文實驗中采用N-Gram算法(其中N∈{1,2,3})為與實體名和實體別名相同的候選實體建立倒排索引,并用萊溫斯坦距離計算得到的權(quán)值為候選實體排序。
倒排索引以詞或字符串作為關(guān)鍵字,對每種關(guān)鍵字都設(shè)立一個索引,每個關(guān)鍵字對應(yīng)的是該詞或字符串在所有文檔中的位置信息以及頻率,圖2所示為一個小型數(shù)據(jù)集基于2-gram的倒排索引。
圖2 2-gram倒排索引
數(shù)據(jù)集N-Gram倒排索引Ientity形式如下:
Ientity(“qi”)→{node:ei,score:LLSD}
其中,LLSD為萊溫斯坦距離。萊溫斯坦距離為編輯距離的一種方法,主要用來量化字符串之間的相似度,即計算從一個字符串轉(zhuǎn)換成另外一個字符串所需要的最少操作步驟,通過刪除、插入、替換操作來定義萊溫斯坦距離。因此,萊溫斯坦距離越大表示字符串的相似度越低。
在本文提出的細粒度知識庫問答方法中,候選關(guān)系rk的識別分別從語義層次和詞層次進行(其中rk表示候選實體ei所關(guān)聯(lián)的所有關(guān)系R)。在語義層次上,引入注意力機制表示關(guān)系r對于問句中不同詞語的關(guān)注程度;在詞層次上,構(gòu)建問句向量與關(guān)系向量的相似度矩陣,并用CNN抽取該矩陣的特征。最后,將兩部分的特征向量用一個線性層連接起來,從而得到最后候選關(guān)系rk與問題模式Q的相似性得分,即最終預(yù)測的關(guān)系為:
rf=argmax(S(Q,rk))=Sigmoid(WT[zi+b])
圖3 關(guān)系預(yù)測模型整體結(jié)構(gòu)
2.2.1 語義層次
在Freebase中關(guān)系通常由2個部分構(gòu)成,一部分代表問句中實體的類型,另一部分代表實體與答案之間真正的關(guān)系。因此,在實驗中關(guān)系的嵌入向量分別為r1和r2。
wij=vTtanh(wT[qi;ri]+b)
rf=argmax(S(Q,rk))=Sigmoid(WT[zi+b])
2.2.2 詞層次
文獻[7]指出,詞語的相似性匹配也可以看作采用卷積神經(jīng)網(wǎng)絡(luò)的圖像識別過程,此處的“圖像”通常為詞語的相似度矩陣。卷積神經(jīng)網(wǎng)絡(luò)[13]是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是圖像識別領(lǐng)域的核心算法之一[14]。
實驗中相似性矩陣Mij=qi.uj,其中qi表示問句中第i個詞的嵌入向量,uj表示關(guān)系中第j個詞的嵌入向量,且通過計算2個向量的余弦相似度來構(gòu)建相似性矩陣。
在卷積層中當?shù)趉個方形卷積核wk掃描相似性矩陣Mij時可以得到特征映射矩陣,矩陣元素表示如下:
其中,γ為ReLU激活函數(shù),rk為第k個卷積核的大小。
在最大池化層,本文實驗用2個大小分別為s1和s2的池化核抽取卷積后的相似性矩陣fk,得到特征矩陣yi和yj,且s1代表問句的長度,s2代表關(guān)系的長度:
在全連接層,用兩層感知機得到最后的特征向量z3、z4:
z3=w2γ(w1[y(1,0);y(1,k)+b1])+b2
z4=w2γ(w1[y(2,0);y(2,k)]+b1)+b2
其中,k代表卷積核的總個數(shù),[y(i,0);y(i,k)]為池化層的輸出,wi為多層感知機的權(quán)重,γ代表ReLU激活函數(shù)。
實驗中用損失排名來優(yōu)化候選關(guān)系池R中的正例關(guān)系r+和負例關(guān)系r-:
其中,S(P,r-)、S(P,r+)分別表示負例關(guān)系與問題模板的相似性得分和正例關(guān)系與問題模板的相似性得分,γ為常量參數(shù)。
實驗環(huán)境:操作系統(tǒng)Ubuntu 16.04,CUDA 8.0,cudnn 6;處理器4顆CPU核心,1顆Nvidia Tesla P100共享GPU核心;內(nèi)存大小60 GB,顯存大小16 GB;編譯平臺Pycharm Profession,Python 3.5,Pytorch 0.2.0。
實驗數(shù)據(jù):實驗數(shù)據(jù)采用文獻[3]中的SimpleQuestion數(shù)據(jù)集。該數(shù)據(jù)集針對單一關(guān)系問題,且數(shù)據(jù)集的每一對問題與答案都能在FreeBase中找到相應(yīng)的三元組與之對應(yīng),如表1所示。
表1 問句與三元組
實驗將數(shù)據(jù)集分為訓(xùn)練集、有效集、測試集3個部分,其中包含的三元組個數(shù)分別為78 360、10 825和21 580。同時,實驗中的知識庫采用Freebase下的FB2M和FB5M數(shù)據(jù)集。
本文的實驗分為2個部分,即實體識別和關(guān)系預(yù)測。在實體識別部分,先用Glove將詞語訓(xùn)練成向量,再將詞語向量輸入BiLSTM-CRF得到最后的實體預(yù)測得分;在關(guān)系預(yù)測部分,先用BiGRU訓(xùn)練問句,再用CNN抽取問句向量與關(guān)系向量的相似性矩陣,在此部分的實驗中參數(shù)訓(xùn)練采用一階梯度隨機優(yōu)化目標函數(shù)[15]。兩部分具體參數(shù)設(shè)置如表2和表3所示。
表2 實體識別參數(shù)設(shè)置
表3 關(guān)系預(yù)測參數(shù)設(shè)置
本文將召回率R和準確率P作為評價指標,計算公式如下:
其中,Nr表示預(yù)測正確的數(shù)據(jù)的數(shù)目,Ntotal表示測試集總的數(shù)據(jù)數(shù)目,Npre表示實驗中預(yù)測的數(shù)據(jù)數(shù)目。
本文使用SimpleQuestion數(shù)據(jù)集在Freebase下的FB2M和FB5M數(shù)據(jù)集下進行實驗,以實體關(guān)系對的識別準確率作為評價指標,將本文模型與同樣在該數(shù)據(jù)集下進行實驗的模型相比。對比的5種模型分別為基于記憶網(wǎng)絡(luò)的簡單關(guān)系問答模型[3]、基于字符層面和自注意力機制的簡單關(guān)系問答模型[16]、基于自注意力機制和卷積神經(jīng)網(wǎng)絡(luò)的簡單問答[17]、基于大規(guī)模知識圖譜的條件聚集神經(jīng)網(wǎng)絡(luò)問答模型[18]、基于字與字符的神經(jīng)網(wǎng)絡(luò)問答模型[19]。實驗結(jié)果如表4所示,可以看出,本文方法在FB2M和FB5M數(shù)據(jù)集上準確率達到了78.5%和77.3%的Top-k值,相比其他在FB2M和FB5M數(shù)據(jù)集上準確率相對較高的模型,分別提高了1.9%和1.6%。對比模型在實體識別部分都單一地采用N-gram算法或者神經(jīng)網(wǎng)絡(luò),實體識別的準確率不高,而本文方法通過采用BiLSTM-CRF與N-gram結(jié)合的模型,進一步提高了命名實體識別的準確率,從而使模型的整體性能相比之前的實驗有所提升。
表4 Top-k實體關(guān)系對預(yù)測準確率
3.4.1 實體識別
為體現(xiàn)本文模型在實體識別部分的優(yōu)勢,將本文模型與文獻[17,19]模型進行比較。文獻[17]模型在實體識別部分提出2種方法,分別為計算LCCS(即最長連續(xù)公共子序列)的被動實體鏈接方法和通過BiGRU-CRF進行命名實體識別的激活實體鏈接方法,而文獻[19]模型在實體識別部分用GRU處理問句且實體的表示由字符層面的實體標簽和詞層面的實體標簽兩部分構(gòu)成。
本文模型在實體識別部分采用BiLSTM-CRF的命名實體識別方法,同時應(yīng)用N-Gram算法(N∈{1,2,3})為候選實體建立倒排索引并且給每個實體結(jié)點賦予一個基于萊溫斯坦距離的權(quán)重,從而提高了命名實體識別和候選實體篩選的準確率。表5顯示了3種方法在排名在前k(k∈{1,5,20,50,100,400})的候選實體上的召回率,可以看出,本文模型在Top-k的召回率上相比文獻[17,19]模型有顯著提升。
表5 Top-k候選實體的召回率
3.4.2 關(guān)系預(yù)測
在關(guān)系預(yù)測部分,本文采用文獻[17]中的數(shù)據(jù)集測試本文模型。表6比較了BICNN[20]、AMPCNN[17]和HR-BiLSTM[21]這三個模型和本文模型的關(guān)系預(yù)測準確率。上述3個模型都在一個編碼框架下,將問題和關(guān)系都映射成向量從而通過向量之間的比較來判斷問題和關(guān)系的語義相似性。從表6可知本文模型關(guān)系預(yù)測的準確率高于目前關(guān)系預(yù)測準確率相對較高的HR-BiLSTM模型。HR-BiLSTM模型采用層次殘差BILSTM模型提取問句的不同粒度表示,同時分別從關(guān)系的詞層次和關(guān)系本身編碼關(guān)系,最后通過計算問句和關(guān)系的相似度來對候選關(guān)系排序。而本文模型分別從語義層次和詞層次找尋關(guān)系向量與問句模板向量之間的相似性。在語義層次上,采用自注意力機制為問句中的詞語賦予不同的權(quán)重,從而表現(xiàn)關(guān)系向量對問句中不同詞向量的不同關(guān)注程度;在詞層次上,采用CNN抽取問句向量與關(guān)系向量構(gòu)成的相似性矩陣。
表6 關(guān)系預(yù)測準確率
本文構(gòu)建一種基于BiLSTM-CRF模型和N-Gram算法的細粒度知識庫問答模型,用于單一關(guān)系問答。該模型解決了傳統(tǒng)模型在實體識別上使用單一的神經(jīng)網(wǎng)絡(luò)方法導(dǎo)致命名識別準確率不高的問題,同時采用自注意力機制和CNN提高了關(guān)系預(yù)測的準確率,減小了人工定義規(guī)則對模型準確率的影響和模型的復(fù)雜性。在FB2M和FB5M數(shù)據(jù)集上的實驗結(jié)果表明,該模型可顯著提高整體識別準確率。盡管本文模型在單一關(guān)系數(shù)據(jù)集上表現(xiàn)良好,但并不能滿足實際應(yīng)用中復(fù)雜問句的需要。因此,下一步將結(jié)合知識圖譜表示學(xué)習(xí)中對于一對多和多對多問題的研究,構(gòu)建針對多個實體和多種關(guān)系的知識庫問答模型。