潘雨黛,張玲玲,蔡忠閩,趙天哲,魏筆凡,劉 均
1.西安交通大學 計算機科學與技術學院,西安 710049
2.陜西省大數據知識工程重點實驗室,西安 710049
3.西安交通大學 系統工程研究所,西安 710049
知識圖譜(knowledge graph,KG)通過由實體和關系組成的三元組(頭實體,關系,尾實體)來存儲大量事實,例如經典的通用知識圖譜YAGO(yet another great ontology)[1]、DBpedia[2]和Wikidata[3]等。知識圖譜上的推理是預測不完整三元組中缺失的實體或關系,并用于各種下游任務,如信息抽取[4]、語義檢索[5]、問答任務[6]和對話系統[7]等。典型的知識圖譜推理方法主要針對于關系和實體的表征與嵌入[8],如TransE[9]和RESCAL[10]等方法。然而,這些基于實體與關系表征的推理方法屬于黑盒模型,在推理過程中缺乏一定的可解釋性。因此在近幾年的知識圖譜推理中,規則學習已成為被廣泛研究的一種可解釋范式[11]。規則學習的方法旨在從結構化的知識圖譜中抽取一階邏輯規則,并將其運用于知識圖譜的補全與推理等任務中。
從知識圖譜中抽取的一階邏輯(first-order logic,FOL)規則以霍恩子句(Horn clause)[12]的形式呈現如下:
其中,bornInCity(X,Z)為構成規則的原子公式,知識圖譜中的關系bornInCity 在規則中為組成原子公式的謂詞。X、Y、Z為從知識圖譜中的實體泛化而來的變量。蘊含符號→從規則體指向規則頭,指代從條件到結論的推理過程。但是在從知識圖譜中抽取規則的過程中,依然有以下幾個問題。
第一,一階邏輯規則的結構信息表示為離散的符號,而知識圖譜上的推理大多由連續的嵌入向量來實現。不管是基于翻譯模型的方法,還是基于圖網絡的方法,知識圖譜上的推理都需要將實體與關系表示成為連續的低維向量,而后通過最大化得分函數的值來進行推理。如何將離散的符號信息與連續的向量空間進行融合,實現可解釋的知識圖譜上的推理是一個挑戰。
第二,在實現可微推理的過程中,使用的一階邏輯規則不僅需要從三元組中泛化得到,同時需要考慮構成一階邏輯規則的原子公式的順序以及變量信息。改變原子公式的順序會對可微推理的結果產生巨大影響。比如,對于一階邏輯規則:
該規則表示X是Z的兄弟,且Z是Y的父親,則X是Y的叔叔(伯伯)。如果將規則體中的原子公式進行順序的調換:
該規則表示的是X是Z的父親,且Z是Y的兄弟,則X是Y的叔叔(伯伯)。顯然,該規則是不合理的。如何將正確的原子公式信息融入推理過程是一個難點。
因此,提出了一種融合大規模預訓練語言模型的可微推理方法DRaM 來解決以上問題。為解決連續空間與離散空間的融合問題,使用一種可微的推理范式來將連續的嵌入推理過程與離散的規則符號進行融合;在編碼過程中,為解決一階邏輯規則中原子公式的順序問題,設計了一種基于大規模語言模型(large language model,LLM)的編碼方法。最終通過評估與最大化推理過程的得分來對連續的模型進行優化。
DRaM做出了以下三個貢獻:
(1)提出了一種知識圖譜上的可微推理方法DRaM,通過將嵌入向量與一階邏輯規則進行融合,緩解連續空間與離散空間的語義鴻溝。
(2)引入大規模預訓練語言模型的可微推理,融合了一階邏輯規則中的順序信息,使得一階邏輯規則更準確地提升可微推理的結果。
(3)通過在三個知識圖譜數據集上進行鏈接預測,驗證了DRaM的可行性與有效性。同時通過抽取出的規則及其置信度,增強可微推理過程的可解釋性。
知識圖譜上的表示學習方法通過對知識圖譜中的實體與關系進行嵌入表示,來用于下游推理任務。該方法主要可以分為三類,分別為基于翻譯模型的方法、基于語義分解的方法以及基于圖網絡的方法。
基于翻譯模型的表示學習將知識圖譜中的實體與關系表示為低維向量。在知識圖譜表示中廣泛使用的算法包含TransE[9]、RotatE[13]和ConvE[14]。RESCAL[10]、HolE[15]和DisMult[16]是基于語義分解的表示學習方法,將每個實體的語義信息表示為低維向量,且將每個關系表示為一個矩陣。這些方法通過嵌入模型來處理每個三元組,從而獲得知識圖譜中關系和實體的低維嵌入。此外,考慮到知識圖譜中的結構信息和鄰居信息,一些模型通過圖神經網絡表示整個知識圖譜。例如,R-GCN[17]和CompGCN[18]使用圖卷積網絡(graph convolutional network,GCN)來捕獲鄰居信息對關系進行建模。另外,一些融合文本嵌入信息的模型,例如pTransE[19]、DKRL[20]和StAR[21]同樣可以通過得到嵌入向量來解決知識圖譜上的推理問題。
知識圖譜上的規則學習方法主要可以分為兩類,分別為基于統計的方法和基于深度學習的方法。
1.2.1 基于統計方法的規則學習方法
最早的規則學習研究始于利用統計方法抽取一階邏輯規則。此類方法通過不同度量方式,比如支持度(support)、置信度(confidence)、相對概率估計(relative probability estimate)和其他簡單的度量方式篩選高質量的一階邏輯規則。比如,一階邏輯學習方法SHERLOCK[22]使用逐點互信息(pointwise mutual information,PMI)作為評估指標,并使用相對概率估計來評估Horn子句,以此抽取合理的一階邏輯規則。此外,Galarraga 等人提出的AMIE[23]和AMIE+[24]算法,通過計算部分完整性假設(partial completeness assumption,PCA)置信度從知識庫(knowledge base,KB)和知識圖譜中挖掘相關規則。AnyBURL[25]提取有效時間跨度內的規則,并通過置信度在更短的時間內獲取有效的一階邏輯規則。與AMIE與AMIE+算法相比,AnyBURL 的推理結果在性能上有所提高,但抽取的結果并不穩定。
1.2.2 基于深度學習的規則學習方法
隨著深度學習與知識圖譜表示學習的發展,一些規則學習方法融合深度學習,進一步從知識圖譜的事實中抽取一階邏輯規則。基于深度學習的規則學習方法例如RLvLR[26],是通過知識圖譜中關系與實體的嵌入表示來從大量一階邏輯規則中進行篩選。RLvLR調用知識圖譜表征的RESCAL模型來減少規則的搜索空間。Ho等人[27]不僅通過知識圖譜中已知的事實,并且通過從知識圖譜中抽取的規則推理出的事實來擴展規則。在此過程中,模型通過不同的知識圖譜表征模型來評估所添加的事實。此外,最近的規則學習方法也提出了針對邏輯規則的可微學習。例如,Yang 等人[28]提出了NeuralLP 來學習知識圖譜中的一階邏輯規則,提出了一種神經控制器系統來構成一階規則中的可微運算。Sadeghian等人[29]通過改進NeuralLP 提出DRUM 算法,利用雙向循環神經網絡(recurrent neural network,RNN)實現端到端的可微規則抽取。
1.2.3 基于大規模語言模型的規則抽取
隨著大規模語言模型在自然語言處理問題上獲得的優秀結果,一些規則抽取方法利用大規模語言模型的表征學習能力來提升推理過程的可解釋性。在邏輯文本的推理任務中,一些基于大規模語言模型的方法[30-31]通過挖掘上下文中的邏輯關系來抽取邏輯規則。例如,Logiformer[32]構建了兩種不同的基于Transformer 的圖網絡,通過挖掘文本中的邏輯規則解決邏輯推理問題。在知識圖譜的邏輯規則抽取中,大規模語言模型被用來提升實體與關系的表征,進而增強規則抽取的結果。例如,Lotus[33]利用已有的語言模型對實體的外部文本進行表征,通過融合知識圖譜的結構信息與文本語義信息抽取高質量規則。相較于傳統方法,此類方法不僅可以通過大語言模型構成可微的端到端規則抽取模型,并且更專注于利用大規模語言模型中的Transformer模塊對一階邏輯規則的原子公式以及序列進行編碼,更有利于一階邏輯規則的表征與抽取,進而增強邏輯推理的結果。
然而,目前的方法沒有利用大規模語言模型構建出一個端到端的可微模型在知識圖譜中抽取一階邏輯規則。
本文針對知識圖譜上的推理任務,提出了一種端到端的具有可解釋性的可微規則學習方法DRaM。此方法分為兩部分:可微推理以及規則學習。
知識圖譜上的推理定義如下:給定知識圖譜G={R,E,T},其中T?E×R×E為知識圖譜中的三元組集合,E為實體集合,R為關系集合。通過規則學習的方法抽取形式為式(1)的一階邏輯規則集合C。C中提取的規則可用于實現可微的知識圖譜上的推理,即預測三元組中缺失的實體,例如r(h,?)或者r(?,t)。圖1顯示了解決此任務的模型的具體實現方法。
不同于經典的基于黑盒的表示學習方法進行的知識圖譜的推理,基于規則的可微推理需要解決推理過程中的實體無關性問題。比如,在利用規則(1)進行推理時,G中的三元組cityOf(Beijing,P.R.C.)和cityOf(LA,U.S.)會泛化為原子公式cityOf(X,Y),以此解決實體無關性問題。DRaM 不同于基于統計計算的規則學習方法,它將包含置信度的離散的邏輯規則與連續的嵌入空間融合,通過梯度來對模型進行優化。
在規則學習融合可微推理的過程中,若將作為推理結果的原子公式看作一個問題query,則利用一個一階邏輯規則推理的過程如下:
其中,r1,r2,…,rn作為一階邏輯規則中的謂詞,其實質為知識圖譜G中的關系。此時,根據TensorLog框架[34],基于邏輯規則的推理可以用矩陣與向量的乘法來實現。
在推理過程中,對于給定的問題query 和已知的實體x,不同結果y的得分為規則集合中能夠得到結果y的所有規則的置信度之和。根據TensorLog 框架,在推理過程中,形如規則(4)的規則體可量化為:
其中,αm為第m個可能規則的置信度;βm為第m個規則的結構信息,主要由n個有順序的關系序列(r1,r2,…rn) 構成;Mrk為rk的謂詞矩陣,矩陣元素Mrk[i,j]的初始值為:
可微的推理過程旨在將融合規則的推理過程通過梯度下降來進行優化,因此在此過程中,將推理過程的得分函數f(y|x)定義為:
其中,ex向量初始值為將實體x映射成為one-hot 編碼,其第x個元素值為1;ey同理。此過程可舉例如下,對于規則(1)中規則體的推理過程bornIn-City(X,Z)∧cityOf(Z,Y),可以將實體轉化為向量,關系轉化為謂詞矩陣,并通過矩陣的乘法來模擬實例化的邏輯規則推理過程,表示為MbornInCity×McityOf×ey。進行矩陣與向量的乘法后,向量中非零項位置與ex相同的話,說明通過該規則可以得到從實體y到實體x的推理結果。規則的長度可以根據推理過程中做乘法的矩陣個數來實現。可微推理進行梯度優化的目標是將所有滿足query實體對的得分最大化:
其中,x、y分別為滿足query(X,Y)中變量X、Y的頭、尾實體。αm、βm分別代表學習到的規則的置信度與結構信息。通過這兩個參數可以確定用于推理的一階邏輯規則,該參數是在優化推理模型的過程中進行學習優化的。
然而,從式(5)來看,該得分函數依舊是離散的形式,不利于進行可微推理。因此,若將式(5)轉化為注意力權重的形式,則該權重可以進行可微學習:
根據上述得分函數的形式,考慮到規則的長度L可以進行變化,采用預訓練模型來對query的序列進行編碼,如圖2 所示。在query 的最后加入可學習的token,[END]。對于長度為L+1(L>0)的輸入q1,q2,…,qL,[END],將其送入預訓練語言模型M,得到隱藏層的輸出:
利用多層感知機(multilayer perceptron,MLP)模型進行維度的調整:
通過隱藏層的輸出向量,得到推理過程中所用到的規則參數{al|1 ≤l≤L}和{bl|1 ≤l≤L+1}:
其中,W為可學習的轉換矩陣,?為偏置向量。由兩個注意力al和bl,可以得到求解query時規則體的第l個謂詞的向量:
當l′為0時,初始推理向量為ey。對于用于推理的規則,每一個在規則體序列中的原子公式代表推理的“一步”l。因此,最終可微的得分函數可表示為:
通過最大化可微推理過程中的得分函數,可以得到增強知識圖譜上的推理過程的規則。參考NeuralLP 中的規則還原算法,從兩個注意力參數al和bl抽取顯式的規則。最終,通過該算法得到每個可能規則的αm、βm,并將連續的向量al和bl恢復為離散的一階邏輯規則。
本文比較了DRaM 與經典的知識圖譜上的推理方法,包含基于表示學習以及基于規則學習的方法。另外,通過消融學習證明了DRaM的有效性。最后,通過其他實驗,包括參數分析以及案例分析實驗,驗證了該方法的效果。
知識圖譜上的可微推理實驗在三個不同的數據集上進行[35]。統一醫學語言系統(unified medical language system,UMLS)由生物醫學中的概念組成,如藥物和疾病名稱,以及它們之間的關系,比如如何診斷及治療。親屬關系(Kinship)中的三元組為澳大利亞中部土著部落成員之間的親屬關系。家族數據集(Family)包含多個家族個體之間的血緣關系。每個數據集的信息如表1所示。

