李鑫柏,吳鑫然,岳 昆
(云南大學 信息學院,昆明 650500)
知識圖譜(Knowledge Graph,KG)是海量數據領域中重要的知識儲備庫[1-2],為知識查詢、問答系統和推薦系統[3]等應用提供知識服務[4-5]。KG 用節點表示實體,用邊表示實體間的關系,一個由關系、頭實體和尾實體構成的三元組表示一個事實。知識圖譜補全(Knowledge Graph Completion,KGC)指通過預測實體之間的新關系來構造三元組[6],從而提升KG 中知識的豐富程度[7]。
將實體和關系表示為低維空間中的向量,是一類有效的KGC 方法,通過向量間的計算來解決KG內部的關系預測問題。但現實世界中的知識在不斷增加變化,這要求KG 及時補充現實世界中的知識,而這類KGC 方法難以滿足從現實世界中學習知識的要求。因此,研究人員將KG 內部的補全方法稱為封閉世界下的KGC 方法,將不包含于KG 的數據稱為開放世界數據,進一步提出開放世界KGC 方法,這類方法的基本思想是從數據中提取KG 中不存在的新實體來補全三元組,從而為KG 引入新實體。
現有的開放世界KGC 方法雖然有效地解決了新實體的來源問題,但每次只能針對缺失頭實體或尾實體的一個三元組進行補全,在一定程度上限制了新知識的全面性。KG 中關系之間存在相互依賴的性質,可以用來學習新實體的多種關系,但KG 不能直接描述這種依賴性。貝葉斯網(Bayesian Network,BN)是表示和推理具有依賴性和不確定性知識的有效工具。本文提出一種基于BN 的開放世界KGC 方法,給出關系之間依賴性的BN 表示模型,設計BN模型構建方法,利用KG 來構建BN。在此基礎上,提出基于BN 概率推理的三元組構造方法,利用現有的命名實體識別技術從開放世界數據中獲取包含新實體的三元組,將其作為證據,基于BN 概率推理構造更多包含新實體的三元組,從而提升知識的全面性并完善KG。
基于KG 的表示學習進行KGC 是一類典型的KGC 方法,其補全效果的好壞依賴于表示模型的性能高低。TransE 模型[8]將關系視為實體間的平移向量,其能夠有效計算“一對一”關系,但計算“一對多”“多對一”和“多對多”等復雜關系時存在局限性。文獻[9]提出TransH 模型,利用超平面及該超平面上的向量表示關系,使每個實體在不同關系下擁有不同的向量表示,但TransH 仍假設實體和關系處于相同的語義空間,在一定程度上限制了其表示能力[10]。文獻[11]提出TransR 模型,為實體向量構造一個公共的空間,并為每個關系向量構造只屬于該關系的空間。
上述方法能夠將KG 中的實體和關系表示為向量空間中的向量,不僅保存了實體和關系的語義,還使得實體和關系變得可計算,進而為KGC、KG 查詢等任務提供定量的依據,對KG 具有重要意義。雖然基于表示學習的封閉世界KGC 方法能夠在KG 內部有效地預測三元組,但是開放世界中的新知識也是補全KG 的重要知識來源。封閉世界KGC 方法難以滿足向KG 中引入新實體的要求,因此,有必要研究開放世界KGC 方法。
近年來,研究人員用開放世界KGC 方法從數據中提取新實體加入KG,從而豐富KG 中的知識。文獻[12]利用全卷積神經網絡從數據中提取新實體,進而利用新實體補全缺失頭實體或尾實體的三元組,為KGC 提供了一種新思路。文獻[13]將文本、圖片和數值等多種類型數據作為新實體來構造三元組,豐富了KG 中實體的類型,但多種類型的數據導致計算復雜度較高。
開放世界KGC 方法能夠為KG 引入開放世界中的新實體,為KGC 方法提供一種新思路。現有的開放世界KGC 方法依賴于數據中給出的知識,能夠學習到數據中直接描述出的與新實體相關的知識。然而,與一個實體相關的知識往往是多方面的,數據中給出的知識通常只是其中的一部分。現有的開放世界KGC 方法雖然能夠引入新實體,但無法提升知識的全面性。若利用開放世界數據中給出的知識學習到更多知識,同時對新實體所涉及的多種關系進行補全,將大幅提高新知識的全面性和KGC 的效率。
KG 中同一類型實體涉及的關系之間通常具有相互依賴的性質,給定某個類型實體涉及的一些關系,通過關系之間的依賴性可得到該實體可能涉及的其他關系,從而利用該實體及更多關系來構造三元組。若從開放世界數據中提取的新實體與KG 中的實體為相同類型,則新實體涉及的關系往往也符合KG 中關系之間的相關性。例如,一部電影的類型為“喜劇”,另一部電影與這部電影具有相同的導演,則其類型很可能也為“喜劇”。在開放世界KGC 任務中利用這種依賴性,能基于數據中新實體給定的關系獲取其涉及的更多關系,從而提升KG 中知識的全面性。因此,如何定量地描述KG 中同類實體涉及的關系之間的依賴性,是實現開放世界KGC 的重要前提。
BN[14]是描述變量間相互依賴關系和不確定性知識的有效工具[15]。基于證據變量的取值,利用BN 的概率推理,可計算得到查詢變量不同取值的條件概率。鑒于BN對不確定性知識表示與推理的優勢,本文將BN作為KG 中關系之間依賴性表示和推理的框架,構建一個基于KG的BN(KG-based Bayesian Network,KGBN),其中包含有向無環圖(Directed Acyclic Graph,DAG)和條件概率表(Conditional Probability Table,CPT),將KG中的關系表示為KGBN 中的變量,并將KG 中關系連接的不同尾實體表示為KGBN 中變量的不同取值。如圖1 所示,將KG 中的關系“導演”“演員”和“類型”表示為KGBN 中的變量x1、x2和x3“,演員1”出演的某部電影為“喜劇”的可能性可利用條件概率P(x3=“喜劇”|x2=“演員1”)=0.95 進行定量描述。

