肖仰华 | 基于知识图谱的问答系统
本文轉載自公眾號知識工場。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 
 
本文整理自復旦大學知識工場肖仰華教授在VLDB 2017 會議上的論文報告,題目為《KBQA: Learning Question Answering over QA Corpora and Knowledge Bases》,作者包括:崔萬云博士(現上海財經大學講師),肖仰華教授(復旦大學)等等。
 
VLDB (Very Large Data Base) 是數據庫領域最頂尖的國際會議之一,被中國計算機學會推薦國際學術會議列表認定為 A 類會議。涵蓋數據庫系統、數據管理、大數據處理、數據挖掘等各個研究領域,是展現數據庫前沿科研成果以及探討數據庫未來發展方向的盛會。
 
肖仰華:大家好,非常高興能在這里與大家分享我們的論文。
 
問答系統(QA)已經成為人類訪問十億級知識圖譜的流行方式,它回答的是自然語言問題。 QA系統最有名的故事之一就是IBM WATSON在2011年參加了Jeopardy競賽,打敗了所有人類競爭對手,獲得了100萬美元的獎勵。
 
 
QA的研究非常重要。首先,從應用角度來看,QA系統降低了人機交互的門檻, 非常適合成為互聯網的新入口。作為聊天機器人的重要組件,吸引了來自工業界的大量關注。
 
從人工智能角度來看,QA是評估機器智能的一個重要任務,也就是圖靈測試。同時,QA還是許多AI技術的重要測試平臺,比如機器學習,自然語言處理,機器認知等等
 
 
 
現在我們來談談知識庫。近年來,我們目睹了知識庫的發展,越來越多的大規模知識庫涌現出來,如Google Knowledge graph,Yago和Freebase等。這些知識庫具有體量大,質量高的特點。
一個知識庫包含了大量的結構化數據。右圖給出了一個關于Obama的知識圖譜示例。知識庫中的每一個三元組代表一個知識或某個事實。 例如,一個三元組(d,人口,390k)表示檀香山的人口為390k。
 
 
 
KBQA指的是以知識庫作為答案來源的問答系統。
 
那么它是如何工作的呢?關鍵在于將自然語言問題轉換為知識庫上的結構化查詢。例如,要回答“有多少人住在檀香山?”這個問題,我們需要將其轉移到SPARQL或者SQL查詢。 這里的關鍵問題是屬性推斷。
 
 
關于屬性推斷,我們面臨兩個挑戰。
 
第一個挑戰是問題表示。對于任意一個QA系統,我們需要一個具有代表性的問題表示來幫助識別具有相同語義的問題,同時區分不同意圖的問題。
第二個挑戰是語義匹配,如何將問題表示映射到知識庫中的結構化查詢?
 
 
 
然而,之前的解決方案并不能解決上述提出的挑戰。
 
我們研究了兩個主流的解決方案。
第一個是基于模板/規則的方法。這個方法用模板表示句子,語義解析往往通過人工標記來實現。這種方法的優點是它的結果是用戶可控的,這使得它更適用于工業用途。缺點是嚴重依賴人工,成本太高,昂貴的人力成本使得它無法處理多樣性的問題。
另一個是基于神經網絡的方法。最近這種做法很受歡迎,它們通過embedding的方式來表示一個問題,并從QA語料庫中學習出它的語義解析。這種方法的優點是embedding是靈活的,所以它可以理解各種各樣的問題。缺點是基于神經網絡的方法通常具有較差的解釋性,此外,結果是不可控的,所以他們并不適用于工業應用。
 
因此,我們不禁會想:能不能提出一種新的方法兼備這兩種方法的優點?
 
 
 
 
 
為了做到這一點,我們用模板來表示自然語言問題。 例如,“檀香山有多少人?”的模板成為“城市里有多少人?”。因為使用了模板作為問題表示,我們的方法具有可解釋性和用戶可控性。
然而,我們并不是手動標記模板,而是從QA語料庫中自動學習模板。 最終,我們為2,782個意圖學到了2,700萬個模板,這么大量的數據保證我們可以理解不同的問題。
 
這個系統體系結構如圖所示。它主要包括兩個過程:離線預處理部分和在線QA部分。
我們先來看看離線過程,離線過程的目標是學習出從模板到屬性的映射。
 
再來看在線部分,當一個問題進來,系統首先將其解析和分解為一組二元事實型問題。對于每個二元事實型問題,系統使用概率推斷來尋找它的值。這個推斷是基于給定模板的屬性分布來得到的。
 
 
 
