知識圖譜的問答系統關鍵技術研究 #02

PaperWeekly發表於2017-04-05

第五章 從問答語料庫和知識圖譜學習問答

問答系統(QA)已經成為人類訪問十億級知識圖譜的流行方式。與網路搜尋不同,在自然語言問題能夠被精確地理解和對映到知識圖譜上的結構化查詢的前提下,基於知識圖譜的問答系統將給出準確且簡潔的結果。這其中的挑戰是人類可以以許多不同的方式提出同一詢問。現有的解決方案由於它們的模型表示而有著天然的缺陷:基於規則的實現只能理解一小部分的問題,而基於關鍵詞或同義詞的實現不能完整地理解問題。在十億規模的知識圖譜和百萬規模的問答語料庫的基礎上,本章設計了一種新的問題表現形式:問題模板。例如,對於一個關於某個城市人口數目的問題,可以學習到諸如 what is the total number of people in $city? 或 how many people are there in $city? 這樣的問題模板。本章共為 2782 種關係學習了約兩千七百萬種模板。基於這些模板,本章設計的問答系統 KBQA 能夠有效地支援二元事實型問題,以及由一系列二元事實型問題組合而成的複雜問題。此外,通過將 RDF 知識圖譜進行屬性擴充套件,知識圖譜的覆蓋範圍提高了 57 倍。在 QALD 標準測試集上,KBQA 系統在有效性和效率上擊敗了其他所有競爭對手。

第 1 節 緒論

問答系統(QA)已吸引了大量的研究。一個 QA 系統是被設計用於回答某種特定型別的問題[12]。這其中最重要的一種問題型別是事實型問題(factoid ques- tion,FQ),這些問題詢問有關某個實體的客觀事實情況。一種特定的事實型問題是二元事實型問題(binary factoid question,BFQ)[1],這些問題詢問某個實體的一種屬性。例如,How many people live in Honolulu? 是一個二元事實型問題。如果系統能回答 BFQ,那麼它就有能力去回答其他種類的問題,比如 1)排序問題:Which city has the third largest population? 2)比較問題:Which city has more population, Honolulu or New Jersey? 3)列舉問題:List the cities ordered by their populations等。除了 BFQ 及其變種之外,系統還能回答像 When was Barack Obama’s wife born? 這樣的複雜的事實型問題。這一問題的回答可以通過合併兩個 BFQ 的回答來實現:Who is the wife of Barack Obama (Michelle Obama) 和 When was Michelle Obama born? (1964)。系統將複雜事實型問題定義為那些可以分解成一系列 BFQ 的問題。本章將重點討論 BFQ 和如前所述的複雜事實型問題。

基於知識圖譜的 QA 已經有了較長的歷史。最近,大規模知識圖譜,如 Google Knowledge Graph, Freebase[10], YAGO2[45]等,不斷湧現,極大地增加了問答系統的重要性和商業價值。大部分這樣的知識圖譜採用了 RDF 作為資料格式,並且它們包含數以百萬或是十億的 SPO 三元組(S,P,O分別表示主體,屬性,賓語)。

1.1. 方法概覽 

知識圖譜的問答系統關鍵技術研究 #02

圖 5.1:基於模板的方法

為了回答一個問題,系統需要首先表示這個問題。所謂表示一個問題,指的是將問題從自然語言轉換為一種能夠捕獲問題語義和意圖的計算機內部表示。然後,對於每種內部表示,學習將其對映到知識圖譜上的 RDF 查詢。因此,本章工作的核心之一就是這一內部表示設計,記為“問題模板”。

通過模板表現問題 基於同義詞的方法在問題 ○a 上的失敗,啟發系統通過模板來理解問題。例如,how many people are there in $city 是問題 ○a 的模板。無論 $city 指的是檀香山市還是其他城市,這一模板永遠詢問人口數的問題。

這樣,問題表示的任務轉化為了將問題對映到現有模板的任務。為了完成這一點,系統將問題中的實體替換為它的概念。如圖 5.1,Honolulu 會被 $city 所替代。這一過程並不是直接的。它通過一種稱為概念化[87, 50]的機制完成目的。這一機制會自動對輸入進行歧義消除(因此蘋果的總部是什麼中的蘋果會被概念化為 $company 而非 $fruit)。概念化機制本身基於一個考慮數百萬種概念的語義網路(Probase [103]),其擁有足夠的粒度來模板化所有型別的問題。