表1 數據集信息Table 1 Dataset statistics
在對比過程中,選擇了經典且具有代表性的知識圖譜上的推理方法作為基線方法。這些方法具體分為兩類,分別是可微推理方法與表示學習方法。
可微推理方法:NeuralLP 和DRUM 為知識圖譜上的可微推理方法。NeuralLP 提出一種神經控制系統,在知識圖譜的推理過程中,可微地挖掘一階邏輯規則。DRUM通過利用雙向循環神經網絡(BiRNN)對NeuralLP進行拓展。
表示學習方法:選擇了最普遍的基于表示學習的方法進行推理性能的比較。此種方法包含基于翻譯模型的方法、基于語義分解的方法、基于卷積層與全連接層的方法以及基于預訓練語言模型的方法。
(1)基于翻譯模型的方法利用分布式表示來描述知識庫中的三元組,如TransE[9]、TransH[36]、TransR[37]、TransD[38];
(2)基于語義分解的方法將知識庫中關系表示為矩陣,如DisMult[16]、ComplEx[39];
(3)基于卷積層的方法解決全連接層在訓練時的過擬合問題,如ConvE[14];
(4)基于預訓練語言模型的方法通過對三元組語義信息以及結構信息編碼來對知識圖譜進行表示,如KG-BERT[40]與StAR[21]。
正如之前的介紹,實驗通過知識圖譜上的推理結果來判斷模型的有效性。知識圖譜上的推理通常為鏈接預測,用以下幾個指標來評估有效性:Hits@k,平均倒數排名(mean reciprocal ranking,MRR),平均排名(mean ranking,MR)。
Hits@k表示測試集S中目標三元組的得分在候選三元組中得分排名在前k個的比例:
MRR計算目標三元組在候選三元組中排名的平均倒數:
MR 計算目標三元組在候選三元組中排名的平均倒數:
本節使用Hits@1、Hits@10 和MRR 來全面展示DRaM的有效性。
該方法實現的硬件環境是Tesla V100 GPU。深度學習的平臺為Python 3.6 與tensorflow1.14。其他參數設置如下:預訓練模型含有12 個Transformer層、768維隱藏層以及12個多頭注意力機制。最大序列長度為256,學習率為0.1,訓練批次為64,Dropout為0.1,優化器選擇Adam[41],迭代次數為10。
對于可微的知識圖譜上的推理,將DRaM與其他方法進行性能比較,具體結果如表2和表3所示。

