知識圖譜推理問答:如何讓機器像人類一樣學會推理


來源:AI TIME 論道

本文約6000字,建議閱讀10分鐘

本文將結合知識圖譜推理問答的數據集,爲大家梳理主流的研究方法,分析各種方法的優缺點,並對將來的研究工作作出展望。

標籤:知識圖譜

近年來,知識圖譜問答任務取得較大進展,但當問題變得複雜,涉及多個實體的比較和推理時,機器尚不能很好地解答。如何讓機器像人類一樣學會推理,從而處理複雜問題,是當前的一個研究熱點和難點。清華大學計算機系、知識工程實驗室的博士四年級研究生史佳欣,將結合知識圖譜推理問答的數據集,爲大家梳理主流的研究方法,分析各種方法的優缺點,並對將來的研究工作作出展望。

一、什麼是推理問答

知識圖譜推理問答要求計算機根據給定的知識圖譜,處理實體之間的多跳、比較、集合操作等複雜問題。相較於簡單問答只涉及單個實體和單個關係,推理問答的問題相對複雜,常常涉及多個實體,多個關係,多跳,比較等。簡單問答,例如中國的首都是哪裏?而推理問答,中國的首都和美國的首都,哪個人口更多?

簡單問答只需要識別出問題中的實體和關係,鏈接到知識圖譜中,即可查出答案。推理問答則要求計算機具備多種推理能力,具體包括:(1)處理多跳關係的能力,如“姚明的妻子的學校”;(2)數值比較的能力,如“哪個城市的人口更多”;(3)集合操作的能力,如“即是籃球運動員,又是球隊老闆的人有哪些”。

二、知識圖譜推理問答的數據集

數據集是推理問答的基礎,在本次分享中,講者主要爲大家總結了如圖一所示的4個常用推理問答數據集,並從所用知識庫、知識類型、問題數量、自然語言、SPARQL共5個角度加以對比。

圖一 4個常用數據集對比

現有知識庫主要有三種知識類型:①關係型,如(“姚明”,“出生於”,“上海”);②屬性型,如(“姚明”,“身高”,“ 229 釐米”);③事實型,用於表示一個關係型事實或屬性型事實的知識,如[(“上海”,“人口”,“23,390,000”),“統計時間”,“2016”]。在提到的4個數據集中,MetaQA 和 CSQA 僅考慮關係型知識。

但現有數據集存在一個共同的問題,都缺乏推理過程,只給出複雜的問題以及對應的答案,沒有問題解答過程。回想人類是如何學習解答覆雜問題的,都是先學會解答簡單問題,再學會將複雜問題分解爲簡單問題的組合。如果數學老師只講答案,那麼應該大部分學生都無法掌握解答問題的能力。可見問題中間的解答步驟是必要的,對於機器來說亦是如此。

基於以上考慮,清華大學知識工程實驗室構造了一個新的數據集——KQA Pro,可提供之前數據集都不具備的推理過程。圖二是KQA Pro數據集與之前提到4個數據集的對比情況,清楚明瞭地展示了其屬性特徵。

圖二 KQA Pro與其他數據集的對比

爲表示推理過程,KQA Pro引入函數(function)和程序(program)兩個概念。函數對應簡單問題,程序對應複雜問題,將簡單的函數組合成複雜的程序,從而解決複雜問題。具體操作過程可用圖三的例子進行簡單的說明。

圖三 KQA Pro 示例

三、知識圖譜推理問答的方法

知識圖譜推理問答主流方法大致分爲鍵值記憶網絡(KVMemNet)、基於強化學習的多跳路徑搜索、弱監督的程序學習、查詢圖解析與匹配4大類別,接下來將一一介紹。

  • 鍵值記憶網絡(KVMemNet)

鍵值記憶網絡是記憶網絡的一種擴展形式,框架結構如圖四所示。

圖四 KVMemNet 框架圖

其處理過程主要有以下幾大流程:

(1)Key Hashing: 將知識庫轉換成 (k, v) 的形式,並從中選取一個子集;

形式轉換爲對於三元組 (s, p, o),將 s 和 p 共同作爲 k,將 o 作爲 v。子集選擇條件:一是k與輸入的問題有共同的單詞;二是共同的單詞不是停用詞;三是根據共同的單詞數量排序,選擇前 N 個。每個問題都需要構造對應的Memory。

(2)Key Addressing:根據問題 ????,爲 Memory 中的所有 key 計算一個概率分佈:

(3)Value Reading:根據 key 的概率,計算 value 的加權向量:

(4)Query Updating:用得到的 value 向量更新 query 向量,使用映射矩陣 Rj:

用 qj+1 替換 Key Addressing 中的問題向量,迭代更新;

迭代 H 步之後,將 qH+1 輸入分類器中,預測答案;