圖1 KGBN 示例Fig.1 Example of KGBN
KGBN 的構建包括DAG 構建和CPT 計算。對于同一類型的實體而言,它們共同涉及的關系描述了該類實體的特性,在KGC 任務中考慮這些關系對實體的描述作用,能夠更準確地獲取新實體的特性,從而為構造三元組提供可靠的依據。因此,本文將關系在實體描述中的重要程度作為構建DAG 的依據,在DAG 中使得重要關系的優先級高于次要關系,進而獲取關系之間的依賴性。具體而言,關系的出現頻率越低,則越能準確描述實體的特點[16]。若將關系看作一種“資源”,關系連接的尾實體看作“傳播介質”[17],那么“傳遞資源多”的關系在實體描述中發揮著更重要的作用,如“語言”關系的尾實體“普通話”一般不具備其他信息,而“導演”關系的尾實體“導演1”具有國籍、作品等信息,根據“導演1”容易推出電影的“語言”為“普通話”,反之則很難推出一部“普通話”電影的“導演”是“導演1”。
本文提出基于KG 中關系出現頻率和傳遞資源數的DAG 構建方法,給出關系在實體描述中重要程度的定量計算方法,將一個關系重要于另一個關系的狀態表示為DAG 中一個變量指向另一個變量的有向邊,構造出DAG,進而提出基于KG 的三元組數據集抽取方法,從KG 中抽取關系與尾實體的不同組合情況,并獲取每種組合的出現次數,從而得到包含KGBN 中不同變量取值組合及其個數的數據集。在此基礎上,給出基于最大似然估計法的CPT 計算方法,利用DAG 和數據集為每個變量計算CPT,最終構建出KGBN。
為了實現開放世界KGC,本文將從開放世界數據中提取的包含新實體的三元組作為KGBN 推理的證據,通過概率推理來獲取新實體涉及的更多關系,從而構造出新的三元組。BN 推理分為精確推理和近似推理,精確推理通過給定證據變量取值來計算查詢變量的后驗概率分布,近似推理降低了精確推理的復雜度和對精度的要求,以在較短時間內得到一個近似解[18]。
三元組的正確與否決定了KG 所表達知識的可靠性,考慮到KGC 任務對結果的精度要求較高,本文在KGBN 推理中采用精確推理,提出基于KGBN推理的三元組構造方法,從數據中提取包含新實體的三元組,將其中的關系及尾實體作為KGBN 推理中的證據變量及其取值,并將KGBN 中其他未知取值的變量作為查詢變量,進而基于KGBN 推理得到查詢變量不同取值的條件概率,將條件概率作為構造新三元組的依據,從而構造出包含新實體及更多關系的三元組。
本文方法也可用于封閉世界KGC 任務,即針對KG 中已有的實體進行補全。針對KG 中已有的某個實體,在包含該實體的三元組中存在已知的關系和尾實體,可以作為KGBN 推理的證據變量及其取值,基于KGBN 推理即可獲取其他變量的取值條件概率,進而構造出更多三元組。
本文使用DBpedia數據集[19]和Freebase數據集[20],分別在開放世界和封閉世界下進行鏈路預測和三元組類型預測實驗,以測試本文方法的結構構建效率。
定 義1[10]將KG 表示為GK=(E,R,T),其中,E={e1,e2,…,eε}表示實體集合,ε為實體個數,R={r1,r2,…,rγ}表示關系集合,γ為關系的個數,T={(h,r,t)}(h,t?E,h≠t,r?R)表示三元組集合,h為頭實體,t為尾實體。
BN 通過DAG 和CPT 來表示和推理變量間的相互依賴關系和不確定性知識,其中,DAG 的節點表示變量,有向邊表示變量間的依賴關系,每個節點具有一個CPT,描述了父節點對該節點的影響程度。KGBN 由DAG 和CPT 構成,其中,變量表示KG 中的關系,變量的取值表示關系連接的尾實體。為方便后續討論,將KGBN 中的變量個數設為n(n<γ)。
定義2將KGBN 表示為φ=(GB,θ),其中:
1)GB=(X,Y)表示DAG 結構,X={x1,x2,…,xn}表示變量集,xi表示GK中同類實體所涉及的任意一個關系,Y表示有向邊集,表示由xi到xj的有向邊,此時,xi稱為xj的父變量,變量xj的父變量集合記為Ppa(xj)。
2)θ表示所有變量 的CPT 集合,其由P(xi)和P(xi|Ppa(xi))構成。
為了構建KGBN,本文提出基于關系出現次數和傳遞資源數的DAG 構建方法,通過定量計算關系在實體描述中的重要程度來獲取關系之間的優先級別,并將其表示為DAG 中變量之間的有向邊,從而獲取KG中同一類型實體所涉及的關系之間的依賴性。
KG 中出現頻率低的關系能更準確地描述實體的特點,例如,某部電影具有2 位“主演”和10 位“工作人員”,“主演”往往比“工作人員”更能說明電影的特點。本文提出逆頻(Inverse Frequency,IF)指標來度量關系在實體描述中的重要程度。對于GK中的任意關系r,IF 計算公式如下:

其中,NT(r)為三元組集合T中包含關系r的三元組個數。
KG 中“傳遞資源越多”的關系對實體描述的作用越大,本文提出關系傳遞(Relation Transfer,RT)指標,在某些關系具有相同IF 值時,利用RT 值度量這些關系對實體描述的重要程度。對于r,RT 計算公式如下:

其中,Er表示在集合T中關系r連接的尾實體集合,NT(h?Er)表示集合T中以Er中各實體為頭實體的三元組個數,即關系r連接的尾實體的出度之和為φ中n個變量所表示的關系的NT(h?Er)之和。
在構建GB時,首先利用式(1)計算各變量所表示關系的IF 值,并根據IF 值對變量進行降序排列,得到GB的變量集X和關系的IF 值數組;然后統計關系在GK中傳遞的資源數,利用式(2)計算X中各變量所表示關系的RT 值,得到關系的RT 值數組。
在進行DAG 構建時,依次從變量集X中取出變量xi(1≤i≤n-1),放入SameX集合中,并將這個變量所表示關系的IF 值與X中下一個變量xi+1(1≤i≤n-1)所表示關系的IF 值進行比較,比較結果分為以下4 種情況:
1)若兩個關系的IF 值不相等,則在有向邊集Y中添加SameX集中每個變量指向下一個變量xi+1的有向邊。
2)若兩個關系的IF 值相等,進而比較它們的RT值,并在Y中添加所表示關系的RT 值大的變量指向所表示關系的RT 值小的變量的有向邊。
3)若兩個關系的IF 值和RT 值均相等,則判斷這個變量是否為X中的倒數第二個變量,若不是,則將這個變量保留在SameX集中,并開始下一次循環,因此,SameX集中的變量所表示的關系的IF 值和RT 值總是相等的。
4)若兩個關系的IF 值和RT 值均相等,且這個變量xi是X中的倒數第二個變量,則將X中的最后一個變量xn放入SameX集,并獲取SameX集中的變量個數s,找到X中第n?s個變量xn-s,xn-s即為所表示關系的RT 值大于SameX集中變量所表示關系的RT 值的最接近的變量,接著在Y中分別添加xn-s指向SameX集中除第一個變量之外的每個變量的有向邊,并清空SameX集,結束循環。
DAG 的構建過程如算法1 所示:
算法1KGBN 的DAG 構建