表2 可微推理比較結果Table 2 Comparison results of differentiable reasoning

表3 可微推理與表示學習方法比較結果Table 3 Comparison results of differentiable reasoning and representation learning
(1)與可微推理方法結果比較
表2中的結果說明了DRaM在鏈接預測中能取得有競爭力的效果。例如,與經典的可微方法NeuralLP和DRUM比較,對于鏈接預測的指標Hits@1與MRR,雖然沒有達到最優結果,但是對于Hits@3 與Hits@10,DRaM幾乎已經達到最佳的推理結果。尤其在數據集Kinship上,Hits@3與Hits@10已經到達了1.00,充分說明了DRaM 的有效性。造成這種結果的原因可能是大語言模型對于計算三元組的得分函數上有很大的幫助,而鏈接預測的排名是由模型中的得分函數來進行排序,因此所有三元組的整體得分排名都在前10。但是對于每個三元組預測時的準確率,也就是Hits@1,還有待提高。
DRaM 在三個數據集上MRR 與Hits@1 的推理結果相較其他基線方法結果較低。兩個指標相較于Hits@3 和Hits@10 主要反映了三元組得分的準確程度。出現該現象主要原因是大規模語言模型的編碼部分會被數據集中謂詞的頻率影響[42]。在DRaM中,可微的規則抽取過程會將推理過程用一階邏輯公式(4)來表示,從而通過謂詞向量得到推理向量,并得到推理過程中抽取到的規則與其置信度。而對于Family 數據集,有限的關系個數會導致有限的謂詞,每個謂詞出現頻率不同,會對query 的表征產生偏差。在Family 數據集中,12 個謂詞不足以涵蓋所有的家庭成員關系。例如,以下一階邏輯對應的推理過程:
在12 個謂詞中沒有可以正確匹配father_in_law 語義的答案。因此,在對query表征時不同謂詞出現頻率會使大規模語言模型影響表征結果,進而影響抽取的一階邏輯規則與三元組的得分,尤其是影響得分的準確程度,如MRR 與Hits@1 的結果。而對于Hits@3和Hits@10,盡管不能準確得到其得分,但query的語義信息也與謂詞father_in_law語義有一定的相似性。
(2)與表示學習方法結果比較
表3 中的結果說明了DRaM 與基于表示學習的方法相比也能取得較好的結果。例如,對于平均排名指標MR,相比于基于翻譯模型和基于語義分解的方法,DRaM可以得到具有競爭力的結果。對比同樣引入大語言模型的方法KG-BERT和StAR,雖然指標MR略低于這兩種方法,但是對于Hits@10,不管是基于翻譯模型、基于語義分解模型的方法,還是基于大語言模型的方法,DRaM都可以得到最優的結果。同時,將DRaM 與黑盒的表示學習方法比較,可以獲得一階邏輯規則,為知識圖譜上的推理過程提供可解釋性。
表4 的結果說明了在DRaM 中運用大規模預訓練語言模型LLM與MLP的作用,同時在UMLS數據集上進行了消融實驗。分別去掉LLM以及MLP后的兩種方法表示為“DRaM-w/o-LLM”和“DRaM-w/o-MLP”。通過知識圖譜上的推理結果可以看到,當去掉LLM后,鏈接預測指標Hits@10下降了16.0個百分點,MR 上升了375.9%。去掉MLP后,鏈接預測指標Hits@10下降了35.7個百分點,MR上升了628.9%。由此結果可以驗證DRaM中主要模塊的有效性。

