王維美,史一民,李冠宇
(大連海事大學 信息科學技術學院,遼寧 大連 116026)
作為一種圖結構化的知識庫,知識圖譜以節點代表實體,以邊代表實體間關系[1],能夠提供有效的結構化信息,是Web搜索、問答和推薦系統等智能應用程序所需要的關鍵資源。一個典型的知識圖譜通常將知識描述為多關系數據并表示為三元組(頭實體,關系,尾實體)的形式[2]。盡管知識圖譜在各領域有著重要應用,但許多大型知識圖譜如Freebase、DBpedia等數據關系仍不完整,大量實體之間隱含的關系未被充分挖掘[3]。知識圖譜補全技術旨在發現三元組中的缺失鏈接,解決知識圖譜數據稀疏問題,即預測缺失三元組是否正確[4-6],將正確三元組添加到知識圖譜進行補全。目前,研究者提出許多嵌入模型用于學習實體和關系的矢量表示,如早期的TransE[7]、TransH[8]、TransR[9]模型,這些模型中正確三元組得分高于錯誤三元組得分,從而能夠有效預測缺失三元組。
傳統嵌入模型如TransE、DistMult[10]和ComplEx[11]僅使用加減法或簡單的乘法運算符,只能捕獲實體間的線性關系。因此,目前很多研究將深度神經網絡應用于三元組預測問題[12],如ConvKB和CapsNet模型。ConvKB模型[13]將三元組矩陣作為模型的輸入,與不同的卷積核進行卷積,通過評分函數計算每個三元組的得分,判斷三元組正確與否。多數知識圖譜嵌入模型通過對三元組相同維度的特征進行建模,在每個維度捕獲一些特定關系的實體屬性。然而,現有嵌入模型多未采用深度架構對同一維度三元組的屬性進行建模。CapsNet[14]模型引入膠囊概念,將膠囊定義為一組用向量表示一種特定類型實體的實例化參數的神經元,它可以表示圖像中特定實體(或關系)的各種特征。該模型利用膠囊捕獲圖像中的實體,通過路由操作指定從上一層膠囊到下一層膠囊的連接,并提出利用膠囊網絡對三元組進行補全操作。與分割特征映射構造膠囊的傳統CapsNet模型不同,該模型使用膠囊對實體和關系在相同維度上的屬性進行建模,捕獲實體和關系矢量表示。由于膠囊使用向量表示實體或關系,取代了以往單個神經元數值的表示,從實體各個屬性(維度)進行表示,表示能力更強。
本文提出一種改進的膠囊網絡知識圖譜補全算法,解決CNN單層神經元不足以表征實體和關系屬性等問題。以膠囊代替每層神經元表示實體和關系,輸入一個三元組,輸出連續矢量的值,并利用該值判定給定三元組的正確性,將正確的三元組添加到知識圖譜,對知識圖譜進行補全,從而緩解數據稀疏問題,使知識圖譜更完備。


圖1 實體和關系低維向量表示Fig.1 Low dimensional vector representation of entities and relationships

上述嵌入模型只關注三元組結構信息,沒有考慮三元組同維度屬性,不能深層次挖掘實體和關系的特征。對此,文獻[18]提出基于CNN的知識圖譜嵌入模型ConvE,將頭實體和關系向量重組成矩陣作為卷積層的輸入,與不同形狀的卷積核進行卷積生成多個特征圖,最終映射成向量和尾實體點積,得分用于判定三元組正確性。由于該模型將頭實體和關系重組作為卷積層輸入的過程中沒有考慮三元組結構信息,忽略了三元組的全局特征,因此研究者提出ConvKB[12]模型,該模型將三元組矩陣[vh,vr,vt]作為輸入,捕獲三元組的全局特征,利用不同的卷積核進行卷積,通過評分函數得到每個三元組的得分,作為判斷三元組正確的依據。
以上2個模型利用卷積神經網絡深層次地提取實體和關系特征,捕獲復雜關系,適用于大規模知識圖譜補全。ConvKB使用CNN對知識圖譜中三元組信息進行編碼,但輸入層和輸出層神經元過于簡單,難以表征實體和關系。受文獻[13]的啟發,本文以一組膠囊代替神經網絡每層神經元,膠囊使用向量作為模型的輸入、輸出,從而準確表征實體和關系。算法輸入一個三元組矩陣[vh,vr,vt],在CNN中卷積生成不同特征圖,連接特征圖得到多個膠囊(即一組神經元的集合),通過路由操作生成一個連續向量,該向量和權重點積操作的分數用于判定三元組正確性。利用改進的膠囊網絡進行知識圖譜補全任務,可以有效提高知識圖譜補全準確性。以上部分模型的評分函數如表1所示。

