Info-Maximizing Hierarchical Conditional VAEs

語言: CN / TW / HK

Source: ACL 2020: Generating Diverse and Consistent QA pairs from Contexts with Information-Maximizing Hierarchical Conditional VAEs

Code: seanie12/Info-HCVAE

Key insight: 針對當前的QG模型生成的QA pairs普遍缺乏多樣性和一致性的問題,作者提出了 帶互資訊正則化的層次條件變分自編碼器(Info-HCVAE) 模型,其中的HCVAE提升了生成的QA pairs的多樣性,互資訊正則項提升了生成的QA pairs的語義一致性。為了更好地評估生成的多樣性,作者在QAE指標的基礎上提出了 Reverse QAE 指標,實驗結果表明Info-HCVAE能夠生成高質量、多樣化且一致性好的QA pairs。

Introduction

抽取式問答(Extractive Question Answering)是NLU最基本的任務之一,目前不少基於 PTM 的QA模型已經在一些 基準資料集(SQuAD) 上超越了人類水平。然而,這些SOTA模型的成功很大程度上得益於大規模標註資料集,要將這些QA模型部署到現實世界的應用中,通常需要投入大量成本去構建大規模高質量的領域資料集來訓練模型。因此, 標註資料的稀缺性是QA面臨的主要挑戰之一 ,自動問題生成(Question Generation)和問答對生成(Question-Answer pair Generation)任務應運而生,QG任務一方面提供了一類資料增強或半監督學習的方式輔助QA模型的訓練,另一方面,QG任務本身也有可落地的應用價值。

近幾年已經有不少QG模型被提出,但這些模型都忽略了一個重要的點,也就是從資訊豐富的context中生成QA pairs本質上是一個 一對多 的問題,而眾所周知的是, 由於Seq2Seq模型是用極大似然估計(MLE)訓練的,因此基於Seq2Seq的QG模型生成的問題通常缺乏多樣性。 許多QG模型嘗試通過beam search來生成不同的問題來實現多樣性,但這種方式通常是次優的。QG任務的另一個挑戰是 如何保證生成的問題和答案之間的一致性 ,生成的問題和答案應該是語義一致的(answerable),這在QG模型裡還沒有得到深入研究。

針對上述問題,作者提出了一種深度概率生成模型: Info-HCVAE 。作者一方面通過層次條件變分自編碼器(HCVAE)分別引入了question和answer的潛在空間來增強QA pairs的 多樣性 ,另一方面通過互資訊(MI)來衡量question和answer的 一致性 ,並設計了一個正則化項(InfoMax Regularizer)來鼓勵模型生成語義一致的QA pair。在生成階段,模型首先根據context生成一個answer,然後根據context和answer生成對應的question,這種依賴關係能夠讓模型生成專注於context的不同片段的QA pairs。

Related Work

Question and Question-Answer Pair Generation

基於encoder-decoder結構的QG主要起源於2017年的兩篇論文: Learning to ask: Neural question generation for reading comprehension(ACL 17) Neural question generation from text: A preliminary study(NLPCC 17) ,而本文設定的Baseline是 Paragraph-level Neural Question Generation with Maxout Pointer and Gated Self-attention Networks(EMNLP 18) ,因此在生成網路的結構上本文很大程度上借鑑了這篇論文的設計。

比起QG任務,QAG任務受到的關注更少,QG與QAG的不同在於QG假設answer span是事先給定的,answer span可以是人工標註的,也可以是通過基於NER、RE之類的答案選擇模型得到的,從這個角度來看,QAG任務似乎更general一些。

目前VAE已經被大量應用到了文字生成任務中,雖然已經有人將VAE用於QG任務( Teaching Machines to Ask Questions (IJCAI 18) ),但還沒有人將其用於QAG任務。

Semi-supervised QA with QG

QG和QA是相輔相成的任務,在評估QG模型的時候,通常都需要QA模型的配合,它們也可以組合形成很多不同的半監督學習正規化,這裡僅舉幾例:

Method

QAG任務可以描述為給定一個包含 個token的context: ,我們想要生成QA pair: ,其中 分別表示問題和答案,模型需要從資料中學習條件聯合分佈 ,這樣我們就可以取樣該分佈得到新的QA pairs:

Hierarchical Conditional VAE

作者採用VAE框架來近似 ,但作者並不是直接學習問題和答案聯合的潛在空間,而是將其分解成了問題潛在空間 和答案潛在空間

作者假設條件先驗 是各向同性的高斯分佈(isotropic Gaussian distribution),而 是類別分佈(categorical distribution),因為answer被限定為是context的一個span,所以answer的潛在空間適合用離散的類別分佈來建模,又因為我們可以針對單一的context中提出幾乎無限個有效的question,所以question的潛在空間更適合用連續的高斯分佈來建模。

