KBQA: 基於開放域知識庫上的QA系統

PaperWeekly發表於2017-07-03

本期論文



KBQA: Learning Question Answering over QA Corpora and Knowledge Bases


本文在開放域知識庫基礎上構建 QA 系統。針對目前 QA 系統常用的規則只能理解規則內固定問題模式,而基於關鍵字或基於同義詞的方法不能完全理解問題,提出一種基於億級知識庫和百萬級 QA 語料庫的模板。結合問題中實體,知識庫謂詞,問題的表達形式等,從而得到問題的語義,並與知識庫中RDF三元組對映。

論文連結:

http://www.vldb.org/pvldb/vol10/p565-cui.pdf

閱讀筆記精選


LeoZhao


本文專注於解決 BFQ。利用問題模板 – 謂詞 predicate 的對應關係。問題 → 提取實體 → 問題抽象成模板 → 模板與謂詞的對應關係 → 答案。 

本質上是解決問題理解 question answer 這個問題。 一般的問題理解解決過程有: 

1. 關鍵詞提取, → 本文中是實體提取,這裡主要是為了抽象成模板 conceptualization question keywords extraction (or question labeling), identifying the focus of the question. 

2. 問題分類, → 本文使用的是基於 KB 的實體分類的抽象成模板的方法 question classification, determining the category or semantic type of the question. 

3. 問題擴充套件 → question extension, generating similar questions to extract all possible answers. 

這個演算法的關鍵在於:

1. 訓練的問題的模板丰度。這個可以考慮根據語料生成問題?查閱相關論文時, 看到一篇論文:透過語料生成問題, Generating Factoid Questions With Recurrent Neural Networks: The 30M Factoid Question-Answer Corpus。這部分還需要細細看。 

2. 知識庫的謂詞丰度。 這個針對工程中相對垂直的領域,比較好解決。 

3. NER識別中的別稱問題等,即問題實體與知識庫實體不對應的情況。這個本文不涉及。 

4. 如何解決抽象過程中, 一個實體對應的多個 category 問題。 文中採用的是《Short Text Conceptualization using a Probabilistic Knowledgebase》另外採用的解法,LDA 系列的統計方法《Context-Dependent Conceptualization》基於其他 KB,如WordNet, Freebase, Wikipedia。

5. 文中訓練時候的 UIUC taxonomy 是謂詞與模板配對精度的關鍵。關於 Question Classification 有一篇《高考歷史題的提問分類》: 

http://ieeexplore.ieee.org/abstract/document/7875951/ 

與之前讀過的 R-net(reading comprehension,從文章中找出問題的答案)屬於不同的問題。 後者是從文章中找答案,前者是從知識庫中找答案。R-NET 主要建立的是問題形式 –(question-passage matching)- 答案形式 –(self-matching)- 答案這樣的關係。 本文建立是謂詞-問題形式的關係。

karis


本文主要提出了一種基於機率圖的 QA 對映方法,而傳統的基於規則、關鍵詞、同義詞的方法各有其侷限。 

本文對 QA 任務定義為求解 P(q,e,t,p,v) 的聯合機率,其中 5 個變數分別代表問題、問題中的實體、問題模板、謂詞和答案。這 5 個變數之間存在依賴關係,所以聯合機率的求解轉化為若干條件機率的引數估計或計算,包括 p(e|q)、p(t|e,q)、p(p|t) 和 p(v|e,p)。這 5 個引數的學習和計算利用了 RDF 知識庫及 QA 語料庫。 

本文也給出了這種知識庫問答的系統架構,其離線流程的目標都是計算 P(q,e,t,p,v) 相應的引數。線上流程主要包含兩個方面:question parsing 計算 p(e|q) 和 p(t|e,q);inference 計算 p(p|t) 的過程;最後根據 RDF 知識庫計算 p(v|e,p)。

waitting


論文線下構建問題的表徵模板,這些模板從語義理解角度出發,融合了查詢的各種意圖,以此為背景支撐,旨在能夠更好地理解線上使用者提出的問題。過程中考慮了抽取的模板、問題中包含的實體、問題的答案、知識庫中的謂詞等它們之間的分佈關係。針對複雜問題,可以將其分解成幾個子問題來解決。 謂詞擴充套件這個思路覺得很不錯。

lizhili


作者設計了一種新的問題表示方法:模板。為了回答問題,需要將問題表示成為模板形式來抓住問題的語義和意圖。之後和知識庫中的 RDF(s,p,o) 進行對映。為了得到問題表示,將問題和已經存在的模板進行對映。KBQA 具體實現是透過 P(e|q) 得到問題中實體,透過 P(t|q,e) 得到問題模板,之後透過 P(v|e,p) 得到回答,其中預測 p 與模板 t 相關,是在 offline 處理得到的。

veraLzz


