唐廣謙,李 波
(重慶理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 重慶 400054)
知識(shí)圖譜是針對(duì)2個(gè)現(xiàn)實(shí)中的對(duì)象,用兩者的關(guān)系將其相連形成(對(duì)象A,關(guān)系R,對(duì)象B)的三元組。Freebase、WordNet等大規(guī)模知識(shí)圖譜可應(yīng)用于如知識(shí)問答、推薦系統(tǒng)和語義網(wǎng)絡(luò)等領(lǐng)域[1-2]。然而,大部分知識(shí)圖譜的構(gòu)建都存在著數(shù)據(jù)不完整和知識(shí)圖譜缺失[3]等問題,因此出現(xiàn)了越來越多對(duì)知識(shí)圖譜補(bǔ)全的研究。
知識(shí)圖譜補(bǔ)全一般指的是從一個(gè)現(xiàn)有知識(shí)圖譜的事實(shí)中推理出新的事實(shí),即通過預(yù)測(cè)知識(shí)圖譜中潛在的事實(shí)關(guān)系,添加新的三元組,從而提高知識(shí)圖譜的完整性和可靠性。 目前,學(xué)者們做了很多知識(shí)圖譜補(bǔ)全的研究,包括建立TransE、TransH和TransR等平移距離模型,語義匹配模型以及ConvKB、CapsE等神經(jīng)網(wǎng)絡(luò)模型。這些方法的主要目的是提高準(zhǔn)確率。有些三元組還需要通過人工規(guī)則構(gòu)建,會(huì)造成龐大的時(shí)間開銷,且模型建立時(shí)靜態(tài)固定了實(shí)體和關(guān)系,導(dǎo)致無法發(fā)現(xiàn)上下文中更多的語義信息,造成信息利用不夠充分。
注意力機(jī)制可以對(duì)不同數(shù)據(jù)的重要性進(jìn)行打分。要補(bǔ)充知識(shí)圖譜的關(guān)系事實(shí),需要針對(duì)某一個(gè)節(jié)點(diǎn)展開拓展工作,即針對(duì)這個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)是否存在不同的關(guān)系加以預(yù)測(cè),判斷該節(jié)點(diǎn)與其他節(jié)點(diǎn)在建立新三元組時(shí)的合理性。而引入注意力機(jī)制可以給出這個(gè)節(jié)點(diǎn)在與每個(gè)節(jié)點(diǎn)組成三元組時(shí),其各自的重要性得分,表征實(shí)體和關(guān)系的動(dòng)態(tài)屬性和扮演的多重角色,以提升補(bǔ)全的性能。因此,引入注意力機(jī)制后,模型可以得出實(shí)體和關(guān)系在不同語義下的重要程度,在不同的任務(wù)條件下,通過重要性和關(guān)注度來識(shí)別關(guān)系和實(shí)體承擔(dān)的不同角色信息。
本文中提出了動(dòng)態(tài)分配注意力得分的知識(shí)圖譜補(bǔ)全模型(dynamically allocate attention scores of KGC,DASKGC),能夠依據(jù)不同三元組的上下文獲得不同的注意力得分;提出了“鄰居信息交互編碼器”以及“路徑匹配處理”2個(gè)模塊分別對(duì)三元組中的實(shí)體和關(guān)系進(jìn)行預(yù)測(cè),利用從“鄰居信息交互編碼器”獲得的實(shí)體嵌入表達(dá),幫助識(shí)別最重要的關(guān)系路徑;在Nell-995、FB15K-237和DDB14數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并與其他經(jīng)典模型的結(jié)果進(jìn)行了對(duì)比,證明了所提出模型的有效性。
知識(shí)圖譜補(bǔ)全的主要方法有靜態(tài)知識(shí)圖譜補(bǔ)全和動(dòng)態(tài)知識(shí)圖譜補(bǔ)全。靜態(tài)知識(shí)圖譜補(bǔ)全主要有平移距離模型、語義匹配模型和神經(jīng)網(wǎng)絡(luò)模型3種。由于靜態(tài)知識(shí)圖譜補(bǔ)全中所有實(shí)體和關(guān)系是固定不變的,不能很好地適用于不斷變換的現(xiàn)實(shí)。因此,研究者們依據(jù)時(shí)間信息、文本信息和結(jié)構(gòu)信息構(gòu)建動(dòng)態(tài)知識(shí)圖譜。比較有代表性的模型是Convex、ConvKB和CapsE等模型,但這些動(dòng)態(tài)知識(shí)圖譜補(bǔ)全模型大都只處理三元組結(jié)構(gòu)化信息,對(duì)于引入的時(shí)間信息、文本信息或結(jié)構(gòu)信息,都有明顯的弱勢(shì),靜態(tài)補(bǔ)全方法和動(dòng)態(tài)補(bǔ)全方法均存在不足,或者說目前的研究具有局限性。為此,以發(fā)現(xiàn)挖掘各節(jié)點(diǎn)新的特征關(guān)系為出發(fā)點(diǎn),采用圖神經(jīng)網(wǎng)絡(luò)來處理三元組鄰域結(jié)構(gòu)信息[4],補(bǔ)全知識(shí)圖譜。
Xiong等[5]提出RESCAL模型,首次將小樣本學(xué)習(xí)問題引入到知識(shí)圖譜領(lǐng)域,并定義了一個(gè)全新的匹配網(wǎng)絡(luò)GMatching,模型在針對(duì)實(shí)體嵌入時(shí)將所有鄰居節(jié)點(diǎn)的貢獻(xiàn)度設(shè)為相同,通過LSTM進(jìn)行多步預(yù)測(cè)。 Zhang等[6]提出了一種更適合實(shí)際場(chǎng)景的FSRL模型,通過基于異質(zhì)圖和注意力機(jī)制的異質(zhì)鄰居編碼器來學(xué)習(xí)實(shí)體表征,并設(shè)計(jì)了循環(huán)自動(dòng)編碼器網(wǎng)絡(luò)來建立關(guān)系,最后通過匹配網(wǎng)絡(luò)建立三元組。Sheng等[7]提出能注意到節(jié)點(diǎn)在不同任務(wù)中存在不同表達(dá)的自適應(yīng)注意力網(wǎng)絡(luò)FAAN,針對(duì)“在不同任務(wù)中節(jié)點(diǎn)的作用會(huì)不一樣,關(guān)系也會(huì)存在不同含義”這一問題,提出了動(dòng)態(tài)特征的概念。Li等[8]提出了JSSKGE模型,通過統(tǒng)一的軟邏輯規(guī)則來學(xué)習(xí)實(shí)體的結(jié)構(gòu)特征,提拱了從實(shí)體周圍的結(jié)構(gòu)信息獲取實(shí)體的結(jié)構(gòu)特征的思路。王杰等[9]提出了AAKGC模型,該模型在獲取實(shí)體和關(guān)系的嵌入表示時(shí)引入了自適應(yīng)注意力機(jī)制,能獲取關(guān)系在邏輯上最為相符的角色信息。Li等[10]提出了ImpTransE模型,分別設(shè)計(jì)了 KGNodeRank方法和 MGRIE方法來計(jì)算實(shí)體重要性和關(guān)系重要性,對(duì)知識(shí)圖譜中隱藏的重要性信息進(jìn)行了較充分的挖掘。
上述研究一般對(duì)鄰居節(jié)點(diǎn)分配相同權(quán)重,或采取相同的注意力機(jī)制計(jì)算鄰居和關(guān)系,導(dǎo)致無法發(fā)現(xiàn)更為豐富實(shí)體的上下文關(guān)系,在補(bǔ)全的精度上不能達(dá)到很好的效果。本文中提出動(dòng)態(tài)分配注意力得分的知識(shí)圖譜補(bǔ)全模型,將對(duì)實(shí)體和關(guān)系的注意力得分進(jìn)行動(dòng)態(tài)分配,獲得實(shí)體和關(guān)系更為準(zhǔn)確的動(dòng)態(tài)表示,提高知識(shí)圖譜補(bǔ)全的準(zhǔn)確度。
知識(shí)圖譜由多組三元組構(gòu)成,其中有實(shí)體集合E={e1,e2,…,em}和關(guān)系集合R={r1,r2,…,rn},而三元組一般表示為T={(ei,rk,ej)|ei,ej∈E∧rk∈R},粗體的h、r、t分別表示頭實(shí)體h、關(guān)系r和尾實(shí)體t的嵌入表示向量,d為嵌入向量的維度。
模型的任務(wù)是要獲取每個(gè)實(shí)體的鄰域和路徑信息,即實(shí)體的上下文與路徑的嵌入表示,然后通過模型來預(yù)測(cè)現(xiàn)有知識(shí)圖譜中隱藏的信息。模型獲取實(shí)體的領(lǐng)域信息,就是獲取節(jié)點(diǎn)的鄰居節(jié)點(diǎn)信息,如三元組(TA,RA,HA)和三元組(TA,RB,HB)能獲取信息HA和HB都為TA的鄰居節(jié)點(diǎn)。獲取實(shí)體的路徑信息,就是獲取2個(gè)實(shí)體間所有的關(guān)系路徑,如通過三元組(TA,RA,HA)和三元組(HA,RB,HB)可以得出“TA→RA→RB→HB”關(guān)系長(zhǎng)度為2的路徑信息。
對(duì)于獲取鄰居節(jié)點(diǎn)信息,本文中采用基于GNN的消息傳遞機(jī)制,通過聚合每個(gè)節(jié)點(diǎn)的領(lǐng)域信息給出每個(gè)鄰居節(jié)點(diǎn)的消息向量。對(duì)于獲取實(shí)體的路徑信息,采用將多跳的關(guān)系路徑通過基于LSTM的注意力機(jī)制[11-12]得到的每個(gè)鄰域關(guān)系路徑的嵌入表示形式,再對(duì)每條關(guān)系嵌入路徑分配注意力得分,得出最優(yōu)路徑。
圖1是整個(gè)DASKGC模型的結(jié)構(gòu),包含2.2節(jié)的鄰居信息交互編碼器和2.3節(jié)的路徑的匹配處理2個(gè)主要的機(jī)制。真實(shí)三元組與鄰居信息三元組在經(jīng)過嵌入表示后,通過鄰居信息交互編碼器得到實(shí)體的上下文表示[13];將得到的實(shí)體上下文表示作為先驗(yàn)條件,多跳路徑信息經(jīng)過嵌入表示后通過路徑匹配處理機(jī)制得到關(guān)系路徑的嵌入;將實(shí)體上下文表示與關(guān)系路徑嵌入融合,通過損失函數(shù)計(jì)算其與真實(shí)關(guān)系的得分。
圖1 DASKGC模型結(jié)構(gòu)框圖
鄰居信息交互編碼器模塊設(shè)計(jì)的主要功能是獲取鄰居節(jié)點(diǎn)信息。鄰居信息交互編碼器的主要工作原理如圖2所示。該編碼器可以根據(jù)所需預(yù)測(cè)的關(guān)系來動(dòng)態(tài)調(diào)整節(jié)點(diǎn)鄰居的注意力得分,從而得到節(jié)點(diǎn)可能的不同角色。要獲取鄰居節(jié)點(diǎn)信息,則要關(guān)注與鄰居實(shí)體間存在的關(guān)系,所以用“關(guān)系r”來建模確定節(jié)點(diǎn)的信息。
圖2 鄰居信息交互編碼器的工作原理
首先,確定每個(gè)節(jié)點(diǎn)作為頭節(jié)點(diǎn)hn時(shí)與所有相鄰節(jié)點(diǎn)的關(guān)系rhn,然后確定需要預(yù)測(cè)的關(guān)系r。定義度量函數(shù)d,計(jì)算與節(jié)點(diǎn)hi相鄰節(jié)點(diǎn)的關(guān)系rj與需要預(yù)測(cè)的關(guān)系r之間的距離得分。
(1)
其中:W∈Rd×d;b∈Rd為權(quán)重矩陣和偏置參數(shù);rj為第n個(gè)節(jié)點(diǎn)hn的第j個(gè)相鄰節(jié)點(diǎn)的關(guān)系rj的嵌入表示;r為需要預(yù)測(cè)的關(guān)系r的嵌入表示。通過式(1)可知,由d得到的結(jié)果越高,則相鄰節(jié)點(diǎn)的關(guān)系rj與需預(yù)測(cè)的關(guān)系r的相關(guān)性越高。
在得到d的得分后,編碼器將得分最高的rj與r賦予高得注意力得分α,表示為
(2)
其中:αrj表示第j個(gè)關(guān)系rj(當(dāng)前實(shí)體的相鄰節(jié)點(diǎn)的第j個(gè)關(guān)系)針對(duì)當(dāng)前預(yù)測(cè)任務(wù)的注意力得分;Rhn表示第n個(gè)實(shí)體節(jié)點(diǎn)h的相鄰關(guān)系集合;e為自然常數(shù)。得分α越高,則越能得到更為重要的鄰居實(shí)體tn。
為了提升實(shí)體嵌入的表達(dá)效果,在鄰居信息交互編碼器中定義一個(gè)消息傳遞函數(shù)機(jī)制,其作用是在k次迭代中聚合鄰居節(jié)點(diǎn)特征、更新當(dāng)前節(jié)點(diǎn)的表示和讀出聚合表示。首先,獲取得到的各高得分α的tn與hn,通過式(3)得出在第k次迭代中的tn與hn的嵌入表示tn與hn
(3)
(4)
(5)
其中:Z(hn,tn)為agg聚合函數(shù);W和b為參數(shù)矩陣和偏置。
上述過程中,鄰居信息交互編碼器模塊通過不同關(guān)系來預(yù)測(cè)對(duì)應(yīng)的實(shí)體角色,用消息聚合函數(shù)作為實(shí)體節(jié)點(diǎn)的領(lǐng)域節(jié)點(diǎn)動(dòng)態(tài)賦予注意力得分,從而得到關(guān)系實(shí)體最為準(zhǔn)確的上下文信息。
當(dāng)鄰居信息交互編碼器給出了Z(h,t)后,則進(jìn)行路徑的匹配處理,對(duì)于最相關(guān)的路徑,路徑匹配處理的工作原理如圖3所示。
圖3 路徑匹配處理的工作原理
首先,從2.2節(jié)可知,從一個(gè)實(shí)體到另一個(gè)實(shí)體可以通過多個(gè)三元組形成一個(gè)關(guān)系長(zhǎng)度大于1的路徑,這條路徑開頭的實(shí)體和結(jié)尾的實(shí)體也可以看作是h和t,從h到t存在著一條關(guān)系長(zhǎng)度為n的路徑,將其記作Prn=n=(r0,r1,…,rn-1);而對(duì)于h到t的路徑可能存在j條,即不止一條路徑,所以定義Ph→t為從h到t所有關(guān)系路徑的集合。對(duì)于每一關(guān)系路徑Pj∈Ph→t,其在模型中的嵌入表示記為SPj。
(6)
式中:e為自然常數(shù);Z(h,t)為鄰居信息交互編碼器給出的頭尾實(shí)體的上下文表示;Ph→t為從h到t所有關(guān)系路徑的集合。
最后,為了得到h和t的關(guān)系表示Zh→t,通過每條路徑SPj以及其權(quán)重βj運(yùn)算,表達(dá)式為
(7)
到此,本文路徑的匹配處理捕通過獲頭尾實(shí)體間可能存在的多條路徑,生成最終的關(guān)系路徑嵌入Zh→t。
根據(jù)預(yù)測(cè)任務(wù)中的聚合函數(shù)Z(h,t)和關(guān)系表示Zh→t,以及兩者融合生成的實(shí)體對(duì)和關(guān)系路徑中的語義信息來預(yù)測(cè)目標(biāo)關(guān)系,并通過損失函數(shù)來訓(xùn)練整體模型。
首先,將節(jié)點(diǎn)Z(h,t)和關(guān)系Zh→t的融合記為Z′,對(duì)于損失函數(shù)的則通過softmax函數(shù)求出Z′的結(jié)果Zsm,即Zsm=softmax(Z′)。將所有的Zsm集合記為Zall,則有Zsm∈Zall。為了評(píng)估當(dāng)前訓(xùn)練得到的概率分布與真實(shí)分布的差異情況,采用交叉熵?fù)p失函數(shù)L刻畫實(shí)際輸出概率與期望輸出概率之間的相似度,其交叉熵的值越小,2個(gè)概率分布就越接近。
(8)
至此得到了最后的得分。
根據(jù)上述信息和DASKGC模型框架流程,可以得出模型的簡(jiǎn)要算法過程如下:
1:初始化:
2:r←torch.eye(d) for eachr∈R
eachr∈R
4:P←torch.zeros(|P|,d) for eachP∈Ph→t
5:循環(huán) LOOPK:
6: batch for (h,r,t)
更新h和t
8: 將聚合函數(shù)更新的r進(jìn)入下一次loop
9: LOOP完成獲得Z(h,t)
10:Z(h,t)和每一關(guān)系路徑SPj
13:通過損失函數(shù)L更新實(shí)體和關(guān)系嵌入向量及模型參數(shù)
在實(shí)驗(yàn)中對(duì)頭實(shí)體、關(guān)系和尾實(shí)體數(shù)據(jù)都進(jìn)行了分析與處理,使其可以更好地學(xué)習(xí)與進(jìn)行模型優(yōu)化。為了檢驗(yàn)?zāi)P偷囊眯Ч?采用公共數(shù)據(jù)集Nell-995、FB15K-237和DDB14,數(shù)據(jù)集具體如表1所示。Nell-995、FB15K-237為常用的鏈接預(yù)測(cè)數(shù)據(jù)集,DDB14是知識(shí)圖譜 Freebase的子集,包含大規(guī)模的通用的人類知識(shí),但也存在大量逆反關(guān)系。由于可以通過在FB15K的訓(xùn)練集中反轉(zhuǎn)三元組,將反比關(guān)系去除,從而獲得大量測(cè)試三元組,所以FB15K-237為原始數(shù)據(jù)集的變體,其平均節(jié)點(diǎn)度為64.6;NELL-995是從NELL 數(shù)據(jù)集的第995次迭代中提取的通用知識(shí)數(shù)據(jù)集,其平均節(jié)點(diǎn)度為4.3;DDB14為文獻(xiàn)[14]提出的一個(gè)新的醫(yī)學(xué)領(lǐng)域數(shù)據(jù)集,包含從疾病數(shù)據(jù)庫中收集的術(shù)語和概念,并從原始的三元組中分別隨機(jī)抽取了4 000個(gè)三元組作為驗(yàn)證集和測(cè)試集,平均節(jié)點(diǎn)度為7.9。平均節(jié)點(diǎn)度可以判斷數(shù)據(jù)集的稀疏程度,即FB15K中的數(shù)據(jù)較為集中,為稠密數(shù)據(jù)集,Nell-995、FB15K-237的數(shù)據(jù)較為分散,為稀疏數(shù)據(jù)集。
表1 實(shí)驗(yàn)所用數(shù)據(jù)集
實(shí)驗(yàn)環(huán)境:Windows 64位操作系統(tǒng),處理器為Intel(R) Core(TM) i5-9500 CPU @ 3.00GHz,顯卡型號(hào)NVIDIA GTX1080。實(shí)驗(yàn)工具為PyCharm,Python 3.6版本。
對(duì)于本次實(shí)驗(yàn),學(xué)習(xí)率lr={ 0.01,0.05},批處理大小batch為128,隨機(jī)失活dropout設(shè)置為0.2,每輪最大訓(xùn)練輪數(shù)設(shè)為1 000,最大鄰居數(shù)max_neighbor為200。
為了準(zhǔn)確評(píng)估模型,采用平均倒數(shù)排名MMR、Hits@1、Hits@5和Hits@10作為結(jié)果評(píng)判指標(biāo)來衡量各個(gè)模型的性能。選用多個(gè)現(xiàn)有模型進(jìn)行性能對(duì)比實(shí)驗(yàn),包括TransE、CompleX、DisMult、RotatE、SimplE以及QuatE作為對(duì)比。
訓(xùn)練2 000個(gè)epoch,并將驗(yàn)證集準(zhǔn)確率達(dá)到最高時(shí)的各個(gè)評(píng)估指標(biāo)作為實(shí)驗(yàn)結(jié)果,重復(fù)3次后取均值作為最終結(jié)果,以粗體突出顯示最佳性能。因?yàn)镕B15K為稠密數(shù)據(jù)集,Nell-995和DDB14為稀疏數(shù)據(jù)集,所以使用2個(gè)表格展示其結(jié)果,分別見表2和表3。
表2 模型在FB15K數(shù)據(jù)集的結(jié)果
表3 模型于Nell-995和DDB14數(shù)據(jù)集的結(jié)果
從表2和表3可以看出,DASKGC模型在3個(gè)數(shù)據(jù)集上的表現(xiàn)都有著不錯(cuò)的結(jié)果,在分布較稀疏的數(shù)據(jù)集FB15K上,MMR的效果也只比第一名差一點(diǎn),而在密集數(shù)據(jù)集上的MMR結(jié)果都比其他模型效果優(yōu)秀。在FB15K數(shù)據(jù)集上,Hits@5和Hits@10的表現(xiàn)都是最好的,說明該模型有很強(qiáng)的泛化能力。在Nell-995數(shù)據(jù)集上,MMR和所有Hit@n的結(jié)果都是最好的,在DDB14數(shù)據(jù)集上的MMR和Hit@5也達(dá)到了最好的效果。
從實(shí)驗(yàn)結(jié)果能看到,模型在FB15K數(shù)據(jù)集上,MMR與Hits@1的結(jié)果與QuatE與RotatE的結(jié)果還有一定的差距,由于QuatE與RotatE存在多維平面與旋轉(zhuǎn)平面,所以在能夠?qū)ΨQ與逆對(duì)稱的三元組測(cè)試中會(huì)有良好的表現(xiàn);同時(shí)在DDB14數(shù)據(jù)集上Hits@1與hit@10的結(jié)果與CompleX與TransE的結(jié)果相比略顯不足,因?yàn)镈DB14數(shù)據(jù)集為醫(yī)學(xué)領(lǐng)域數(shù)據(jù)集,數(shù)據(jù)一般是固定的,故對(duì)于如TransE的線性模型能給出較好的結(jié)果。
相較于前3個(gè)模型TransE、CompleX以及DistMult,無論是MMR還是Hit@n的結(jié)果都有較大的提升。這3個(gè)模型主要獲取的是節(jié)點(diǎn)的嵌入表示,說明所提出模型在動(dòng)態(tài)分配注意得分機(jī)制上對(duì)嵌入式表示有著較大的幫助,能獲取更多的上下文語義信息。
提出了一種通過注意力網(wǎng)絡(luò)提取各個(gè)三元組實(shí)體和關(guān)系的動(dòng)態(tài)表示及特征,從而提高補(bǔ)全精度和效果的模型DASKGC。實(shí)驗(yàn)中選取MMR、Hits@n作為模型評(píng)估的標(biāo)準(zhǔn),對(duì)3個(gè)數(shù)據(jù)集FB15K-237、Nell-995和DDB14進(jìn)行建模分析,與TransE、CompleX等模型結(jié)果進(jìn)行對(duì)比,證實(shí)了DASKGC的補(bǔ)全精度有一定程度的提升,表明通過注意力網(wǎng)絡(luò)動(dòng)態(tài)分配實(shí)體和關(guān)系在模型中的得分是有效果的。