一、簡介
1. 什么是問答?
問答 (Question Answering) 是自然語言處理 (Natural Language Processing) 的一個重要研究領域。在該領域中,研究者們旨在構建出這樣一種系統:它可以針對人類以「自然語言形式」提出的問題自動地給出答案。
問答這一領域的研究成果已經早已普及我們每個人的生活。例如,當你清晨起床詢問你的智能語音助手 “今天天氣怎么樣”時,你會得到類似這樣的回答:“今天是晴天,溫度 15-22 攝氏度”。
與傳統的信息檢索以及數據庫檢索不同的是,問答這一領域旨在研究那些以「自然語言形式」給出的問題,而非結構化的查詢語言,這更符合日常生活中的應用場景。但自然語言的模糊性也為問題的準確理解帶來了很大困難。
同時,問答的數據源可能是多種多樣的。在不同的場景下,結構化的知識圖譜以及無結構的文本均有可能是潛在的數據源。因此,針對不同的數據源研究相應的推理算法也是當前問答領域的熱門方向之一。
因此,總結一下,構建一個高質量問答系統的關鍵點在于:
準確的問題理解技術
針對不同的數據源設計合適的推理算法
本文將重點針對以「知識圖譜」為主要數據源的問答場景(知識圖譜問答)進行介紹。首先,我們回顧一下知識圖譜的相關概念與定義。
2. 什么是知識圖譜 ?
知識圖譜 (Knowledge Graph) 是一種以「多關系有向圖」形式存儲人類「知識」的數據結構。知識圖譜中的每個節點表示一個實體,兩個節點之間的有向邊表示它們之間的關系。例如,《姚明》 是一個實體,《上海》 也是一個實體,它們之間的關系是 《出生于》。這樣的一個三元組 《姚明,出生于,上海》 表示一個事實 (Fact)。
同樣作為問答的數據源,與無結構的文本數據相比,結構化的知識圖譜以一種更加清晰、準確的方式表示人類知識,從而為高質量的問答系統的構建帶來了前所未有的發展機遇。
3. 什么是知識圖譜問答?
知識圖譜問答 (Question Answering over Knowledge Graphs),顧名思義,指的是使用知識圖譜作為主要數據源的問答場景。對于給定的問題,我們基于知識圖譜進行推理從而得到答案。這一技術已經被業界廣泛地使用于相關智能搜索與推薦業務中,其中最著名的當屬谷歌的搜索引擎業務。
例如,對于這樣一個比較簡單的問題 “姚明的出生地是哪里?”,谷歌通過知識圖譜中 《姚明,出生于,上海》 這個三元組得到答案是 《上海》 這一實體。
圖 1:谷歌搜索引擎基于知識圖譜對于簡單問題的回答
對于更加復雜的一些問題,如 “成龍的父親的出生地是哪里?”,谷歌依然可以通過知識圖譜中的多個三元組 《成龍,父親,房道龍 (Charles Chan)》,《房道龍,出生地,和縣》 得到答案是實體 《和縣》。
圖 2:谷歌搜索引擎基于知識圖譜對于復雜問題的回答
接下來,為了更好地介紹知識圖譜問答領域的發展,我們需要先明確幾個基本概念:
「主題實體」:主題實體指的是出現在問題中的實體。例如,對于問題 “姚明的出生地是哪里?”,我們通過 “姚明” 這一字符串判斷主題實體是 《姚明》 ,它也是后續推理流程中的推理起點。理論上一個問題中的主題實體不限個數,但在后面介紹的知識圖譜多跳問答領域中,一般假設一個問題中只存在一個主題實體。
「答案實體」:理論上問題的答案未必是一個實體,例如 ”中國在北京奧運會獲得的金牌有多少枚?“ 的答案是一個數字。但在后面介紹的知識圖譜多跳問答領域中,一般假設問題的答案是知識圖譜中的一個實體,即答案實體。
二、知識圖譜問答的發展簡史
接下來,本文將從兩個維度簡要介紹知識圖譜問答的發展歷史。
一方面,按照所研究的問題 (Question) 的難易程度,知識圖譜問答領域的發展可分為兩個階段:早期的 「Simple QA」 以及當前主流的 「Complex QA」。
另一方面,按照建模方式的不同,知識圖譜問答領域的工作可分為兩個流派:「語義解析」 (Semantic Parsing) 與 「信息檢索」 (Information Retrieval)。
1. 問題難度:Simple QA & Complex QA
(1)。 Simple QA在知識圖譜問答領域發展的早期,研究者們主要針對 Simple QA 這種較為簡單的場景開展研究 [1, 2, 3]。Simple QA 研究的是那些「可以使用單個三元組推理出答案」的問題,這些問題也被稱為 Simple Questions 。
例如,對于 “姚明的出生地是哪里?” 這一問題,我們可以通過知識圖譜中的單個三元組 《姚明,出生于,上海》 得到答案是 《上海》 這個實體。
(2)。 Complex QA經過一段時間的研究,Simple QA 場景中已經發展出了許多成熟且實用的方法。因此,研究者們轉而研究更為復雜的問題 (Complex Questions)。這些問題更契合實際應用中的復雜場景,而這一研究方向也被稱為 Complex QA [4, 5]。
簡單地說,Complex Questions 是 Simple Questions 的補集,即「無法使用單個三元組」回答的問題。在實際的研究中,研究者們主要關注以下類型的問題:
「帶約束的問題」:例如:”誰是第一屆溫網男單冠軍?“。該問題中的 “第一屆” 表示一種對答案實體的約束。
「多跳問題」:例如:”成龍主演電影的導演是哪些人?“。該問題需要使用多個三元組所形成的多跳推理路徑才能夠回答。例如:通過這些三元組 《成龍,主演,新警察故事》, 《新警察故事,導演,陳木勝》,我們推理出 《陳木勝》 是一個正確答案。
本文之后將主要結合多跳問題這一研究場景(知識圖譜多跳問答)進行詳細介紹。
2. 建模方式:Semantic Parsing & Information Retrieval
(1)。 Semantic Parsing語義解析 (Semantic Parsing) 類方法旨在將問題解析為可執行的圖數據庫「查詢語句」 (如 SPARQL),然后通過執行該語句找到答案。
對于 Simple Questions,語義解析類方法旨在將問題解析為一個頭實體 與一個關系 ,即 (h, r, ?) 的形式。例如,對于 “姚明的出生地是哪里?” 這一問題,可以解析出頭實體 《姚明》 與關系 《出生地》,并得到偽查詢語句 《姚明,出生地,?》。隨后通過執行該查詢語句得到答案 《上海》。
對于 Complex Questions,語義解析類方法將它們解析為一種 查詢圖 (Query Graph) [4]。例如,對于 ”成龍第一部主演的電影的導演是誰?“ 這一復雜問題,我們可以將其解析為以下查詢圖。
圖 3:語義解析類方法示意圖
當我們執行這張查詢圖所表示的查詢語句時,我們首先找到成龍主演的所有電影 ,再通過 argmin 這一約束從中篩選出上映時間最早的電影。對于這部篩選出來的電影,我們進一步查詢出它的導演是 ,并作為答案返回。
(2)。 Information Retrieval信息檢索 (Information Retrieval) 類方法 [5] 旨在從問題與候選答案中提取出它們的特征,并基于這些特征設計相應的打分函數以衡量 ”問題-候選答案“ 的語義相關性,最終得分最高的候選答案被作為預測答案輸出。下圖給出了信息檢索類模型的處理流程。
圖 4:信息檢索類方法示意圖
三、知識圖譜多跳問答
本節將結合一些重點工作對 「知識圖譜多跳問答」 這一方向進行介紹。從問題的難易程度這一視角來看,多跳問答屬于 Complex QA 這一領域;從模型的流派這一視角來看,多跳問答這一方向中的模型的主流是信息檢索這一流派,因此我們接下來也將重點結合這一流派進行介紹。
通俗來說,多跳問題 (Multi-hop Questions) 指的是那些需要知識圖譜 「多跳推理」 才能回答的問題。例如,若要回答 ”成龍主演電影的導演是哪些人?“ 這一問題,則需要多個三元組所形成的多跳推理路徑 《成龍,主演,新警察故事》, 《新警察故事,導演,陳木勝》 才能夠回答。
這種類型的問題在實際應用中十分普遍,但想要構建出一個高準確率的知識圖譜多跳問答系統卻并非易事。下圖展示了一個谷歌搜索中的 Bad Case。
我們嘗試在谷歌搜索中輸入以下問題 ”姚明的妻子的父親的出生地是哪里?“。對于該問題,正確的推理路徑為 妻子父親出生地。但是,谷歌卻錯誤地將問題解析成了以下推理路徑 父親妻子出生地。由于姚明的母親(父親的妻子)是方鳳娣 (Fang Fengdi),谷歌將她的出生地作為答案返回。由此可見,知識圖譜多跳問答是一個極具挑戰性的任務。
圖 5:谷歌搜索引擎對于復雜問題的錯誤回答案例
接下來,我們將結合近年的幾個重要工作對知識圖譜多跳問答這一領域的發展進行介紹。在開篇的簡介中,我們提到高質量問答系統的構建包含兩個關鍵點:問題理解與推理算法。知識圖譜多跳問答也不例外。接下來要介紹的幾篇工作也正是圍繞這兩個關鍵點展開。
(1)。 VRN:端到端的問題理解
知識圖譜問答中,問題理解的首要目標就是識別問題中的主題實體 (Topic Entity)。在之前的例子中,如 “姚明的出生地是哪里?”,我們通過 “姚明” 這一字符串判斷主題實體是 《姚明》 ,它也是后續推理流程中的推理起點。
之前的一些工作 [6] 通過文本匹配的方式來識別主題實體,但在實際應用場景中這種方式易受噪聲(自然語言的模糊性和錯別字)影響。在這些情況下,如果我們將知識圖譜問答分為主題實體識別與知識推理這兩個獨立的階段,那么在主題實體識別這一階段產生的錯誤往往會傳遞到知識推理這一階段,從而對最終預測結果產生嚴重的影響。
為了解決這一問題,VRN [5] 提出了一個端到端 (end-to-end) 的框架。它將主題實體識別與知識推理這兩個模塊以端到端的方式融合起來,從而訓練過程中的 loss 會直接反饋到主題實體識別模塊,有助于更準確地在噪聲環境中識別出正確的主題實體。
為了實現 ”端到端“ 這一目標,VRN 進行了以下概率建模。對于給定的問題 ,它的正確答案是實體 的概率表示為 。問題 中的主題實體是實體 的概率表示為 。給定主題實體是 的情況下,問題 的答案是 的概率表示為。從而得到,
其中 表示的是實體識別這一流程, 表示的是知識推理這一流程。本質上,VRN 是將主題實體 建模為隱變量,然后以全概率公式的形式表示 。
接下來介紹的三個工作主要圍繞推理算法進行研究。更具體地,這些工作主要針對知識圖譜「鏈接缺失」 (incomplete) 這一真實場景下的推理算法進行研究。
(2)。 GraftNet: 基于多源數據的問答
真實應用場景下的知識圖譜往往是存在鏈接缺失問題的,即一部分正確的三元組(事實)沒有被包含進知識圖譜中。而這些缺失的三元組可能對于準確地回答給定的問題至關重要。
為了解決這一問題,GraftNet [7] 采取了以下措施:
使用無結構的文本數據作為結構化的知識圖譜數據的補充;
提出了一個圖神經網絡模型 (GNN),它可以在文本與知識圖譜組成的混合類型數據上進行推理并得到答案。
對于無結構的文本數據,GraftNet 將每個文檔 (document) 看做一個節點,并融入知識圖譜結構中:如果該文檔中包含某個實體 ,那么就在這個文檔與實體 之間建立連接。下圖展示了一個直觀的例子。
圖 6:GraftNet 多源數據融合示意圖 [7]
基于這種由知識圖譜與文檔數據組成的圖結構,GraftNet 設計了一個 GNN 用于推理,大致流程如下:
對給定的問題 (假定主題實體 已知),使用 Personalized PageRank (PPR) 算法提取出以 為中心的子圖。最終的候選答案實體便被限定在該子圖中,這個子圖中實體的集合也就是候選答案集合。
使用多層 GNN 迭代更新實體、文檔的表示,使得圖中的每個節點可以感知到多跳鄰居的信息。最終基于更新后的實體表示計算每個候選實體的得分。詳細內容請見原文 [7]。
至于為什么要裁剪出子圖,這是由于實際應用中知識圖譜的實體數量過于龐大,如果將實體全集作為候選答案實體集,則會大大增加從中尋找正確答案的難度。因此,提前對實體進行篩選,只保留一小部分與問題相關的實體作為候選答案是一個明智的選擇。
(3)。 PullNet: 動態子圖拓展
雖然 GraftNet 取得了不錯的效果,但該方法依然存在著一些問題。例如,GraftNet 為了減小候選答案實體集合的大小,使用 PPR 算法提取出以主題實體為中心的子圖。但這些子圖往往過大,而且有時并沒有將正確答案囊括進來 [8]。
為了解決這一問題,PullNet [8] 提出了一種動態的子圖拓展方法。具體地,該算法將子圖初始化為主題實體 ,隨后迭代地將與問題相關程度高的鄰居實體拓展進子圖,并同時使用 GNN 更新子圖中節點的表示。
圖7展示了 PullNet 相比 GraftNet 在子圖提取上的優勢,其中x-軸表示提取出的子圖大小(子圖中的實體數量),y-軸表示正確答案實體的召回率,即正確答案被包含在子圖中的百分比,PageRank-Nibble 表示 GraftNet 所使用的子圖提取方法。以左圖 MetaQA (3-hop) 數據集為例,GraftNet 如果想要達到 0.9 左右的召回率,則需要將子圖中的實體數量增大至 500 左右,而 PullNet 只需要動態地拓展出實體數量大小為 65 左右的子圖,便可以輕松達到 0.983 的召回率。
圖 7:正確答案實體召回率 (y-軸) 與子圖大小 (x-軸)關系示意圖 [8]
(4)。 EmbedKGQA: 基于鏈接預測思路的問答方法
與 GraftNet 以及 PullNet 使用 GNN 進行推理思路不同的是,EmbedKGQA [9] 借鑒了知識圖譜鏈接預測 (Link Prediction) 的思路以實現在鏈接缺失的知識圖譜上的推理。
知識圖譜鏈接預測指的是給定一個三元組中的頭實體(或尾實體)與關系,對尾實體(或頭實體)進行預測的任務,即 (h, r, ?) 或 (?, r, t)。給定一個問題 ,EmbedKGQA [9] 將該問題中的主題實體 看做頭實體,將問題 看做一個關系,要預測的尾實體則是該問題的答案。也就是說,EmbedKGQA 將多跳問答建模成 。
這樣的思路雖然簡單,但也行之有效。總的來說,在知識圖譜鏈接缺失的場景下,GraftNet 與 PullNet 從數據的角度出發,采取了使用文本數據 ”補全“ 知識圖譜的思路,同時針對這種混合類型數據設計專門的推理算法。EmbedKGQA 則是從模型的角度出發,直接借鑒了鏈接預測這種比較成熟的建模思路。
四、總結
構建高質量問答系統的關鍵在于「準確的問題理解」與「針對相應的數據源設計合適的推理算法」。從問題理解的角度,知識圖多跳問答近期工作主要關注于如何準確地識別問題中的實體。從推理算法的角度,近期的工作主要關注:1) 如何降低候選實體集合大小,同時減小對正確答案召回率的影響;2): 如何在鏈接缺失的知識圖譜上進行推理。
Reference
[1] Berant, Jonathan et al. “Semantic Parsing on Freebase from Question-Answer Pairs.” EMNLP (2013)。
[2] Yih, Wen-tau et al. “Semantic Parsing for Single-Relation Question Answering.” ACL (2014)。
[3] Bordes, Antoine et al. “Large-scale Simple Question Answering with Memory Networks.” ArXiv abs/1506.02075 (2015)
[4] Yih, Wen-tau et al. “Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base.” ACL (2015)。
[5] Zhang, Yuyu et al. “Variational Reasoning for Question Answering with Knowledge Graph.” AAAI (2018)。
[6] Miller, Alexander H. et al. “Key-Value Memory Networks for Directly Reading Documents.” EMNLP (2016)。
[7] Sun, Haitian et al. “Open Domain Question Answering Using Early Fusion of Knowledge Bases and Text.” EMNLP (2018)。
[8] Sun, Haitian et al. “PullNet: Open Domain Question Answering with Iterative Retrieval on Knowledge Bases and Text.” EMNLP (2019)。
[9] Saxena, Apoorv et al. “Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings.” ACL (2020)。
作者簡介:蔡健宇,2019年畢業于東南大學,獲得工學學士學位。現于中國科學技術大學電子工程與信息科學系的 MIRA Lab 實驗室攻讀研究生,師從王杰教授。研究興趣包括知識表示與知識推理。
編輯:jq
-
谷歌
+關注
關注
27文章
6142瀏覽量
105112 -
自然語言
+關注
關注
1文章
287瀏覽量
13332 -
知識圖譜
+關注
關注
2文章
132瀏覽量
7696
原文標題:一文帶你入門知識圖譜多跳問答
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論