1. 程式人生 > >Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base【論文筆記】

Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base【論文筆記】

一、摘要

  我們對知識庫問答提出一個新穎的語義解析框架。我們定義了一個類似於知識庫子圖的查詢圖,可以直接對映為邏輯形式。語義解析被簡化為查詢圖生成,被表述為分階段搜尋問題。與傳統方法不同,我們的方法在早期就利用知識庫來修剪搜尋空間,從而簡化語義匹配問題。通過應用實體鏈指系統深度卷積神經網路匹配問題和謂詞序列,我們的系統由於之前的方法,在WebQuestion資料集上F1達到了52.5%。

二、介紹

  很多state-of-the-art的KB-QA方法基於語義解析,問題會對映為正式的意義表示(比如:邏輯形式),然後翻譯為知識庫查詢語句。該問題的答案可以通過執行查詢語句獲得。然而,大多數傳統的語義分析方法在很大程度上與知識庫分離,因此在適應QA等應用時面臨著一些挑戰。例如,當邏輯形式使用與KB中定義的謂詞不同時,通用意義表示可能具有ontology match問題。即使表示語言與知識庫模式密切相關,從KB中的大詞彙表中找到正確的謂詞到話語中描述的關係仍然是一個難題。
  受到(Yao and Van Durme,2014; Bao et al.,2014)的啟發,我們提出了一種語義解析框架,在對輸入問題解析時更加緊密地利用知識庫。我們首先定義一個查詢圖,它可以直接對映到λ-calculus中的邏輯形式,並且在語義上與λ-DCS密切相關。然後將語義解析簡化為查詢圖生成,將其表述為具有分階段狀態和動作的搜尋問題。

每個狀態都是查詢圖表示中的候選解析,每個動作都定義了一種增長圖形的方法。因此,語義解析的表示能力由適用於每個狀態的一組合理動作控制。特別地,我們將動作分為三個主要步驟:定位問題中的主題實體,發現答案和主題實體之間的主要關係,並使用描述答案需要的屬性的附加約束或問題中答案與其他實體之間的關係來擴充套件查詢圖。
  這種分階段設計的一個關鍵優勢是,通過將某些實體和謂詞的部分話語基礎接地,我們通過關注空間中最有可能導致正確查詢圖形的有前途的區域,使搜尋更加有效。我們的設計將這個特定的語義解析問題劃分為幾個子問題,例如實體連結和關係匹配。對每個子問題用最好的解決方法就會提升語義解析的效能。

三、背景

  我們的方法採用圖形化的方式表示知識庫 K K 和問題 q q ,並將語義分析簡化為將問題對映到查詢圖。 我們將在下面描述基本設計:

1. 知識庫
  知識庫其實就是subject-predicate-object三元組的集合,知識庫通常也稱為知識圖,由於它的圖形化表示,每個實體都是一個節點,兩個相關的實體由一條邊相連。

2. 查詢圖
  給定知識圖,執行邏輯形式查詢等同於查詢可以對映到查詢的子圖,然後解析變數的繫結。為了捕捉這種直覺,我們在圖表表示中描述了λ-calculus的受限子集作為我們的查詢圖。
  查詢圖由四種類型的節點組成:基礎實體(圓角矩形),存在變數(圓形),lambda變數(陰影圓形),聚合函式(鑽形)。基礎實體是存在於知識庫中的實體。存在變數和lambda變數不是基礎實體。特別地,我們想要檢索最終可以對映到lambda變數的所有實體作為答案。聚合函式旨在對特定實體進行操作,通常捕獲一些統計屬性。
  舉個例子,Figure2顯示了問題“Who first voiced Meg on Family Guy?”的查詢圖。MegGriffin 和 FamilyGuy兩個實體由圓角矩形節點表示。圓形節點y表示應該存在一個實體,描述一些構造關係,比如角色,演員和她開始擔任角色的時間。陰影圓形節點x,也就是答案節點,用於對映查詢檢索到的實體。鑽形節點argmin約束答案是扮演這個角色最早的演員。λ-calculus對應的邏輯形式如下 (缺少聚合函式), λ x . y . c a s t ( F a m i l y G u y , y ) a c t o r ( y , x ) c h a r a c t e r ( y , M e g G r i f f i n ) \lambda x.\exists y.cast(FamilyGuy,y)\bigwedge actor(y,x)\bigwedge character(y,MegGriffin) 。聚合函式作用前,執行此查詢可以匹配到兩個答案:LaceyChabert和MilaKunis,但LaceyChabert才是正確答案,因為她扮演這個角色早。

