論文題目:《Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification》

論文來源鏈接:原文鏈接

Abstract

基於真實Web數據的機器閱讀理解(MRC)要求機器通過對搜索到的多個段落進行分析以後,回答問題。與基於當個段落的MRC相比,多個段落的MRC更具有挑戰性,因為我們可能會從不同的段落中獲得多個令人困惑的答案候選者。為瞭解決這個問題,我們提出一個end-to-end神經模型,該模型使得來自不同段落的答案候選者能夠根據他們的內容表示來互相驗證。具體來說,我們聯合訓練三個模塊,這三個模塊可以基於三個因素預測最終答案:答案邊界、答案內容和跨段落答案驗證。實驗結果證明我們的模型相比於baseline有大幅度的提高,而且在英文的MS-MARCO數據集和中文DuReader數據集上都獲得了最優性能。

1 Introduction

這種多段落的MRC存在一個固有的挑戰,就是所有段落都與問題有關,但是通常都是分開寫的,因此很可能存在多個令人困惑的答案候選者(正確or不正確)。

為瞭解決這個問題,我們假設正確的答案可能會更頻繁的出現在其他段落,並且會有一些共性,但是錯誤的答案通常與其餘答案不同。人類可以通過對比候選答案的來源,推理出正確的答案,所以我們也希望MRC模型也可以從跨段落答案驗證過程中受益。

我們的模型如圖所示,主要由三個模塊組成。第一,我們根據基於邊界的MRC模型找到每個段落的候選答案的起始位置。第二,我們模擬從這些段落中提取的答案候選者的含義,並使用content score從另一個角度來衡量候選答案的質量。第三,我們通過讓每個候選答案根據其餘候選者的表示參加其他候選者來構建答案驗證。

這三個模塊採用不同的模塊來建模,但是可以在我們的end-to-end模型中進行聯合訓練。

2 Approach

首先,對問題和段落進行建模,也就是計算每個段落的question-aware表示。根據這些表示,我們採用一個Pointer Network來預測答案的起始位置。與此同時,答案內容模型,我們評估每個單詞是否應該被包含在答案中,從而獲得答案表示。接下來,在答案驗證模塊中,每個候選答案可以參加其餘的候選者們來收集支持信息,然後我們根據驗證信息,對每個候選答案都計算一個分數來衡量該答案是否正確。最後的答案,由答案邊界、內容、驗證分數來決定。

2.1 Question and Passage Modeling

給定一個問題Q和搜索引擎獲得的一組段落集合 left{ P_{i} 
ight} ,我們的任務是找到問題最佳的答案。首先介紹問題和段落的建模細節:

Encoding:我們首先把每個單詞映射到向量空間,也就是將每個單詞的word embedding和單詞對應的character embedding的和相連接,然後採用BiLSTM來編碼問題Q和段落left{ P_{i} 
ight}

這裡的 e_{t}^{Q} c_{t}^{Q} e_{t}^{P_{i}} c_{t}^{P_{i}} 是第t個詞語在詞級別和字元級別的embedding,u_{t}^{Q} u_{t}^{P_{i}} 分別是問題和段落的第t個詞語的編碼輸出。

Q-P Matching:MRC中的一個重要步驟是將問題和段落相匹配,這樣就可以突出重要信息。我們採用Attention Flow Layer對Q-P的兩個方向進行匹配,這裡的相似度矩陣採用一個較為簡單的方式來獲得:

然後context-to-question attention和question-to-context attention將根據Seo et al.(2016)中所提出的方法來獲得question-aware段落表示 left{ 	ilde{u}_{t}^{P_{i}} 
ight} ,具體計算方法此處不再詳細說明。然後採用另一個BiLSTM來做信息融合,得到段落中每個單詞的表示:

基於得到的段落表示,我們下面詳細介紹本論文所提的三個模塊。

2.2 Answer Boundary Prediction

我們採用Pointer Network來預測每個單詞作為起始位置的概率:

