論文題目:Differentiable Reasoning on Large Knowledge Bases and Natural Language
論文來源:AAAI 2020 倫敦大學, Facebook
論文鏈接:https://arxiv.org/abs/1912.10824
代碼鏈接:https://github.com/uclnlp/gntp
關鍵詞:可微推理,機器推理,知識庫,自然語言文本,attention
1 摘要
本文解決的是基於知識庫(KB)的推理任務。
基於知識庫的推理可以用於許多下游任務,例如機器閱讀、對話和問答。
一般的聯合學習表示以及文本轉換的模型都是數據低效的(data-inefficient),並且難以分析它們的推理過程。
使用端到端的可微推理系統,例如Neural Theorem Provers(NTPs)[1~2],可以解決上述問題,但只能用於小型的KBs。
可微指的是目標函數可微,因此可以使用反向傳播算法優化模型。
本文提出NTPs的擴展Greedy NTPs(GNTPs),擺脫了原有NTP的複雜性和可擴展性的限制,使其能夠應用於真實世界的數據集。具體來說,是通過動態構建NTPs的計算圖實現的,並且只包含推理過程中最有希望的證明路徑,從而得到更有效的模型。
然後作者提出一個方法,通過將邏輯事實和自然語言句子嵌入到共享的向量空間,實現在KBs和文本上的聯合推理。
實驗結果顯示,GNTP需要的計算成本比NTP小,但在鏈接預測方面有着和NTP可比擬的結果,並且爲預測提供瞭解釋,提高了模型的可解釋性。
2 引言
(1)傳統的自動推理方法
自然語言理解(NLU)和機器閱讀(MR)旨在建立能夠閱讀文本、抽取有意義的知識並能在其上進行推理的模型和系統。這種能力促使了新知識的綜合以及驗證和更新給定的assertion的可能性。
傳統上,應用於文本的自動推理需要使用自然語言處理工具,將其編譯成知識庫的結構化形式。
然而,編譯後的KB往往是不完整的、模糊的、有噪聲的,這就影響了標準演繹推理的應用。
(2)針對機器閱讀的相關研究以及其侷限性
已經有許多關於MR的研究解決了上述的問題,例如Natutal Logic、語義分析、自然語言推理和識別文本蘊涵以及問答。
但是這些方法有一些侷限性:(1)它們依賴於大量的標註數據來近似數據的隱式分佈。當訓練數據不充足或者模型的參數先驗不合適時,模型的泛化能力就較差。(2)這些方法不能爲正確的預測結果提供解釋。
(3)神經模型和符號推理相結合
一些方法將神經模型和符號(symbolic)推理相結合(兩者的優勢和劣勢可互補)可以解決上述的問題。
1)符號模型
雖然符號模型在訓練數據較少時也有着很好的泛化能力,但是當觀察結果有很多噪聲或模棱兩可時,當領域的屬性是未知的或難以形式化時,這類模型就不能得到理想的結果。
這些都是考慮自然語言的情況
2)神經模型
相比而言,神經模型對於噪聲和模糊性有着更好的魯棒性,但是可解釋性較差,這使得模型不能提供解釋或者納入背景知識。
3)神經符號(neuro-symbolic)系統
最近的神經符號系統的工作已經在端到端的可微推理模型方面取得了進展,這些模型可以通過反向傳播進行訓練,同時保持了可解釋性和泛化能力,繼承了符號模型和神經模型兩種方法的優點。
(4)Neural Theorem Provers(NTPs)
在神經符號系統中,NTPs是基於Prolog編程語言的反向鏈式算法的端到端的可微演繹推理機,其中原子間的離散統一(discrete unification)替換成了計算其嵌入相似度的可微運算符。
NTPs通過將預測錯誤反向傳播到規則表示,可以從數據中學習到可解釋的規則。此外,NTPs中的證明過程是可解釋的——得分最大的證明路徑(proof path)表示在推理過程中使用了哪些規則和事實。
然而,由於計算複雜度的原因,NTPs只能成功應用於涉及的數據集較小的任務,可擴展性較差。而且,大多數人類知識在KB中是不可得的,但是在自然語言文本上直接進行自動的推理任務又是很困難的。
(5)本文提出
作者提出瞭如下的方法解決了上述的問題:
1)通過減少候選證明路徑的數目並引入用於規則歸納的注意力機制,減小了NTPs的時間和空間複雜度;
2)提出面向自然語言的NTPs的擴展,通過使用端到端的可微分讀取部件,在共享的空間中聯合嵌入謂詞和文本表面模式(textual surface patterns)。
本文提出的GNTP模型架構如下所示:
3 端到端的可微性證明
NTPs遞歸地構建了一個神經網絡,枚舉了所有可能的證明路徑(proof paths)來證明給定知識庫上的一個query,並通過max pooling聚合所有的證明分數。
NTPs依賴於3個模塊:
a unification module比較了邏輯原子(logic atoms)的子符號(sub-symbolic)表示;
互相遞歸的or和and模塊,聯合枚舉了所有可能的證明路徑,在最後的聚合之前,選擇得分最高的一個。
接下來介紹這些模塊,以及用於從數據中學習模型參數的訓練過程。
我們假定KB 包括形式爲的一系列事實,表示邏輯原子(logical atom),其中是關係類型,是它的要素(arguments)。該KB還包括如下形式的規則:,例如,表示規則,意味着隱含着,其中是一般的量化的變量。
(1)Unification Module
在反向鏈推理算法中,unification是匹配兩個邏輯原子的操作符,例如和。
離散的unification檢查組成兩個原子的元素是否相等(例如),並通過替換將變量綁定到符號上(例如 )。
在NTPs中,unification通過使用可微的相似度函數,比較兩個原子的嵌入表示,來對兩個原子進行匹配。這裏的相似性函數是高斯核函數,對有相似語義的不同符號進行匹配。
形式上,創造了一個神經網絡模塊,通過比較兩個原子的嵌入向量,對兩個原子進行匹配。
例如,給定一個目標,一個事實和一個證明狀態(proof state)(其中是替換集合,是證明分數),unify模塊使用高斯核比較了和的嵌入表示,更新了綁定到替換集合的變量 ,並計算得到了新的證明分數 和證明狀態。
(2) OR Module
Or module計算了一個知識庫中一個目標和所有事實和規則頭(rule heads)間的unification,然後在相應的規則主體(rule bodies)中遞歸地調用and module。
對於KB 中的每個規則,整合了目標和規則頭,並且調用and module來證明主體中的原子,保持對最大證明深度d的跟蹤:
事實(facts)是沒有變量和主體的規則,例如
例如,給定一個目標和一個規則,其中。該模型將目標和規則頭統一起來,並調用and module來證明規則體中的子目標。
(3)AND Module
And module遞歸地證明了規則體中的列表形式的子目標(sub-goals)。給定第一個子目標和其餘的子目標,模塊將根據中的可替換值,對中的變量進行替換,並且在上調用or module。
使用最終的結果狀態,通過遞歸地調用and module,證明中的原子:
例如,當在上述提到的例子中規則體上進行調用,對於子目標,and module將使用常數替換其中的變量,並調用or module,它的結果狀態將是and module在下一次調用的偏置(basis)。
(4)Proof Aggregation
在構建了用於評估KB 上的目標的所有可能的證明路徑(proof paths)的神經網絡後,NTPs選擇證明分數最大的證明路徑:
其中是預定義的最大的證明深度(maximum proof depth)。初始的證明狀態設爲,對應於空的替換集合和proof socre爲1。
(5)訓練
在NTPs中,遞歸地mask掉KB中的事實並試圖使用其他的事實變量和規則證明出它們,在最終的證明分數上最小化交叉熵損失學習得到嵌入表示。得到負樣本的過程記爲。損失函數如下所示:
NTPs還可以學習到可解釋的規則,有學者指出:規則可以從指定的規則模板中學習得到,例如,其中。
其中參數表示謂詞規則(rule-predicate)的嵌入,可通過最小化式(4)中的損失學習得到,並通過搜索嵌入表示最接近的已知謂詞對其編碼。
4 在大規模KBs上有效的可微推理
NTPs具有演繹推理的能力,得分最高的證明路徑可以爲給定的預測提供可讀(human-readable)的解釋。
然而,枚舉並計算出給定目標的所有有深度界限的證明路徑(bounded-depth proof paths),如式(3)所示,計算量是很大的,不易計算。
對於每個目標和子目標,這一過程需要將和KB中所有的規則頭和事實的表示統一起來,即使對於中等大小的KB,這樣的計算也是非常耗時的。
此外,通過反向鏈進行規則的擴展(例如 )會增加需要證明的子目標數目,因爲規則體中所有的原子都需要被證明,而且是一個自由變量(free variable)有許多可能的綁定。
給定一個子目標(例如)我們考慮兩個問題,我們需要高效地選擇出:1)個最有可能證明子目標的事實;2)要擴展的個規則,以達到高分的證明狀態。
(1)事實的選擇
使用知識庫中的所有事實統一一個子目標,在現實中是不可行的,因爲知識庫中的事實數量可以到達百萬或者十億級別。
我們將識別出爲子目標提供最大證明分值的事實,轉換爲如下的最優化問題:
事實和目標的統一分數(unification score)是使用高斯核函數,計算它們的嵌入表示的相似性得到的。
給定一個目標,NTPs會計算和KB中每個事實的統一分數(unification score),計算量是非常大的。然而,只返回了一個最大的證明分數。這就意味着,在推斷階段,我們只需要返回正確的輸出最大的證明分數。類似地,在訓練階段,使用單個最大的證明分數,在給定參數時也可以計算出證明分數的梯度:
本文將給定子目標和事實間最大統一分數(unification score)的計算視爲一個最近鄰居搜索問題(NNS)[3]。這是可行的,因爲NTPs使用的高斯核是負歐氏距離的單調的變換。
(2)規則的選擇
使用相似的方法選擇出激活哪些規則來證明給定的目標。
我們發現將與最接近的規則頭統一起來,例如和,生成分值高的證明狀態的可能性更大。
這是一種符號推理和可微推理間的權衡。符號推理只在heads與目標完全匹配時擴展證明路徑,可微推理則會探索所有的證明路徑。這促使作者提出了一種啓發式的方法,即在推理和學習過程中,動態選擇共享模板中的規則。
在實驗中,這一用於選擇證明路徑的啓發式方法,能夠在目標存在的情況下恢復有效的證明,同時大大降低了可微證明過程的計算複雜度。
作者將KB 分割成了。將中共享相同模板的規則和事實或者high-level結構劃爲一組,例如 中的一個元素包含所有有着如下結構的規則:,其中。
將or操作重新定義如下:
也就是說,我們不將所有的規則頭和子目標統一起來,而是僅僅考慮那些是鄰居的規則頭。
(3)Learning to Attend Over Predicates
儘管NTPs可以用於從數據中學習到可解釋的規則,但是Rockt¨ aschel和Riedel提出的方法[4]太低效了。 例如,規則,會爲模型引入個參數,其中表示嵌入表示的維度,若較大時,計算得到這樣的嵌入向量會很低效。
作者提出使用注意力機制關注已知的謂詞,用於定義rule-predicates embeddings 。令表示已知的謂詞集,是謂詞的嵌入表示矩陣。
我們定義,其中是和謂詞相關的可訓練的注意力權重集合。
當已知的謂詞數量較少時(),爲每個規則引入的是個參數而不用個參數,是規則中可訓練的謂詞嵌入的數量。這樣就提高了模型的參數高效性。
5 在知識庫和自然語言上聯合推理
GNTPs可以實現在知識庫和自然語言語料上的聯合推理。
我們假定知識庫由事實、規則和文本提及(textual mentions)組成。一個事實由一個謂詞符號和元素的序列組成,例如。一個提及(mention)就是知識庫中共現的兩個實體間的文本模式,例如“London is located in the UK”。
我們將連接兩個實體的每個文本表面模式(textual surface pattern)視爲一個新的謂詞,並使用端到端的可微讀取組件將其嵌入到維的向量空間中,從而實現使用知識庫中的事實和規則同時表示提及(mentions)。
例如句子“United Kingdom borders with Ireland”可以轉換成如下的提及:。轉換過程的實現步驟如下:首先識別出包含知識庫中實體的句子/段落;然後考慮實體間的文本表面模式,將其作爲一個額外的關係類型。
使用look-up操作將中的謂詞編碼到謂詞嵌入矩陣中,使用模塊編碼文本表面模式,其中是文本表面模式中出現的符號以及單詞的單詞表。
給定文本表面模式,例如。編碼模塊:
1)首先使用token嵌入矩陣編碼中的每個token ,得到一個模式矩陣。
2)然後使用端到端的可微編碼器,從中生成一個文本表面模式嵌入向量。
3)爲了評估一個簡單的編碼結構是否有助於模型,作者使用的模塊,通過mean pooling聚合了組成文本表面模式的tokens的嵌入:。
本文使用的可微結構是簡單有效的詞袋模型(Bag of Embeddings Model),實驗證明模型可以得到非常準確的結果。
6 實驗
1、數據集
(1)Benchmark datasets
Countries, Nations, UMLS, Kinship
(2)大型數據集
WN18, WN18RR, FB122
2、評估指標
- AUC-PR(Area Under the Precision-Recall Curve)
- MRR(Mean Reciprocal Rank)
- HITS@m
3、實驗任務
問答、鏈接預測
4、對比方法
-
NTP
-
以及兩個神經符號(neuro-symbolic)推理系統:
- MINERVA:使用強化學習算法搜索答案
- NeuralLP:將推斷任務編譯成可微操作的序列
- 還和兩個適用於較大數據集的state-of-the-art的鏈接預測器:ComplEx和DistMult進行了比較
5、實驗結果
(1)和baseline對比的實驗結果
(2)有生成的mentions的實驗結果
爲了評估整合textual surface patterns的不同策略,作者在NTPs中以mentions的形式進行了如下的研究。
用人工生成的textual mentions替換了來自Countries S1-S3數據集中的不同數量的訓練集三元組。(更多細節見附錄)
例如,事實可能被替換成textual mention “UK is neighbouring with Ireland”。實體UK和Ireland是元素,它們之間的文本可視爲一個新的邏輯謂詞,就可以形成一個新的事實“X is neighbouring with Y”(UK, Ireland)。
然後,我們評估了在GNTPs中繼承textual mentions的兩種方法:1)將它們作爲事實添加到KB中;2)使用編碼器解析這一mention。結果如圖3所示:
從圖中可以看出,本文所提出的編碼模塊和簡單地將mentions作爲事實添加到KB中相比,結果的準確性更高。
(3)鏈接預測實驗結果
在FB122數據集上的鏈接預測結果如表2所示。結果顯示當不知道規則的時候,GNTPs比neural link predictors表現更好。GNTPs能夠從數據中歸納出和預測結果有關規則。
(4)驗證集結果舉例
作者還在WN18和WN18RR數據集上評估了GNTP。表3展示了來自於WN18驗證集三元組的例子,以及它們的GNTP證明分數和證明路徑。
可以看出GNTPs可以學習並利用規則,例如和。
而且GNTP還可以基於實體表示間的相似性,爲給定的事實找到non-trivial explanations。例如,它可以通過利用ARFICAN_COUNTRY的語義相似性,解釋得出Congo(剛果)是Africa的一部分。
7 結論
NTPs結合了基於規則的模型和神經模型的優點,但是它們不能在大型知識庫和自然語言上進行推理。
本文克服了這些限制,主要思想是:在構建動態計算圖的過程中,僅僅考慮和最大的證明分數相關的證明路徑的子集。
本文提出GNTP模型,計算的有效性和以往的工作相比優化了幾個量級,並且實現了和NTPs可比擬的預測效果,甚至超越了NTPs。
GNTPs通過將邏輯原子(logic atoms)和textual mentions嵌入到同一個向量空間,實現了在大型知識庫和自然語言文本上的端到端的可微推理。
此外,GNTPs具有可解釋性,可以從邏輯證明的角度提供有規模的解釋。
本文解決的是知識推理問題。
本文的亮點在於:實現了基於知識庫和自然語言文本的聯合推理,並且提高了模型的可解釋性。
知識庫中的包含的知識是非常有限的,但是直接在自然語言文本上進行推理又十分困難。
本文在NTP的基礎之上,對其進行了改進和擴展。NTP的侷限性在於:只能應用於基於小規模知識庫的任務;只利用了知識庫的信息,不能利用自然語言文本的信息。
本文提出的GNTP模型解決了這兩個問題:
(1)針對第一個問題,作者提出動態地構建NTP的計算圖,通過減少候選證明路徑的數目並引入用於規則歸納的注意力機制,減小了NTP的時間和空間複雜度,提高了模型的可擴展能力。
(2)針對第二個問題,作者通過使用端到端的可微分讀取部件,在共享的空間中聯合嵌入謂詞和文本表面模式(textual surface patterns),並使用高斯核函數計算嵌入間的相似性。實現了對自然語言文本信息的利用。
參考文獻
[1] Rockt¨ aschel, T., and Riedel, S. 2017. End-to-end Differentiable Proving. In NIPS, 3791–3803
[2] Minervini, P.; Bosnjak, M.; Rockt¨ aschel, T.; and Riedel, S.2018. Towards neural theorem proving at scale. CoRR abs/1807.08204.
[3] Johnson, J.; Douze, M.; and J´ egou, H. 2017. Billionscale similarity search with gpus. arXiv preprint arXiv:1702.08734.
[4] Rockt¨ aschel, T., and Riedel, S. 2017. End-to-end Differentiable Proving. In NIPS, 3791–3803.