表4 消融實驗結果Table 4 Ablation experiment results
本節通過對重要參數的分析來說明參數選值對可微推理的重要性。
(1)對規則最大長度的分析
在DRaM中,通過抽取一階邏輯規則來進行可微推理。這一過程中,規則的長度以及數量會影響可微推理的效果。圖3(a)記錄了當抽取的規則最大長度L=2,3,4 時對鏈接預測結果的影響。從推理結果可以看出,當L=3 時,DRaM可以獲得最佳的推理效果。這說明完整且較長的一階邏輯規則可以得到更好的推理結果,但是過多的規則也會存在噪聲,影響模型效果。

圖3 不同參數對DRaM可微推理結果的影響Fig.3 Impact of different parameters on differentiable reasoning by DRaM
(2)對預訓練語言模型類別的分析
考慮到方法實現的效率與復雜度,比較了不同的大規模語言模型對可微推理結果的影響。這里,選擇BERT(bidirectional encoder representation from transformers)[43]和輕量級的ALBERT(a lite bidirectional encoder representation from transformers)[44]作為預訓練語言模型對DRaM 進行編碼。如圖3(b)所示,可以看出,不同的LLM 會影響可微推理的結果。對于4個鏈接預測指標,Hits@1 在使用ALBERT 時相比較BERT 結果較低,其他指標如Hits@3、Hits@10 和MRR只是略低于BERT。
(3)對嵌入向量維度的分析
除此之外,比較了不同的嵌入向量維度對可微推理結果的影響。如圖3(c)所示,記錄了當嵌入向量維度分別為128、256 以及512 時鏈接預測的結果。從記錄的結果可以得到,當維度為128 時,鏈接預測中的Hits@1 指標較低。而當維度為512 時,Hits@1同樣會有較為明顯的下降。當嵌入向量維度為256時,DRaM可以得到最好的可微推理結果。這說明嵌入向量的維度會對三元組的得分以及鏈接預測的準確率有較大影響。
DRaM 在進行可微推理的時候可以抽取出一階邏輯規則。每個一階邏輯規則都有置信度來表示其合理性。表5 為在數據集UMLS 和Family 進行可微推理的過程中,DRaM抽取出的一階邏輯規則。如表中所示,當query 為Isa 時,抽取出的置信度更高的規則更加合理。比如,對于規則Isa(B,A)←equal(B,A),置信度值為1,這條規則是一條正確的規則。而對于置信度為0.5 的規則Isa(C,A)←Indicates(C,B) ∧Indicates(B,A),Indicates(C,B)意為“表示”,但不代表完全相同,因此,置信度并不為1。這說明通過DRaM抽取出的置信度和規則結構合理。

表5 規則抽取結果Table 5 Extracted rules with confidences
本文在知識圖譜的推理任務上,提出了一種可微的推理范式,通過融合一階邏輯規則對知識圖譜上的推理提供了可解釋性。在實現過程中,針對連續空間與離散空間的鴻溝,設計得分函數對推理結果進行評估,同時融合離散的邏輯符號公式以及連續的嵌入向量空間;對于一階邏輯規則中原子公式的順序問題,通過引入大規模語言模型對邏輯規則進行編碼,提升規則融合效果。此過程不僅能夠在三個知識圖譜數據集上得到較好的推理結果,同時可以為模型提供可解釋性。
未來,將會在更多的知識圖譜上驗證方法的有效性,比如通用知識圖譜、教育領域的知識圖譜。同時也會在更多場景驗證可微推理的作用,比如歸納學習領域等。