表1 相關模型評分函數Table 1 Scoring functions of correlation models
由于TransE模型參數少、計算復雜度低,因此訓練三元組較為簡單。本文將知識圖譜定義為KG=(E,R,T),其中,E是實體集合,R是關系集,T是所有數據集,包含訓練集、測試集和驗證集。實體和關系嵌入維度均為K。使用TransE得到實體和關系嵌入作為算法輸入。在TransE模型基礎上,改進的膠囊網絡算法描述如下:
算法1膠囊網絡算法
輸入S=(h,r,t),E,R,γ,K
Initialize:

Loop:

Sbatch←sample(S,b)//sample a minibatch of b
Tbatch←?
for(h,r,t)∈Sbatchdo
(h′,r′,t′)←sample(S′(h,r,t))
Tbatch←Tbatch∪{((h,r,t),(h′,r′,t′))}
end for
update embeddings w.r.t:

Input←[vh,vr,vt] //輸入矩陣
更新損失函數:

End Loop
本文算法的模型架構如圖2所示。

圖2 本文算法的模型架構Fig.2 Model architecture of the proposed algorithm

上文介紹了卷積層操作,下文使用膠囊層構建改進的膠囊網絡模型,以簡化架構。在第1層使用卷積得到的N個特征圖重構成K個膠囊(V1~V6),所有特征圖同維度特征被封裝進相應膠囊。因此,每個膠囊可以捕獲嵌入三元組相應維度不同特征,這些特征通過路由操作產生另一個較小維度的膠囊,然后生成一個連續矢量,該矢量和權重向量點乘,其值用作三元組的得分。在圖2中,嵌入維度K=6,濾波器的數量N=5,第1層膠囊內神經元數量等于N,第2層膠囊內神經元數量d=2。

(1)
(2)
其中,ci是耦合系數,由路由操作確定。
參照文獻[13],路由算法描述如下:
算法2路由算法
for 所有膠囊i屬于第1層 do
bi←0
for iteration=1,2,…,n do
c←softmax (b)
e←squash(s)
for 所有膠囊 i屬于第1層 do
bi←bi+vi·e
形式上,定義三元組打分函數,如式(3)所示:
(3)
其中,過濾器集Ω是卷積層共享參數,*表示卷積運算符,capsnet′表示膠囊網絡操作,g代表激活函數,本文使用ReLU。將最小化以下的損失函數作為最終的訓練目標,損失函數如式(4)所示:

(4)


(5)
負例三元組構造方法如式(6)所示,即將正確三元組頭實體和尾實體分別用數據集所有實體代替。
T′={(h,r,t)|h′∈E}∪{(h,r,t)|t′∈E}
(6)
本文使用Adam[19]最小化如式(4)所示的損失函數,使用ReLU作為算法激活函數。
本文實驗使用從WordNet和Freebase抽取的數據集WN18RR[18]、FB15k[7]、FB15K-237[20]進行實驗。由文獻[20]可知,數據集FB15k包含一些反轉關系,這些反轉關系會使實驗效果得到顯著改善,為保證實驗結果的準確性,將數據集FB15k中具有反轉關系的三元組去掉,得到一個新數據集FB15K-237。同理,去掉數據集WN18所有反轉關系,得到WN18RR。3種數據集的統計情況如表2所示。

表2 數據集統計情況Table 2 Data sets statistics
利用TransE模型[7]和ConvKB模型[13]實現本文算法。使用TransE模型訓練三元組,得到實體和關系最終嵌入,將三元組[vh,vr,vt]作為本文算法輸入。對于ConvKB模型,過濾器數量 |ω|=N∈{50,100,200,400},Adam初始化學習率γ∈{0.000 01,0.000 05,0.000 01,0.000 5},利用超參數網格搜索訓練模型3 000次。每訓練100次,監測Hits@10得分,以選擇Hits@10最優超參數。最優超參數設置如下:在FBI5K-237上,Hit@10最優設置為N=100,K=100,γ=0.000 01;在WN18RR上,Hit@10最優設置為N=400,K=100,γ=0.000 05。
與文獻[13]類似,本文使用TransE訓練生成的實體和關系嵌入初始化算法實體和關系嵌入,用于WN18RR、FB15k-237和FB15k,嵌入維度K=100。設置批處理大小batchsize為128,即每次訓練128個三元組。第2個膠囊層中的膠囊內神經元數量設置為10(d=10);權重w最初由截斷函數初始化,最終由模型訓練后確定。路由操作迭代次數n∈{1,3,5,7,9}。實驗訓練算法次數多達500次,平均每100次監測Hit@10,以選擇最優Hit@10超參數:驗證集上最優Hit@10如下:在FBI5K-237上,最優Hit@10為n=3,N=100,K=100,γ=0.000 1,d=10;在WN18RR上,最優Hit@10為n=1,N=400,K=100,γ=0.000 01,d=10。
3.3.1 實驗設計
鏈接預測是指預測知識圖譜缺失的三元組,即三元組中缺失的實體或關系。例如:給定三元組(Michelle Obama,residence,?),其中,頭實體為“Michelle Obama”,關系為“residence”,尾實體缺失,為補全三元組,將知識圖譜中正確尾實體添加到該元組中對其進行補全操作。實驗參照文獻[6,8]對測試集中每個三元組用所有實體替換頭實體或尾實體來創建一組負例三元組。對這組負例三元組使用評分函數計算它們的相似性得分,以此對其進行排名,相似度越高排名越靠前,由此可以得到正確實體的真實排名。
3.3.2 評估指標
本文選擇正確實體或關系的平均排名MR(MeanRank)、倒數平均排名MRR(Mean Reciprocal Rank)、前10名比例(Hit@10)作為評估指標。在這3個指標中,MR越低、MRR越高或者Hit@10越高,代表算法效果越好。本文采用文獻[7]的標準,把知識圖譜中錯誤三元組從訓練集、驗證集、測試集刪除,刪除后的設置稱為Filter,原來的稱為Raw。在數據集FB15K-237和WN18RR上,僅使用Filter設置,即不考慮負例三元組。
3.3.3 實驗結果和分析
本文實驗環境為:Window 7 64位系統,CPU采用Intel Core i5-4200M@ 1.6 GHz,物理內存為8 GB。數據集WN18RR在不同模型下鏈接預測性能比較如表3所示,其中,MRR和Hit@10最優參數設置為n=1,N=400,K=100,γ=0.000 05,d=10。