模板的思想對於複雜問題同樣起效。通過使用模板,可以將複雜問題簡單地分解為一系列僅對應一個屬性的簡單問題。以表 1.1 中的問題 ○f 為例,系統將 ○f 分解為 Barack Obama’s wife 和 when was Michelle Obama born。這兩個子問題分別對應

“marriage→person→name”和“date of birth”。由於第一個問題巢狀於第二個問題,可知“date of birth”修飾了“marriage→person→name”,而“marriage→ person→name”修飾了 Michelle Obama。 

將模板對映到屬性 系統從雅虎問答(Yahoo! Answers)中學習模板以及如何將模板對映到知識圖譜中的屬性。這一問題與語義解析[13, 14]類似。從模板到屬性的對映是多對一的,換言之,每個屬性都對應於多個問題模板。系統一共學習了 2782 個屬性的 27, 126, 355 種不同的模板。這一巨大的數目保證了基於模板的問答系統的高覆蓋率。

學習模板的屬性的過程如下所述。首先,對於每個雅虎問答中的問答對,系統提取問題中的實體及其對應值。之後,尋找連線實體和值的“直接”屬性。其基本想法是,如果某個模板的絕大多數例項對應於共同的屬性,就可以將這一模板對映到這一屬性上。例如,假設從模板 how many people are there in$city 中得出的問題總是可以對映到屬性“population”上,無論 $city 特指哪個城市,系統都可以認為這一模板必然會對映到屬性“population”上。從模板到知識圖譜中複雜結構的學習也採用類似的過程。唯一的區別在於系統尋找對應於一條由多條邊組成的,從某個實體導向某個特定值的路徑的“擴充套件屬性”。(例如marriage→person→name)。

本章組織 本章餘下部分的組織形式如下。在第 2 節中,將會給出 KBQA 的概覽。本章的主要貢獻是從 QA 語料庫中學習模板以及通過模板回答自然語言問題。全部技術部分都與這一核心貢獻緊密相關。第三節展示了系統如何線上上問答中使用模板。第四節詳述瞭如何從模板中推斷屬性。這也是基於模板的問答系統的關鍵步驟。第五節擴充套件瞭解決方案,用於回答可以分解為一系列 BFQ 的複雜問題。第六節擴充套件了模板的能力來推斷複雜的屬性結構。實驗結果呈現在第 7 節,第 8 節討論了更多的相關工作。第 9 節做出了小結。

第 2 節 系統概覽

本節將要介紹 KBQA 的一些背景知識及其概覽。表 5.1 中列舉了本章使用的符號。 

知識圖譜的問答系統關鍵技術研究 #02


表 5.1:符號表 

二元事實型 QA 本章主要關注二元事實型問題(BFQ),亦即詢問某個實體的某種屬性的問題。例如,表 1.1 中除 ○f 外的所有問題均為 BFQ。

RDF 知識圖譜 給定一個問題,系統在一個 RDF 知識圖譜中尋找其回答。一個 RDF 知識圖譜 K 是一個(s,p,o)格式三元組的集合,這裡 s, p, o 分別表示主語,屬性和賓語。圖 1.1 通過一個邊帶標註的有向圖展示了一個示例的 RDF 知識圖譜。每個(s, p, o)都由一條從 s 指向 o,標註有屬性 p 的邊表示。例如,從 a 指向 1961 的標註有 dob 的邊表示 RDF 三元組(a,dob,1961),意味著 Barack Obama 出生於 1961 年。

QA語料庫 系統從雅虎問答學習問題模板,其包含有約四千一百萬對問答對。這一 QA 語料庫被記為 QA = {(q1,a1),(q2,a2),...,(qn,an)},其中 qi 是某個問題而 ai 是其回覆。每個回覆 ai 含有一個或多個句子,並且確切的事實回答也被包含在回覆中。表 5.2 展示了 QA 語料庫中的一些例子。 

知識圖譜的問答系統關鍵技術研究 #02


表 5.2:QA 語料庫中的 QA 對示例