接下來,我們對這個問題進行形式化定義。給定問題q,問答系統的目標是尋找具有最大概率的答案v(其中,v是一個簡單值)。
我們提出了一個生成模型來解釋如何為一個問題找到它的答案。
我們認為使用概率推斷的方法來做KBQA是非常合理的。首先,一些問題的意圖是模糊的。其次,大多數知識庫都是不完整的。最后,QA語料庫中的答案也可能是錯誤的。
 
 
 
 
 
 
 
我們以這個問答對來說明這個生成過程。
 
從用戶問題q開始,我們首先生成或者說識別出其中對應的知識庫中的實體d。
 
在知道問題和實體之后,我們根據d的概念分布生成模板t。 這樣,我們得到了一個模板“有多少人住在某城市?”
 
 
由于屬性只與模板有關,所以我們推斷出這個屬性的模板為“population”。
 
 
最后,給定實體d和屬性population,我們通過查找知識庫來得到它的答案。
 
 
通過這種方法,我們完成了從一個自然語言問題到生成答案的整個過程。這個過程可以建模為一個概率圖模型。
 
基于這個生成模型,可以得到一個聯合概率分布,進而用來解決給定其他變量求最大v的條件概率問題。
 
 
下一個問題是如何計算出聯合概率分布公式中的每一種概率。
我們可以從語料庫直接估計出來大部分的概率。例如實體分布的概率,模板分布的概率以及值分布的概率。
我們從雅虎問答的4200萬的QA pairs中,學習出問題模板和屬性的映射關系。表中展示了QA語料庫中的一些例子。
 
 
 
最后我們來估計P(P|T)的值。基本思路是將P(P|T)作為參數,然后使用極大似然法來估計P(P|T)。
這里我們使用了EM算法來進行參數估計。
 
 
KBQA的另一個難點就是回答復雜問題。在面對復雜問題時,我們采用了分治算法。首先,系統把問題分解為一系列的二元事實型問題,然后系統依次回答每個問題。每個問題的答案都是一個概率,我們通過動態規劃算法找到最優分解。
 
 
 
接下來我們來看看實驗部分。我們首先通過實驗證明屬性推斷的有效性。我們從學習出的屬性數量和模板數據來對比我們的方法和bootstrapping方法。結果表明,我們的KBQA方法能得到更多的屬性和模板, 這意味著KBQA在屬性推理中更有效。大量的模板可以確保KBQA理解不同的問題模板,同時,大量的屬性可以確保KBQA理解不同的關系。
 
 
我們也在很多benchmarks上用到了我們的KBQA。圖為QALD-5的結果。結果表明,KBQA具有最高的準確度。由于KBQA只回答二元事實型問題,因此召回率相對較低。如果我們只考慮二元事實型問答,召回率能上升到0.67。
 
即使在一個不以二元事實型問題為主的數據集中(如WEBQUESTIONS,QALD-3),KBQA也可以作為混合問答系統的一個完美組件。
 
我們這樣構建混合問題系統:一個問題過來,首先提交給我們的KBQA系統。如果KBQA系統不能回答,這意味著這個問題很可能不是二元事實型問題。然后,我們再將這個問題提交給baseline系統。
 
結果表明,當使用了我們的KBQA系統后,baseline系統的性能都有了很明顯的提高。
最后,我們對本文進行總結。我們構建了一個基于知識庫的問答系統KBQA。 我們的QA系統和以前的系統有兩個明顯區別:第一,它使用模板理解問題;第二,它從非常大的QA語料庫中學習語義解析。
 
我們認為系統還有很多可以改進的地方。 首先,目前關于QA系統的研究主要建立在開放領域的知識庫上。因此,研究如何使這些系統適應不同特定領域的應用是非常重要的。 其次,我們希望可以通過常識推理來更深入的理解問題。 再者,由于知識庫仍然存在數據缺陷問題,如何使用互聯網作為外部知識變得非常重要。
 
?獲取論文和完整PPT
關注“知識工場”微信公眾號,回復“20170907”獲取下載鏈接。
 
 
以上就是肖仰華教授在VLDB 2017 會議上為大家帶來的全部內容。知識工場實驗室后續將為大家帶來更精彩的文章。請大家關注!
? ??? ? ??
 
OpenKG.CN
 
中文開放知識圖譜(簡稱OpenKG.CN)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的肖仰华 | 基于知识图谱的问答系统的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 领域应用 | 用知识图谱玩唐诗,“唐诗别
- 下一篇: 鲍捷 | 知识图谱从 0 级到 10 级
