王維美 陳 恒,2 史一民 李冠宇*
1(大連海事大學信息科學技術(shù)學院 遼寧 大連 116026)2(大連外國語大學軟件學院 遼寧 大連 116044)
知識圖譜(Knowledge graph,KG)是種新型知識表示方法,其概念最早由谷歌公司提出,Google認為“things,not strings”,即對于搜索引擎來講,世界中的各種物體不應(yīng)該僅僅是string,而是具有實際含義的thing[1]。KG提供圖結(jié)構(gòu)化信息,成為智能問答、Web搜索、推薦系統(tǒng)和專家系統(tǒng)等智能應(yīng)用程序的關(guān)鍵資源。隨著知識圖譜的興起,出現(xiàn)了很多大型知識圖譜,如Freebase、DBpedia,但這些知識圖譜并不完備,知識圖譜中實體間隱含的關(guān)系沒有被充分挖掘,補全三元組成為亟需解決的問題。近幾年,很多工作利用卷積神經(jīng)網(wǎng)絡(luò)表示知識圖譜中實體和關(guān)系,并進行知識圖譜補全,從而完善知識圖譜。
知識圖譜是一種描述真實世界客觀存在的實體、概念及它們之間關(guān)聯(lián)關(guān)系的語義網(wǎng)絡(luò)[2],是結(jié)構(gòu)化的語義知識庫[3],其中實體使用節(jié)點代替,關(guān)系用邊表示,表示形式為三元組(h,r,t),即(頭實體,關(guān)系,尾實體)。隨著知識圖譜規(guī)模越來越大,三元組數(shù)據(jù)稀疏問題愈加嚴重。知識圖譜的表示學習技術(shù)將三元組中實體和關(guān)系表示成向量,在低維向量空間計算實體和關(guān)系的語義聯(lián)系,解決獨熱學習維度過高和無法有效表示兩個實體的問題。知識圖譜表示學習面向知識圖譜的實體和關(guān)系進行學習,該技術(shù)可以有效緩解數(shù)據(jù)稀疏問題,使知識圖譜更加完備。
目前一些知識表示學習算法不能有效解決知識圖譜存在的數(shù)據(jù)稀疏問題,如早期的TransE嵌入模型在處理復(fù)雜關(guān)系上性能降低。對此,本文提出一種基于CNN(卷積神經(jīng)網(wǎng)絡(luò))的知識圖譜補全方法。卷積神經(jīng)網(wǎng)絡(luò)為計算機視覺而設(shè)計,在自然語言處理領(lǐng)域受到很大關(guān)注[4],在某些任務(wù)(如分塊、詞性標簽、命名實體識別和關(guān)系分類)上取得了不錯效果[5]。與全連接神經(jīng)網(wǎng)絡(luò)相比,卷積神經(jīng)網(wǎng)絡(luò)學習非線性特征可以捕獲復(fù)雜關(guān)系,且參數(shù)數(shù)量明顯減少[6]。基于CNN的優(yōu)點,使用其進行知識圖譜補全的優(yōu)點在于:(1) 充分考慮到上下文信息和詞序,能夠?qū)W習實體和關(guān)系的嵌入向量間的深層聯(lián)系[6];(2) 所需參數(shù)較少,計算復(fù)雜度低,能夠適用大規(guī)模知識圖譜補全。本文方法使用改進的卷積神經(jīng)網(wǎng)絡(luò)對三元組(h,r,t)的嵌入矩陣(h,r,t)進行操作,將三元組矩陣和不同的卷積核進行卷積,把卷積得到的特征圖進行連接,將特征圖和權(quán)重向量作點積運算,用點乘的分數(shù)判斷三元組正確與否。分數(shù)越趨近于0,代表三元組越正確,其中正確三元組分數(shù)低于錯誤三元組分數(shù)。
本文使用從Freebase和WordNet抽取的數(shù)據(jù)集,進行知識圖譜補全相關(guān)的鏈接預(yù)測和三元組分類實驗。實驗結(jié)果表明,本文方法擁有更好的預(yù)測精度,補全效果更好。
典型的嵌入模型有TransE[7]、TransH[8]、TransR[9]、TransD[10]等嵌入模型。這些嵌入模型將實體和關(guān)系投影到連續(xù)的低維向量空間中,即圖1中將三元組(h,r,t)投影到低維嵌入空間Rk中,生成(h,r,t)的過程。TransE模型將知識圖譜的關(guān)系看作是頭實體到尾實體的一種平移。給定一個三元組(Beijing,cityOf,China),TransE將關(guān)系向量r作為頭實體向量h和尾實體向量t之間的一種平移[11],即h+r≈t,這也表明在嵌入空間中t應(yīng)該是h+r最近的鄰居[12]。
圖1 實體和關(guān)系的低維嵌入
TransE模型只適用一對一關(guān)系,在處理復(fù)雜關(guān)系類型1-N、N-1、N-N上模型性能顯著降低。例如,給定兩個三元組(The Terminator,_directed_by,James Cameron)、(Aliens,_ditrected_by,James Cameron),為得到頭實體The Terminator和Aliens的向量,使用打分函數(shù)h+r≈t進行計算,得到兩個相同向量。實體不同,向量就不同,TransE不能有效解決此問題。為了彌補這個缺陷,出現(xiàn)了TransH、TransR等模型。TransR模型對一個給定關(guān)系r,定義關(guān)系的投影矩陣Mr,將實體從實體空間投影到關(guān)系r的子空間,利用打分函數(shù)h+r≈t計算每個三元組的得分。TransR通過將實體和關(guān)系投影到不同的空間,解決了實體和關(guān)系屬于不同對象時,不能用同一個空間表示的問題。基于TransR這種特性,本文用TransR對數(shù)據(jù)集中所有三元組進行訓練,將得到的向量作為本文算法的輸入,使得每個三元組輸入時擁有一定的語義信息。
上述嵌入模型僅表達了三元組結(jié)構(gòu)信息,沒有利用實體或關(guān)系的描述文本。文獻[13]提出了一種張量神經(jīng)網(wǎng)絡(luò)(NTN),用實體名稱所有詞向量平均值表示該實體,讓具有類似名稱的實體能夠共享文本信息。DKRL[14]使用連續(xù)詞袋(CBOW)以及卷積神經(jīng)網(wǎng)絡(luò)(CNN)兩種表示學習方法來建立實體描述文本的語義向量。OOKB[15]模型是一種基于圖神經(jīng)網(wǎng)絡(luò)(Graph-NNs)的模型,將圖譜中頭實體和尾實體向量進行組合,形成最終向量。此外,模型DisMult[16]和ComplEx[17]使用向量點乘計算三元組得分,利用打分函數(shù)判定其正確性。
和鏈接預(yù)測模型DisMult相比,ConvE[18]模型參數(shù)少,計算復(fù)雜度低,可以高效訓練三元組,獲取實體和關(guān)系的向量嵌入,同時學習三元組更多的特征表示。ConvE作為使用CNN來補全知識圖譜的模型,將頭實體和關(guān)系向量重組,組合成矩陣作為CNN卷積層的輸入,使用不同的卷積核進行卷積,輸出多個特征圖,將這些特征圖矢量化,映射成一個向量,此向量和尾實體作點積運算得到三元組分數(shù),利用得分判斷三元組的正確性。ConvE模型打分函數(shù)見表1。ConvE將頭實體和關(guān)系作為輸入矩陣,忽略了三元組的全局特征。為了使用三元組的全局特征,文獻[6]提出了ConvKB模型,該模型將三元組(頭實體,關(guān)系,尾實體)矩陣作為輸入,捕獲三元組全局特征,利用不同的卷積核進行卷積,通過打分函數(shù)得到每個三元組的得分,作為判斷三元組正確的依據(jù)。從上述兩個模型可以看出,卷積神經(jīng)網(wǎng)絡(luò)可以提取三元組中實體和關(guān)系的特征,然后和不同的卷積核進行卷積,得到相應(yīng)的特征圖,將特征圖進行連接得到三元組的整體特征。文獻[6]提出使用CNN對三元組進行編碼,但只融合進了TransE,沒做進一步探索。為充分考慮三元組的結(jié)構(gòu)信息和特征表示,本文使用TransR訓練出的三元組矩陣作為本文算法的輸入,解決TransE模型不能建模復(fù)雜關(guān)系的缺陷,同時使用不同的卷積核進行卷積。本文對卷積核形狀做了一定修改,同時設(shè)置不同的步長數(shù)對輸入矩陣作卷積運算,對輸入的三元組盡可能捕獲更多的特征,獲取三元組的全局表示特征。以上模型的打分函數(shù)如表1所示。
表1 相關(guān)模型的打分函數(shù)
使用TransR模型訓練出的三元組矩陣作為本文算法的輸入,并在TransR模型算法的基礎(chǔ)上完善了基于卷積神經(jīng)網(wǎng)絡(luò)的算法。給定一個三元組(h,r,t)∈T,h,r∈E,r∈R,即KG=(E,R,T),E為實體集,R是關(guān)系集,T是訓練集,每個實體和關(guān)系的嵌入維度為N。本文算法如下:
輸入:訓練集T=(h,r,t),實體集E,關(guān)系集R,正則項權(quán)重λ,嵌入層維度N。
初始化:
Loop:
Tbatch←sample(T,b)
//sample a minibatch ofb
Tbatch←?
for(h,r,t)∈Tbatchdo
Tbatch←Tbatch∪{((h,r,t), (h′,r′,t′))}
endfor
更新嵌入層
Input←[h,r,t]
//輸入矩陣
計算concat(g([h,r,t]*Ω))·w
更新?lián)p失函數(shù)
//θ=±1
EndLoop
本文算法框架圖如圖2所示。使用(h,r,t)表示每個三元組(h,r,t)相應(yīng)的嵌入矩陣,令M=[h,r,t]∈RN×3,Mi,:∈R2×3表示矩陣的每一行,和不同的卷積核進行卷積。ω是一個2×3的卷積核,和M的每兩行重復(fù)卷積,得到一個個特征圖,連接所有特征圖得到的列向量如式(1)所示。
圖2 算法框架
v=[g(ω·M1,:+b),g(ω·M2,:+b),…,
g(ω·Mk,:+b)]∈RN
(1)
列向量和權(quán)重向量作點積運算,得到的分數(shù)作為判斷三元組是否正確的依據(jù)。本文采用不同卷積核進行操作,形狀為2×3,步長為{1,2,3},令步長為1,卷積核數(shù)量|ω|=m,會產(chǎn)生m個不同的特征圖,m個不同特征圖進行連接得到一個列向量v∈Rm(N-1),然后和一個權(quán)重向量w∈Rm(N-1)作點乘。其中,打分函數(shù)越小代表三元組越正確,打分函數(shù)如下:
f(h,t)=concat(g([h,r,t]*Ω))·w
(2)
式中:Ω和w分別是卷積核集、權(quán)重,它們都是超參數(shù);g代表激活函數(shù),本文比較了ReLU和Sigmoid兩個激活函數(shù),實驗結(jié)果表明,ReLU卷積效果更好;*代表卷積操作;concat表示連接操作;[h,r,t]表示算法的輸入矩陣,此矩陣由本文改進后的TransR模型進行訓練得到。最小化損失函數(shù)作為最終的訓練目標,損失函數(shù)如下:
(3)
T′={(h,r,t)|h′∈E}∪{(h,r,t)|t′∈E}
(4)
即將正確三元組的頭實體和尾實體分別用數(shù)據(jù)集所有實體代替,正例三元組得分低于負例三元組得分。本文使用Adam[20]最小化如式(3)所示的損失函數(shù)。
本文使用從Freebase和WordNet中抽取的3個數(shù)據(jù)集:FB15k[7]、WN18RR[18]、FB15K-237[20]進行實驗。由文獻[20]可知,數(shù)據(jù)集WN18和FB15k包含一些反轉(zhuǎn)關(guān)系,這些反轉(zhuǎn)關(guān)系會使實驗結(jié)果顯著提高,為保證實驗結(jié)果的準確性,將數(shù)據(jù)集WN18和FB15k中具有反轉(zhuǎn)關(guān)系的三元組去掉,得到對應(yīng)數(shù)據(jù)集WN18RR和FB15K-237。
數(shù)據(jù)集FB15k包含1 345種關(guān)系,14 951個實體,592 213個三元組,訓練集、驗證集、測試集大致比率為9 ∶1 ∶1。
數(shù)據(jù)集FB15K-237包含237種關(guān)系,14 541個實體,310 116個三元組,訓練集、驗證集、測試集大致比率為14 ∶1 ∶1。
數(shù)據(jù)集WN18RR包含11種關(guān)系,40 943個實體,93 003個三元組,分為訓練集、驗證集、測試集3種,大致比率為28 ∶1 ∶1。
數(shù)據(jù)集統(tǒng)計情況如表2所示。
表2 數(shù)據(jù)集統(tǒng)計
本文使用改進后的TransR訓練出三元組矩陣來作為本文算法的輸入。使用超參數(shù)網(wǎng)格搜索訓練TransR 3 000次,最終超參數(shù)設(shè)置如下:數(shù)據(jù)集的嵌入維度N∈{50,100},SGD的學習速率λ1∈{0.1,0.01,0.001,0.000 1},間隔γ∈{1,2,3,4,5},歸一化采用L1或L2范數(shù)。
為了學習實體和關(guān)系的嵌入維度N、卷積核ω、權(quán)重w、偏置項b這些超參數(shù),本文使用Adam優(yōu)化器,其學習速率λ2∈{0.01,0.001,0.000 1,0.000 5,0.000 01,0.000 05}。卷積核ω的數(shù)值隨機初始化,卷積核數(shù)量m∈{100,150,200,300,400,600},損失函數(shù)的λ值設(shè)置為0.001,所有實驗進行500輪的迭代訓練。此外,為有效緩解過擬合,根據(jù)驗證集上的MRR評估指標,通過網(wǎng)格搜索選擇dropout值,其值為dropout∈{0.1,0.2,0.3,0.5}。
在經(jīng)過500次迭代訓練后,使用最后一次迭代訓練的輸出值作為測試集評估,不同數(shù)據(jù)集最優(yōu)Hit@10如下:在WN18RR上,Hit@10最優(yōu)設(shè)置為:N=50,m=600,λ2=0.000 5,dropout=0.5;在FBI5K-237上,Hit@10最優(yōu)設(shè)置為:N=100,m=100,λ2=0.000 01,dropout=0.3。
3.3.1實驗設(shè)計
鏈接預(yù)測即預(yù)測知識圖譜中三元組缺失的實體和實體間關(guān)系。例如:給定三元組(Michelle Obama,residence,?),其中:頭實體為Michelle Obama,關(guān)系為residence,尾實體缺失,為補全三元組,將American添加到該元組中,對其進行補全;或者(鄧超,?,孫儷),該三元組中缺失關(guān)系,為補全三元組,將夫妻(或配偶)關(guān)系添加進去進行補全。實驗采用文獻[7]的標準,對測試集中每個三元組(h,r,t),把頭實體、尾實體去掉,依次使用數(shù)據(jù)集所有實體替代,得到負例三元組,對新三元組使用打分函數(shù)計算相似性得分,相似度越高排名越靠前,這樣可以得到正確實體的真實排名。
3.3.2評估指標
本文選擇平均排名MR(MeanRank)、倒數(shù)平均排名MRR(Mean Reciprocal Rank)、進入前10名的比例(Hit@10)作為本文算法評估指標。三個指標中,MR越低、MRR越高、Hit@10越高,代表算法的效果越好,學習能力越強。數(shù)據(jù)集中可能存在一些錯誤三元組,采用文獻[7]的標準,把錯誤三元組從數(shù)據(jù)集中刪除,刪除后的設(shè)置為Filter,原來的為Raw。在數(shù)據(jù)集FB15K-237和WN18RR上,僅使用Filter設(shè)置。
3.3.3實驗結(jié)果和分析
采用相同實驗設(shè)置情況下,本文實驗環(huán)境為:Window 7 64位系統(tǒng),物理內(nèi)存為8 GB。數(shù)據(jù)集WN18RR和FB15K-237在不同模型下的鏈接預(yù)測結(jié)果如表3和表4所示。
表3 WN18RR在不同模型下鏈接預(yù)測結(jié)果
表4 FB15K-237在不同模型下鏈接預(yù)測結(jié)果
可以看出,本文方法在WN18RR和FB15K-237數(shù)據(jù)集上均獲得了最低的MR和最高的Hit@10。具體分析如下:(1) 本文方法與ConvKB模型相比,數(shù)據(jù)集WN18RR在MR上降低了4.2%,在Hit@10上提高了3.8;數(shù)據(jù)集FB15K-237在MR上降低了4.7%,在Hit@10上提高了2.8。(2) 在數(shù)據(jù)集WN18RR上,TransE模型的MR指標優(yōu)于ConvE、ComplEx等模型;TransE模型的Hit@10指標優(yōu)于ConvE、DISTMUL等模型??梢?,基準模型TransE在數(shù)據(jù)集WN18RR上具有很好的表示效果。(3) 和其他模型相比,本文方法具有更好的表示能力,也說明了改進的卷積神經(jīng)網(wǎng)絡(luò)用于知識圖譜補全具有更好的性能。
3.4.1實驗設(shè)計
三元組分類即判斷知識圖譜中三元組的正確性。引用文獻[9]提出的三元組分類,設(shè)置一個閾值,對于任意給定的三元組,使用式(2)所示的打分函數(shù)計算得分,如果這個得分低于閾值,則三元組是正確的,否則為錯誤。
3.4.2實驗結(jié)果和分析
參照文獻[9],本文使用基準數(shù)據(jù)集FB15K進行三元組分類實驗。實驗環(huán)境為Window 7 64位系統(tǒng),物理內(nèi)存為8 GB。FB15K最優(yōu)參數(shù)為N=100,m=300,λ2=0.000 05,dropout=0.1。實驗結(jié)果如表5所示。
表5 三元組分類實驗結(jié)果
可以看出:(1) 本文方法取得了90.5%的準確率,優(yōu)于DKRL模型,證明在三元組分類這個任務(wù)上本文方法效果更好。(2) 基于表示學習的嵌入模型效果都要好于NTN,說明將關(guān)系看作頭實體到尾實體的平移的嵌入模型更能表示知識圖譜中的數(shù)據(jù)和區(qū)分正確的三元組。
本文針對知識圖譜補全提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的方法,利用三元組全局信息,將三元組矩陣作為算法的輸入,和不同的卷積核進行卷積操作,得到不同的特征圖,將這些特征圖進行連接,得到的向量和權(quán)重作點積運算產(chǎn)生一個得分,分數(shù)越低三元組越正確。
(1) 三元組分類實驗結(jié)果表明,本文方法優(yōu)于一些傳統(tǒng)嵌入模型,在鏈接預(yù)測實驗中,在MR、MRR、Hit@10指標上有了明顯提高,從這三個指標可以看出本文方法解決了知識圖譜中數(shù)據(jù)稀疏問題,提高了知識圖譜的完備性。
(2) 本文方法可以對普通知識圖譜和領(lǐng)域性知識圖譜進行補全,同時也可以應(yīng)用到查詢系統(tǒng),比如建模三元組(查詢,用戶,文檔),通過查找三元組中缺失的實體或關(guān)系,將缺失的實體或關(guān)系以三元組的形式添加到數(shù)據(jù)庫中,從而對數(shù)據(jù)庫進行補全擴充。
另外,針對得到的實體或關(guān)系與已有實體關(guān)系存在不相容或沖突問題:使用本文方法判斷不同三元組得分,利用分數(shù)判斷三元組正確性;使用實體或關(guān)系對齊模型來判斷不同三元組的正確性,若三元組正確,則在知識圖譜中可以共存,比如:姚明亦指大姚(別名)。
為提高三元組補全正確率,今后的研究將嘗試修改卷積神經(jīng)網(wǎng)絡(luò)內(nèi)部架構(gòu),對三元組特征提取作更深入的研究;將實體和關(guān)系的描述文本融入到卷積神經(jīng)網(wǎng)絡(luò)中,作為算法的輸入。