算法1 的執行代價主要取決于KGBN 中變量的個數,若變量集X中有n個變量,則算法1 的時間復雜度為O(n)。
如表1 所示,算法1 在第一次、第二次執行中分別添加有向邊

表1 算法1 元素取值示例Table 1 Example of element values of algorithm 1
本節基于KG 三元組抽取數據集,利用三元組中的關系和尾實體來生成KGBN 中包含n個變量取值的組合,并統計變量取值組合的個數,從而利用DAG 和數據集計算得到KGBN 的CPT。
基于KG 三元組抽取數據集的過程為:
1)從GK的三元組集合T中抽取滿足以下2 個條件的三元組:
(1)三元組的頭實體和構建φ的實體為同一類型。
(2)三元組的關系為φ中變量所表示的關系。
2)對于這些三元組中的每一個關系,將其作為φ中的變量xi,同時將這個關系連接的不同尾實體作為變量xi的不同取值,得到變量的取值集合,記為,其中,mi為xi的取值個數。
3)利用φ中的變量及其取值得到所有可能的取值組合{d1,d2,…,dδ},其 中,δ=表示第l種變量取值組合。
接著,統計每種取值組合的個數,過程為:
1)基于前文抽取出的滿足2 個條件的三元組,將其中頭實體為同一個實體的多個三元組歸為一條數據。
2)利用這條數據中的關系及尾實體生成φ的變量及變量取值,每條數據可生成一個包含n個變量取值的組合,若這個組合與變量取值組合dl相同,則將這個組合作為dl的一個實例。
3)根據前文所得的變量取值組合,利用KG 統計每種變量取值組合的個數,構成數據集D={(d1,ND(d1)),(d2,ND(d2)),…,(dδ,ND(dδ))},其 中,ND(dl)表示dl的實例數。
假設KG 的片段如圖2 所示,其中每個關系分別連接2 種尾實體。在圖1 所示的KGBN 中,共有2 個變量,每個變量有2 個取值,計算可得數據集中共有2×2×2=8 種變量取值組合,如圖2 中數據集D的片段所示。利用實體“電影1”構成的多個三元組生成變量取值組合,記為d1的1 個實例,根據KG 片段統計得到d1共有2 個實例。

