論文解讀:Improving Question Answering over Incomplete KBs with Knowledge-Aware Reader

論文解讀:Improving Question Answering over Incomplete KBs with Knowledge-Aware Reader

  知識庫問答(KBQA)是一種領域問答系統(Domain QA),基本原理是給定一個問句和一個知識庫,從知識庫中找到對應的答案實體。考慮到知識庫是不充分的,該工作則結合非結構化文本來解決一些問句無法直接在知識庫中尋找答案的問題。

一、簡要信息

序號 屬性
1 模型名稱 SGR EADER + KAR EADER
2 所屬領域 自然語言處理
3 研究內容 知識庫問答
4 核心內容 Relation Detection, KBQA
5 GitHub源碼 Knowledge-Aware-Reader
6 論文PDF https://arxiv.org/pdf/1905.07098

二、全文摘要翻譯

  我們提出一種新的端到端的問答系統模型,它可以將不充分的知識庫和從非結構化文本檢索的結果結合起來,基於一種假設:知識庫很容易進行查詢且查詢的結果可以有助於對文本的理解,我們的模型首先從與問題相關的知識庫子圖中積累實體的知識,然後在潛空間中重新表述問題,用手頭積累的實體知識閱讀文本,最終從知識庫和文本中獲得預測相似度的證據信息。我們的方法同時在簡單問答和複雜問答上得以提升。

三、相關工作

  先前工作均是直接從知識庫中提取答案,但有許多答案是在知識庫中找不到的,例如:
在這裏插入圖片描述
當詢問“Who did Cam Newton sign with”時,知識庫中雖然有相關鏈接的子圖,但並沒有準確的答案,因此此時需要結合非結構化的文本來尋找答案。因此這也是本文的動機。

  目前有相關工作在做基於Text的開放領域問答,作者試圖再此基礎上與知識庫問答進行結合,來緩解知識庫的不充分到來的問題。作者提出的端到端模型主要包括兩個部分:

(1)給定一個問句和對應的一些中心實體,則可以對知識庫中的一個子圖,由這個子圖可以獲得相關聯的實體語義信息,將這些實體語義信息與問句語義進行結合。這一部分叫做SubGraph Reader
(2)通過設計一種條件門機制,來動態的選擇讀取多少KB信息來結合問句和非結構化文本的語義,這部分則是將KB與文本相結合,稱爲Knowledge-Aware Text Reader

四、方法

4.1 任務定義

  給定一個問句,問句對應的一些中心實體,這些中心實體是問句的核心,例如上圖例子中的中心實體是Cam Newton。通過實體鏈接鏈接到知識庫中,因爲一個問句可能會有多箇中心實體,由於歧義原因鏈接到知識庫中會有多個實體,因此中心實體是一個集合,記做 ϵ0={eeQ}\epsilon_0 = \{e|e\in Q\},作者通過直接使用PageRank來獲得該結果。另外作者使用一種現有的文檔檢索(《Reading wikipedia to answer open-domain questions》)從維基百科中挖掘相關的內容,同時保證文檔中對應的實體與知識庫中的實體相互對齊。因此本文的任務目標則是給定一個問句和對應的中心實體,從知識庫和問答中檢索答案。
  我們的模型包括兩個組件——SubGraph Reader和Knowledge-aware Text Reader。

在這裏插入圖片描述
簡單的描述上圖:給定一個問句,首先獲得其中心實體,根據該中心實體的鄰接子圖進行表徵,獲得當前中心實體的知識信息。其次根據知識庫信息與問句進行融合,到非結構化文本中通過門控單元選擇性提取語義,獲得文檔表示,最後通過知識庫和文檔來尋找答案。

4.2 SubGraph Reader

  在這一部分,爲了能夠獲得相應的KB信息,我們使用圖注意力機制(Graph Attention)試圖從與該實體相鄰的其他實體獲得知識。因此最終可以得到每個實體的表徵向量。

(1)首先使用共享參數的LSTM對問句 {w1q,w2q,...,wlqq}\{w_1^q,w_2^q,...,w_{l_q}^q\} 和某一關係 {w1r,w2r,...,wlrr}\{w_1^r,w_2^r,...,w_{l_r}^r\} 進行表徵,分別得到對應的隱向量 hqRlq×dh\mathbf{h^q}\in \mathbb{R}^{l_q\times d_h}hrRlr×dh\mathbf{h^r}\in \mathbb{R}^{l_r\times d_h}。然後使用一層Dot-product注意力對 hr\mathbf{h^r} 上每個token向量進行加權求和