模板 通過用實體 e 的一個概念 c 替換 e,可以從問題 q 中得到模板 t。這一模板記為 t=t(q,e,c)。一個問題可能含有多個實體,並且一個實體可能屬於多個概念。系統通過上下文相關的概念化過程[103]獲得 e 的概念分佈。例如,問題 when was Barack Obama born? 中含有圖 1.1 中的實體 a。由於 a 屬於兩個概念:$person 和 $politician,系統可以從這一問題中獲得兩個模板:When was $person born? 和 When was $politician born?。

系統結構 圖 8.1 展示了問答系統的流水線。它含有兩個主要過程:線上 QA 部分和離線預處理部分。

  • 線上過程:當一個問題到來,系統首先將其解析和分解為一系列二元事實型問題。這一分解過程將在第 5 節詳述。對於每個二元事實型問題,系統使用概率推斷來尋找它的值,如第 3 節所示。這一推斷基於給定模板的屬性分佈,亦即 P( p|t)。這一分佈是離線習得的。

  • 離線過程:離線過程的目標是學習從模板到屬性的對映,由 P(p|t) 表示。這一過程將在第 4 節詳述。在第 6 節中,系統在知識圖譜中擴充套件了屬性,以學習更復雜的屬性形式(例如圖 1.1 中的 marriage→person→name)。  

知識圖譜的問答系統關鍵技術研究 #02


圖 5.2:系統概覽

第 3 節 本文的方法:KBQA

第 3.1. 節在概率框架下將問題形式化。這一問題被化簡為兩個主要部分:離散概率計算和線上推斷。第 3.2. 節中展示有關概率計算的大部分細節,但將 P(p|t) 的計算留在 4 節。第 3.3. 節將詳述線上問答過程。 

3.1. 問題模型

KBQA 通過 QA 語料庫和知識圖譜進行學習。由於問答過程的不確定性(一些問題的意圖是模糊的)、不完整性(知識圖譜幾乎總是不完備的)和噪音(QA 語料庫中的問答可能是錯誤的)等問題,本章為知識圖譜上的問答系統構建了一個概率模型。需要強調的是從問題意圖到知識圖譜屬性的不確定性。例如,問題 Barack Obama 來自哪裡?至少與 Freebase 中的兩個屬性連線:“place of birth”、“place lived location”。在 DBpedia 中,誰建立了 $organization? 與屬性“founder”、“father”均相關。

問題定義 5.1. 給定問題 q,問答系統的目標是尋找具有最大概率的回答 v(v 是一個簡單值):

知識圖譜的問答系統關鍵技術研究 #02


為了說明給定問題時如何尋找目標值,系統使用了一個生成模型。從使用者問題 q 開始,系統首先通過其分佈 P(e|q) 生成/識別它的實體 e。在得知了問題和實體之後,系統根據分佈 P(t|q,e) 產生模板 t。由於屬性 p 僅依賴於 t,系統可以通過 P(p|t) 來推斷 p。最終,給定實體 e 和屬性 p,系統通過 v 產生回答值 P(v|e, p)。v 可以被直接返回,或是嵌入一個自然語言句子作為回答。例 5.2 闡明瞭生成過程,並且顯示了圖 5.3 中隨機變數的依賴關係。基於這個生成模型,可以如下計算 P(q, e, t , p, v) 

知識圖譜的問答系統關鍵技術研究 #02

現在問題 5.1 被化簡為:

知識圖譜的問答系統關鍵技術研究 #02


例 5.2. 考慮表 5.2 中(q3,a3)的生成過程。由於 q3 中的唯一實體為“Honolulu”,系統通過 P(e = d|q = q3) = 1 生成實體結點 d(見圖 1.1)。通過概念化“Honolulu” 為 $city,系統生成模板 how many people are there in $city。注意到無論特指哪個城市,這一模板對應的屬性總是“population”,系統通過分佈 P( p|t ) 生成屬性“population”。在生成實體“Honolulu” 和屬性“population” 後,目標值“390k”能夠輕易地從知識圖譜中獲取,如圖 1.1 所示。最終系統使用自然語言句子 a3 作為回答。

以下小節的概要 給定了上述的目標函式,問題化簡為對式 5.2 中各個概率項的計算。其中 P( p|t ) 在離線過程中計算(見第 4 節),其他全部概率項可以通過現成的解決方案(例如概念化、NER)計算。第 3.2. 將詳述這些概率的計算過程。第 3.3. 節將基於這些概率結果詳述線上過程。 