圖2 數據集D 的抽取過程Fig.2 Extraction process of dataset D
在計算CPT 時,若xi無父變量,其CPT 值為xi的邊緣概率分布P(xi);若xi有父變量,則其CPT 值為條件概率分布P(xi|Ppa(xi))。基于最大似然估計法[14],利用GB和數據集D計算xi的CPT 值θijk,如 式(3)所示:

其中,ND(xi=k)為D中滿足xi取值為k的實例數,為D中的實例數之和,ND(Ppa(xi)=j)為D中滿足xi的父變量Ppa(xi)取值組合為第j種的實例數,ND(xi=k,Ppa(xi)=j)為D中滿足xi取值為k且其父變量Ppa(xi)取值組合為第j種的實例數。
本節以開放世界數據中提取的包含新實體的三元組為基礎,利用其中的關系及尾實體獲取KGBN 推理中的證據變量及其取值,進而將新實體涉及的其他關系作為查詢變量,并將推理得到的查詢變量取值作為關系連接的尾實體,從而構造出新的三元組。開放世界數據中的三元組可以用經典的LSTM-CRF[21-22]技術獲取。BN 精確推理的計算復雜度相對于變量個數成指數增長,變量消元(Variable Elimination,VE)方法[23]利用變量間的條件獨立關系減少推理過程中的變量個數,降低計算復雜度,使得整體計算復雜度未必相對于變量個數成指數增長[18],因此,本文采用VE作為KGBN推理算法。
將從數據中提取的三元組集合記為W=,其 中,h'為從數據中提取的新實體。將集合W中的關系作為φ中的證據變量,記為證據變量集合Xz,并將關系連接的尾實體作為各證據變量的取值。將集合X中存在而Xz中不存在的變量作為查詢變量,記為查詢變量集合Xq,最大條件概率的閾值記為α。
基于KGBN 推理構造三元組的基本思想如下:首先,針對集合Xq中任意一個查詢變量x,計算得到包含φ中所有概率分布的集合,并將Xz中各個變量的取值代入其中;其次,對除x外所有屬于X但不屬于Xz的變量設置消元順序,對其中每個變量進行求和消元,得到一個新的概率分布集合;然后,將概率分布集合中的所有函數相乘得到關于x的函數,進而利用函數計算得到x各個取值的條件概率,并找到最大條件概率P(x=k|Xz);隨后,判斷最大條件概率是否大于等于閾值α,若是,則利用滿足大條件概率的k值構造三元組(h',x,k);最后,將三元組和集合W加入GK的三元組集合T中。重復上述過程,直到循環結束。基于KGBN 推理的三元組構造過程如算法2所示。
算法2基于KGBN 推理的三元組構造


算法2 的執行代價主要取決于集合Xq中的查詢變量個數和每次推理中消元的變量個數,算法2 的總執行代價為查詢變量的個數和每次推理中消元執行代價之和的乘積。
在封閉世界下執行KGC 任務時,首先,將KG 中包含同一個頭實體的多個三元組作為一個集合;其次,利用其中的關系及尾實體作為證據變量及證據變量的取值;然后,將集合X中其他變量作為查詢變量;最后,針對查詢變量進行KGBN 推理,利用算法2 得到新的三元組。
以圖1 中的KGBN 為例,假設從數據中提取到三元組集合W={(“電影”,“導演”,“導 演1”),(“電影”,“演員”,“演員1”)},證據變量及其取值為{x1=“導演1”,x2=“演員1”},查詢變量為x3。利用算法2計算P(x3),首先得到KGBN 中的概率分布集合{P(x1),P(x2|x1),P(x3|x2)},設置變量消元順序為{x1,x2}。從概率分布集合中刪去包含x1的函數,并生成新函數,得到{g(x2),P(x3|x2)}。類似地,消去x2,得到P(x3=“劇情”|x2=“演員1”)=0.05,P(x3=“喜劇”|x2=“演員1”)=0.95,構造三元組(“電影”,“類型”,“喜劇”)。
將本文知識圖譜補全方法記為BN-KGC,使用DBpedia50k、DBpedia500k[19]和FB15k[20]數據集在開放世界下測試BN-KGC 的效率和有效性。BN-KGC也可用于封閉世界KGC 任務,本文基于OpenKE 平臺[24]實現TransE[8]、TransH[9]和TransR[11]方 法,在封閉世界下測試BN-KGC 的有效性。
FB15k 數據集包含14 951 個實體和1 345 個關系,DBpedia50k 和DBpedia500k 數據集分別包含49 900 個實體、654 個關系和517 475 個實體、654 個關系。3 種數據集的三元組個數劃分情況如表2 所示。

表2 3 種數據集的三元組個數統計Table 2 Statistics of the number of triples in three datasets
本文定義了最大條件概率的閾值α,利用α來決定KGBN 推理所得的取值是否能夠作為構造三元組的實體。若α值過小,則會導致結果的準確率降低;若α值過大,則會導致所得結果的數量減少。本文利用驗證集進行閾值設置,首先對驗證集中的三元組進行KGBN 推理,得到構成這些三元組的正確結果的條件概率(正確結果的條件概率不一定為最大條件概率),進而利用這些條件概率計算平均值并作為閾值α,本文通過測試將閾值α設置為0.95。
為了驗證本文KGBN 構建方法的有效性,對KGBN 構建方法的執行時間進行測試。首先,針對KGBN 中不同的變量個數,測試在不同數據集下計算IF 值和RT 值的執行時間。計算IF 值、RT 值的執行時間結果分別如圖3 和圖4 所示,從中可以看出,執行時間均隨變量個數的增多而增加。其中,在FB15k 數據集下執行時間最長,在DBpedia500k 數據集下執行時間次之。對從KG 中抽取數據集的執行時間進行測試,結果如圖5 所示。從圖5 可以看出,抽取數據集的執行時間隨KGBN 中變量個數的增多而增加,其中,在DBpedia500k 數據集下執行時間最長,在FB15k 數據集下執行時間次之。

圖3 計算IF 值所需的執行時間Fig.3 The execution time required to calculate the IF value

圖4 計算RT 值所需的執行時間Fig.4 The execution time required to calculate the RT value

圖5 抽取數據集所需的執行時間Fig.5 The execution time required to extract the dataset
將同個數據集下的IF 值、RT 值計算和數據集抽取的執行時間進行對比,在FB15k、DBpedia50k 和DBpedia500k 數據集下的執行時間情況分別如圖6~圖8 所示。從中可以看出,在同等條件下RT 值計算的執行時間總體大于IF 值計算的執行時間,且數據集抽取的執行時間略高于IF 值計算的執行時間,但遠低于RT 值計算的執行時間。

圖6 FB15k 數據集下的執行時間比較Fig.6 Comparison of execution time in FB15k dataset

圖7 DBpedia50k 數據集下的執行時間比較Fig.7 Comparison of execution time in DBpedia50k dataset

圖8 DBpedia500k 數據集下的執行時間比較Fig.8 Comparison of execution time in DBpedia500k dataset
測試含不同變量個數時KGBN 結構構建的執行時間,結果如圖9 所示。從圖9 可以看出,構建KGBN 的執行時間隨變量個數的增多而增加,在DBpedia500k 數據集下的執行時間最長,在FB15k 數據集下的執行時間次之。這表明在KGBN 構建的執行時間中IF 值和RT 值計算的執行時間占比很小,同時測試中針對3 個~11 個IF 值的降序排列以及針對3 個~11 個變量的DAG 構建花費的時間遠小于IF 值計算的時間,這說明本文KGBN 構建方法的執行時間主要取決于CPT 的計算時間。

圖9 KGBN 構建所需的執行時間Fig.9 Execution time for KGBN build
5.2.1 三元組類型預測
在三元組類型預測任務中,測試集中的三元組被稱為正確三元組,將測試集中的三元組隨機替換實體,得到錯誤三元組。其中,正確三元組被預測為正記作TP,錯誤三元組被預測為正記作FP,正確三元組被預測為負記作FN。三元組類型預測的評估指標分別為準確率(Precision)、召回率(Recall)及F1 值。
首先,利用訓練集和驗證集分別構建包含5 個、8 個和11 個變量的KGBN,并將閾值α設置為0.95;然后,利用測試集中的三元組進行KGBN 推理,得到三元組中關系連接尾實體的條件概率,將條件概率不小于閾值的三元組記為正,否則記為負,進而得到三元組類型預測結果。
當KGBN 中包含5 個變量時,三元組類型預測結果的各項指標如圖10 所示。從圖10 可以看出,隨著查詢變量個數的增多,預測結果的準確率略有下降,而召回率呈上升趨勢,在FB15k 數據集下預測結果的F1 值保持相對穩定的趨勢,在DBpedia 數據集下預測結果的F1 值呈先上升后下降的趨勢。當KGBN 中包含8 個變量時,三元組類型預測的結果如圖11 所示。從圖11可以看出,預測結果的準確率、召回率和F1 值均有明顯的提升。其中,在FB15k 數據集下預測結果的準確率和F1 值較好,在DBpedia 數據集下預測結果的召回率較好。當KGBN 中包含11 個變量時,三元組類型預測的結果如圖12 所示。從圖12 可以看出,預測結果的準確率隨著查詢變量個數的增多而略有下降,但召回率和F1 值隨著查詢變量個數的增多而明顯提升。

圖10 KGBN 變量個數為5 時的三元組類型預測結果Fig.10 Prediction results of triple type when the number of KGBN variables is 5

圖11 KGBN 變量個數為8 時的三元組類型預測結果Fig.11 Prediction results of triple type when the number of KGBN variables is 8

圖12 KGBN 變量個數為11 時的三元組類型預測結果Fig.12 Prediction results of triple type when the number of KGBN variables is 11
在實際中,準確率和召回率難以同時兼顧,一個較高時另一個總會較低,因此測試中通常采用F1 值來綜合度量方法的有效性。結合圖10~圖12 的結果可以看出,隨著查詢變量個數的增多,針對同一個頭實體構造的三元組個數增加,因此,預測結果的召回率有所提升。雖然證據變量的減少可能會導致預測結果的準確率下降,但是預測結果的F1 值會有一定提升或能保持相對穩定的趨勢。
5.2.2 鏈路預測
本文分別在3 個數據集上執行鏈路預測任務,進一步測試BN-KGC 實現開放世界KGC 的有效性。鏈路預測能夠預測三元組缺失的頭實體或尾實體,可用于KGC 任務。將測試集中的三元組稱為正確三元組,對于任意一個正確三元組,本文利用實體集中所有實體替換其尾實體構造參考集,打分排序后根據正確三元組在參考集中的排名計算MR 和Hits@10 指標。MR 用于度量正確三元組排名的平均值,Hits@10 用于衡量排名在前10 的正確三元組個數占三元組總個數的比例。利用前文構建得到的KGBN,將基于KGBN 推理得到三元組中關系連接尾實體的條件概率作為評分函數,進而計算BN-KGC的MR 和Hits@10。鏈路預測結果如表3 所示,從表3 可以看出,在FB15k 數據集下,當KGBN 中變量和查詢變量個數分別為8 和3 時預測的MR 結果最小,當KGBN 中變量和查詢變量個數分別為8 和5 時預測的Hits@10 結果最大。在DBpedia50k 數據集下,當KGBN 中變量和查詢變量個數分別為8 和5 時取得的MR 和Hits@10 均為最好。在DBpedia500k數據集下,當KGBN 中變量和查詢變量個數分別為11 和6 時預測 的MR 結果最小,當KGBN 中變量和查詢變量個數分別為11 和4 時預測的Hits@10 結果最大。從總體來看,當KGBN 中變量和查詢變量個數分別為8 和5 時預測結果最好,因此,本文采用該組結果與現有的開放世界KGC 方法進行比較。

表3 開放世界下的鏈路預測結果Table 3 Link prediction results in open-world
如表4 所示,在DBpedia 數據集下將ConMask[12]方法與BN-KGC 方法執行的鏈路預測結果進行比較。在DBpedia50k 數據集中,ConMask 的MR 和Hits@10 最佳,這是由于KGBN 的預測效果受初始KG 影響,當初始KG 規模較小時難以全面地獲取關系之間的相關性,從而導致BN-KGC 的預測效果略差于ConMask。在DBpedia500k 數據集下將BN-KGC 方法和ConMask 方法的鏈路預測結果進行比較,此時BN-KGC 方法預測結果的MR 優于ConMask 方法。實驗結果表明,當初始KG 規模較大時BN-KGC 方法可以較全面地獲取關系之間的相關性,從而有效完成開放世界KGC 任務。

表4 開放世界下的鏈路預測結果比較Table 4 Comparison of link prediction results in open-world
BN-KGC 方法也可用于封閉世界KGC 任務,為了測試基于BN-KGC 方法實現封閉世界KGC 的有效性,分別在3 個數據集下基于OpenKE 平臺得到TransE、TransH 及TransR 的三元組類型預測結果和鏈路預測結果,并將其與BN-KGC 進行比較。
封閉世界下的鏈路預測結果如表5 所示,從表5可以看出,在FB15k 數據集下,基于BN-KGC 方法預測的MR 結果達到77,僅排在TransR 之后。在DBpeida50k 數據集下,基于BN-KGC 方法預測的MR結果最佳。在DBpedia500k 數據集下,基于BN-KGC方法預測的MR 結果和Hits@10 均為最佳。三元組類型預測結果的準確率、召回率和F1 值如圖13 所示。從圖13 可以看出,在FB15k 和DBpedia500k 數據集下,基于BN-KGC 方法預測結果的準確率和F1 值最佳,在DBpedia50k 數據集下,基于BN-KGC 方法預測結果的準確率、召回率和F1 值均為最佳。實驗結果表明,本文方法同樣適用于封閉世界KGC 任務,即BN-KGC 方法具有有效性。

圖13 封閉世界下的三元組類型預測結果比較Fig.13 Comparison of prediction results of triple type in closed-world

表5 封閉世界下的鏈路預測結果比較Table 5 Comparison of link prediction results in closed-world
本節基于FB15k 和DBpedia 數據集,首先,測試KGBN 構建方法的時間效率,實驗結果表明,KGBN的結構構建執行時間主要取決于變量個數,且其中用于計算CPT 的執行時間最多;其次,在開放世界下進行三元組類型預測實驗,對比不同變量個數、不同查詢變量個數下的KGBN 預測結果,結果表明,本文方法能夠有效提升預測結果的召回率,并且在最好情況下預測結果的準確率高達0.88;然后,在開放世界下進行鏈路預測實驗,并將本文方法的實驗結果與現有的開放世界方法進行比較,結果表明,當初始KG 達到一定規模時,基于本文方法預測的結果在MR 指標上有所提升,達到159;最后,在封閉世界下分別進行三元組類型預測和鏈路預測任務,結果表明,基于本文方法預測三元組類型時的準確率和F1 值明顯高于基于表示學習的其他方法,并且在DBpedia500k 數據集下進行鏈路預測時,本文方法的MR 和Hits@10 分 別達到107 和0.66。
本文使用BN 描述KG 中同類實體涉及的關系之間的依賴性,提出KGBN 模型構建方法和基于KGBN 推理的三元組構造方法。實驗結果表明,該三元組構造方法針對新實體能夠同時構造多個三元組,有效提升KGC 任務中新知識的全面性。隨著KG 中知識的增加以及變化,關系間的依賴性也會發生相應變化,導致KGBN 推理的準確率降低。因此,如何將KG 中的新知識用于KGBN 構建,實時反映關系間的依賴性,進而提升KGC 方法的時效性,將是下一步的研究方向。