論文解讀:Question Answering over Freebase with Multi-Column Convolutional Neural Networks

論文解讀:Question Answering over Freebase with Multi-Column Convolutional Neural Networks

  KB-QA是一種問答系統任務,其是基於知識庫進行的問答。給定一個知識庫,其包含若干個實體和邊,每兩個實體和相連的邊爲一個三元組。實體分爲客觀實體和屬性,客觀實體就是客觀存在的一般實體,例如人名地名機構名,屬性則是一種特殊的實體,可以是時間、數字等字符串,也可以是年齡、配偶等。FreeBase是一個龐大的知識庫,其包含領域廣,基於知識庫的問答任務描述大概是:給定一個問句,通過問句來判斷中心實體,並在圖譜中尋找可能的答案,因此簡單的KB-QA任務的輸入是一個知識庫和問句,輸出則爲一個或多個實體。
  本文引入一篇較早的KB-QA論文,其是一種以“信息抽取”和“向量建模”爲代表的一篇論文。這篇文章是2015年ACL會議中的一篇。

一、簡要信息

序號 屬性
1 模型名稱 MCCNN
2 所屬領域 自然語言處理
3 研究內容 知識圖譜問答系統
4 核心內容 Multi-column CNN;FreeBase;KB-QA
5 GitHub源碼
6 論文PDF https://www.aclweb.org/anthology/P15-1026/

二、全文摘要

  基於知識庫的自然語言問答是一項非常重要且具有挑戰性的任務。大多數現有的系統都是依賴於人工特徵提取,基於規則的進行問句理解和答案排序。本文引入一種多列卷積神經網絡來對問句的三個方面(答案關係路徑Answer Path、答案上下文Answer Context和答案類型Answer Type)進行理解和分佈式表徵學習,同時我們聯合知識庫實體和關係低維度表示向量。(問句-答案)對被用於訓練我們的模型,並對候選答案進行排序。我們同樣基於多任務學習利用問句對神經網絡進行學習。我們使用FreeBase作爲知識庫,並在WebQuestion數據集上進行實驗。實驗結果表明我們的方法獲得了更好的效果,且與當前的基線模型具有競爭力。另外我們設計一種方法來計算每個問句中每個單詞在不同網絡中的得分,其可以幫助我們理解我們的模型是如何學習的。

三、MCCNN模型

3.1 問題描述

  通常KB-QA中的問句是以wh爲開頭的,例如what、which、where、why、when、who等,而問句通常也會指向一個明確的中心實體。例如“when did Avatar release in UK”,其指向的中心實體是“Avatar”,因此問句想要回答的答案也一定是以中心實體“Avatar”所在的子圖中。基於這個假設,任務可以描述爲:給定一個問句 qq,通過實體識別或其他工具可以提取問句中的中心實體,以該中心實體所在圖譜中的子圖中即可包含一部分實體,這些實體可能是客觀實體,也可能是屬性,它們可以作爲這個問句的候選答案(Candidate Answer)。可知這一部分都是可以通過NLP工具來完成的,因此KB-QA的核心任務是如何對句子進行表徵,以及如何從候選答案中選出一個或多個答案。

3.2 相似度

  KB-QA一般一種常用的策略是計算問句和候選答案的相似度,這也是“向量建模”的核心思想。過去方法是基於特徵工程或人工表徵來對句子進行向量化,而現如今基於神經網絡可以自動學習低維度特徵。假設問句的表徵爲s\mathbf{s},候選答案表徵爲a\mathbf{a},則它們的相似度計算爲sTa\mathbf{s^{\mathbb{T}}a}

3.3 多列卷積神經網絡

  本文提出一種多列卷積神經網絡模型,來對問句和候選答案進行表徵。如圖所示:

在這裏插入圖片描述
  首先,使用FreeBase Search API工具對問句中的中心實體進行實體鏈接,鏈接到知識庫中對應的實體。這一部分主要是搜索問句中的實體,可以認爲是一種實體識別任務。其次根據中心實體,向外擴張2hop實體作爲子圖,其包含的所有實體(除了中心實體)均是候選答案。
