王維美,史一民,李冠宇
(大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連 116026)
作為一種圖結(jié)構(gòu)化的知識(shí)庫(kù),知識(shí)圖譜以節(jié)點(diǎn)代表實(shí)體,以邊代表實(shí)體間關(guān)系[1],能夠提供有效的結(jié)構(gòu)化信息,是Web搜索、問(wèn)答和推薦系統(tǒng)等智能應(yīng)用程序所需要的關(guān)鍵資源。一個(gè)典型的知識(shí)圖譜通常將知識(shí)描述為多關(guān)系數(shù)據(jù)并表示為三元組(頭實(shí)體,關(guān)系,尾實(shí)體)的形式[2]。盡管知識(shí)圖譜在各領(lǐng)域有著重要應(yīng)用,但許多大型知識(shí)圖譜如Freebase、DBpedia等數(shù)據(jù)關(guān)系仍不完整,大量實(shí)體之間隱含的關(guān)系未被充分挖掘[3]。知識(shí)圖譜補(bǔ)全技術(shù)旨在發(fā)現(xiàn)三元組中的缺失鏈接,解決知識(shí)圖譜數(shù)據(jù)稀疏問(wèn)題,即預(yù)測(cè)缺失三元組是否正確[4-6],將正確三元組添加到知識(shí)圖譜進(jìn)行補(bǔ)全。目前,研究者提出許多嵌入模型用于學(xué)習(xí)實(shí)體和關(guān)系的矢量表示,如早期的TransE[7]、TransH[8]、TransR[9]模型,這些模型中正確三元組得分高于錯(cuò)誤三元組得分,從而能夠有效預(yù)測(cè)缺失三元組。
傳統(tǒng)嵌入模型如TransE、DistMult[10]和ComplEx[11]僅使用加減法或簡(jiǎn)單的乘法運(yùn)算符,只能捕獲實(shí)體間的線性關(guān)系。因此,目前很多研究將深度神經(jīng)網(wǎng)絡(luò)應(yīng)用于三元組預(yù)測(cè)問(wèn)題[12],如ConvKB和CapsNet模型。ConvKB模型[13]將三元組矩陣作為模型的輸入,與不同的卷積核進(jìn)行卷積,通過(guò)評(píng)分函數(shù)計(jì)算每個(gè)三元組的得分,判斷三元組正確與否。多數(shù)知識(shí)圖譜嵌入模型通過(guò)對(duì)三元組相同維度的特征進(jìn)行建模,在每個(gè)維度捕獲一些特定關(guān)系的實(shí)體屬性。然而,現(xiàn)有嵌入模型多未采用深度架構(gòu)對(duì)同一維度三元組的屬性進(jìn)行建模。CapsNet[14]模型引入膠囊概念,將膠囊定義為一組用向量表示一種特定類型實(shí)體的實(shí)例化參數(shù)的神經(jīng)元,它可以表示圖像中特定實(shí)體(或關(guān)系)的各種特征。該模型利用膠囊捕獲圖像中的實(shí)體,通過(guò)路由操作指定從上一層膠囊到下一層膠囊的連接,并提出利用膠囊網(wǎng)絡(luò)對(duì)三元組進(jìn)行補(bǔ)全操作。與分割特征映射構(gòu)造膠囊的傳統(tǒng)CapsNet模型不同,該模型使用膠囊對(duì)實(shí)體和關(guān)系在相同維度上的屬性進(jìn)行建模,捕獲實(shí)體和關(guān)系矢量表示。由于膠囊使用向量表示實(shí)體或關(guān)系,取代了以往單個(gè)神經(jīng)元數(shù)值的表示,從實(shí)體各個(gè)屬性(維度)進(jìn)行表示,表示能力更強(qiáng)。
本文提出一種改進(jìn)的膠囊網(wǎng)絡(luò)知識(shí)圖譜補(bǔ)全算法,解決CNN單層神經(jīng)元不足以表征實(shí)體和關(guān)系屬性等問(wèn)題。以膠囊代替每層神經(jīng)元表示實(shí)體和關(guān)系,輸入一個(gè)三元組,輸出連續(xù)矢量的值,并利用該值判定給定三元組的正確性,將正確的三元組添加到知識(shí)圖譜,對(duì)知識(shí)圖譜進(jìn)行補(bǔ)全,從而緩解數(shù)據(jù)稀疏問(wèn)題,使知識(shí)圖譜更完備。
圖1 實(shí)體和關(guān)系低維向量表示Fig.1 Low dimensional vector representation of entities and relationships
上述嵌入模型只關(guān)注三元組結(jié)構(gòu)信息,沒(méi)有考慮三元組同維度屬性,不能深層次挖掘?qū)嶓w和關(guān)系的特征。對(duì)此,文獻(xiàn)[18]提出基于CNN的知識(shí)圖譜嵌入模型ConvE,將頭實(shí)體和關(guān)系向量重組成矩陣作為卷積層的輸入,與不同形狀的卷積核進(jìn)行卷積生成多個(gè)特征圖,最終映射成向量和尾實(shí)體點(diǎn)積,得分用于判定三元組正確性。由于該模型將頭實(shí)體和關(guān)系重組作為卷積層輸入的過(guò)程中沒(méi)有考慮三元組結(jié)構(gòu)信息,忽略了三元組的全局特征,因此研究者提出ConvKB[12]模型,該模型將三元組矩陣[vh,vr,vt]作為輸入,捕獲三元組的全局特征,利用不同的卷積核進(jìn)行卷積,通過(guò)評(píng)分函數(shù)得到每個(gè)三元組的得分,作為判斷三元組正確的依據(jù)。
以上2個(gè)模型利用卷積神經(jīng)網(wǎng)絡(luò)深層次地提取實(shí)體和關(guān)系特征,捕獲復(fù)雜關(guān)系,適用于大規(guī)模知識(shí)圖譜補(bǔ)全。ConvKB使用CNN對(duì)知識(shí)圖譜中三元組信息進(jìn)行編碼,但輸入層和輸出層神經(jīng)元過(guò)于簡(jiǎn)單,難以表征實(shí)體和關(guān)系。受文獻(xiàn)[13]的啟發(fā),本文以一組膠囊代替神經(jīng)網(wǎng)絡(luò)每層神經(jīng)元,膠囊使用向量作為模型的輸入、輸出,從而準(zhǔn)確表征實(shí)體和關(guān)系。算法輸入一個(gè)三元組矩陣[vh,vr,vt],在CNN中卷積生成不同特征圖,連接特征圖得到多個(gè)膠囊(即一組神經(jīng)元的集合),通過(guò)路由操作生成一個(gè)連續(xù)向量,該向量和權(quán)重點(diǎn)積操作的分?jǐn)?shù)用于判定三元組正確性。利用改進(jìn)的膠囊網(wǎng)絡(luò)進(jìn)行知識(shí)圖譜補(bǔ)全任務(wù),可以有效提高知識(shí)圖譜補(bǔ)全準(zhǔn)確性。以上部分模型的評(píng)分函數(shù)如表1所示。
表1 相關(guān)模型評(píng)分函數(shù)Table 1 Scoring functions of correlation models
由于TransE模型參數(shù)少、計(jì)算復(fù)雜度低,因此訓(xùn)練三元組較為簡(jiǎn)單。本文將知識(shí)圖譜定義為KG=(E,R,T),其中,E是實(shí)體集合,R是關(guān)系集,T是所有數(shù)據(jù)集,包含訓(xùn)練集、測(cè)試集和驗(yàn)證集。實(shí)體和關(guān)系嵌入維度均為K。使用TransE得到實(shí)體和關(guān)系嵌入作為算法輸入。在TransE模型基礎(chǔ)上,改進(jìn)的膠囊網(wǎng)絡(luò)算法描述如下:
算法1膠囊網(wǎng)絡(luò)算法
輸入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] //輸入矩陣
更新?lián)p失函數(shù):
End Loop
本文算法的模型架構(gòu)如圖2所示。
圖2 本文算法的模型架構(gòu)Fig.2 Model architecture of the proposed algorithm
上文介紹了卷積層操作,下文使用膠囊層構(gòu)建改進(jìn)的膠囊網(wǎng)絡(luò)模型,以簡(jiǎn)化架構(gòu)。在第1層使用卷積得到的N個(gè)特征圖重構(gòu)成K個(gè)膠囊(V1~V6),所有特征圖同維度特征被封裝進(jìn)相應(yīng)膠囊。因此,每個(gè)膠囊可以捕獲嵌入三元組相應(yīng)維度不同特征,這些特征通過(guò)路由操作產(chǎn)生另一個(gè)較小維度的膠囊,然后生成一個(gè)連續(xù)矢量,該矢量和權(quán)重向量點(diǎn)乘,其值用作三元組的得分。在圖2中,嵌入維度K=6,濾波器的數(shù)量N=5,第1層膠囊內(nèi)神經(jīng)元數(shù)量等于N,第2層膠囊內(nèi)神經(jīng)元數(shù)量d=2。
(1)
(2)
其中,ci是耦合系數(shù),由路由操作確定。
參照文獻(xiàn)[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
形式上,定義三元組打分函數(shù),如式(3)所示:
(3)
其中,過(guò)濾器集Ω是卷積層共享參數(shù),*表示卷積運(yùn)算符,capsnet′表示膠囊網(wǎng)絡(luò)操作,g代表激活函數(shù),本文使用ReLU。將最小化以下的損失函數(shù)作為最終的訓(xùn)練目標(biāo),損失函數(shù)如式(4)所示:
(4)
(5)
負(fù)例三元組構(gòu)造方法如式(6)所示,即將正確三元組頭實(shí)體和尾實(shí)體分別用數(shù)據(jù)集所有實(shí)體代替。
T′={(h,r,t)|h′∈E}∪{(h,r,t)|t′∈E}
(6)
本文使用Adam[19]最小化如式(4)所示的損失函數(shù),使用ReLU作為算法激活函數(shù)。
本文實(shí)驗(yàn)使用從WordNet和Freebase抽取的數(shù)據(jù)集WN18RR[18]、FB15k[7]、FB15K-237[20]進(jìn)行實(shí)驗(yàn)。由文獻(xiàn)[20]可知,數(shù)據(jù)集FB15k包含一些反轉(zhuǎn)關(guān)系,這些反轉(zhuǎn)關(guān)系會(huì)使實(shí)驗(yàn)效果得到顯著改善,為保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,將數(shù)據(jù)集FB15k中具有反轉(zhuǎn)關(guān)系的三元組去掉,得到一個(gè)新數(shù)據(jù)集FB15K-237。同理,去掉數(shù)據(jù)集WN18所有反轉(zhuǎn)關(guān)系,得到WN18RR。3種數(shù)據(jù)集的統(tǒng)計(jì)情況如表2所示。
表2 數(shù)據(jù)集統(tǒng)計(jì)情況Table 2 Data sets statistics
利用TransE模型[7]和ConvKB模型[13]實(shí)現(xiàn)本文算法。使用TransE模型訓(xùn)練三元組,得到實(shí)體和關(guān)系最終嵌入,將三元組[vh,vr,vt]作為本文算法輸入。對(duì)于ConvKB模型,過(guò)濾器數(shù)量 |ω|=N∈{50,100,200,400},Adam初始化學(xué)習(xí)率γ∈{0.000 01,0.000 05,0.000 01,0.000 5},利用超參數(shù)網(wǎng)格搜索訓(xùn)練模型3 000次。每訓(xùn)練100次,監(jiān)測(cè)Hits@10得分,以選擇Hits@10最優(yōu)超參數(shù)。最優(yōu)超參數(shù)設(shè)置如下:在FBI5K-237上,Hit@10最優(yōu)設(shè)置為N=100,K=100,γ=0.000 01;在WN18RR上,Hit@10最優(yōu)設(shè)置為N=400,K=100,γ=0.000 05。
與文獻(xiàn)[13]類似,本文使用TransE訓(xùn)練生成的實(shí)體和關(guān)系嵌入初始化算法實(shí)體和關(guān)系嵌入,用于WN18RR、FB15k-237和FB15k,嵌入維度K=100。設(shè)置批處理大小batchsize為128,即每次訓(xùn)練128個(gè)三元組。第2個(gè)膠囊層中的膠囊內(nèi)神經(jīng)元數(shù)量設(shè)置為10(d=10);權(quán)重w最初由截?cái)嗪瘮?shù)初始化,最終由模型訓(xùn)練后確定。路由操作迭代次數(shù)n∈{1,3,5,7,9}。實(shí)驗(yàn)訓(xùn)練算法次數(shù)多達(dá)500次,平均每100次監(jiān)測(cè)Hit@10,以選擇最優(yōu)Hit@10超參數(shù):驗(yàn)證集上最優(yōu)Hit@10如下:在FBI5K-237上,最優(yōu)Hit@10為n=3,N=100,K=100,γ=0.000 1,d=10;在WN18RR上,最優(yōu)Hit@10為n=1,N=400,K=100,γ=0.000 01,d=10。
3.3.1 實(shí)驗(yàn)設(shè)計(jì)
鏈接預(yù)測(cè)是指預(yù)測(cè)知識(shí)圖譜缺失的三元組,即三元組中缺失的實(shí)體或關(guān)系。例如:給定三元組(Michelle Obama,residence,?),其中,頭實(shí)體為“Michelle Obama”,關(guān)系為“residence”,尾實(shí)體缺失,為補(bǔ)全三元組,將知識(shí)圖譜中正確尾實(shí)體添加到該元組中對(duì)其進(jìn)行補(bǔ)全操作。實(shí)驗(yàn)參照文獻(xiàn)[6,8]對(duì)測(cè)試集中每個(gè)三元組用所有實(shí)體替換頭實(shí)體或尾實(shí)體來(lái)創(chuàng)建一組負(fù)例三元組。對(duì)這組負(fù)例三元組使用評(píng)分函數(shù)計(jì)算它們的相似性得分,以此對(duì)其進(jìn)行排名,相似度越高排名越靠前,由此可以得到正確實(shí)體的真實(shí)排名。
3.3.2 評(píng)估指標(biāo)
本文選擇正確實(shí)體或關(guān)系的平均排名MR(MeanRank)、倒數(shù)平均排名MRR(Mean Reciprocal Rank)、前10名比例(Hit@10)作為評(píng)估指標(biāo)。在這3個(gè)指標(biāo)中,MR越低、MRR越高或者Hit@10越高,代表算法效果越好。本文采用文獻(xiàn)[7]的標(biāo)準(zhǔn),把知識(shí)圖譜中錯(cuò)誤三元組從訓(xùn)練集、驗(yàn)證集、測(cè)試集刪除,刪除后的設(shè)置稱為Filter,原來(lái)的稱為Raw。在數(shù)據(jù)集FB15K-237和WN18RR上,僅使用Filter設(shè)置,即不考慮負(fù)例三元組。
3.3.3 實(shí)驗(yàn)結(jié)果和分析
本文實(shí)驗(yàn)環(huán)境為:Window 7 64位系統(tǒng),CPU采用Intel Core i5-4200M@ 1.6 GHz,物理內(nèi)存為8 GB。數(shù)據(jù)集WN18RR在不同模型下鏈接預(yù)測(cè)性能比較如表3所示,其中,MRR和Hit@10最優(yōu)參數(shù)設(shè)置為n=1,N=400,K=100,γ=0.000 05,d=10。
表3 數(shù)據(jù)集WN18RR上各模型的鏈接預(yù)測(cè)性能比較Table 3 Comparison of links prediction performance of various models on data set WN18RR
從表3可以看出,本文模型在數(shù)據(jù)集WN18RR上獲得最好MR、MRR和最高Hit@10。具體分析如下:
1)與ConvKB模型相比,本文模型較MR提高5%,較Hit@10提高2.3%,而與ComplEx模型相比MRR提高4%。
2)TransE模型MR指標(biāo)優(yōu)于ConvE、ComplEx等模型,Hit@10指標(biāo)優(yōu)于ConvE、DistMult等模型??梢?jiàn)基準(zhǔn)模型TransE在數(shù)據(jù)集WN18RR上具有很好的表示效果。
3)與其他模型相比,本文模型在數(shù)據(jù)集WN18RR上同樣具有更好的表示能力,也說(shuō)明膠囊網(wǎng)絡(luò)用于知識(shí)圖譜補(bǔ)全性能更好。
在數(shù)據(jù)集FBI5K-237中,不同模型的鏈接預(yù)測(cè)性能比較如表4所示,其中,MRR和Hit@10最優(yōu)參數(shù)設(shè)置為n=3,N=100,K=100,γ=0.000 1,d=10。
表4 數(shù)據(jù)集FBI5K-237上的鏈接預(yù)測(cè)性能比較Table 4 Comparison of links prediction performance of various models on data set FBI5K-237
從表4可以看出,本文模型在FB15K-237數(shù)據(jù)集上獲得最好的MRR和最高的Hit@10。具體分析如下:
1)與ConvKB模型相比,本文模型較MRR提高11%,較Hit@10提高7.5%。
2)ConvE模型在MR指標(biāo)上優(yōu)于所有模型,MRR,較Hit@10指標(biāo)上優(yōu)于TransE、ComplEx等模型,可見(jiàn)ConvE模型在數(shù)據(jù)集FB15K-237上具有很好的表示效果。
3)與其他模型相比,本文模型在FBI5K-237數(shù)據(jù)集上具有更好的表示能力,也說(shuō)明膠囊網(wǎng)絡(luò)可以用于大規(guī)模知識(shí)圖譜補(bǔ)全。
3.4.1 實(shí)驗(yàn)設(shè)計(jì)
三元組分類即判斷一個(gè)給定三元組的正確性。引用文獻(xiàn)[9]提出的三元組分類任務(wù),本文設(shè)置一個(gè)閾值(通過(guò)最大化驗(yàn)證集上的分類準(zhǔn)確度得到),對(duì)于任意給定的三元組,使用式(3)所示的評(píng)分函數(shù)計(jì)算得分,如果這個(gè)得分低于閾值,則三元組是正確的,否則為錯(cuò)誤三元組。
3.4.2 實(shí)驗(yàn)結(jié)果和分析
參照文獻(xiàn)[9],使用基準(zhǔn)數(shù)據(jù)集FB15K進(jìn)行三元組分類實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為Window7 64位系統(tǒng),CPU采用Intel Core i5-4200M@ 1.6 GHz,物理內(nèi)存為8 GB。FB15K最優(yōu)參數(shù)為:n=5,N=400,K=100,γ=0.000 1,d=10。實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同模型三元組分類實(shí)驗(yàn)結(jié)果比較Table 5 Comparison of triad classification experimental results of different models %
從表5可以看出,本文模型在FB15K數(shù)據(jù)集上,較CTransR模型高出7個(gè)百分點(diǎn),這說(shuō)明在三元組分類任務(wù)上改進(jìn)的膠囊網(wǎng)絡(luò)算法對(duì)于判定三元組正確性效果顯著,能夠應(yīng)用于大規(guī)模知識(shí)圖譜補(bǔ)全。
本文針對(duì)知識(shí)圖譜補(bǔ)全問(wèn)題,提出一種改進(jìn)的膠囊網(wǎng)絡(luò)算法。以膠囊代替神經(jīng)元建模實(shí)體和關(guān)系的表示,輸入三元組矩陣,輸出三元組真實(shí)得分,并利用該分?jǐn)?shù)判定三元組正確性,將正確的三元組添加到知識(shí)圖譜,對(duì)知識(shí)圖譜進(jìn)行補(bǔ)全。在三元組分類實(shí)驗(yàn)中,該算法取得91.5%的準(zhǔn)確率,優(yōu)于對(duì)比的傳統(tǒng)嵌入模型;而在鏈接預(yù)測(cè)實(shí)驗(yàn)中,其MR、MRR、Hit@10指標(biāo)也都有明顯提高。本文算法可以對(duì)普通知識(shí)圖譜和領(lǐng)域知識(shí)圖譜進(jìn)行補(bǔ)全,同時(shí)也可應(yīng)用于個(gè)性化搜索,通過(guò)建模三元組(查詢,用戶,文檔)捕獲用戶對(duì)查詢文檔感興趣的程度,由此返回文檔的排名。為提高鏈接預(yù)測(cè)和三元組分類準(zhǔn)確率,下一步將嘗試修改第2層膠囊網(wǎng)絡(luò)框架,采用效率更高的算法代替路由操作,以取得更小維度的膠囊,并且將把實(shí)體和關(guān)系的描述文本作為算法輸入融入膠囊網(wǎng)絡(luò)。