揭開知識庫問答KB-QA的面紗1·簡介篇

PaperWeekly發表於2017-08-03

1. 什麼是知識庫?

“奧巴馬出生在火奴魯魯。”

“姚明是中國人。”

“謝霆鋒的爸爸是謝賢。”

這些就是一條條知識,而把大量的知識匯聚起來就成為了知識庫。我們可以在 wiki 百科,百度百科等百科全書查閱到大量的知識。然而,這些百科全書的知識組建形式是非結構化的自然語言,這樣的組織方式很適合人們閱讀但並不適合計算機去處理。為了方便計算機的處理和理解,我們需要更加形式化、簡潔化的方式去表示知識,那就是三元組(triple)。

“奧巴馬出生在火奴魯魯。” 可以用三元組表示為(BarackObama, PlaceOfBirth, Honolulu)。

這裡我們可以簡單的把三元組理解為(實體 entity,實體關係 relation,實體entity),進一步的,如果我們把實體看作是結點,把實體關係(包括屬性,類別等等)看作是一條邊,那麼包含了大量三元組的知識庫就成為了一個龐大的知識圖。

知識庫可以分為兩種型別,一種是以 Freebase,Yago2 為代表的 Curated KBs,它們從維基百科和 WordNet 等知識庫中抽取大量的實體及實體關係,可以把它們理解為是一種結構化的維基百科,被 Google 收購的 Freebase 中包含了上千萬個實體,共計 19 億條 triple。

值得一提的是,有時候會把一些實體稱為 topic,如 Justin Bieber。實體關係也可分為兩種,一種是屬性 property,一種是關係 relation。如下圖所示,屬性和關係的最大區別在於,屬性所在的三元組對應的兩個實體,常常是一個 topic 和一個字串,如屬性 Type/Gender,對應的三元組(Justin Bieber, Type, Person),而關係所在的三元組所對應的兩個實體,常常是兩個 topic。如關係 Place_of_Brith,對應的三元組(Justin Bieber, Place_of_brith, London)。

揭開知識庫問答KB-QA的面紗1·簡介篇

圖中藍色方塊表示 topic,橙色橢圓包括屬性值,它們都屬於知識庫的實體,藍色直線表示關係,橙色直線表示屬性,它們都統稱為知識庫的實體關係,都可以用三元組刻畫實體關係和實體。

但是,像維基百科這樣的知識庫,與整個網際網路相比,仍只能算滄海一粟。知識庫的另外一種型別,則是以 Open Information Extraction (Open IE), Never-Ending Language Learning (NELL) 為代表的 Extracted KBs,它們直接從上億個網頁中抽取實體關係三元組。與 Freebase 相比,這樣得到的知識更加具有多樣性,而它們的實體關係和實體更多的則是自然語言的形式,如“奧巴馬出生在火奴魯魯。” 可以被表示為(“Obama”, “was also born in”, “ Honolulu”),當然,直接從網頁中抽取出來的知識,也會存在一定的 noisy,其精確度要低於 Curated KBs。

Extracted KBs 知識庫涉及到的兩大關鍵技術是:

實體鏈指(Entity linking)

即將文件中的實體名字連結到知識庫中特定的實體上。它主要涉及自然語言處理領域的兩個經典問題實體識(Entity Recognition)與實體消歧(Entity Disambiguation),簡單地來說,就是要從文件中識別出人名、地名、機構名、電影等命名實體。並且,在不同環境下同一實體名稱可能存在歧義,如蘋果,我們需要根據上下文環境進行消歧。

關係抽取 (Relation extraction)

即將文件中的實體關係抽取出來,主要涉及到的技術有詞性標註(Part-of-Speech tagging, POS),語法分析,依存關係樹(dependency tree)以及構建 SVM、最大熵模型等分類器進行關係分類等。

2. 什麼是知識庫問答

知識庫問答(knowledge base question answering, KB-QA)即給定自然語言問題,透過對問題進行語義理解和解析,進而利用知識庫進行查詢、推理得出答案。如下圖所示:

揭開知識庫問答KB-QA的面紗1·簡介篇

注:該圖片來自中科院劉康老師在知識圖譜與問答系統前沿技術研討會中的報告

與對話系統、對話機器人的互動式對話不同,KB-QA 具有以下特點:

1. 答案:回答的答案是知識庫中的實體或實體關係,或者 no-answer(即該問題在 KB 中找不到答案),當然這裡答案不一定唯一,比如中國的城市有哪些 。而對話系統則回覆的是自然語言句子,有時甚至需要考慮上下文語境。

2. 評價標準:回召率(Recall),精確率(Precision)),F1-Score。而對話系統的評價標準以人工評價為主,以及 BLEU 和 Perplexity。

當我們在百度詢問 2016 年奧斯卡最佳男主角時,百度會根據知識庫進行查詢和推理,返回答案,這其實就是 KB-QA 的一個應用。

揭開知識庫問答KB-QA的面紗1·簡介篇


注:該圖片來自百度搜尋

3. 知識庫問答的主流方法

關於 KB-QA 的方法,個人認為,傳統的主流方法可以分為三類:

語義解析(Semantic Parsing):該方法是一種偏linguistic的方法,主體思想是將自然語言轉化為一系列形式化的邏輯形式(logic form),透過對邏輯形式進行自底向上的解析,得到一種可以表達整個問題語義的邏輯形式,透過相應的查詢語句(類似 lambda-Caculus)在知識庫中進行查詢,從而得出答案。下圖紅色部分即邏輯形式,綠色部分 where was Obama born 為自然語言問題,藍色部分為語義解析進行的相關操作,而形成的語義解析樹的根節點則是最終的語義解析結果,可以透過查詢語句直接在知識庫中查詢最終答案。

揭開知識庫問答KB-QA的面紗1·簡介篇


注:該圖片來自 Semantic Parsing on Freebase from Question-Answer Pairs

這裡給出語義解析方法的一些代表論文:

Berant J, Chou A, Frostig R, et al. Semantic Parsing on Freebase from Question-Answer Pairs[C]//EMNLP. 2013, 2(5): 6.

Cai Q, Yates A. Large-scale Semantic Parsing via Schema Matching and Lexicon Extension[C]//ACL (1). 2013: 423-433.

Kwiatkowski T, Choi E, Artzi Y, et al. Scaling semantic parsers with on-the-fly ontology matching[C]//In Proceedings of EMNLP. Percy. 2013.


