天天看點

論文解讀:COLING-2020(ccf-b)-Answer-driven Deep Question Generation based on Reinforcement Learning

目錄

​​1,問題​​

​2,創新​

​1 encoder​

​​1.1 Word encoder​​

​​1.2 Graph Encoder​​

​2 Decoder​

​​2.1 應答感覺初始化子產品Answer-Aware Initialization Module​​

​​2.2 語義豐富的融合注意力Semantic-Rich Fusion Attention​​

​​2.3 複制機制和 Maxout 指針Copy Mechanism and Maxout Pointer​​

​​2.4 用于微調的強化學習Reinforcement Learning for Fine-Tuning​​

​​3,實驗​​

​​4,總結與展望​​

本文同樣是針對QG中,由于答案資訊的缺失或使用不當的導緻的問題:

生成的問題與答案無關

如果在生成過程中沒有适當的指導,尤其是在應用複制機制時,生成的問題中可能會包含答案。

基于以上問題,在本文中,作者提出了一個答案驅動的深度問題生成(ADDQG)模型,它更好地利用目标答案作為指導來促進深度問題的生成。該模型同樣采用encoder-decode範式

基于以上問題,作者提出兩個創新點:

首先,提出了一個帶有門控連接配接層的答案感覺初始化子產品,該子產品将文檔和答案資訊引入解碼器,進而有助于選擇以答案為重點的問題詞。

其次,提出在encoder使用語義豐富的融合注意機制,它将答案與文檔表示相結合,以促進在生成過程中正确處理答案資訊。

最後,應用強化學習來整合句法和語義度量,作為增強 ADDQG 訓練的獎勵。

前面已經提到,作責提出的新模型是基于encoder-decoder架構,通過加入一些額外子產品改進得來的答案驅動的深度問題生成(ADDQG)模型,本節基于基本的encoder和decoder架構對創新部分進行簡單說明。

首先直接給出ADDQG 在生成步驟 t 的圖示(後續公式都是在步驟t下的情況):

論文解讀:COLING-2020(ccf-b)-Answer-driven Deep Question Generation based on Reinforcement Learning

新模型分别對答案answer和檔案document提出了兩個encoder(作者稱為詞編碼器Word encoder)來更精确地定位目标資訊以進行後續操作,二者的輸入分别為文檔集合 \(X^{d}=\left(X_{1}^{d}, \ldots, X_{n}^{d}\right)\) 和對應的答案 \(X^{a}=\left(X_{1}^{a}, \ldots, X_{n}^{a}\right)\)。并且,結合“圖編碼器(Graph encoder)”來從文檔中提取語義資訊,建構基于解析的語義圖。

此外,本文深度問題生成的靈感來自多跳問答,它聚合多個文檔中分散的證據片段以預測正确答案,它的任務就是在給定的\(X^{d}\)和\(X^{a}\)的情況下,得到最大化的\(\bar{Y}\)。

\[\bar{Y}=\underset{Y}{\arg \max } P\left(Y \mid X^{d}, X^{a}\right)\]

下面分别對 Word encoder和Graph encoder進行介紹。

模型:來更精确地定位目标資訊以進行後續操作,對于Word encoder 對答案和文檔兩個encoder,并且二者都選用雙向LSTM。

輸入:二者的輸入源表示為嵌入向量序列,使用預訓練的 GloVE 嵌入,分别得到詞向量 \(\left(w_{i, 1}, w_{i, 2}, \ldots, w_{i, m}\right)\) 作為文檔 \(X^{d}\)和答案\(X^{a}\)的輸入。

輸出:分别得到兩個隐藏狀态\(H^{A}=\operatorname{BiLSTM}\left(W_{e m b}\left(X^{a}\right)\right)\)和\(H^{D}=\operatorname{BiLSTM}\left(W_{e m b}\left(X^{d}\right)\right)\)

實體之間的語義關系是确定包含的查詢内容和推理類型的有力線索。為了從文檔中提取語義資訊,我們使用依賴關系建構基于解析的語義圖\(H^{D}\)。是以,該子產品的主要目的是更好的提取文檔中的語義資訊,最終得到語言豐富的文檔表示\(H^{DK}\)以促使在後續能和答案資訊更好結合,以達到增強答案與問題相關性的目的。

建構語義圖主要需要一下四部:

首先對每個節點v進行第一次初始化,\(v=\left\{w_{j}\right\}_{j=m}^{n}\),其中\(w_{j}\)是該節點中單詞的上下文表示,m/n 是文本跨度的開始/結束位置。即加入某一文本跨度内的所有單詞到該節點v中。

計算文檔encoder的輸出\(H^{D}\)對目前節點v中所有單詞的權重\(\gamma_{j}^{v}\),其公式為\(\gamma_{j}^{v}=\operatorname{softmax}\left(\operatorname{ReLU}\left(W_{0}\left[H^{D} ; w_{j}\right]\right)\right)\),其中\(w_{0}\)是可訓練參數。

對每個節點進行第二次初始化,即将加入的單詞進行權重,那個該節點就對應了一段文本跨度中所有單詞的總體表示,\(h_{i}^{0}=\sum_{j=m}^{n} \gamma_{j}^{v} w_{j}\)。

使用圖注意力網絡GAT(Graph Attention Network)的注意力機制,來動态确定消息傳遞中相鄰節點的權重。

\[\begin{aligned}&\eta_{i j}=W_{1}^{t-1}\left(\operatorname{ReLU}\left(W_{2}^{t-1}\left[h_{i}^{t-1} ; h_{j}^{t-1}\right]\right)\right) \\

&\alpha_{i j}=\frac{\exp \left(\eta_{i j}\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(\eta_{i k}\right)} \\

&h_{i}^{t}=\sum_{j \in \mathcal{N}_{i}} \alpha_{i j} W^{t_{e_{i j}}} h_{j}^{t-1}

\end{aligned}\]

其中,第一個公式計算了相鄰節點vj與目前節點vi的相關性,第二個公式對所有相鄰節點對目前節點vi的相關性進行類似于softmax的運算,得到各相鄰節點對目前節點的權重,也即是不同文本跨度之間的相關性。其中\(mathcal{N}_{i}\)代表節點vi的相鄰節點。\(W_{1}^{t-1}\)和\(W_{2}^{t-1}\)都是可訓練參數。第三個公式就是在目前步驟t下,節點vi的最後值,可以看到将考慮了上一時刻狀态及周圍節點與其的相關性。

最後,應用門控循環單元(GRU)來合并聚合的相鄰資訊并獲得語義圖表示\(H^K\)。

新模型的decoder同樣選用雙向LSTM,并且同樣使用了複制機制。

其實就是對decoder進行初始化的子產品,相比于普通的QG模型使用encoder的最後的隐藏狀态進行初始化,本模型(ADDQG)使用答案驅動的初始化方法(将Word Encoder中的兩個結果\(H^{A}\)和\(H^{D}\)進行處理),可以明确引導問題詞的選擇,生成更注重答案的問題。下面進行說明。

首先設計了一個融合門來控制文檔和答案的資訊流率。\(g=\sigma\left(W_{z}\left[H^{A} ; H^{D} ; H^{D} \odot H^{A} ; H^{D}-H^{A}\right]+b_{z}\right)\),可以看到分别考慮了二者單獨、二者分量乘法(對應相乘)以及相減三種情況,以便更好的融合二者資訊。其中\(\odot\)代表分量乘法(對應相乘)。

Z是解碼器的最終初始化,是答案和文檔特征的深度融合,\(Z=g \odot H^{D}+(1-g) \odot H^{A}\)。Z将用于初始化decoder的初始時刻的隐藏狀态。

作為decoder中的複制機制做了準備。語義豐富的融合注意力将答案與文檔和語義圖相結合,以更好地支援生成過程。 下面詳細說明。

首先,語義圖表示\(H^{K}\)與文檔表示\(H^{D}\)相結合,得到語義豐富的文檔表示\(H^{DK}\)。具體來說,如果節點\(v_i\)包含單詞\(w_i\),則将單詞表示\(H_{i}^{D}\)和節點表示\(H_{v_i}^{K}\)連接配接起來得到融合表示\(H_{i}^{DK}\)(如果沒有對應的 \(v_i\),則填充一個特殊的向量),\(H_{i}^{D K}=F\left(\left[H_{i}^{D} ; H_{v_{i}}^{k}\right)\right]\),其中F(.)是标準非線性轉換函數。

融合答案表示\(H^{A}\)和語義豐富的文檔表示\(H^{DK}\),為了模拟輸入源之間的複雜互動,我們應用了協作注意機制。

首先計算相關矩陣 \(L=H^{D K^{\top}} H^{A}\),其中包含所有對的相似度分數。

針對相關矩陣L,分别按行和按列計算兩個注意力權重\(A^{H^{A}}=\operatorname{softmax}(L), A^{H^{D K}}=\operatorname{softmax}\left(L^{\top}\right)\),其中softmax預設是按行的,是以第二個參數為L的轉置。對于文檔中的每個單詞,注意力權重\(A^{H^{A}}\)在答案中,而對于答案中的每個單詞,注意力權重\(A^{H^{D K}}\)在文檔中。是以第一次按行對答案進行計算求得文檔中每個單詞的權重\(A^{H^{A}}\),轉置後對文檔進行計算,求得答案中每個單詞的權重\(A^{H^{D K}}\)。

接下來,類似于論文呢(Cui et al., 2017),計算問題和文檔的互相依賴表示\(C^{H^{DK}}\),公式如下:

\[C^{H^{A}}=H^{D K} A^{H^{A}}, C^{H^{D K}}=\left[H^{A} ; C^{H^{A}}\right] A^{H^{D K}}\]

可以看到,首先對文檔中的單詞進行權重計算,然後将結果與答案中聯合起來進行權重計算得到最終的互相依賴表示。

然後,将語義豐富的文檔資訊和以及其與答案資訊的互相依賴表示進行融合,得到融合表示:\(H^{D K A}=\left[H^{D K} ; C^{H^{D K}}\right]\)

最後,應用語義豐富的表示 HDKA 來獲得上下文向量 \(c_t\),以便為複制機制做準備。

\[\begin{aligned}&e_{t}=v_{a}^{T} \tanh \left(W h_{t}^{*}+U H^{D K A}\right) \\

&\alpha_{t}^{*}=\operatorname{softmax}\left(e_{t}\right) \\

&c_{t}=H^{D K A} \alpha_{t}^{*}

其中 W、vT a 和 U 是可訓練的參數,\(h_{t}^{*}\)為t時刻decoder的隐藏狀态,其公式為\(h_{t}^{*}=L S T M_{D e c}\left(\left[w_{t} ; c_{t-1}\right], h_{t-1}^{*}\right)\),其中\(w_{t}\)為輸入(應該為檔案encoder的最後輸出)上面是t時刻的,初始時\(h_{t}^{*}\)=Z,并據此不斷計算每一時刻。

為了解決詞表外 (OOV,out of vocabulary ) 問題(即目标任務中可能出現一些罕見詞或是派生詞,詞的複數或者其他的一些組合詞的規則而産生的詞無法用現有詞向量模型表示。),decoder使用了複制機制 。該機制允許将标記從輸入源複制到解碼步驟 t。下面對實作進行簡單說明。

該機制利用原始注意力分數 \(\alpha_{t}^{*}\) 來作為複制機率\(p_{\text {copy }}\left(y_{t}\right)\)。采用maxout指針機制,将重複詞的分值限制在最大值,解決重複問題。

由詞表生成詞機率為 \(p_{\text {gen }}\left(y_{t}\right)=\operatorname{softmax}\left(W^{T}\left[h_{t-1}^{*} ; c_{t}\right]\right)\) ,其中\(W^{T}\)為可訓練參數。

複制開關k決定産生的字是從詞彙表采樣還是從輸入源複制,其公式為\(k=\sigma\left(W^{c} h_{t}^{*}+U^{c} c_{t}+b^{c}\right)\),其中未指明各項均為可訓練參數。

t時刻得到的詞最後的機率為:

\(p_{\text {final }}\left(y_{t} \mid y_{<t} ; \theta\right)=k p_{\text {copy }}\left(y_{t}, \theta_{1}\right)+(1-k) p_{\text {gen }}\left(y_{t}, \theta_{2}\right)\),其中\(\theta\)和\(\theta_{2}\)分别為複制機制和生成機制的參數。

其實就是利用損失函數進行調整

問題生成的損失函數最小化輸出生成詞的負對數似然為:\(\operatorname{Loss}_{C E}=-\sum_{t} \log P\left(y_{t} \mid y_{<t}, X^{d}, X^{a}, \theta\right)\)

然而,在序列預測模型中使用上述交叉熵損失可能會使過程變得脆弱,因為在特定單詞分布上訓練的模型用于具有潛在不同分布的測試資料集,以在給定目前預測單詞的情況下預測下一個單詞。這會在訓練過程中産生“暴露偏差”(簡單來講是因為文本生成在訓練和推斷時的不一緻造成的。不一緻展現在推斷和訓練時使用的輸入不同,在訓練時每一個詞輸入都來自真實樣本(GroudTruth),但是在推斷時目前輸入用的卻是上一個詞的輸出),強化學習被廣泛用于處理問題生成中的“暴露偏差”,并被證明是有效的。 我們将 r 定義為獎勵,它是通過将輸出序列 Y 與基于度量的相應真實問題 Y∗進行比較來計算的。

使用 BLEU-4 作為獎勵 \(r\left(Y, Y^{*}\right)_{\mathrm{BLEU}-4}\),它直接針對評估名額進行了優化,使用詞移動距離 (WMD) 作為獎勵\(r\left(Y, Y^{*}\right)_{\mathrm{WMD}}\),這使得模型更有效和強壯的。

\[\begin{aligned}&r\left(Y, Y^{*}\right)_{\mathrm{WMD}}=f_{\mathrm{WMD}}\left(Y, Y^{*}\right) \\

&r\left(Y, Y^{*}\right)_{\mathrm{BLEU}-4}=f_{\mathrm{BLEU}-4}\left(Y, Y^{*}\right)

本文沒有使用\(r\left(Y, Y^{*}\right)_{\mathrm{BLEU}-4}\)和\(r\left(Y, Y^{*}\right)_{\mathrm{WMD}}\)的權重組合,而是應用多獎勵優化政策來訓練具有兩個混合損失的模型,因為很難在其中找到複雜的縮放和權重平衡。是以,本文遵循有效的 SCST 政策,并以貪婪搜尋結果 DQG(深度問題生成) 的獎勵為基準 b:\(\operatorname{Loss}_{R L}=\left(b-r\left(Y^{s}, Y^{*}\right)\right) \log P\left(y_{t}^{s} \mid y_{<t}^{s}, X^{d}, X^{a}, \theta\right)\)。其中\(Y^{s}\)是采樣出書。

按一定比例交替訓練兩個混合損失\(\operatorname{Loss}_{\text {mixed }}^{W M D}\)和\(\text { Loss }_{\text {mixed }}^{B L E U-4}\):

\[\begin{aligned}&\operatorname{Loss}_{\text {mixed }}^{W M D}=\alpha^{W W D} \operatorname{Loss}_{R L}^{W M D}+\left(1-\alpha^{W M D}\right) \operatorname{Loss}_{C E} \\

&\text { Loss }_{\text {mixed }}^{B L E U-4}=\alpha^{B L E U-4} \operatorname{Loss}_{R L}^{B L E U-4}+\left(1-\alpha^{B L E U-4}\right) \operatorname{Loss}_{C E}

其中 α 是控制交叉熵損失\(\operatorname{Loss}_{C E}\) 和強化學習損失\(\operatorname{Loss}_{R L}\) 之間權衡的比例因子。

最後給出自己做的筆記給自己做參考:

資料集:對于深度問題生成,常用的如SQuAD資料集的問題都比較淺,不太适用。是以選擇HotpotQA ,其中的問題是通過對多個支援文檔進行推理來回答的。

對比模型:S2S-Att,NQG,s2s-mcp-gsa,ASs2s-a,SemQG,SGGDQ

評價名額:自動評估(BLEU,METEOR,ROUGE-Lis),人工評估(Naturalness,Complexity,Relevance)。

實驗結果:ADDQG 模型在 HotpotQA 資料集上取得了最先進的結果(stateof-the-art )。

深度問題生成旨在生成需要對多條資訊進行推理的複雜問題。 在本文提出了一種基于強化學習的答案驅動的端到端深度問題生成模型(ADDQG)。 具有門控連接配接層和語義豐富的融合注意機制的答案感覺初始化子產品旨在将文檔和答案資訊納入生成過程。 進一步應用強化學習來整合句法和語義度量,作為增強 ADDQG 訓練的獎勵。 實驗表明,ADDQG 在具有挑戰性的 DQG 資料集上優于最先進的系統。 消融研究證明了設計的有效性,人工評估表明提出的模型可以産生更連貫且以答案為重點的問題。

未來研究可以在幾個方向上進行。 首先,嘗試使用深度圖卷積編碼器來擷取更深層次的語義資訊,并探索更精細的文檔和答案資訊內建機制。 其次,将應用預訓練的多跳問答模型來生成獎勵來優化 ADDQG,進而進一步增強該 DQG 模型的推理能力。

繼續閱讀