讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解

PaperWeekly發表於2017-08-10

論文作者 | 王炳寧,劉康,趙軍(中科院自動化所)

特約記者 | 吳桐(東南大學)

深夜,父親捧著故事書來到小兒子的床邊,溫柔的唸到:“……王子看著躺在面前的睡美人,輕輕的俯身吻了下去……”“爸爸,睡美人是還沒醒嗎?”父親輕聲地說:“剛才爸爸講了什麼來著,王子出發之前吃了四碗韭菜大蒜餡的餃子,所以睡美人終於還是忍不住醒了。”

故事型常識閱讀理解(Story Cloze Test (SCT))是近幾年新提出的一個文字理解任務,在這個任務中,給定背景的四句話,我們需要從兩個候選句子中選擇出哪一個可以被前四句話推匯出來。要完成這個任務,我們需要深入理解背景的四個句子,進行推理。

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解

▲ 圖1:訓練資料集樣本

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解

▲ 圖2:測試資料集樣本

如上圖所示,這個資料集的訓練集和測試集存在偏差,而且在訓練集中只有正樣本,沒有負樣本。這使得常規的判別模型難以得到應用。

來自中國科學院自動化研究所模式識別國家重點實驗室的王炳寧同學,劉康老師和趙軍老師在 IJCAI 2017 會議論文“Conditional Generative Adversarial Networks for Commonsense Machine Comprehension”提出了一種新的模型,使用對抗式生成網路(GAN)產生負樣本,從而使分類器能夠得到充分訓練並在該任務上表現不俗。

模型的整體思路如圖 3 所示:

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解


▲ 圖3:系統結構圖

在系統流程中,生成器(generator)讀入長度為四句話的故事前情(context),然後生成一個偽樣本(fake)。判別器有兩個輸入,其一是故事前情(context),其二是訓練正例(true)或是生成器(generator)產生的偽樣本(fake),判別器將輸出概率值以表示樣本能夠從故事前情中推導得到的可能性。

具體地,判別器的模型圖如圖 4 所示:

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解

▲ 圖4:判別器模型圖

對於生成器,由於目標函式是判別器的分數值,而生成器的輸出是根據 argmax 得到的一個個離散的詞語,因此無法直接求導。本工作中使用了一種溫度演算法來近似 argmax 操作。具體來說,在預測每個詞時,首先會經過 softmax 對詞表中的每一個詞求一個概率:

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解

其中是第 πj 個詞未經過 softmax 歸一化的分數。然後對這個分數進行縮放,使大的更大,小的更小:

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解


其中 τ 是縮放因子(溫度係數),當它越大的時候,系統的輸出越不確定,即每個詞的概率都差不多,當這個因子很小的時候(特別的,趨近於 0 的時候),絕大部分都近似於 0,只有一個最大值近似 1。最後當前的輸出為:

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解

由於輸出就由最大的那個值確定,因而可以看作是 argmax 的一種連續的近似。

隨著判別器和生成器不斷迭代的訓練。最後得到的判別器可以判斷當前輸入的句子是不是可以被背景四句話推出。因此在測試階段,本工作直接用判別器來輸出一個概率來給出兩個候選的可能性。這也是本工作的亮點之一,和以往 GAN 的應用不同,對抗過程中提升的主要目標是一個高效能的判別器,生成器在模型中僅起到一個輔助作用。

最後的實驗結果(正確率)如下圖所示:

讓機器告訴你故事的結局應該是什麼:利用GAN進行故事型常識閱讀理解


實驗中,文中將該模型同幾種傳統的分類模型進行對比,該模型取得了顯著的效能優勢,並且可以看到,在加入了關注機制以及對抗樣本之後,模型的效果更進一步的提高了。該工作對於處理正負樣本不均衡的分類問題具有較高的借鑑意義。

檢視論文:

Conditional Generative Adversarial Networks for Commonsense Machine Comprehension

相關文章