另外 並沒有被假設是獨立的兩個潛在空間,在這裡作者設計了一個question和answer的雙向依賴關係,即強制answer潛在變數依賴於question潛在變數: ,並通過抽樣過程來實現question和answer的反向依賴關係:

作者還進一步假設了 是條件獨立的: ,這樣就可以使用變分後驗 來最大化ELBO(推導見原文附錄):

其中 分別為生成網路、後驗網路和先驗網路的引數,上述模型便是HCVAE的整體結構,用概率圖表達出來如下圖所示:

生成的整體過程為:

  • 取樣問題潛在變數:
  • 取樣答案潛在變數:
  • 生成答案:
  • 生成問題:

下面分別講解生成、後驗和先驗網路的具體結構。

Prior Networks

對於question的條件先驗分佈 ,我們首先使用BiLSTM對context的word embedding(由凍結的預訓練BERT的詞嵌入矩陣給出)進行上下文編碼,然後通過一個MLP得到高斯分佈的引數 ,對於answer的條件先驗分佈 ,我們聯合問題潛在變數 和context的上下文編碼經過另一個MLP來得到引數

Posterior Networks

我們分別使用兩個條件後驗網路 來近似question和answer的潛在變數的真實後驗分佈,首先使用兩個BiLSTM分別來獲取question和context的隱藏表示,然後將這兩個隱藏表示通過一個MLP來獲取高斯分佈的引數 。由於取樣過程 不可導,因此採用重引數技巧使得反向傳播可行。

然後我們用另一個BiLSTM來編碼附加answer資訊的context(answer-aware context),附加方式是將answer以binary token type的方式像BERT的原始輸入那樣編碼到context中,然後通過預訓練好的BERT獲取answer-aware context,最後將得到的隱藏表示聯合 送進MLP計算出類別分佈的引數 ,並採用 gumbel-softmax 技巧來重引數離散分佈的取樣過程。

Answer Generation Networks

我們可以將 分解為更簡單的 分別表示answer span在context中的起始位置和結束位置,為了對它們做極大似然估計,我們首先用預訓練好的BERT對context進行上下文編碼 ,然後通過一個 heuristic matching layer 和一個BiLSTM計算出context和 的一個最終表示

最後將 分別輸入到兩個不同的線性層來預測 ,得到生成的answer。

Question Generation Networks

作者將問題生成網路設計為一個Seq2Seq結構,在編碼階段,使用預訓練的BERT將answer-aware context編碼為上下文詞嵌入,然後用兩層的BiLSTM將其進一步編碼為上下文隱藏表示,並加入gated self-attention mechanism來更好地捕捉context內部的長距離依賴,由此獲取一個新的隱藏編碼表示

生成網路的解碼器也是一個兩層的LSTM,它將 作為初始狀態,並採用了眾所周知的attention mechanism,即利用每一步解碼的隱藏表示 動態匯聚為上下文向量 ,然後將 一起送到帶有Maxout啟用單元的MLP中算出最終的解碼隱藏狀態

其中 是問題的詞嵌入,每一步解碼的生成概率分佈為 是凍結的預訓練詞嵌入矩陣。另外模型還加入了copy mechanism,並在生成問題的時候採用greedy decoding以確保生成的QA pairs隨機性全都來自於潛在變數的取樣。

Consistent QA Pair Generation with Mutual Information Maximization

QAG任務最重要的挑戰之一是 如何保證生成的問題和答案的語義一致性 ,即保證生成的問題是可以被答案所回答的,當前大多數QG模型經常會生成與上下文和答案不相關的問題,因此本文作者設計了一個鼓勵QA pair語義一致的機制。作者假設可回答的QA pair具有更高的互資訊(MI),然而MI的精確計算是intractable的,因此作者採用了神經網路來近似計算,MI有很多近似估計的方法,作者採用的是 QAInfomax 中基於Jensen-Shannon散度的估計:

其中 分別表示在正樣本和負樣本上的期望,而負樣本是每個minibatch中的question和answer隨機組合得到的。直觀上來看, 和一個二分類器相似,即判別QA pair是否來自QA的聯合分佈。作者通過實驗發現下面的 能夠達到一致性的目標:

其中 ,將此MI的估計與HCVAE結合,便得到了Info-HCVAE的優化目標:

Experiment

作者在SQuAD v1.1、Natural Questions和TriviaQA資料集上訓練並評估Info-HCVAE,其中QA模型採用原始的BERT-base。

Quantitative Analysis