2. 分階段查詢圖生成
  我們專注於生成具有以下屬性的查詢圖。首先,樹圖包含一個實體節點作為根節點,也就是主題實體。其次,只存在一個lambda變數x作為答案節點,根節點與該節點有一條直連路徑,其中有0個或多個存在變數。我們稱這條路徑為核心推理鏈,因為它描述答案節點和主題節點的主要關係。變數只可以在這條鏈中出現,並且這條鏈只包含變數,除了根節點。最終,0個或多個實體或聚合節點可以與任意一個變數節點相連,包括答案節點。這些分支是答案需要滿足的額外的約束。
  給定一個問題,我們將查詢圖生成過程形式化為搜尋問題,具有分階段狀態和動作。 S = { , S e , S p , S c } S = \bigcup \{\emptyset,S_e,S_p,S_c\} 是狀態的集合,每一個狀態都可以是空圖 ( \emptyset ), S e S_e 是有主題節點的單一節點圖, S p S_p 是核心推理鏈, S c S_c 是額外的約束。 A = { A e , A p , A c , A a } A = \bigcup \{A_e,A_p,A_c,A_a\} 表示動作的集合。一個動作通過新增一些邊和節點來擴充套件圖。特別地, A e A_e 選擇一個實體節點, A p A_p 決定核心推理鏈, A c A_c A a A_a 新增約束和聚合節點。給定狀態,有效動作集可以由圖3中的有限狀態圖定義。

  我們使用log-linear模型在狀態空間上定義獎勵函式。獎勵基本上估計查詢圖正確解析問題的可能性。使用具有優先順序佇列的最佳優先策略完成搜尋。接下來會舉一個例子來描述動作序列。

  2. 1 連結主題實體
   從初始狀態 s 0 s_0 開始,有效的動作是建立一個與給定問題中找到的主題實體相對應的單節點圖。比如, q e x q_{ex} 中可能的主題實體是FamilyGuy或MegGriffin,如Fig. 4所示。

   我們使用實體鏈指系統來識別實體。對知識庫的每個實體,這個系統首先準備了表面形式的詞彙庫,列舉了文字提到的實體e所有可能的形式。它會考慮詞典中出現的所有連續詞序列,並與其可能的實體配對。然後,基於表面形式詞典中的頻率計數,通過統計模型對每對進行評分。為了容忍實體連結系統的潛在錯誤,以及探索更多可能的查詢圖,最多10個排名靠前的實體被視為主題實體。 連結分數也將用作reward function的特徵。

  2. 2 確定核心推理鏈
  確定核心推理鏈,也就是確定主題實體和答案的關係。Fig. 5顯示了3條可能的鏈。給定主題實體e,我們只需要探索可以從e開始的合法謂詞序列。當中間存在變數可以與CVT節點相連時,我們探索長度為2的所有路徑,如果不是,則探索長度為1的路徑。如果在訓練資料中觀察到組合,我們還考慮更長的謂詞序列。
  確定核心推理鏈,其實就是講問題對映為正確的謂詞序列。我們將這個問題簡化為使用神經網路來計算語義相似度。為了處理陳述相同問題的各種語義等價方式,以及知識庫中自然語言話語和謂詞的不匹配,我們使用Siamese神經網路來識別核心推理鏈。例如,我們的一個構造將問題對映到模式,方法是將實體替換為通用符號,然後將其與候選鏈進行比較,例如“who first voiced meg on ” vs. cast-actor。模型由兩個神經網路組成,一個處理模式,另一個處理核心推理鏈。全部都對映到k維向量作為網路的輸出。語義相似度通過距離函式計算得到。最近提出了這種連續空間表示方法用於語義解析和問答,並且與詞彙匹配方法相比,已經顯示出更好的結果。本篇論文采用卷積神經網路框架來解決匹配問題,網路結構Fig. 6所示。
  CNN模型首先對一個單詞進行word hashing,將一個單詞轉換為三元組的向量表示。比如單詞“who”的三元組形式為#-w-h,w-h-o,h-o-#,#是單詞邊界符。然後通過卷積層將3個單詞的上下文視窗中的三元組向量進行卷積得到區域性上下文特徵向量,通過最大池化層提取最顯著的區域性特徵以形成固定長度的全域性特徵向量,然後將全域性特徵向量輸送到前饋神經網路層以輸出最終的非線性語義特徵,作為問題模式或核心推理鏈的向量表示。
  我們的模型與(Bordes et al., 2014a)相比,有兩個優點:首先word hashing層控制了輸入空間的維度,很容易擴充套件到大詞彙表中,字三元組捕獲了更多的語義資訊,這使得它特別適合來自現實世界使用者的問題;使用卷積池化的深度架構,擁有更強大的表示能力。