表3 數據集WN18RR上各模型的鏈接預測性能比較Table 3 Comparison of links prediction performance of various models on data set WN18RR
從表3可以看出,本文模型在數據集WN18RR上獲得最好MR、MRR和最高Hit@10。具體分析如下:
1)與ConvKB模型相比,本文模型較MR提高5%,較Hit@10提高2.3%,而與ComplEx模型相比MRR提高4%。
2)TransE模型MR指標優于ConvE、ComplEx等模型,Hit@10指標優于ConvE、DistMult等模型。可見基準模型TransE在數據集WN18RR上具有很好的表示效果。
3)與其他模型相比,本文模型在數據集WN18RR上同樣具有更好的表示能力,也說明膠囊網絡用于知識圖譜補全性能更好。
在數據集FBI5K-237中,不同模型的鏈接預測性能比較如表4所示,其中,MRR和Hit@10最優參數設置為n=3,N=100,K=100,γ=0.000 1,d=10。

表4 數據集FBI5K-237上的鏈接預測性能比較Table 4 Comparison of links prediction performance of various models on data set FBI5K-237
從表4可以看出,本文模型在FB15K-237數據集上獲得最好的MRR和最高的Hit@10。具體分析如下:
1)與ConvKB模型相比,本文模型較MRR提高11%,較Hit@10提高7.5%。
2)ConvE模型在MR指標上優于所有模型,MRR,較Hit@10指標上優于TransE、ComplEx等模型,可見ConvE模型在數據集FB15K-237上具有很好的表示效果。
3)與其他模型相比,本文模型在FBI5K-237數據集上具有更好的表示能力,也說明膠囊網絡可以用于大規模知識圖譜補全。
3.4.1 實驗設計
三元組分類即判斷一個給定三元組的正確性。引用文獻[9]提出的三元組分類任務,本文設置一個閾值(通過最大化驗證集上的分類準確度得到),對于任意給定的三元組,使用式(3)所示的評分函數計算得分,如果這個得分低于閾值,則三元組是正確的,否則為錯誤三元組。
3.4.2 實驗結果和分析
參照文獻[9],使用基準數據集FB15K進行三元組分類實驗。實驗環境為Window7 64位系統,CPU采用Intel Core i5-4200M@ 1.6 GHz,物理內存為8 GB。FB15K最優參數為:n=5,N=400,K=100,γ=0.000 1,d=10。實驗結果如表5所示。

表5 不同模型三元組分類實驗結果比較Table 5 Comparison of triad classification experimental results of different models %
從表5可以看出,本文模型在FB15K數據集上,較CTransR模型高出7個百分點,這說明在三元組分類任務上改進的膠囊網絡算法對于判定三元組正確性效果顯著,能夠應用于大規模知識圖譜補全。
本文針對知識圖譜補全問題,提出一種改進的膠囊網絡算法。以膠囊代替神經元建模實體和關系的表示,輸入三元組矩陣,輸出三元組真實得分,并利用該分數判定三元組正確性,將正確的三元組添加到知識圖譜,對知識圖譜進行補全。在三元組分類實驗中,該算法取得91.5%的準確率,優于對比的傳統嵌入模型;而在鏈接預測實驗中,其MR、MRR、Hit@10指標也都有明顯提高。本文算法可以對普通知識圖譜和領域知識圖譜進行補全,同時也可應用于個性化搜索,通過建模三元組(查詢,用戶,文檔)捕獲用戶對查詢文檔感興趣的程度,由此返回文檔的排名。為提高鏈接預測和三元組分類準確率,下一步將嘗試修改第2層膠囊網絡框架,采用效率更高的算法代替路由操作,以取得更小維度的膠囊,并且將把實體和關系的描述文本作為算法輸入融入膠囊網絡。