什么是KBQA
-
首先弄明白什么是知識庫
近年來,我們目睹了知識庫的發(fā)展,越來越多的大規(guī)模知識庫涌現(xiàn)出來,如Google Knowledge graph,Yago和Freebase等。這些知識庫具有體量大,質(zhì)量高的特點。
image.png
一個知識庫包含了大量的結(jié)構(gòu)化數(shù)據(jù)。下圖給出了一個關(guān)于Obama的知識圖譜示例。知識庫中的每一個三元組代表一個知識或某個事實。 例如,一個三元組(d,人口,390k)表示檀香山的人口為390k。

- 通過建立虛節(jié)點來表示事物之間的聯(lián)系
KBQA指的是以知識庫作為答案來源的問答系統(tǒng)。
那么它是如何工作的呢?關(guān)鍵在于將自然語言問題轉(zhuǎn)換為知識庫上的結(jié)構(gòu)化查詢。例如,要回答“有多少人住在檀香山?”這個問題,我們需要將其轉(zhuǎn)移到SPARQL或者SQL查詢。 這里的關(guān)鍵問題是屬性推斷。

如何解決屬性推斷的難題
第一個挑戰(zhàn)是問題表示。對于任意一個QA系統(tǒng),我們需要一個具有代表性的問題表示來幫助識別具有相同語義的問題,同時區(qū)分不同意圖的問題。
第二個挑戰(zhàn)是語義匹配,如何將問題表示映射到知識庫中的結(jié)構(gòu)化查詢?
前人解決該問題的辦法

- rule based,
- keyword based,
- synonym based.
摘要
本文在開放域知識庫基礎(chǔ)上構(gòu)建 QA 系統(tǒng)。針對目前 QA 系統(tǒng)常用的規(guī)則只能理解規(guī)則內(nèi)固定問題模式,而基于關(guān)鍵字或基于同義詞的方法不能完全理解問題,提出一種基于億級知識庫和百萬級 QA 語料庫的模板。結(jié)合問題中實體,知識庫謂詞,問題的表達形式等,從而得到問題的語義,并與知識庫中RDF三元組映射。
解決思路
利用問題模板 – 謂詞 predicate 的對應(yīng)關(guān)系。問題 → 提取實體 → 問題抽象成模板 → 模板與謂詞的對應(yīng)關(guān)系 → 答案。
本質(zhì)上是解決問題理解 question answer 這個問題。 一般的問題理解解決過程有:
關(guān)鍵詞提取, → 本文中是實體提取,這里主要是為了抽象成模板 conceptualization question keywords extraction (or question labeling), identifying the focus of the question.
問題分類, → 本文使用的是基于 KB 的實體分類的抽象成模板的方法 question classification, determining the category or semantic type of the question.
問題擴展→ question extension, generating similar questions to extract all possible answers.
第二章
給出整體的解決方案

第三章
對于二元事實問題,用概率推理的方法找到答案

第四章
核心步驟,找到模板到謂詞的概率分布,采用極大似然估計和EM算法。
第五章
主要是對復(fù)雜問題的解析
在面對復(fù)雜問題時,我們采用了分治算法。首先,系統(tǒng)把問題分解為一系列的二元事實型問題,然后系統(tǒng)依次回答每個問題。每個問題的答案都是一個概率,我們通過動態(tài)規(guī)劃算法找到最優(yōu)分解。

第六章
復(fù)雜問題的組合回答