Fader A, Zettlemoyer L, Etzioni O. Open question answering over curated and extracted knowledge bases[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 1156-1165.

資訊抽取(Information Extraction):該類方法透過提取問題中的實體,透過在知識庫中查詢該實體可以得到以該實體節點為中心的知識庫子圖,子圖中的每一個節點或邊都可以作為候選答案,透過觀察問題依據某些規則或模板進行資訊抽取,得到問題特徵向量,建立分類器透過輸入問題特徵向量對候選答案進行篩選,從而得出最終答案。資訊抽取的代表論文 Yao X, Van Durme B. Information Extraction over Structured Data: Question Answering with Freebase[C]//ACL (1). 2014: 956-966。

向量建模(Vector Modeling):該方法思想和資訊抽取的思想比較接近,根據問題得出候選答案,把問題和候選答案都對映為分散式表達(Distributed Embedding),透過訓練資料對該分散式表達進行訓練,使得問題和正確答案的向量表達的得分(通常以點乘為形式)儘量高,如下圖所示。模型訓練完成後則可根據候選答案的向量表達和問題表達的得分進行篩選,得出最終答案。

揭開知識庫問答KB-QA的面紗1·簡介篇


注:該圖片來自論文 Question answering with subgraph embeddings

向量建模方法的代表論文: 

Bordes A, Chopra S, Weston J. Question answering with subgraph embeddings[J]. arXiv preprint arXiv:1406.3676, 2014.

Yang M C, Duan N, Zhou M, et al. Joint Relational Embeddings for Knowledge-based Question Answering[C]//EMNLP. 2014, 14: 645-650.

Bordes A, Weston J, Usunier N. Open question answering with weakly supervised embedding models[C]//Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Springer Berlin Heidelberg, 2014: 165-180.

細心的朋友已經發現了,以上三種方法的代表論文都集中在13-14年。那麼 14 年之後 KB-QA 的主流方法是什麼呢? 

隨著深度學習(Deep Learning)在自然語言處理領域的飛速發展,從 15 年開始,開始湧現出一系列基於深度學習的 KB-QA 文章,透過深度學習對傳統的方法進行提升,取得了較好的效果,比如: 

使用卷積神經網路對向量建模方法進行提升: 

Dong L, Wei F, Zhou M, et al. Question Answering over Freebase with Multi-Column Convolutional Neural Networks[C]//ACL (1). 2015: 260-269. 

使用卷積神經網路對語義解析方法進行提升: 

Yih S W, Chang M W, He X, et al. Semantic parsing via staged query graph generation: Question answering with knowledge base[J]. 2015. 

注:該 paper 來自微軟,是 ACL 2015 年的 Outstanding paper,也是目前 KB-QA 效果最好的 paper 之一。

使用長短時記憶網路(Long Short-Term Memory,LSTM),卷積神經網路(Convolutional Neural Networks,CNNs)進行實體關係分類: 

Xu Y, Mou L, Li G, et al. Classifying Relations via Long Short Term Memory Networks along Shortest Dependency Paths[C]//EMNLP. 2015: 1785-1794. 

Zeng D, Liu K, Lai S, et al. Relation Classification via Convolutional Deep Neural Network[C]//COLING. 2014: 2335-2344.(Best paper) 

Zeng D, Liu K, Chen Y, et al. Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks[C]//EMNLP. 2015: 1753-1762. 

使用記憶網路(Memory Networks),注意力機制(Attention Mechanism)進行 KB-QA: 

Bordes A, Usunier N, Chopra S, et al. Large-scale simple question answering with memory networks[J]. arXiv preprint arXiv:1506.02075, 2015. 

Zhang Y, Liu K, He S, et al. Question Answering over Knowledge Base with Neural Attention Combining Global Knowledge Information[J]. arXiv preprint arXiv:1606.00979, 2016. 

以上論文幾乎都使用了 Freebase 作為 knowledge base,並且在 WebQuestion 資料集上進行過測試,這裡給出各種方法的效果對比圖,給大家一個更加直觀的感受。

揭開知識庫問答KB-QA的面紗1·簡介篇

注:該圖片來自中科院劉康老師在知識圖譜與問答系統前沿技術研討會中的報告

以上論文幾乎都使用了 Freebase 作為 knowledge base,並且在 WebQuestion 資料集上進行過測試,這裡給出各種方法的效果對比圖,給大家一個更加直觀的感受。

4. 知識庫問答的資料集

最後,我們再簡單地介紹一下 KB-QA 問題的 Benchmark 資料集——WebQuestion。 

該資料集由 Berant J, Chou A, Frostig R, et al.在 13 年的論文 Semantic Parsing on Freebase from Question-Answer Pairs 中公開。 

作者首先使用 Google Suggest API 獲取以 wh-word(what,who,why,where,whose...)為開頭且只包含一個實體的問題,以“where was Barack Obama born?”作為問題圖譜的起始節點,以 Google Suggest API 給出的建議作為新的問題,透過寬度優先搜尋獲取問題。具體來講,對於每一個佇列中的問題,透過對它刪去實體,刪去實體之前的短語,刪去實體之後的短語形成 3 個新的 query,將這三個新 query 放到 google suggest 中,每個 query 將生成 5 個候選問題,加入搜尋佇列,直到 1M 個問題被訪問完。如下圖所示:

揭開知識庫問答KB-QA的面紗1·簡介篇


注:該圖片來自Google Suggest

獲取完問題後,隨機選取 100K 個問題交給 Amazon Mechanical Turk (AMT) 的工人,讓工人回答答案。注意,這裡對答案進行了限制,讓 AMT 的工人只能把答案設定為 Freebase 上的實體(entity),實體列表,值(value)或者 no-answer。 

最終,得到了 5,810 組問題答案對,其詞彙表包含了 4,525 個詞。並且,WebQuestion 還提供了每個答案對應知識庫的主題節點(topic node)。 

可以看出 WebQuestion 的問題與 freebase 是不相關的,更加偏向自然語言,也更多樣化。這裡給出一些例子:

“What is James Madison most famous for?” 

“What movies does Taylor Lautner play in?” 

“What music did Beethoven compose?” 

“What kind of system of government does the United States have?” 

除了該資料集,這裡再補充一些其他資料集的資訊,如下圖所示:

揭開知識庫問答KB-QA的面紗1·簡介篇

注:該圖片來自中科院劉康老師在知識圖譜與問答系統前沿技術研討會中的報告

相關文章