陳 凌,火明剛,2,陶雪嬌,朱長(zhǎng)娥
(1. 重慶工程學(xué)院軟件與人工智能學(xué)院,重慶 400056;2. 蘭州交通大學(xué)數(shù)理學(xué)院,甘肅 蘭州 730000)
現(xiàn)代網(wǎng)絡(luò)用戶信息需求不斷提高的背景下信息搜索系統(tǒng)和查詢系統(tǒng)得到了飛速的發(fā)展和普及[1],目前數(shù)據(jù)庫(kù)存在一些問(wèn)題,主要體現(xiàn)兩方面:一是圖的語(yǔ)義表達(dá)能力較強(qiáng),目前關(guān)系型數(shù)據(jù)局部處理圖數(shù)據(jù)的能力較差,都是根據(jù)表結(jié)構(gòu)數(shù)據(jù)對(duì)圖結(jié)構(gòu)數(shù)據(jù)的屬性和關(guān)系之間的關(guān)聯(lián)關(guān)系展開(kāi)計(jì)算,存在空間開(kāi)銷(xiāo)大和計(jì)算時(shí)間長(zhǎng)的問(wèn)題。二是關(guān)系型數(shù)據(jù)庫(kù)中存在海量的數(shù)據(jù),查詢某類(lèi)數(shù)據(jù)所用的時(shí)間較長(zhǎng),速度慢[2]。因此研究知識(shí)圖譜關(guān)聯(lián)查詢算法具有重要意義。
針對(duì)此問(wèn)題,該領(lǐng)域的學(xué)者得到了一些較好的研究成果,例如:陳清泓等人[3]提出了一種基于分離式表征的知識(shí)圖譜推薦算法。通過(guò)分離式表征方式表示用戶和物品信息,采用圖神經(jīng)網(wǎng)絡(luò)分離式表征知識(shí)圖譜中的數(shù)據(jù),并將注意力機(jī)制和門(mén)控單元設(shè)置在圖神經(jīng)網(wǎng)絡(luò)中,計(jì)算數(shù)據(jù)在知識(shí)圖譜中的重要性,根據(jù)計(jì)算結(jié)果實(shí)現(xiàn)信息查詢和數(shù)據(jù)挖掘,但是該算法在實(shí)際應(yīng)用中,查詢到的關(guān)聯(lián)關(guān)系仍不夠全面,存在召回率低的問(wèn)題。王紅等人[4]提出了基于Att_GCN模型的知識(shí)圖譜推理算法,通過(guò)計(jì)算知識(shí)圖譜中實(shí)體之間存在的相關(guān)性,以此為依據(jù)構(gòu)建特征向量,將其輸入圖卷積神經(jīng)網(wǎng)絡(luò)中,完成知識(shí)圖譜關(guān)聯(lián)查詢。但是該算法忽略了對(duì)知識(shí)圖譜的補(bǔ)全,導(dǎo)致無(wú)法對(duì)實(shí)體文本量化分析。
為了解決上述算法中存在的問(wèn)題,提出改進(jìn)貝葉斯框架的知識(shí)圖譜關(guān)聯(lián)查詢算法。通過(guò)補(bǔ)全知識(shí)圖譜,優(yōu)化貝葉斯推理框架,挖掘知識(shí)圖譜中的數(shù)據(jù)集,并計(jì)算知識(shí)圖譜關(guān)系和屬性的關(guān)聯(lián)度,根據(jù)排序查詢結(jié)果,完成知識(shí)圖譜的關(guān)聯(lián)查詢。
用KG=(E,R,T)表示知識(shí)圖譜,其中集合T由知識(shí)三元組(h,r,t)構(gòu)成;集合R由關(guān)系構(gòu)成;集合E由實(shí)體構(gòu)成。設(shè)hs、hd為通過(guò)訓(xùn)練結(jié)構(gòu)和得到的頭實(shí)體,ts、td為訓(xùn)練文本得到的尾實(shí)體。所提算法在連續(xù)向量空間中通過(guò)聯(lián)合學(xué)習(xí)算法[5-6]對(duì)頭實(shí)體和尾實(shí)體展開(kāi)映射處理。設(shè)置損失函數(shù)R,其表達(dá)式如下:
R=Rs+βRd+χ‖?‖2
(1)
式中,‖?‖2代表正則項(xiàng),其權(quán)重通過(guò)超參數(shù)χ得以衡量;Rd為文本表示在訓(xùn)練過(guò)程中對(duì)應(yīng)的損失函數(shù),其權(quán)重通過(guò)超參數(shù)χ衡量,β代表訓(xùn)練文本參數(shù);Rs為結(jié)構(gòu)表示在訓(xùn)練過(guò)程中對(duì)應(yīng)的損失函數(shù)。
采用三元組數(shù)據(jù)對(duì)損失函數(shù)Rs展開(kāi)訓(xùn)練,即分別利用不同的低秩矩陣Zr、Tr映射處理h、t:
(2)
通過(guò)深度卷積神經(jīng)網(wǎng)絡(luò)[7-8]編碼實(shí)體的描述文本,獲得Rd:
Rd=gr(hs,td)+gr(hd,ts)+gr(hd,td)
(3)
式中,gr(hd,ts)為文本表示;gr(hd,td)為結(jié)構(gòu)表示。在相同向量空間中映射處理上述類(lèi)型的實(shí)體,獲得兩者之間的互相影響關(guān)系。
在深度卷積神經(jīng)網(wǎng)絡(luò)的預(yù)處理階段,刪除實(shí)體描述文本中存在的停用詞,拼接剩余實(shí)體,在word2vec的基礎(chǔ)上訓(xùn)練文本,獲得詞向量。
(4)
(5)
(6)
(7)
式中,q代表輸入向量的數(shù)量。
用參數(shù)集φ=(C,E(1),E(2),R,T)表示知識(shí)關(guān)聯(lián)圖譜補(bǔ)全模型,其中C代表單詞向量表示;E(1)、E(2)為不同的卷積核;R為實(shí)體向量表示;T為關(guān)系向量表示。
知識(shí)關(guān)聯(lián)圖譜補(bǔ)全模型的訓(xùn)練目標(biāo)是使損失函數(shù)最小化:
(8)
式中,Y′代表Y的負(fù)樣本集;η為間隔超參數(shù),該值大于零。利用上述模型補(bǔ)全知識(shí)圖譜,提高知識(shí)圖譜關(guān)聯(lián)查詢的完整性。
在補(bǔ)全知識(shí)圖譜的基礎(chǔ)上,將貝葉斯網(wǎng)絡(luò)[9-10]作為推理框架,量化實(shí)體在知識(shí)圖譜中的關(guān)聯(lián)關(guān)系。
1)獲取知識(shí)圖譜的核心子圖
采用分支界限算法[11-12]獲取核心子圖,在知識(shí)圖譜Gd中提取實(shí)體的最優(yōu)結(jié)構(gòu),根據(jù)圖結(jié)構(gòu)中實(shí)體bi的重要程度value(bi)縮減Gd的實(shí)體范圍,獲得核心子圖。
用W表示所有實(shí)體在Gd中的重要程度的總和,分別用Mmax、Mmin表示最多和最少選取的實(shí)體數(shù)量,W′為最少要選的實(shí)體重要程度的總和,采用分支界限算法構(gòu)建獲取核心子圖的目標(biāo)函數(shù):
(9)
式中,當(dāng)參數(shù)DWi的值為0時(shí),表明實(shí)體沒(méi)被選上,當(dāng)參數(shù)DWi的值為1時(shí),表明實(shí)體被選上;scoremax(Gd)表示重要程度value(bi)總和最大的子圖。
2)有向無(wú)環(huán)圖的構(gòu)建
在知識(shí)圖譜核心子圖的基礎(chǔ)上獲得各實(shí)體在知識(shí)圖譜中的鏈接關(guān)系,若屬性不同的實(shí)體在核心子圖中存在可達(dá)路徑,表明對(duì)應(yīng)的節(jié)點(diǎn)變量在貝葉斯網(wǎng)絡(luò)中存在邊。將實(shí)體bi的重要程度value(bi)作為依據(jù),當(dāng)M(Xi)>M(Xj)時(shí),表明邊在貝葉斯網(wǎng)絡(luò)中由Xi指向Xj,其中M(Xi)可通過(guò)下式計(jì)算得到:
M(Xi)=∑value(bi)
(10)
利用上式計(jì)算結(jié)果確定節(jié)點(diǎn)變量在貝葉斯網(wǎng)絡(luò)中的鏈接關(guān)系,并通過(guò)鄰接矩陣存儲(chǔ)上述鏈接關(guān)系,廣度優(yōu)先搜索其中的節(jié)點(diǎn),當(dāng)節(jié)點(diǎn)在貝葉斯網(wǎng)絡(luò)中被訪問(wèn)一次以上,表明該路徑存在回路,因此將該節(jié)點(diǎn)與網(wǎng)絡(luò)中上一個(gè)節(jié)點(diǎn)的鄰接值設(shè)置為0,通過(guò)上述過(guò)程最終獲得的鄰接矩陣,即為目標(biāo)有向無(wú)環(huán)圖[13-14]。
3)數(shù)據(jù)集抽取與節(jié)點(diǎn)條件概率表計(jì)算
在知識(shí)圖譜三元組中抽取變量,以此建立數(shù)據(jù)集F,計(jì)算貝葉斯網(wǎng)絡(luò)的節(jié)點(diǎn)條件概率表。
3)重復(fù)上述過(guò)程,當(dāng)核心實(shí)體I都遍歷完畢后完成知識(shí)圖譜數(shù)據(jù)集的抽取。
1)實(shí)體關(guān)系查詢
設(shè)定過(guò)濾閾值,如果上述抽取的知識(shí)圖譜數(shù)據(jù)集中的關(guān)系關(guān)聯(lián)度大于過(guò)濾閾值,將其作為備選的關(guān)聯(lián)關(guān)系。
用a表示知識(shí)圖譜數(shù)據(jù)集中存在的節(jié)點(diǎn),用h表示待查詢的節(jié)點(diǎn),兩個(gè)節(jié)點(diǎn)中存在的關(guān)系分別構(gòu)成集合Tq和集合Tg,用Tq1、Tq2、Tq3,Tg1、Tg2、Tg3分別表示上述集合中存在的關(guān)聯(lián)關(guān)系,設(shè)Scorerel(a,h)代表a、h的關(guān)聯(lián)相似度得分,可通過(guò)下式計(jì)算得到:
(11)
式中,wi代表計(jì)算權(quán)重。
設(shè)置過(guò)濾閾值Ydynamic,其表達(dá)式如下:
Ydynamic(n)=(2-e-n)
(12)
式中,n代表節(jié)點(diǎn)數(shù)量。
通過(guò)下述公式過(guò)濾知識(shí)圖譜數(shù)據(jù)集中的關(guān)聯(lián)關(guān)系,獲得候選關(guān)聯(lián)關(guān)系:
Scorerel(a,h)>Ydynamic(n)
(13)
2)實(shí)體屬性查詢
根據(jù)實(shí)體關(guān)系查詢結(jié)果在知識(shí)圖譜中展開(kāi)實(shí)體屬性查詢[15]。
(14)
(15)
結(jié)合上述計(jì)算結(jié)果,獲得知識(shí)圖譜數(shù)據(jù)集實(shí)體關(guān)系的總標(biāo)簽關(guān)聯(lián)度Scorelabel(a,h):
Scorelabel(a,h)=Scorenum(a,h)
+Scoredate(a,h)+Scorestring(a,h)
(16)
根據(jù)關(guān)系查詢和本體查詢的關(guān)聯(lián)相似度,排序知識(shí)圖譜數(shù)據(jù)集中所有節(jié)點(diǎn)的總得分Scoretotal:
Scoretotal=βScoretel+χScorelabel
(17)
選取關(guān)聯(lián)度得分最高的數(shù)據(jù)作為知識(shí)圖譜關(guān)聯(lián)查詢的結(jié)果,完成知識(shí)圖譜關(guān)聯(lián)查詢。
為了驗(yàn)證改進(jìn)貝葉斯框架的知識(shí)圖譜關(guān)聯(lián)查詢算法(所提算法)的整體有效性,現(xiàn)采用所提算法、分離式表征的知識(shí)圖譜關(guān)聯(lián)查詢算法和Att_GCN模型的知識(shí)圖譜關(guān)聯(lián)查詢算法展開(kāi)對(duì)比測(cè)試,圖1中的實(shí)心圓區(qū)域代表不同類(lèi)別的關(guān)聯(lián)關(guān)系,空心圓形區(qū)域?yàn)槁┑舻闹R(shí)圖譜的信息點(diǎn)。不同算法的查詢結(jié)果如圖1所示。
圖1 不同算法的知識(shí)圖譜查詢完整性對(duì)比
分析圖1可知,分離式表征的知識(shí)圖譜關(guān)聯(lián)查詢算法和Att_GCN模型的知識(shí)圖譜關(guān)聯(lián)查詢算法查詢的關(guān)聯(lián)關(guān)系出現(xiàn)了明顯漏洞,本次測(cè)試結(jié)果表明所提算法可有效的完成知識(shí)圖譜的關(guān)聯(lián)查詢。
為了進(jìn)一步評(píng)價(jià)幾種算法的知識(shí)圖譜查詢性能,實(shí)驗(yàn)結(jié)果如圖2所示?,F(xiàn)引入F1分?jǐn)?shù)、召回率R和準(zhǔn)確率P作為評(píng)價(jià)指標(biāo),其計(jì)算公式分別如下:
圖2 不同算法的查詢性能對(duì)比測(cè)試
(18)
式中,TP代表正確查詢到的關(guān)聯(lián)關(guān)系數(shù)量;FN代表查詢過(guò)程中漏掉的關(guān)聯(lián)關(guān)系數(shù)量;FP代表錯(cuò)誤查詢到的關(guān)聯(lián)關(guān)系數(shù)量。
由圖2可知,在測(cè)試過(guò)程中,所提算法的F1分?jǐn)?shù)高于0.8,且準(zhǔn)確率和召回率最大值保持在0.9以上,均高于其它兩種算法,表明在知識(shí)圖譜關(guān)聯(lián)查詢領(lǐng)域中,所提算法具有良好的查詢性能。
針對(duì)目前查詢算法存在的不足,提出改進(jìn)貝葉斯框架的知識(shí)圖譜關(guān)聯(lián)查詢算法,通過(guò)對(duì)知識(shí)圖譜的補(bǔ)全提高查詢結(jié)果的召回率?;诖?查詢知識(shí)圖譜的數(shù)據(jù)集,在此基礎(chǔ)上挖掘關(guān)聯(lián)關(guān)系,為知識(shí)圖譜技術(shù)的發(fā)展奠定了基礎(chǔ)。