利用attention權重,可以獲得段落中第k個單詞作為答案的起始位置的概率 alpha_{k}^{1}alpha_{k}^{2},邊界模型可以通過以下方式進行訓練:

這裡N是指訓練樣本數, y_{i}^{1}y_{i}^{2}是指gold起始位置。

2.3 Answer Content Modeling

為了能夠進行後續的驗證操作,我們提出一種基於概率來獲取候選答案表示的方法。

具體來說就是我們更改了經典的MRC模型的輸出層,除了預測段落中答案的邊界之外,我們還預測每個單詞是否應該被包含在答案的內容中,段落中第k個詞語的概率通過以下方式計算得到:

這個模型的訓練也非常直觀,我們把邊界標籤轉換為連續的片段,也就是說在答案邊界內的詞語標為1,其餘詞語標為0,通過這種方法,我們就可以定義loss函數:

這裡的內容概率從另一個角度來衡量答案的質量。獲得這些概率之後,我們可以將來自段落i的答案表示為這個段落每個詞語的加權和:

2.4 Cross-Passage Answer Verification

邊界預測模型和內容預測模型側重於將答案從單個段落中抽取出來,而不考慮跨段落信息。但是會出現多個候選答案來自不同的段落這種情況,所以整合不同候選答案信息選擇一個最佳的答案。因此,我們提出一種方法,使得候選答案通過與其它候選答案交換信息和互相驗證,從而獲得驗證信息。

每個段落的候選答案的表示是 left{ r^{A_{i}} 
ight} ,每個候選答案參與其它候選答案來通過attention機制獲得支持信息:

這裡的 	ilde{r}^{A_{i}} 是基於attention權重獲得的來自其它段落的驗證信息。然後我們把其與原本的候選答案表示整合在一起,並且通過一個全連接層:

然後,我們對得到的分數進行歸一化處理,就可以得到每個候選答案的驗證分數:

為了訓練這個驗證模型,我們把來自gold段落的答案作為gold answer,然後loss函數就可以通過以下方式計算得到:

這裡的 y_{i}^{v} 是正確答案所在的段落索引。

2.5 Joint Training and Prediction

本模型由答案邊界預測、答案內容預測和跨段落答案驗證這三部分組成。由於他們共享相同的embedding、encoding和match層,所以我們提出把他們作為多任務學習來一起訓練,聯合訓練目標函數是:

這裡的 eta_{1}eta_{2}是兩個超參數,來控制對應模塊的權重。

在最終預測答案時,我們將邊界分數、內容分數、驗證分數都納入考慮範圍。我們首先抽取候選答案 A_{i} ,它已經最大化段落i的邊界分數,這裡的邊界分數是通過將答案起始位置的概率相乘得到的。然後對於每個候選答案A_{i} ,我們把所有單詞的概率求平均就得到候選答案A_{i} 的內容分數。然後我們可以使用驗證模型來獲得A_{i} 的驗證分數。因此,可以根據這三個分數的乘積從所有答案候選中選擇最終答案。

3 Experiments

為了驗證模型的有效性,我們在數據集MS-MARCO和DuReader上進行實驗,均取得最優實驗效果。

3.1 Datasets

MS-MARCO和DuReader這兩個數據集都是從真實世界的引擎搜索中獲得的,區別就是MS-MARCO側重於英文數據,而DuReader是中文數據。MS-MARCO有102023個問題,閱讀理解中,每個問題大約與10個段落進行配對。DuReader共201574個問題,每個問題與相關性最高的5個段落配對。

3.2 Results on MS-MARCO

3.3 Results on DuReader

4 Conclusion

在本論文中,我們提出一個end-to-end框架來解決多段落MRC任務,我們設計了三個不同的模塊分別預測答案邊界、答案內容、跨段落答案驗證。所有這三個模塊可以使用不同形式的答案標籤進行訓練,聯合訓練它們可以實現進一步提高實驗效果。實驗結果大幅超過baseline的結果,證明瞭模型的有效性。


推薦閱讀:
相關文章