QG-2019-AAAI-Improving Neural Question Generation using Answer Separation
Improving Neural Question Generation using Answer Separation
本篇是2019年發表在AAAI上的一篇文章。該文章在基礎的seq2seq模型的基礎上提出了answer-separated seq2seq模型,並通過實驗證明該模型顯著減少了包含答案的不正確問題的數量,達到了NQG(自然語言生成)模型的state-of-the-art。(2019)。下載點選此處。同時,改論文需要對含注意力機制的seq2seq有基本瞭解,可以點選此處下載閱讀
1 問題
由於文字資料的非結構化性質,從段落中自動生成問題 (QG) 是一項具有挑戰性的任務。 NQG的主要問題之一是如何取文章中的問題目標,簡稱目標答案。 指定問題目標對於生成自然問題是必要的,因為文章中可能有多個目標答案。
比如在上圖中,有人、時間、位置等資訊, 在不將目標答案作為額外輸入的情況下,現有的 NQG 模型更傾向於生成沒有特定目標的問題。這是一個基本限制,因為最近的 NQG 系統主要依賴於 RNN 序列到序列模型,而 RNN 不具備對高階可變性進行建模的能力。
為了克服這個問題,許多文章通過使用答案的位置特徵來合併目標答案,然而這些方法生成的問題中有很大一部分是包含目標答案中的單詞。特別是還有些模型使用複製機制,來促使原始段落中的單詞能夠更多的出現在問題裡,更加劇了這一問題。
2 創新點
基於以上問題,該文章的主要創新點是提出將目標答案與原始文章分開來解決這個問題。
-
首先,如圖一使用mask標記 將目標問題的答案與題目進行分離,有助於模型識別與目標答案相關的問題型別,因為模型在標記的幫助下學會了捕獲目標答案的位置和上下文資訊。
-
此外,提出了一個名為keyword-net的新模組作為新模型的一部分,它從之前分開的目標答案中提取關鍵資訊。 keyword-net使新的 NQG 模型始終能夠感知目標答案,彌補了答案分離導致的資訊不足。
-
最後,採用了 (Ma et al. 2018) 提出的檢索式詞生成器,它可以在生成過程中更好地捕捉詞語義.
如上圖,結構主要如下:
- encoder:目標答案和分離答案的原始段落分別對應兩個encoder,對於分離答案後的段落,與基礎模型相同,使用一個個單層雙向LSTM(見圖2第一個)。
對於答案編碼encoder,使用另一個單層雙 LSTM 對目標答案 \(x^{a}\) 進行編碼。 在答案編碼器的最後一個時間步中,將每個 LSTM 的隱藏狀態串聯起來,形成最終的隱藏狀態 \(h_{final}^{a}\)
- decoder:為了利用來自文章和目標答案的足夠資訊,對於解碼設計了基於LSTM的答案分離解碼器。答案分離解碼器通過以下三種方式利用文章和目標答案的特徵。
- 用最終答案向量\(h_{final}^{a}\)初始化解碼器狀態。
- 結合答案的關鍵特徵,即提取目標答案中的關鍵資訊來消除問題目標的歧義。見圖2第二部分,在每個解碼步驟中,我們使用一個基於注意力的模組,稱為keyword-net,從目標答案中提取關鍵資訊。對於keyword-net的每一層,計算最後一層 \(o_{t}^{l-1}\) 的輸出向量和答案隱藏狀態 \(h_{j}^{a}\) 之間的歸一化匹配分數。 然後我們將 \(h_{j}^{a}\) 的加權平均值作為當前層 \(l\)中提取的關鍵字特徵 \(o_{t}^{l}\) 。 我們用當前解碼步驟的上下文向量\(c_{t}\)初始化 \(o_{t}^{0}\)。以下方程描述了keyword-net的機制:
\(s_t\)代表當前時間步的解碼器的隱藏狀態。\(c_t\)代表當前時間的上下文向量。\(y_t−1\)代表上一次的輸出token步驟
- 將檢索式詞生成器(Ma et al. 2018,通過查詢分散式單詞表示來生成單詞,希望能夠捕捉到所用單詞的含義)背後的想法來替換我們解碼器中現有的輸出層。可以彌補序列到序列模型的缺點,即序列到序列模型傾向於記憶序列模式而不是反映詞義。
查詢 \(q_t\) 被計算為解碼器隱藏狀態\(s_t\) 和上下文向量 \(c_t\) 的組合。 通過向每個詞嵌入\(e_k\) 查詢 \(q_t\),我們可以計算 \(q_t\) 和 \(e_k\) 之間的相關性分數,其中 \(Wa_a\) 是可訓練的引數矩陣。然後得分函式的歸一化值表示每個詞的生成概率。 由於原始輸出層佔用了大部分模型引數,我們可以通過使用這個詞檢索層來顯著減少引數大小和模型收斂時間:
\[\begin{gathered} q_{t}=\tanh \left(W_{q}\left[s_{t} ; c_{t}\right]\right) \\ \operatorname{score}\left(q_{t}, e_{k}\right)=q_{i}^{\top} W_{a} e_{k} \\ p\left(y_{t}\right)=\operatorname{Softmax}\left(\operatorname{score}\left(q_{t}, e_{k}\right)\right) \end{gathered} \]3 實驗
使用有文章使用過的兩個處理過的SQuAQ資料集版本。由於原始資料集被劃分為train/dev ,因此將它們重新劃分為train/dev/test ,並從包含目標答案的段落中分離段落和答案為data split-1和data split-2。對於data split-1,由於不包括目標答案,從每個段落中提取它們以製作 (passage, question, answer) 三元組。最後使用 Stanford CoreNLP 對兩個資料拆分進行標記,然後將它們小寫。
對於實驗中各超引數的設立請看原文。
最後,對結果使用BLEU-4,Meteor,\(Rouge_L\)作為評價標準對預測結果進行評價。將該模型與與之前最先進的 NQG 模型進行比較。
我們在 SQuAD 資料集上使用 QANet (Yu et al. 2018) 進行實驗,以驗證我們模型生成的問題是否有效。 由於大多數答案對應於命名實體,因此我們使用來自資料 split-1 訓練部分的命名實體的單詞和短語作為目標答案。 然後,我們將這些答案與相應的段落配對。 我們還確保所選答案不會與原始 SQuAD 資料集中的答案重疊,因為我們的 NQG 模型是使用 SQuAD 資料集提供的目標答案進行訓練的。 如果答案重疊,我們的模型可能會生成與黃金問題完全相同的問題。 然後我們將這些答案與相應的段落配對。
由於 SQuAD 資料集是一個人造資料集,這個結果充分表明我們的答案分離 seq2seq 可以生成人類和機器理解系統都可以接受的有效問題。
4 總結與展望
在本文中,研究了答案分離在神經問題生成中的優勢。 我們觀察到現有的 NQG 模型存在一個嚴重的問題:很大一部分生成的問題包含問題目標中的單詞,從而導致生成非故意的問題。 為了克服這個問題,我們引入了一種新穎的 NQG 架構,該架構將文章和目標答案分開處理,以更好地利用雙方的資訊。 實驗結果表明,我們的模型具有很強的為文章中的目標答案生成正確問題的能力。 因此,它比以前最先進的模型產生了實質性的改進。
本文來自部落格園,作者:xyzhrrr,轉載請註明原文連結:https://www.cnblogs.com/xyzhrrr/p/15466267.html