其次將整個問句通過CNN進行語義表徵。
  我們知道FreeBase知識庫包含三個方面:每個實體的實體類型(entity type)、關係路徑(即實體與實體之間邊的路徑)以及上下文(通常表示爲以某個實體爲出發向外擴張n個路徑——n hop),每個部分均包含於問句和候選答案相關聯的信息。因此作者同時訓練3個CNN網絡,分別從這三個方面提取特徵,CNN模型即是TextCNN,此處不再詳細描述CNN的細節,其輸出部分分別爲 f1(q),f2(q),f3(q)f_1(q),f_2(q),f_3(q)。其次對於候選答案對應的這三個方面也進行表示,下面詳細說明如何對這三個方面信息進行表示:
(1)答案關係路徑(Answer Path)。如圖所示,問句是問阿凡達在英國的首映時間,自然以“Avatar”爲中心實體在這個有限的子圖範圍內向各個其他實體延伸,每延伸到一個實體便形成一個路徑,例如“(Avatar(m.obth54), film.film.release_date_s, film.film_regional_release_date.release_date, 2009-12-17)” 是一條路徑,因此每個路徑可以被添加到embedding table中。其向量表示爲 g1(a)=1up(a)1Wpup(a)g_1(a)=\frac{1}{||\mathbf{u}_p(a)||_1}\mathbf{W}_p\mathbf{u}_p(a) ,其中up\mathbf{u}_p 是0-1向量,表示當前的路徑的0-1編碼。Wp\mathbf{W}_p則是embedding table,分式則表示歸一化。
(2)答案上下文(Answer Context):這裏有個符號爲n-hop,表示中心實體所在子圖的關係路徑最大值。作者認爲答案的上下文是一個對當前候選答案的一個有用的信息。作者取候選答案實體的1-hop子圖作爲上下文,並對其進行表徵,向量爲 g2(a)=1uc(a)1Wcuc(a)g_2(a)=\frac{1}{||\mathbf{u}_c(a)||_1}\mathbf{W}_c\mathbf{u}_c(a)
(3)答案類型(Answer Type):往往有些問題對答案的類型是有針對性的。例如示例中的When明顯是想要知道一個時間,對應知識庫中的可能是一個時間字符串,而不是其他類型的實體。知識庫中的實體已經提供了這些實體類型,因此僅需要爲其進行表徵即可,向量表達式爲g1(a)=1ut(a)1Wtut(a)g_1(a)=\frac{1}{||\mathbf{u}_t(a)||_1}\mathbf{W}_t\mathbf{u}_t(a)

  最後,根據三個CNN提取的問句表示向量fi(s)f_i(s)和對應的答案表示向量gi(a)g_i(a)進行相似度計算並求和:

S(q,a)=i=13fi(q)Tgi(a)S(q,a)=\sum_{i=1}^{3}f_i(q)^{\mathbf{T}}g_i(a)

3.4 訓練策略

  基於排序的訓練方法都是引入一個負樣本,也就是負採樣,本文負採樣的方法是對每一個問句-答案對 (q,a)(q,a) 都添加一個錯誤的答案 (q,a^)(q,\hat{a}) ,損失函數則可表示爲 L=mS(q,a)+S(q,a)+L=||m-S(q,a)+S(q,a')||_{+} ,學過表示學習的知道,+|·|_{+}表示最大值,m是一個threshold,即有假設:S(q,a)S(q,a^)+mS(q,a)\geq S(q,\hat{a})+m,目標則是儘可能的使得S(q,a)S(q,a)的得分高,使得負樣本得分S(q,a^)S(q,\hat{a})更低,設置threshold mm 可以約束二者之間的最小距離。

  最後考慮到一些問題的答案不是唯一的,因此纔有這種策略進行預測:首先計算所有候選答案的得分,然後取最大值對應的答案作爲最佳答案,其次依次對其他候選答案aa'進行降序排列,選出滿足 S(q,a)S(q,a)+mS(q,a)\geq S(q,a')+m的答案aa'

四、總結

  MCCNN可以算作基於NN的KB-QA開篇作之一,從模型上來講,在當時可以算非常先進的。事實上利用相似度做問答系統的在現如今也很普遍。另外問答系統也是一種多標籤任務,即每個問句可能會對應多個答案,因此採用這種基於得分函數的訓練策略也是很有效的。不過該文章也存在一些問題:
(1)候選答案不一定在中心實體對應的2-hop範圍內;
(2)不能解決帶有邏輯判斷的問題,例如who is the second …
(3)WebQuestion數據集的訓練和測試集太少,容易造成過擬合問題;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章