知識圖譜的問答系統關鍵技術研究 #02


圖 5.3:概率圖模型

3.2. 概率計算

在本小節中,將計算式 5.2 中除 P( p|t ) 外的各概率項。

實體分佈 P(e|q) 這一分佈代表從問題中辨識實體。當滿足以下兩個條件時,將其辨識為實體:(a)它是問題中的一個實體;(b)它在知識圖譜中。對於 (a),系統使用Stanford Named Entity Recognizer [33]。對於 (b),系統檢驗實體的名字是否在知識圖譜中。如果存在多個候選實體,簡單地給予他們一樣的概率。

系統通過 q 的回答優化離線過程中 P(e|q) 的計算。由第 4.1. 節知,系統已經從問題 qi 和回答 ai 中提取了實體-值對 EVi。假定 EVi 中的實體有相等的概率來被生成:

知識圖譜的問答系統關鍵技術研究 #02


其中[.]是 Iverson bracket。由第7.5. 節知,這一途徑比直接使用 NER 更為精確。

模板分佈 P(t|q,e) 模板有類似 $person 何時出生?這樣的形式。換言之,它是將一個問題中的某個實體(如“Barack Obama”)替換為實體的概念($person)的結果。令 t = t(q,e,c) 表示模板 t 是通過將 q 中實體 e 替換為 e 的概念 c 得到的。由此可得:

知識圖譜的問答系統關鍵技術研究 #02


其中 P(c|q, e) 是 e 在上下文 q 中的概念分佈。本章的工作直接應用了[87]中的概念化方法來計算 P(c|q, e)。

值(回答)分佈 P(v|e, p) 對於實體 e 和一個關於 e 的屬性 p,在知識圖譜中尋找屬性指向的值 v 是容易的。例如,在圖 1.1 所示的知識圖譜中,讓實體 e = Barack Obama,屬性 p = dob,很容易就很能從知識圖譜中得到得到 Obama 出生年份 1961。在這一例子中,P(1961|Barack Obama,dob) = 1,因為 Obama 只有一個生日。有一些屬性可能有多個指向的值(例如 Obama 的孩子)。在這樣的例子中,模型假定所有可能的值有相同的概率。更形式化地,可以通過如下公式計算 P(v|e, p):

 

知識圖譜的問答系統關鍵技術研究 #02


3.3. 線上過程

在這一過程中, 給定使用者問題 q0, 系統可以通過式 5.7 計算 p(v|q0), 並且返回 argmaxv P(v|q0) 作為回答。

知識圖譜的問答系統關鍵技術研究 #02

其中 P( p|t ) 由第 4 節所述的離線學習得到,其他概率項由第 3.2. 節所述的計算方法得到。

線上計算的複雜度:在線上計算過程中,系統依次列舉 q0 的實體、模板、屬性和對應值。系統將每個問題的實體數,每個實體的概念數,每個實體-屬性對的對應值數視為常量。因此線上計算過程的複雜度是 O(|P|),由對屬性的列舉而產生。這裡 |P| 指知識圖譜中的屬性數。

第 4 節 屬性推斷

本節介紹如何從模板中推斷屬性, 也就是 P(p|t) 的估計值。 其基本思路是將分佈 P(P|T) 視作引數,然後使用極大似然 (ML) 估計法來估計 P(P|T)。第 4.1. 節介紹了基於引數估計的第一步,制定觀測資料(亦即語料庫中的 QA 對)的似然度。第 4.2. 和 4.3. 節分別闡述引數估計的細節以及其演算法實現。

4.1. 似然度

演算法的推導並不直接公式化似然概率來觀察 QA 語料庫 (QA ),而是先公式化一 個更簡單的情形——從 QA 對中提取的一個問題-實體-答案值三元組集合的似然概率。接著構造兩個似然概率之間的關係。這種間接公式構造更為直接。QA 的一個回答通常是一句包括精確值和其他許多符號的複雜的自然語言。這些符號中很大一部分對於推斷屬性是無意義的,並且為觀察帶入噪音。另一方面,在生成模型中直接建立完整答案的模型比較困難,但在其中建立答案值的模型則相對簡單。