文字生成模型面臨的關鍵挑戰之一是 缺少有效的定量評估指標 ,如何定量地衡量模型生成的QA pairs的質量呢?通用的一些指標(BLEU、ROUGE、METEOR)只會告訴我們生成的QA pairs和Ground Truth(GT) QA pairs有多相似,這與QA pair本身的質量不是直接相關的。因此,作者使用了 Zhang and Bansal 提出的衡量QA pair質量的指標: QAE,QAE的評估方式很簡單,即 首先用QG模型生成的QA pairs訓練QA模型,然後將人類標註的QA pairs作為測試集來評估QA模型,這同時也評估了QG模型。

QAE衡量了生成的QA pairs的分佈和GT QA pairs有多相似,沒有考慮QA pairs本身的多樣性,但是在半監督學習的設定下,我們已經有了Ground Truth標註了,我們實際希望模型能夠生成和Ground Truth不同的QA pairs,這樣才能達到資料增強的效果,因此作者提出了一個新的指標 Reverse QAE(R-QAE) 來衡量生成的QA pairs的多樣性。R-QAE與QAE恰好相反,即 用Ground Truth訓練QA模型,用生成的QA pairs評估模型 。如果生成的QA pairs覆蓋了比人類標註資料更大的語義空間,R-QAE將會偏小,也就是越多樣化,不過需要注意的是R-QAE必須在QAE足夠高的時候才有意義,因為生成的無效問題也會導致低的R-QAE。

Result

作者的實驗表明Info-HCVAE具有明顯更高的QAE(quality)和更低的R-QAE(diversity),這表明模型能夠生成高質量、多樣且語義一致的QA pairs,另外Info-HCVAE表現得比HCVAE更好,這表明作者提出的InfoMax Regularizer是有效的。

下圖表明比起其他QG模型,Info-HCVAE能夠生成更少的QA pairs來訓練相同精度的QA模型。

下圖表明Info-HCVAE生成的QA pairs有更高的互資訊,即一致性更好。

Ablation Study

作者為了探索概率潛在變數建模和層次建模帶來的增益,進行了消融實驗。當我們去掉潛在變數時,模型便退化成了確定的Seq2Seq模型(Baseline),實驗表明加上潛在變數之後,模型的QAE和R-QAE都會變得更好。

Qualitative Analysis

Human Evaluation

作者人工評價了Info-HCVAE和Maxout-QG生成的QA pairs的質量,評價方式為比較模型在同一個context上生成的QA pairs的多樣性、一致性和整體質量(Overall),Info-HCVAE給出的結果在多數時候都更優秀。

One-to-Many QG

之前提到問題生成是一個一對多的問題,因此作者通過對問題潛在空間 多次取樣來生成同一答案的不同問題,生成結果表明模型能夠 針對一個答案生成一系列語義一致且更多樣的問題

Latent Space Interpolation

為了驗證Info-HCVAE是否學習到了有意義的潛在空間,作者採用對兩個潛在編碼插值的方法來分析模型的潛在空間。具體來說,首先用後驗網路 將兩個QA pair編碼到 ,然後從先驗網路 中取樣插值後的 來生成QA pair。實驗結果表明QA pair的 語義能夠平滑地從一個潛在編碼轉換到另一個潛在編碼

Semi-supervised QA

上面的實驗主要是測試QG模型本身的效能,接下來作者將QG用於半監督學習中,即訓練同時利用人工標註的QA pairs和生成的QA pairs來訓練QA模型,以驗證生成的QA pairs是否能幫助QA模型提升效能。實驗結果表明QG模型能幫助QA模型小幅提升效能,同時在額外的資料集(H)上訓練QG模型時,效能會進一步提升。

當目標任務的資料集沒有任何標註資訊時,QG模型才是最有用的。作者首先在SQuAD上訓練Info-HCVAE,然後利用訓練好的模型為NQ和TriviaQA資料集生成大量QA pairs,並用這些生成的QA pairs微調在SQuAD上預訓練的QA模型。實驗結果表明,生成的QA pair越多,QA模型的表現通常就越好,顯著超越了單純只在SQuAD上預訓練的QA模型。不過由於源資料集和目標資料集的分佈差異,這樣訓練出來的模型表現還是大幅落後於在人工標註的資料集上訓練出來的QA模型。

Discussion

QG任務致力於解決的問題本質上和少樣本學習,遷移學習有關,在作者的實驗中我們也看到了用預訓練的QG模型生成的目標領域的QA pairs來微調預訓練的QA模型,帶來的效能提升幅度還是有限的,這說明不同領域資料分佈的差異是很難克服的,而元學習可能是解決模型在不同資料集上泛化問題的一種思路。

Reference

SlidesLive

問答對生成(QAG)| 你還在手工梳理問答對嗎?