r=iαihir\vec{r} = \sum_{i}\alpha_i \vec{h^r_i}

其中α=softmax(wrhir)\alpha=softmax(\vec{w_r}\vec{h^r_i})wr\vec{w_r} 是訓練的參數。這一部分則是比較常見的在LSTM上加一層注意力的結構。

(2)相比於過去的方法(每個relation單獨與question進行匹配),作者希望能夠在更多細粒度層面上進行匹配(Question-Relation Matching)。因此首先根據上面計算的 wr\vec{w_r} 對問句中每個token進行注意力 :βj=softmax(rhjq)\beta_j = softmax(\vec{r}\vec{h_j^q}),其次再對問句上每個token進行加權求和:jβjhjq\sum_{j}\beta_j\vec{h_j^q},最後進行匹配計算:sr=rjβjhjqs_r = \vec{r}\sum_{j}\beta_j\vec{h_j^q}。因此這裏得到的srs_r便是問句與當前關係的相似度。

(3)我們定義一種Binary Indicator:I[eiϵ0]I[e_i\in \epsilon_0],其表示的是一個符號函數,如果對於一個實體eie_i(其屬於問句中心實體的鄰接實體),如果eie_i也是屬於問句的中心實體,則其值爲1,否則爲0。更爲簡單的說,如果一個問句的中心實體的鄰接實體也是中心實體,則這兩個實體組成的三元組 (e,ri,ei)(e,r_i,e_i) 更具有相關性。 因此依賴於這樣的特點,我們定義一個新的注意力:

s~(ri,ei)=softmax(I[eiϵ0]+sri)\tilde{s}_{(r_i,e_i)} = softmax(I[e_i\in \epsilon_0] + s_{r_i})

這個注意力則主要取決於這個符號函數 I[eiϵ0]I[e_i\in \epsilon_0] 以及鄰接的邊(關係)與問句的相似度,這裏可以充分表明的是,設計的注意力不僅僅取決於關係與問句的匹配程度,也取決於鄰接實體與中心實體的相關度,這裏相關度自然是1或0。

(簡單的繪圖如下圖紅色所示,看不懂也可跳過)
在這裏插入圖片描述

(4)這裏便是核心部分,上面三個部分的目標是獲得問句和關係的表徵向量,以及問句、鄰接實體與問句的注意力,本節則是如何利用這些信息。作者定義如下:

