论文浅尝 | 神经符号推理综述(下)
筆記整理 |?許澤眾,浙江大學在讀博士
3、神經驅動的符號推理
相比于之前的兩種類型,神經驅動的符號推理的目的是挖掘規則,而神經網絡在其中扮演的作用是解決純符號推理的不確定性,并且能夠有效的減少搜索空間。這種類型的方法的基本思路是找到query的多跳鄰居節點,然后根據概率從這些鄰居節點中選擇正確的答案。這類方法大致可以分為三類,基于路徑的、基于圖的和基于矩陣的。
3.1、基于路徑的神經符號推理
如圖是基于路徑方法的基本方式,在每一步上都會選擇一個可能的路徑。
這一類的方法的較早嘗試是Path-Ranking Algorithm(PRA),需要注意的是這個方法是純symbolic的,但是其余方法大多借鑒了這個方法,所以先簡要介紹一下這個方法。 核心思想是利用連接兩個實體的路徑去預測他們之間是否有潛在的關系。但是每條路徑的重要程度不同,所以需要對每條路徑的分配合適的權重。
給定頭實體h和尾實體t,PRA通過執行具有l步長的重啟算法的隨機游走來獲得從h到t的長度為l的路徑,然后計算實體對(h ,t)遵循路徑p時候的得分。最后,PRA通過將不同路徑的分數作為對應特征值的線性回歸模型來估計不同路徑的權重。
PRA依賴KG中存在的關系來尋找路徑,下面兩篇文章就是通過不同的方式來添加KG中的關系,分別是利用web的文本信息和語義庫中的單詞來補充KG中的關系。
Reading the web with learned syntactic-semantic inference rules.
Improving learning and inference in a large knowledge-base using latent syntactic cues.
以上的文章只能處理見過的關系,同時算法中的路徑生成,是針對每一種關系的,所以針對不同的關系,需要訓練不同的模型分別計算每種關系對應的多條路徑的權重,那么很明顯這種方式的局限性是比較大的。
于是Compositional vector space models for knowledge base inference提出用一個RNN模型來融合路徑上的不同關系。使用了PRA來挖掘各種路徑。找到這樣的路徑以后呢,使用RNN來將在這條路徑中出現的關系的embedding融合起來,然后讓融合以后的embedding更像head relation。比如這個例子里面的就是融合了一條路徑的embedding。這里的embedding都是隨機初始化的。這種方法的相較于PRA,泛化性更強,它能夠處理沒有見過的路徑,也能處理訓練時沒有將該關系作為head relation的推理。
另外一種方法Chain-of-Reasoning,相比于上面的方法,他在處理路徑embedding的時候,將不同的路徑信息融合了起來,沒有僅僅使用上面的做法,即只使用了一條路徑,而考慮了多條路徑,并且融合路徑的方式也有很多種方式。
以上的方法都需要遍歷路徑,當圖譜較大的時候,這種路徑會非常非常多,而上述方法沒有對路徑進行評估,所以搜索空間很大。DeepPath使用了強化學習的方法來完成這件事。
基本思想是將推理過程建模為馬爾可夫決策過程,和agent交互的環境狀態是由當前節點的embedding和目標embedding來構成的。它的獎勵函數是手工設計的,考慮了不同的方面,另外,一開始使用了監督學習預訓練防止搜索空間過大。
DeepPath 首次將強化學習方法引入到知識圖譜推理中,它對知識圖譜進行簡單的采樣,訓練策略網絡;并通過手工設計的獎勵函數對策略網絡進行再訓練。DeepPath 的主要任務是給定一個知識圖譜中的實體對 (entity1, entity2),使模型推理從 entity1 到 entity2 的路徑評估模型的主要任務是鏈接預測和事實預測。DeepPath 中存在一定問題。例如,它的獎勵函數是手工設定的,這種手工設定的策略可能并不是最優的,并且針對不同的數據集可能需要不同的設置;它的采樣方法可能導致策略網絡出現過擬合現象;強化學習環境中的狀態使用 TransE 簡單地進行表示,表征能力可能不足。
AnyBURL在使用強化學習完成路徑抽取以后,會將其抽象成具體的路徑,并且決定生成的不同規則中哪些是置信度高的規則,以下是一個根據路徑抽象出規則的例子:
其余的強化學習方法例如MINERVA解決了其他的一些問題,Deeppath完成的是給定實體對從而推導實體之間的關系路徑,而不能在給定頭實體和關系的情況下推導出尾實體。MINERVA定義state的時候,沒有使用answer的embedding,所以這里可以給定頭實體和關系來查找答案,使用hard reward來作為激勵。
Mutil-hop使用了相似度來代替hard reward。同時受到drop-out的啟發,在選擇過程中mask了一部分的選擇來防止過擬合。
CPL在選擇的時候除了考慮了KG中的信息,還考慮了文本庫中的信息。
3.2、基于路徑的神經符號推理
基于圖的推理,GraIL利用圖神經網絡從抽取的子圖中來推理。基本步驟如圖,首先抽取head和tail周圍的k跳鄰居節點,然后對于每個鄰居節點,用一個tuple來表示其特征,其中有兩個元素,代表該節點到head和tail的距離。
這里借鑒了R -GCN的方法來建模對多關系圖的消息傳遞,區別在于增加了一個注意力機制,該注意力機制不僅僅和兩個相鄰節點以及它們之間的關系有關,也和需要被預測的目標關系有關。最終利用兩個目標節點的表示,整個圖的表示,以及被預測被預測關系的表示,對該目標節點之間具有該目標關系進行打分,得分最高的目標關系為被預測關系。個人感覺這種方法的symbolic的成分比較少。
DPMPN提出基于動態子圖的方法,將顯示推理技術與圖神經網絡有效融合,開發出圖版的注意力機制,用于引導動態剪枝的子圖構建過程。其設計出兩層圖神經網絡架構,下層是基于全圖隨機抽樣的圖神經網絡,上層是基于批輸入多子圖的圖神經網絡,連接兩個圖神經網絡層并指導子圖構建的是一種圖版的注意機制,更準確的說,是一種注意力轉移機制(Attention Transition Mechanism)。深度學習網絡通常是一個超大的網絡,動用大量的計算節點及上百萬的參數,但是針對每一個具體的例子,人類通常只用很少若干點來作解釋,大量非必要的信息被過濾掉。我們看到的解釋部分,實際反映的是我們的意識狀態,它是從下層的潛意識全狀態中通過某種篩選機制自動涌現出的可自我識別的特征,即解釋,并通過主觀的有序組合形成我們的推理過程,讓我們能夠從紛繁復雜的信息中迅速捕捉到最相關特征,大大降低后續作顯式推理所需的計算復雜度。
3.3、基于矩陣的神經符號推理
基于矩陣的推理源于tensorlog框架,但是真正將其有效利用的當屬neural-LP。
在tensorlog框架中,實體使用onehot向量表示,每一種關系都使用鄰接矩陣表示,那么一個head relation所對應的若干條關系可以表示成如下形式:
本質上是通過矩陣來找到需要預測的triplet的不同層的鄰居節點,并且對于每條規則有的不同置信度來選擇概率最大的實體作為結果。但是這個框架本身的問題在于搜索空間過大,并且及其耗時。
于是Neural-LP將上面的式子改寫為:
本質上是在規定了規則長度以后,在每一步上都給所有的關系分配一個的權重,這樣最后的結果向量實際上是得到了head entity的T跳鄰居節點,只不過每一個的權重不同,最后選擇權重最大的作為預測結果。這個方法將tensorLog中離散的過程轉為了可微的過程,并且通過端到端的框架直接學習到了規則。
DRUM的核心思想與Neural-LP一致,只是加了一些trick來使得尋來呢更加簡單。
NLIL則注重于挖掘形式更加豐富的規則:
Neural-Num-LP則通過設計以下算子使得neural-LP框架能夠學習到包含數值對比的規則。
總結
以下是這篇文章中提到的神經符號推理的所有模型和方法。總體而言,第一種神經符號推理,即符號驅動的神經推理,旨在學習實體和關系的嵌入。利用邏輯規則增加高置信度三元組的個數,提高embedding的效果。因此推理過程仍然是基于embedding的,這缺乏可解釋性。第二類,即符號驅動的概率推理,通過以KGs為基礎的規則來限定邏輯規則。隨著KGs中實體和關系的增加,基礎原子/規則將急劇增加,從而導致推理和學習的計算成本增加。此外,這些方法不會產生新的規則。以上兩種方法都以答案預測為唯一目標。不同的是,在符號驅動的概率推理中,規則被用來作為預測答案的特征,而在符號驅動的神經推理中,規則被用來生成更多的事實。第三種,即神經驅動的符號推理,以答案預測和規則學習為目標。為了達到這一目的,它根據從頭部實體開始的路徑、圖形或矩陣來推斷答案,從而增強了預測答案的可讀性。然而,隨著跳數的增加,路徑、子圖或矩陣乘法變得更加復雜,使得預測性能對知識圖的稀疏性更加敏感。
?
?
OpenKG
OpenKG(中文開放知識圖譜)旨在推動以中文為核心的知識圖譜數據的開放、互聯及眾包,并促進知識圖譜算法、工具及平臺的開源開放。
點擊閱讀原文,進入 OpenKG 網站。
總結
以上是生活随笔為你收集整理的论文浅尝 | 神经符号推理综述(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开放开源 | DeepKE:基于深度学习
- 下一篇: 我对JVM的理解