接下來,第 4.1.1. 節首先從給定的 QA 對中提取實體-答案值對,從而實現對問題-實體-答案值三元組 (X) 的似然概率的公式化。然後,第 5.13 節和第 4.1.2. 節建立了 QA 語料庫和 X 的似然概率之間的關係。 

4.1.1. 實體-答案值提取

從答案中提取候選值的原則是一個有效實體-答案值對通常在知識圖譜中存在一些 一致關係。根據這個原則,可以從 (qi , ai) 中鑑別出候選實體-答案值對如下:

其中⊂表示“是......的子串”。系統支援近似匹配(比如“390K”與“395,327”匹配),從而能增加召回值。如例 5.3 所示。

例 5.3. 考慮表 5.2 中的 (q1,a1)。許多單詞(例如 the,was,in)在答案中是無用的。注意到圖 1.1 中,q1 中的實體 Barack Obama 與 1961 由屬性“dob”連線,從而提取有效值 1961。同時要注意這步中系統也提取了噪音值 politician。下面的精煉步驟將展示如何過濾它。

EVi 的精煉在 EV(q,a) 中系統過濾了噪音對。例如例 5.3 中的(Barack Obama,politician)。直覺表明:正確值和問題應該屬於同一類別。這裡問題的類別表示問題的預期答案的類別。問題分類[66]已經有了相關研究。KBQA 系統使用 UIUC 分類框架[61]。並使用[66]中提出的具體分類方法。對於答案值分類,系統參考其屬性的分類。屬性分類是通過人工標記實現的。因為屬性總共只有幾千個,因此人工標記是可行的。

4.1.2. 似然函式

在實體-答案值提取後,每個 QA 對 (qi,ai) 被轉移到一個問題和一個實體-答案值對集合也就是 EVi 中。假設實體-答案值對之間是獨立的,觀察這樣的一個 QA 對的概率為:

知識圖譜的問答系統關鍵技術研究 #02


因此,整個 QA 語料庫的似然概率為:

知識圖譜的問答系統關鍵技術研究 #02


假設每個問題都會生成一個相等的概率,也就是說 P(qi) = α,可以得到:

知識圖譜的問答系統關鍵技術研究 #02


其中 β = αn−∑ni=1 |EVi| 被視作一個常量。式 5.11 意味著 LQA 與這些問題-實體-答案值三元組的似然概率成比例。令 X 為從 QA 語料庫中提取的這類三元組集合:

知識圖譜的問答系統關鍵技術研究 #02


令 xi = (qi,ei,vi) 來表示 X 中的一項。因而 X = {x1,...,xm}。本節建立了 QA 的似然概率與 X 的似然概率之間的線性關係。 

知識圖譜的問答系統關鍵技術研究 #02


現在,最大化 QA 的似然概率等同於最大化X的似然概率。用式 5.2 中的生成模型,通過排除所有模板 t 和屬性 p 的聯合概率 P(q,e,t, p,v),模型能夠計算 P(qi,ei,vi)。式 5.14 表示了這種似然概率。

 

知識圖譜的問答系統關鍵技術研究 #02


4.2. 引數估計 

目標:此節通過最大化式 5.14 來估計 P(p|t)。模型用引數 θ 和它對應的對數-似然概率來表示分佈 P(P|T)。同時模型用 θpt 來表示概率 P(p|t)。所以下式被用來估計 θ:

 

知識圖譜的問答系統關鍵技術研究 #02


其中 

知識圖譜的問答系統關鍵技術研究 #02


EM 估計的直覺:注意到一些隨機變數(例如屬性和模板)在概率模型中是隱藏的。這促使本章在引數估計中使用最大化期望演算法來估計引數。最終目的是最大化完整資料的似然概率 L(θ)。然而,由於它包含對數求和,其計算有一定難度。因此推導轉化為最大化其似然概率的下界,即 Q-函式 Q(θ;θ(s))。Q-函式的定義使用了完整資料的似然概率 Lc(θ)。EM 演算法通過迭代來最大化下界 Q(θ;θ(s)) 從而最大化 L(θ)。在第 s 輪迭代中,E-步驟對每一個給定引數 θ(s) 計算 Q(θ;θ(s));M-步驟估計能夠最大化下界的引數 θ (s+1)(下一輪迭代的引數)。