鍵值記憶網絡(KVMemNet)的優點爲模型簡單,通用性強;通過向量的迭代更新,隱式進行推理。缺點在於需要對每個問題構造 Memory,容易佔用大量的時間和空間;推理能力較弱,存在缺乏可解釋性。

  • 基於強化學習的多跳路徑搜索

基於強化學習的多跳路徑搜索的基本思路是:

(1)找到問題中的主題實體(Topic Entity),並鏈接到知識庫上;

(2)從知識庫上的主題實體出發,根據問題選擇一個關係,從而跳轉到一個新的實體;

(3)繼續選擇關係,跳轉實體;

(4)迭代若干步,用最終的實體作爲答案;

(5)利用強化學習進行訓練。

在此類方法中,講者選擇了Variational Reasoning Network (VRN)模型作爲代表進行簡單分析,模型框架如圖五所示。

圖五 Variational Reasoning Network (VRN) 框架圖

VRN模型主要分爲兩個模塊,一是主題實體識別模塊 Pθ1(y|p) ;二是知識推理模塊 Pθ2(a|y,q) ,將主題實體 y 看作隱變量。兩個模塊進行聯合優化:

a)主題實體識別模塊:

b)知識推理模塊:從主題實體出發,找出所有能在 T 跳之內到達的實體(忽略邊的方向)及對應的整個子圖(圖六),用Gy表示。

圖六 Gy 子圖

Gy 中包含的實體都是潛在的答案實體。對任一潛在答案a,定義 Gy→a 爲包含了所有從 y 到 a 路徑的子圖。計算子圖的向量表示:

將 g(Gy→a) 作爲 a 的特徵向量用於計算概率:

c)訓練:目標函數的原始形式爲:

使用辨分推斷得到目標函數的下界:

d)用強化學習進行優化

基於強化學習的多跳路徑搜索不僅有較強的多跳推理能力,可以得到推理路徑,而且具有較好的可解釋性。但存在只能處理關係型知識,無法處理屬性型、事實型;問題中必須有且僅有一個主題實體,適用範圍較小;不具備其他推理能力等缺點。

  • 弱監督的程序學習

弱監督的程序學習的基本思路爲:(1)定義一些基本的函數,每個函數負責特定功能,用規則實現;(2)將輸入問題解析爲程序(即函數的組合),執行程序得到答案。由於缺乏監督信息,已有方法使用如下兩種方式學習程序:

① 強化學習,跑出正確答案的程序獲得正向激勵。難點在於搜素空間巨大,難以收斂。

② 枚舉程序並執行,將跑出正確答案的程序作爲標註。難點是執行枚舉時間消耗大,即使得到正確答案其程序也不一定正確。

圖七給出了 KQA Pro 數據集中的程序示例,可以幫助理解函數與程序的概念。

在使用強化學習來進行弱監督的程序學習時,常常需要引入約束和 trick 以幫助收斂。例如函數的語法約束,如函數 A 必須在 B 之後;函數的位置約束,如程序必須以 A 或 B 開頭,以 C 或 D 結尾;輔助激勵策略,如程序給出的答案類型正確時,給予一定的正向激勵;根據目標答案的類型進行剪枝等。

圖七 KQA Pro 程序示例

弱監督的程序學習的優點有:(1)只需定義相應的函數,理論上可以處理任何推理問題;(2)組合性,有限函數的組合可以解決無限的問題;(3)程序表示推理步驟,具有很好的可解釋性。缺點有:(1)搜索空間巨大,優化困難,非常耗時,性能不理想;(2)需要人工定義函數的具體實現,不易擴展。

  • 查詢圖解析與匹配

查詢圖解析與匹配的基本思路是先將自然語言問題解析爲查詢圖的形式,如使用翻譯模型將問題轉換爲 SPARQL(示例如圖八);再用查詢圖與知識圖譜進行匹配,找出答案。

圖八 KQA Pro SPARQL 示例

查詢圖解析與匹配具有可以處理大多數推理問題,查詢圖具有較好的可解釋性等優點。但由於查詢圖的複雜性,解析的準確率往往比較低。另外,需要大量的訓練數據。

四、未來研究方向

對於未來的研究,主要有以下4個方向:

(1)基於 KQA Pro 數據集;

(2)神經模塊網絡(neural-symbolic),將函數實現爲神經網絡,以獲得更好的魯棒性;

(3)sequence-to-graph 模型進行查詢圖解析,將 SPARQL 看作圖而非序列,以更好地捕獲節點間的依賴關係;

(4)用於推理任務的 GCN、RGCN 模型。

最後爲大家分享直播結束後講者在微信羣裏與大家的互動。

五、答疑互動

如果要收集類似KQA的原始數據,有什麼渠道,文本類型,和注意的問題?

要收集類似的數據集的話,建議參照我們的流程,先用模板生成問題,再通過衆包進行轉寫。

請問知識圖譜在工業界有哪些應用?

應用包括智能客服、對話系統等。

編輯:王菁

校對林亦霖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章