3. 約束和聚合
  如Fig. 7的 s 3 s_3 所示,將會檢索到所有FamilyGuy扮演過的演員。很明顯這檢索結果包含正確答案和錯誤答案。所以我們需要加上約束資訊。為了檢索答案實體集,擁有核心推理鏈的圖只可以被兩種型別的動作擴充套件: A c A_c A a A_a A c A_c 是連線一個實體到變數節點可能方式的集合,邊表示合法謂詞,如 s 6 s_6 所示。有時,通過聚合函式在整個答案集中描述約束,這種動作由 A a A_a 表示,在一個變數節點中連線一個聚合節點,如 s 7 s_7 所示。
  通過核心推理鏈找到y和x節點的鄰居節點,以此獲得全部的約束集。這會導致很大的約束集。在這篇論文中,使用簡單的規則獲得合法的約束集。比如,約束節點是一個同時也出現在問題中的實體。聚合節點可以通過關鍵詞匹配,比如“first”、“latest”等等。

4. 學習獎勵函式
  我們使用log-linear模型來學習獎勵函式,接下來會描述特徵和學習過程。

  • 主題實體 由實體鏈指系統返回的分數作為一個特徵。
  • 核心推理鏈 我們使用不同CNN模型的相似度分數來衡量核心推理鏈的質量。PatChain 將模式(將主題實體用實體符號代替)與謂詞序列進行比較。QuesEP 將主題實體的規範名稱和謂詞序列拼接,然後與問題比較。這個特徵在概念上嘗試驗證實體鏈指的建議。這兩個CNN模型是使用問題對和訓練資料中的解析的推理鏈來學習的。除了域內相似性特徵外,我們還使用ClueWeb語料庫的Freebase註釋訓練ClueWeb模型。對於可以通過一個或兩個謂詞連結的句子中的兩個實體,我們將句子和謂詞配對以形成平行語料庫以訓練CNN模型。
  • 聚合&約束 當圖中存在約束節點時,我們使用一些簡單的特徵來檢查問題中是否存在可與約束實體或屬性相關聯的單詞。相似地,我們在預定義的列表中檢查關鍵詞是否存在,比如“first”、“current”、“latest”,作為聚合節點的特徵。
  • 其它 將通過查詢知識庫檢索到的答案實體的數量和查詢圖中的節點數作為特徵。

  首先問題被認為是一個排名問題。每一個問題會有多個候選的查詢圖。假設 g a g_a g b g_b 兩張查詢圖(對應的狀態為 s a s_a s b s_b )的候選答案集為 A a A_a A b A_b ,A是問題q的真實答案,我們首先計算 A a A_a A b A_b 的準確率、召回率和F1,然後根據F1對 s a s_a s b s_b 排名。即使查詢不完全正確,它仍然比其他一些完全不正確的查詢更有用。我們使用一層的神經網路來訓練這個排名模型。

四、實驗

  使用WebQuestions資料集,包括5810個問答對。其中65%作為訓練集,35%作為測試集。系統的效能由問題回答正確的比率來衡量。一個問題可能有不止一個正確答案,對每個問題計算準確率、召回率、F1。平均F1作為主要評價指標。這裡不再介紹實驗過程,實驗結果如Table 1 表示:

  論文還做了不同模組的系統的影響的實驗。如Table 2和Table 3所示:

  隨機取樣100個沒有生成完全準確查詢圖的問題,對錯誤進行分類。發現有1/3的錯誤是標籤問題導致,並不是真的錯誤。8%的錯誤是由於實體鏈指不準確,然而,有些是問題有歧義,表達不清楚,比如問題“Who founded the AFL?”,AFL是表示“American Football League”或“American Federation of Labor”。35%的錯誤是不正確的推理鏈。23%是由於約束不準確或丟失。

五、總結

  作者對知識庫問答提出了一個新穎的語義解析框架,將查詢圖定義為可以直接對映到邏輯形式的意義表示。語義解析被簡化為查詢圖生成,被表述為分階段搜尋問題。在先進的實體鏈指系統和深度卷積神經網路的基礎上,系統的效能是state-of-the-art的。未來可以做的工作是可以擴充套件查詢圖以表示更復雜的問題,探索更多特徵和模型,研究將其他結構化輸出預測方法應用於圖生成。