陳 恒,韓雨婷,李冠宇,王京徽
(1.大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連 116026; 2.大連外國(guó)語大學(xué) 軟件學(xué)院,遼寧 大連 116044)
Freebase[1]、Wordnet[2]、DBpedia[3]、YAGO[4]和NELL[5]等知識(shí)圖譜(Knowledge Graph,KG)在解決人工智能(Artificial Intelligence,AI)任務(wù)方面起著重要作用。然而,手動(dòng)和自動(dòng)構(gòu)建的KG遠(yuǎn)未達(dá)到十分完備的狀態(tài)[6-7],例如,在Freebase中75%的人缺失國(guó)籍,71%的人缺失出生地[8]。因此,知識(shí)推理(圖譜中隱含知識(shí)的挖掘)成為知識(shí)圖譜研究的熱點(diǎn)問題。
本文基于知識(shí)圖譜實(shí)體對(duì)間路徑信息的分析,提出一種基于多級(jí)關(guān)系路徑語義組合的關(guān)系推理算法,研究利用路徑信息進(jìn)行關(guān)系推理,提高知識(shí)圖譜補(bǔ)全質(zhì)量。
在經(jīng)典的知識(shí)圖譜補(bǔ)全方法中,文獻(xiàn)[9]提出一種PRA算法,該算法利用知識(shí)圖譜的圖結(jié)構(gòu)特征,通過隨機(jī)游走的方式計(jì)算實(shí)體間關(guān)系存在的概率進(jìn)行關(guān)系推理,但PRA在實(shí)體空間中進(jìn)行,計(jì)算代價(jià)高,且擴(kuò)展性較差。文獻(xiàn)[10]提出一種基于翻譯的TransE模型,該模型將知識(shí)圖譜嵌入到低維向量空間,同時(shí)認(rèn)為具有語義相關(guān)的實(shí)體在空間中的距離也是相近的。因此,通過判斷頭實(shí)體與關(guān)系的向量之和是否接近于尾實(shí)體向量來對(duì)實(shí)體間的關(guān)系進(jìn)行推理和判斷,進(jìn)而補(bǔ)全知識(shí)圖譜,取得了較好的效果。雖然TransE模型精確性高、擴(kuò)展性好,但僅限于實(shí)體間的直接關(guān)系,對(duì)多級(jí)路徑關(guān)系這種隱藏知識(shí)的推理表現(xiàn)不足。文獻(xiàn)[11]提出一種基于強(qiáng)化學(xué)習(xí)的推理方法,利用Agent和環(huán)境間的交互,在獎(jiǎng)勵(lì)函數(shù)機(jī)制下,學(xué)習(xí)獲得兩個(gè)實(shí)體間的路徑,通過符號(hào)邏輯進(jìn)行關(guān)系推理,但該方法并未考慮路徑上的實(shí)體和關(guān)系的特征。文獻(xiàn)[12]提出一種組合向量空間模型,將路徑上的關(guān)系組合進(jìn)而推理實(shí)體對(duì)間的關(guān)系,忽略了路徑上的實(shí)體信息。文獻(xiàn)[13]提出一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型,其通過對(duì)關(guān)系路徑進(jìn)行建模,充分利用了路徑上實(shí)體和關(guān)系的信息。由于該方法在路徑發(fā)現(xiàn)過程中依賴于PRA算法,雖然提高了精確性,但計(jì)算代價(jià)也相對(duì)較高。
知識(shí)表示學(xué)習(xí)[14-15]的目標(biāo)是通過機(jī)器學(xué)習(xí)將研究對(duì)象的語義信息表示為稠密低維實(shí)值向量[16-17],以知識(shí)圖譜的實(shí)體e和關(guān)系r為例,將表示學(xué)習(xí)得到的向量用le和lr來表示,在向量空間中,可以通過歐氏距離或余弦距離等方式,計(jì)算任意對(duì)象間的語義相似度。表示學(xué)習(xí)的主要方法有雙線性模型RESCAL[18-19]、多層感知機(jī)模型MLPs[20]以及TransE[10]、TransH[21]、TransR[22]等翻譯模型。通過知識(shí)表示得到低維稠密向量,可以更好地用于知識(shí)圖譜補(bǔ)全工作。
綜上所述,本文利用TransE模型將知識(shí)圖譜中富有語義信息的三元組嵌入到向量空間,從而實(shí)現(xiàn)知識(shí)圖譜的數(shù)值化,并受文獻(xiàn)[11]的啟發(fā),利用強(qiáng)化學(xué)習(xí)抽取路徑關(guān)系,以降低計(jì)算成本。在文獻(xiàn)[13]的基礎(chǔ)上,將路徑中實(shí)體和關(guān)系對(duì)應(yīng)的向量作為RNN的輸入,經(jīng)過迭代學(xué)習(xí)輸出多級(jí)關(guān)系路徑語義組合的結(jié)果向量。
本文關(guān)系推理框架示意圖如圖1所示。在資源層,以實(shí)體關(guān)系三元組表示知識(shí)圖譜;在向量表示層,利用TransE模型將三元組嵌入到低維向量空間;在路徑發(fā)現(xiàn)層,利用強(qiáng)化學(xué)習(xí)(Agent與環(huán)境交互),發(fā)現(xiàn)實(shí)體間路徑;在關(guān)系推理層,將路徑中實(shí)體和關(guān)系對(duì)應(yīng)的向量輸入到RNN,經(jīng)過迭代學(xué)習(xí)將路徑上的語義信息進(jìn)行組合,輸出多級(jí)關(guān)系路徑語義組合的結(jié)果向量,并將結(jié)果向量與目標(biāo)向量進(jìn)行相似度計(jì)算,進(jìn)而進(jìn)行關(guān)系推理。
圖1 路徑推理框架示意圖
本文采用一種新的路徑發(fā)現(xiàn)算法,即基于強(qiáng)化學(xué)習(xí)的路徑發(fā)現(xiàn)算法。該算法的基本思想是:將知識(shí)圖譜作為環(huán)境進(jìn)行建模,同時(shí)設(shè)置一個(gè)Agent。首先從環(huán)境傳遞給Agent一個(gè)初始狀態(tài)(State),通過Agent的決策得到一個(gè)動(dòng)作(Action)再傳遞給環(huán)境。從初始狀態(tài)轉(zhuǎn)移到下一個(gè)狀態(tài),同時(shí)獲得一個(gè)獎(jiǎng)勵(lì)(Reward)。依此循環(huán)往復(fù),便可得到一個(gè)從初始狀態(tài)到目標(biāo)狀態(tài)的決策序列。Agent的位置隨著中間狀態(tài)的改變而改變,通過以上過程,當(dāng)Agent移動(dòng)到目標(biāo)狀態(tài),即尾實(shí)體時(shí),就可獲得一條從頭節(jié)點(diǎn)到尾節(jié)點(diǎn)的路徑。強(qiáng)化學(xué)習(xí)過程示意圖如圖2所示。
圖2 強(qiáng)化學(xué)習(xí)過程示意圖
2.1.1 環(huán)境部分
本文將強(qiáng)化學(xué)習(xí)的環(huán)境部分建模為馬爾科夫決策過程(MDP),由四元組(S,A,P,R)組成,其中,S表示連續(xù)的狀態(tài)(State)空間,對(duì)應(yīng)于實(shí)體,A表示所有可選擇的動(dòng)作(Action)集合,對(duì)應(yīng)于每個(gè)實(shí)體所鏈接關(guān)系的集合,R(s,a)表示每對(duì)(s,a)的獎(jiǎng)勵(lì)函數(shù),即在某個(gè)狀態(tài)s選擇動(dòng)作a可得到的獎(jiǎng)勵(lì),P(St+1=s′|St=s,At=a)表示從當(dāng)前狀態(tài)St通過動(dòng)作At轉(zhuǎn)移到下一個(gè)狀態(tài)St+1的概率矩陣,每個(gè)狀態(tài)通過Agent位置的移動(dòng)來捕捉。
在知識(shí)圖譜中,可被Agent選擇的動(dòng)作(Action)數(shù)量很多,而與所得到的路徑中正確的動(dòng)作相比,不正確動(dòng)作的數(shù)量隨著路徑長(zhǎng)度的增加而增加。因此 如果每走一步都給出相應(yīng)獎(jiǎng)勵(lì),則浪費(fèi)大量的計(jì)算成本,為降低計(jì)算成本,本文對(duì)獎(jiǎng)勵(lì)的設(shè)置如式(1)所示:
(1)
當(dāng)路徑到達(dá)目標(biāo)實(shí)體時(shí),給出一個(gè)+1的獎(jiǎng)勵(lì);否則給出一個(gè)-1的獎(jiǎng)勵(lì);同時(shí)為鼓勵(lì)A(yù)gent發(fā)現(xiàn)更多路徑,利用余弦函數(shù)設(shè)置一個(gè)多樣性獎(jiǎng)勵(lì)函數(shù),計(jì)算當(dāng)前發(fā)現(xiàn)的路徑和已得到路徑之間的相似性,函數(shù)設(shè)置如下:
(2)
2.1.2 Agent部分
由于關(guān)系圖的復(fù)雜性,使得Action的空間非常大,對(duì)于DQN(Deep Q Network)[23]而言,可能導(dǎo)致非常差的收斂性,同時(shí),為了避免Agent陷入一個(gè)中間狀態(tài),本文將Agent設(shè)置為一個(gè)決策網(wǎng)路,如式(3)所示:
πθ(s,a)=p(a|s;θ)
(3)
本文用一個(gè)全連接的神經(jīng)網(wǎng)絡(luò)來參數(shù)化策略函數(shù)πθ(s;a),該函數(shù)能夠?qū)顟B(tài)映射到所有可選動(dòng)作的概率分布上,神經(jīng)網(wǎng)絡(luò)由兩個(gè)隱藏層組成,每個(gè)隱藏層后面都有一個(gè)激活函數(shù)ReLU,最后的輸出層由Softmax函數(shù)來進(jìn)行歸一化,采用隨機(jī)梯度下降法更新神經(jīng)網(wǎng)絡(luò)參數(shù)θ。為了避免傳統(tǒng)強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)算法收斂性較差的問題,本文引入一種監(jiān)督學(xué)習(xí)機(jī)制,采用BFS(Breadth-First Search)進(jìn)行路徑發(fā)現(xiàn)過程中的監(jiān)督訓(xùn)練。
在強(qiáng)化學(xué)習(xí)中,所有的目標(biāo)都被描述為最大化期望累計(jì)獎(jiǎng)勵(lì),即Agent從起點(diǎn)到終點(diǎn)的過程中將獎(jiǎng)勵(lì)累積到最大。Agent的目標(biāo)是選擇一系列動(dòng)作去最大化未來總的獎(jiǎng)勵(lì)。本文通過蒙特卡羅策略梯度[21]來累計(jì)最大化獎(jiǎng)勵(lì)值,如式(4)所示:
(4)
梯度下降法更新參數(shù)如下:
(5)
為盡可能找全實(shí)體對(duì)間路徑,本文采用獎(jiǎng)勵(lì)函數(shù)來訓(xùn)練受監(jiān)督的策略網(wǎng)絡(luò)。一對(duì)實(shí)體間路徑信息的發(fā)現(xiàn)稱為一個(gè)片段,從源節(jié)點(diǎn)開始,Agent根據(jù)隨機(jī)策略π(a|s)選擇關(guān)系,根據(jù)選擇的關(guān)系,源節(jié)點(diǎn)可能會(huì)鏈接到一個(gè)新實(shí)體,或者什么也沒有。后者稱為失敗的步驟,同時(shí)Agent還將得到一個(gè)負(fù)面的獎(jiǎng)勵(lì)。由于Agent遵循隨機(jī)的策略,它不會(huì)因重復(fù)錯(cuò)誤的步驟而陷入困境,因此在一個(gè)失敗步驟之后,Agent仍會(huì)處在之前同樣的狀態(tài)。為了提高訓(xùn)練效率,本文用上限max-length來限制一個(gè)輪次的長(zhǎng)度,max-length設(shè)置為10,即每一個(gè)輪次進(jìn)行10次動(dòng)作選擇操作。10次選擇后不論是否到達(dá)目標(biāo)節(jié)點(diǎn),都結(jié)束這個(gè)片段。在每個(gè)片段結(jié)束后,對(duì)策略網(wǎng)絡(luò)進(jìn)行更新,如式(6)所示:
(6)
其中,Rtotal=rGLOBAL+rDIVERSITY。基于獎(jiǎng)勵(lì)函數(shù)訓(xùn)練的路徑發(fā)現(xiàn)算法如下:
輸入給定的實(shí)體對(duì)
輸出實(shí)體對(duì)間路徑
1.對(duì)片段1~N做如下循環(huán):
2.初始化向量S0→St
3.初始化片段長(zhǎng)度,step→0
4.當(dāng)num_steps < max_length時(shí),執(zhí)行:
5.從隨機(jī)策略π(a|s)中隨機(jī)取樣動(dòng)作a
6.觀察獎(jiǎng)勵(lì)Rt,以及下一個(gè)狀態(tài)St+1
7.如果Rt=-1,則:
8.保存〈St,a〉到Mneg
9.如果到達(dá)了目標(biāo)節(jié)點(diǎn)或者num_steps=max_length
10.跳出循環(huán)
11.增加步數(shù)
12.如果失敗則更新參數(shù)θ
14.如果成功則:
15.Rtotal←r1rGLOBAL+r2rDIVERSITY
16.更新參數(shù)θ
在利用強(qiáng)化學(xué)習(xí)獲得兩個(gè)實(shí)體間路徑信息后,為更好地提高關(guān)系推理的精確性,本文將路徑上實(shí)體和關(guān)系的特征考慮在內(nèi),如圖3所示。
圖3 實(shí)體對(duì)間的路徑信息
在圖3中,假設(shè)實(shí)體對(duì)(Melinda,Seattle)之間有兩條路徑,若判斷它們之間是否存在關(guān)系Live in,由路徑信息可以看出通過Bill這條路徑得到結(jié)果的可靠性比通過路徑Marry這條路徑的可靠性大,因此考慮路徑上實(shí)體和關(guān)系的特征是有必要的。本文通過建立一種如圖4所示的RNN模型,將路徑中實(shí)體和關(guān)系對(duì)應(yīng)的向量作為RNN的輸入,經(jīng)過迭代學(xué)習(xí)將輸出一個(gè)關(guān)系路徑語義組合的結(jié)果向量,并將該結(jié)果向量與目標(biāo)關(guān)系向量進(jìn)行相似度計(jì)算。相似度值越高,通過該路徑得到目標(biāo)關(guān)系的概率越大,進(jìn)而提高結(jié)果的精確性。
圖4 RNN模型
本文用(esource,etarget)來表示一個(gè)實(shí)體對(duì),它們之間的關(guān)系用r表示,且(e∈E,r∈R),讓?duì)?{e0,r0,e1,r1,…,rt-1,et}表示實(shí)體對(duì)間的路徑。由于實(shí)體對(duì)間可能存在多條路徑,本文用S表示它們之間路徑集合;len(π)=k,len表示路徑的長(zhǎng)度,值為k,即路徑中實(shí)體與關(guān)系的個(gè)數(shù), 讓lei表示第i個(gè)實(shí)體向量,lri表示第i個(gè)關(guān)系向量。然后RNN模型對(duì)路徑π上的實(shí)體和關(guān)系進(jìn)行向量組合,在步驟t時(shí)刻的輸出,如式(7)所示:
ht=f(Whhht-1+Wihlrt+Wehlet)
(7)
路徑的最終輸出結(jié)果向量用lπ表示,目標(biāo)關(guān)系向量用lr表示,它們之間的相似度計(jì)算公式,如式(8)所示:
score(π,r)=lπ·lr
(8)
由于實(shí)體對(duì)間有多條路徑相連,需通過式(9)所示的函數(shù)找到相似度值最高的路徑。
P(r|es,et)=maxσ(score(π,r)),?π∈S
(9)
圖4中每一步需要利用一個(gè)實(shí)體和關(guān)系向量,路徑向量是整個(gè)路徑信息的最終表示,它與查詢關(guān)系之間的點(diǎn)乘給出置信度得分,即與目標(biāo)關(guān)系向量的相似度得分。
該算法在表示學(xué)習(xí)已經(jīng)訓(xùn)練好樣本的基礎(chǔ)上進(jìn)行數(shù)據(jù)處理。在強(qiáng)化學(xué)習(xí)階段,通過給定的頭結(jié)點(diǎn)對(duì)圖進(jìn)行遍歷的時(shí)間復(fù)雜度是O(n2);在利用RNN進(jìn)行路徑信息融合階段,對(duì)文本信息處理的時(shí)間復(fù)雜度是O(n),因此該算法的時(shí)間復(fù)雜度是O(n2+n),即O(n2)。
由于該算法針對(duì)文本中n個(gè)向量進(jìn)行線性計(jì)算,因此該算法的空間復(fù)雜度是O(n)。
本文實(shí)驗(yàn)平臺(tái)運(yùn)行在Window7系統(tǒng)、Quad-Core處理器、4 GB物理內(nèi)存。實(shí)驗(yàn)工具為Pycharm,使用Python3.6作為編程語言編寫程序。在知識(shí)圖譜數(shù)據(jù)集選擇方面,本文選用了FB15K-237[25]和NELL-995[26],它們分別是從FB15K和NELL995中選取的子集。
由于原始數(shù)據(jù)集數(shù)量龐大,對(duì)路徑發(fā)現(xiàn)而言,在每一步每個(gè)實(shí)體面對(duì)可選擇的action數(shù)量,因存在一些不相關(guān)性關(guān)系而增加,這些不相關(guān)的關(guān)系會(huì)導(dǎo)致大量不必要的計(jì)算,進(jìn)而影響實(shí)驗(yàn)效果。因此,本文選擇特定領(lǐng)域關(guān)系的數(shù)據(jù)子集進(jìn)行實(shí)驗(yàn),同時(shí)為降低噪聲數(shù)據(jù)的影響,都在選取時(shí)刪除冗余及對(duì)推理沒有任何價(jià)值的三元組。本文最終在FB15K-237數(shù)據(jù)集中選取20種關(guān)系任務(wù),在NELL-995中選取12種關(guān)系任務(wù)進(jìn)行推理工作。這些任務(wù)是來自不同領(lǐng)域,如體育、電影、人物等。為得到更加精確的推理關(guān)系,選取最高的相似度值作為路徑的推理關(guān)系。在進(jìn)行實(shí)驗(yàn)前,將數(shù)據(jù)集隨機(jī)地分為8∶2,其中80%作為訓(xùn)練集,剩下的20%作為測(cè)試集。實(shí)驗(yàn)數(shù)據(jù)集如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)集
在實(shí)驗(yàn)中,本文將參數(shù)配置如下:學(xué)習(xí)率λ=0.001,邊際值γ=1,維度設(shè)置為k=200,采用L2正則化參數(shù)優(yōu)化,并將值設(shè)置為0.01,batch大小設(shè)置為B∈{64,128,512,1 024}。在RNN模型中,β1=0.9,β2=0.999,實(shí)驗(yàn)進(jìn)行1 000次迭代,測(cè)試結(jié)果通過測(cè)試集上的平均排名來選取。
本文通過在鏈接預(yù)測(cè)和事實(shí)預(yù)測(cè)上的MAP(Mean Average Precision)指標(biāo)來評(píng)價(jià)實(shí)驗(yàn)結(jié)果。鏈接預(yù)測(cè)指的是對(duì)給定查詢實(shí)體對(duì)應(yīng)的目標(biāo)實(shí)體進(jìn)行排名。具體表現(xiàn)為在訓(xùn)練中,將一個(gè)正例樣本,即對(duì)一個(gè)正確三元組,將其中的尾實(shí)體用其他實(shí)體替換,從而形成一個(gè)負(fù)例樣本。為保證實(shí)驗(yàn)效果的精確性,本文盡量讓每個(gè)正例樣本都對(duì)應(yīng)10個(gè)負(fù)例樣本。最后,通過對(duì)這些目標(biāo)實(shí)體的排序,進(jìn)行正確三元組和錯(cuò)誤三元組的劃分。事實(shí)預(yù)測(cè)的目標(biāo)是判斷一個(gè)三元組(es,r,et)是否成立,即判斷頭實(shí)體es和尾實(shí)體et之間是否真的存在關(guān)系r。
用RL+RNN表示本文模型,其中在FB15K-237數(shù)據(jù)集上的鏈接預(yù)測(cè)結(jié)果如表2所示,在NELL-995數(shù)據(jù)集上的鏈接預(yù)測(cè)結(jié)果如表3所示。
表2 不同模型在FB15K-237數(shù)據(jù)集上的鏈接預(yù)測(cè)結(jié)果
Table 2 Link prediction results of different models on the FB15K-237 dataset
TasksPRARL+RNNTransETransHteamSp..0.9870.9430.8960.763birthPl..0.4410.5010.4030.405personN0.8470.8410.6410.695filmDir.0.3490.4520.3860.401filmWr..0.6010.4420.5630.567filmLa..0.6630.6680.6420.644tvLang.0.9600.9660.8040.821capital..0.8290.7920.5540.798origani.0.2810.2950.3900.351musici..0.4620.4960.3610.368?????overall0.5410.5930.5320.537
表3 不同模型在NELL-995數(shù)據(jù)集上的鏈接預(yù)測(cè)結(jié)果
Table 3 Link prediction results of different models on the NELL-995 dataset
TasksPRARL+RNNTransETransHath..P..T0.5470.7320.6720.658ath..P..L0.8410.9610.7730.897ath..H.S0.8590.8870.7180.731ath..P..S0.4740.9310.8760.981team.P.S0.7910.7420.7610.805orgHq.C0.8110.7930.6200.763worksF..0.6810.6890.6770.672bornLo..0.6680.7640.7120.801pers.L.O0.7000.8210.7510.762orgH..P..0.5990.7630.7190.720?????overall0.6750.7910.7370.753
從表2和表3可以看出,本文方法在鏈接預(yù)測(cè)的實(shí)驗(yàn)結(jié)果優(yōu)于PRA、翻譯模型TransE與TransH,這說明本文提出的模型具有良好的推理能力。對(duì)于大部分關(guān)系,由于翻譯模型并不能考慮到路徑上的信息,預(yù)測(cè)結(jié)果顯著低于本文提出的模型或者PRA,但當(dāng)沒有足夠的路徑信息時(shí),翻譯模型還是具有良好的表現(xiàn)能力。同時(shí)也說明,本文提出的模型能夠較好地利用路徑上的信息,并能有效提升知識(shí)圖譜中信息預(yù)測(cè)的精確性。
在FB15K-237數(shù)據(jù)集上的事實(shí)預(yù)測(cè)結(jié)果如表4所示,在NELL-995數(shù)據(jù)集上的事實(shí)預(yù)測(cè)結(jié)果如表5所示。
表4 不同模型在FB15K-237數(shù)據(jù)集上的事實(shí)預(yù)測(cè)結(jié)果
Table 4 Fact prediction results of different models on the FB15K-237 dataset
模型MAPPRA0.301TransE0.277TransH0.309RL+RNN0.314
表5 不同模型在NELL-995數(shù)據(jù)集上的事實(shí)預(yù)測(cè)結(jié)果
Table 5 Fact prediction results of different models on the NELL-995 dataset
模型MAPPRA0.387TransE0.383TransH0.389RL+RNN0.417
從表4和表5可以看出,本文提出的方法在事實(shí)預(yù)測(cè)中的結(jié)果均優(yōu)于其他3個(gè)模型,同時(shí)也表明路徑上的實(shí)體和關(guān)系信息對(duì)關(guān)系推理具有良好的促進(jìn)作用,在一定程度上提高了關(guān)系推理的質(zhì)量和效率。
本文提出一種基于多級(jí)關(guān)系路徑語義組合的關(guān)系推理算法。該算法利用關(guān)系推理,在一定程度上提高了知識(shí)圖譜補(bǔ)全質(zhì)量,并將知識(shí)圖譜嵌入到向量空間,減少了計(jì)算開銷。下一步研究除考慮知識(shí)圖譜中已存在的路徑信息外,對(duì)結(jié)構(gòu)相似性的知識(shí)圖譜補(bǔ)全問題以及如何處理新引入的知識(shí)也將是進(jìn)一步的研究重點(diǎn)。