完整資料的似然概率:這個函式包括對數求和,因此直接最大化 L(θ) 在計算上是很困難的。直觀上來說,如果引數估計過程知道每個被觀察三元組的完整資料,也就是它們是由哪個模板和屬性生成的,那麼估計的過程會更容易。因此對每個被觀察的三元組 xi,估計過程引入一個隱藏變數 zi。zi 的值是一對屬性和模板即 zi = (p,t),用於指示 xi 是由屬性 p 和模板 t 生成的。注意需要同時考慮屬性和模板,因為它們在生成時不是獨立的。P(zi = (p,t)) 是 xi 由屬性 p 與模板 t 生成的概率。

記 Z = {z1,...,zm}。Z 和 X 一起形成完整資料。這個完整資料的對數-似然概率是: 

知識圖譜的問答系統關鍵技術研究 #02


其中 

知識圖譜的問答系統關鍵技術研究 #02

正如第 3.2. 節所討論的, f () 可以在估計 P( p|t ) 之前被獨立計算。所以它被視作一個已知的因子。

Q-函式:相比於直接優化 L(θ),式 5.20 中定義“Q-函式”作為觀察完整資料似然概率的期望。這裡 θ(s) 是 θ 在迭代 s 下的估計值。根據定理 5.4,當把 h(θ(s)) 視為常量時,Q(θ;θ(s)) 為 L(θ) 提供了一個下界。因此,演算法嘗試去優化 Q(θ;θ(s)),而不是直接優化 L(θ) 

知識圖譜的問答系統關鍵技術研究 #02


定理 5.4(下界 [24]). L(θ) ≥ Q(θ;θ(s)) + h(θ(s))其中 h(θ(s)) 只隨 θ(s) 改變, 對於 L(θ) 來說可以視作常量。

E-步驟中計算 Q(θ;θ(s))。對於式 5.20 中的每個 P(zi|X,θs),有: 

知識圖譜的問答系統關鍵技術研究 #02


M-步驟最大化 Q-函式。通過使用拉格朗日乘子,式 5.22 計算得到 θ (s+1)。pt 

知識圖譜的問答系統關鍵技術研究 #02


4.3. 實現

本節討論演算法 5 中 EM 演算法的實現。這一演算法包含三步:初始化,E 步驟和 M 步驟。

初始化:為了避免式 5.21 中 P(zi = (p,t)|X,θ(s)) 為全零的情況,模型要求 θ(0) 在所有滿足 f(xi,zi) > 0 的 (xi,zi) 上均勻分佈。從而得到:

知識圖譜的問答系統關鍵技術研究 #02


E步驟:這一步驟中,演算法列舉所有的 zi,通過式 5.21 計算 P(zi|X,θ(s))。這一步驟的複雜度為 O(m)。

M步驟:這一步驟中,對每一個θ(s+1)Pt,演算法計算 ∑m P(Zi= (p,t)|X,θ(s))。直接計算需要消耗 O(m|P||T|) 的時間,因為演算法需要列舉全部可能的模板和屬性。接下來,通過對每個 i 只列舉常量的模板和屬性,演算法的複雜度可以被減少為 O(m)。

注意到只有 P(zi = (p,t)|X,θ(s)) > 0 的 Zi 需要考慮。由式 5.19 和 5.21 可知:

知識圖譜的問答系統關鍵技術研究 #02

由於 P(t|ei,qi) > 0,演算法可以減少列舉的模板數。P(t|ei,qi) > 0 意味著演算法只列舉從 qi 中的 ei 概念化過程中得到的模板。e 的概念數顯然是有上界的,並且可以被看作常量。因此,第 7 行中列舉的模板 t 的總數是 O(m)。由於 P(vi|ei, p) > 0,演算法可以減少列舉的屬性數。P(vi|ei, p) > 0 意味著只有在知識圖譜中連線 ei 和 vi 的屬性需要被列舉。這樣的屬性數也可以被視作常量。因此 M 步驟的複雜度是 O(m) 的。

EM 演算法的總體複雜度:假定整個過程重複 EM 演算法 k 次,則總體複雜度為 O(km)。

知識圖譜的問答系統關鍵技術研究 #02





崔萬雲

復旦大學知識工場實驗室博士生

研究方向為問答系統和知識圖譜

相關文章