本文首先解決 BFQ 問題,即關於某個實體的特性的詢問。對於複雜問題,可以將其分解成多個 BFQ 問題,然後推理求解。對於 BRF 問題,1)先利用語料把問題匹配到模板,這裡透過識別實體和他的值,將實體值轉換成他的概念詞。得到比較多模板。2)將多個模板對應到知識庫中的某個 predicate,即三元組中的關係或動詞。這一步是透過一個假設實現,假如一個模板的多個例項都對應於同一個 predicate,那麼這個模板也匹配到這個 predicate。3)最後利用機率推論方法找到 BFQ 的值。


beryl


本文在開放域知識庫基礎上構建 QA 系統,幾個亮點:1. 透過 templates 理解 question,2. 由問題和實體提取 template,3. 擴充套件了謂詞,這個思路可以借鑑,4.把複雜問題分解為簡單問題。

其中有 4 個機率分佈:question->entity,question&entity->template,template->predicate,entity&predicate->value,機率分佈的設計值得借鑑。

Q&A 精選


zhkun


In addition to BFQ and its variants, we can answer a complex factoid question such as when was Barack Obama’s wife born? This canbe answered by combining the answers of two BFQs: who’s Barack Obama’s wife? (Michelle Obama) and when was Michelle Obama born? (1964).

目前這種將一個問題分解為幾個簡單的子問題的方法感覺變得越來越流行了。

Charnugagoo: 前幾年流行的 Semantic Parsing,在 grounded 之後目標就是解決這種複雜的問題。例如:

http://sivareddy.in/papers/reddy2016transforming.pdf 

這個方向最終因為不能解決稍微複雜的提問,同時也有很多 bug,導致進展不好。但是我覺得,實用上講,這樣 2,3 個簡單子問題合併的問題,這個方法解決挺好的。至少,grounded 之前的部分,是 robust 的。

Herbert002


QA over a knowledge base has a long history. In recent years, large scale knowledge bases become available, including Google’s Knowledge Graph, Freebase [3], YAGO2 [16], etc., greatly increase the importance and the commercial value of a QA system.

KBQA 這幾年好火,原因應該很多:大廠的示範;機器學習技術在 NLP 的應用逐漸深入;人工智慧行業事件的推動。但需要解決的問題還是很多。

yuhe: 看起來,這個研究領域也像是找到了一個很實用的應用場景,如各大搜尋引擎在某些搜尋詞下的圖譜展示,前言也說了,這樣給出的資訊更簡潔,更精準,所以節省了使用者停留時間。應該是在資訊展示的全面性和冗餘性之間的一個比較好的折衷。

Herbert002


Rule based [23].

看了參考文獻【23】,感覺基於規則(rule)和基於模板(template)的方法非常相似,它們的差別在哪裡呢?

ngly: 感覺模板也是規則的一種,可以理解為 question-template-predicate 的對應,而規則直接為 question-predicate。

rqyang: 文中提到 rule based 主要是 manually constructed,而模板是透過 conceptualization 再替換實體生成的,或許這裡的點在於使用了外部的通用規則,而對領域相關的知識依賴較少吧。

lc222


Furthermore, we expand predicates in RDF knowledge base, which boosts the coverage of knowledge base by 57 times.

看了後面的示意圖之後,還是不太懂 RDF,有沒有比較簡單直觀的解釋?

cuixiankun: 就是一種知識圖譜,說實話,我也覺得把對話和圖譜結合著搞才有應用價值,我也一直在關注對話生成和知識圖譜相關的研究,目前還沒有太好的突破口。有類似感興趣的同學希望能一塊兒討論下。

cuixiankun: 我覺得未來工作可能是要消除問答與圖譜之間在表示上的差異。要麼調整問答的表示方式,去適應在圖譜上的匹配,也是這篇論文做的工作;要麼構建可以適配上下文的圖譜向量表示,去完成自然語言上的計算,例如知識圖譜表示學習的相關工作。

cuixiankun: 可以簡單看做是對各種事實的一組陳述(statement,表現為形式)的集合。statement,以三元組 subject, predict, object 的形式來表示。


ghandzhipeng


In the QA corpora we use, we find 27M question templates over 2782 question intents.

Yahoo! Answer 中總共有 41M Q-A pairs,這裡就抽出了 27M,是不是說這些模板共性很少?那麼新問題來的話適應性怎麼樣?

zhkun: 這種抽模版的方式感覺不夠靈活啊,還是透過依靠規則的方式去表示。

charnugagoo: 是否也有可能抽取的模板通用性不足,導致一些應該是同一模板的問題,抽成多個模板。

lizhili: 對於某一個問題也有可能多個意圖,那是否會抽出多個模板?

zhkun


Learning templates that map to a complex knowledge base structure employs a similar process.

這點感覺有點意思,尋找一個問題的答案時透過尋找一個路徑,這個感覺可以用在對模型進行解釋上,在一定程度上提高了模型的可解釋性。

charnugagoo: 這個 idea 好,但是感覺不應該用 template 來做。我們可否,先 label 出所有的 noun phrases: 1. 能 map 到 entity 的 np 可以從 db 裡抽取;2. 無法 map 到 db 裡的,其實就是子問題。

相關文章