e=γee+(1γe)(ei,ri)Nes~(ri,ei)σ(We[ri;ei])\vec{e'} = \gamma^e\vec{e} + (1-\gamma^e)\sum_{(e_i,r_i)\in N_e}\tilde{s}_{(r_i,e_i)}\sigma(W_e[\vec{r_i}; \vec{e_i}])

其中e\vec{e} 是對中心實體預訓練的知識表示向量,γe[0,1]\gamma^e\in[0,1]是一種門控機制,因此其是用來決定從中心實體中獲得多少信息。上式的後半部分則是對當前中心實體ee的所有鄰接的元組 (ei,ri)(e_i,r_i) 進行加權求和,NeN_e表示的是中心實體ee的所有鄰接實體及邊。這部分與Graph Attention是一樣的。

  因此通過上面的四個小節,我們可以得到一個全新的知識信息 e\vec{e'} ,它包含的便是當前的中心實體以及鄰接子圖的相關知識,其代表的則是知識庫的語義信息。

4.3 Knowledge-Aware Text Reader

  除了對知識庫進行知識抽取外,作者還希望從非結構化的文本中抽取語義信息。這一部分則是參考閱讀理解相關方法。

(1)首先根據上面的 hq\mathbf{h^q} ,先使用一層注意力 q=ibihiq\vec{q} = \sum_{i}b_i\vec{h_i^q},即對問句的每個token進行加權求和,得到一個句子向量,這個向量只代表句子層面上的語義。因爲每個問句都有若干個中心實體,因此根據 SubGraph Reader 可以得到若干個 e\vec{e'} ,我們對它們進行求期望:eq=eϵ0e/ϵ0\vec{e^q} = \sum_{e\in\epsilon_0}\vec{e'}/|\epsilon_0|,此時得到的便是所有中心實體的知識庫信息的平均值。爲了將 q\vec{q}eq\vec{e^q} 集成起來, 作者定義如下:

q=γqq+(1γq)tanh(Wq[q;eq;qeq])\vec{q'} = \gamma^q\vec{q} + (1-\gamma^q)tanh(W^q[\vec{q};\vec{e^q};\vec{q} - \vec{e^q}])

前者表示通過門控機制選擇性的挑選句子層面上的語義信息,後面部分則是選擇性的挑選與知識庫相關聯的信息,可以返現tanh括號內的部分是問句與知識庫的融合信息。最後得到的 q\vec{q'} 代表着融合知識庫的問句表徵向量。

(2)此部分爲Knowledge-Aware Text Reader的核心,作者提出一種 condition gating mechanism,其目的是動態的從passage中提取問句所需要的信息。假設一個passage的每個token爲 widw_i^d ,應用一個BiLSTM進行表徵得到 fwid\vec{f_{w_i}^d},如果當前的token widw_i^d 是中心實體(即與問句中的實體相對齊),則還可以獲得 ewie_{w_i} ,因此 condition gating mechanism 結構定義如下:

iwid=γdewi+(1γd)fwid\vec{i_{w_i}^d} = \gamma^{d}\vec{e'_{w_i}} + (1-\gamma^d) \vec{f_{w_i}^d}

其中 γd=sigmoid(Wgd[qewi;qfwid])\gamma^d = sigmoid(W^{gd}[\vec{q}\vec{e'_{w_i}};\vec{q}\vec{f_{w_i}^d}]) 是一個門控單元。這個定義所表達的含義是有選擇性的將知識庫中的實體與文本中的實體相結合,而門控單元則取決於問句與二者的相似度。

(3)我們應用一次BiLSTM,輸入 iwid\vec{i_{w_i}^d} 得到 hwid\vec{h_{w_i}^d},並計算attention: γi=qThwid\gamma_i = \vec{q'}^T\vec{h_{w_i}^d},其表示的是融合知識庫的問句語義與passage中每個token信息的匹配程度。然後對每個token進行加權求和得到這個passage文檔的向量:d=iγihwid\vec{d} = \sum_i\gamma_i\vec{h_{w_i}^d}。如果中心實體對應多篇文檔,則將這些文檔的向量取平均:

ed=1DedDed\vec{e^d} = \frac{1}{|D^e|}\sum_{d\in D^e}\vec{d}

其中 De={ded,eϵ0}D^e=\{d|e\in d,e\in\epsilon_0\}

  我們總結一下,Knowledge-Aware Text Reader的目標便是通過富含知識庫信息的問句,通過一種條件門控機制來選擇性的對非結構化文本中進行信息讀取,以獲得文本中的語義知識。最後我們獲得了兩個有效的成分:e\vec{e'}ed\vec{e^d} 分別表示知識庫的信息和文檔中的信息,通過下面來計算相似度得分:

se=σs(qWs[e;ed])s^e = \sigma_s(\vec{q'}W_s[\vec{e'};\vec{e^d}])

五、實驗

  作者進行了幾個實驗,實驗如下圖所示:
在這裏插入圖片描述
其中N%KB表示的是知識庫設置(參考《Open domain question answering using early fusion of knowledge bases and text.》),Hit@N表示的是按照相似度降序排列的前N個記錄裏是否存在真實的記錄,Hit@1則表示只有模型排序後計算的相似度最大的答案與真實答案一致時纔算預測正確。

  另外消融實驗驗證模型的組件的作用:
在這裏插入圖片描述
  case study部分給出一些樣例:
在這裏插入圖片描述
證明我們的方法可以有效的在知識庫沒有答案的條件下從文本中獲取知識,但也存在一些問題,例如我們的模型可以預測正確的答案類型,但卻給出錯誤的答案實體;另外可能給出的實體不符合約束(例如帶有邏輯判斷的問句);另外也可能因爲噪聲的原因(知識庫中可能有錯誤的答案實體)影響效果,這在未來是一個改進的部分。

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