1. 程式人生 > >COLING 2018 ⽤對抗增強的端到端模型⽣成合理且多樣的故事結尾

COLING 2018 ⽤對抗增強的端到端模型⽣成合理且多樣的故事結尾

本⽂介紹哈爾濱⼯業⼤學社會計算與資訊檢索研究中⼼( SCIR)錄⽤於COLING 2018的論⽂《 Generating Reasonable and Diversified Story Ending Using Sequence to Sequence Model with Adversarial Training》中的⼯作。本⽂提出⽤對抗訓練增強的Seq2Seq模型來⽣成合理且多樣化的故事結尾。⼈⼯和⾃動評估指標表明,相⽐於僅僅使⽤最⼤似然估計訓練的端到端模型,對抗訓練增強的端到端模型能夠⽣成合理且多樣化的故事結尾。

 

論⽂作者:李忠陽,丁效,劉挺

 

關鍵詞:端到端模型,⽣成對抗⽹絡,故事結尾⽣成

 

聯絡郵箱: [email protected]

 

1. 任務

 

圖1. 故事結尾⽣成任務介紹

 

本文要解決的問題是故事結尾生成。如圖1所示,給出一個故事上下文,有兩種得到故事正確結尾的任務型別。一是基於故事上下文用生成模型直接生成一個邏輯合理的故事結尾;二是從故事結尾候選中通過常識推理挑選一個合理的故事結尾。本文主要關注第一類任務,即用生成模型生成一個邏輯合理的故事結尾。

 

在本⽂的任務設定中,給出故事上下⽂,很⾃然地可以使⽤Seq2Seq模型來⽣成故事結尾。然⽽,通常的Seq2Seq模型僅僅使⽤最⼤似然估計進⾏訓練。在某些任務中,這種訓練⽅式是合理的,例如機器翻譯,因為給出了⻩⾦標準答案;這些任務的⽬標就是⽣成與⻩⾦標準答案最為接近的句⼦。然⽽,在故事結尾⽣成任務中,僅僅使⽤最⼤似然估計並不是最優的訓練⽬標,因為給出⼀個故事上下⽂,合理、正確的故事結尾並不唯⼀。另一方面,僅僅使用最大似然訓練的Seq2Seq模型通常會生成一些高頻卻無意義的詞語或短語,這也是語言生成模型中一個非常棘手的問題。例如,"go to hospital"和"go to the church"在訓練集中出現頻率很高,Seq2Seq模型就傾向於生成這些短語,儘管他們與故事上下文沒有任何關聯。因此,探索生成合理且多樣的故事結尾的新方法是非常有必要的。本⽂借鑑了⽣成對抗⽹絡的思想,提出⽤對抗訓練增強的Seq2Seq模型來⽣成合理且多樣化的故事結尾。實驗評估表明使用該策略後,人類合理性平均打分提升21.1%,bigram多樣性打分提升126.9%。

 

2. 方法

 

圖2. 對抗訓練增強的Seq2Seq模型總圖

 

圖2展示了本⽂使⽤的對抗訓練增強的Seq2Seq模型框架圖。整個模型包含3個部分,⼀個⽣成器: Seq2Seq模型,定義了從故事上下⽂⽣成結尾的策略;⼀個判別器:是⼀個⼆元分類器,⽤於判別結尾是⼈類撰寫的還是機器⽣成的;以及⽣成器和判別器之間的對抗訓練過程。對抗訓練增強的意思是,本⽂的模型並沒有完全拋棄最⼤似然訓練,⽽是在最⼤似然預訓練Seq2Seq模型的基礎上,使⽤對抗訓練對其進⾏增強。通過這種⽅式,我們希望模型既可以發揮最⼤似然訓練的⻓處,可以⽣成通順流暢、合乎語法的結尾,⼜希望模型能借鑑對抗訓練的優勢,能夠⽣成邏輯合理、更加多樣的結尾。

 

2.1 Seq2Seq模型作為⽣成器

 

如公式1所示,給出⼀個故事上下⽂

作為輸⼊,⽣成器定義了⼀個輸出Y上的分佈,並基於softmax依次⽣成故事結尾的每⼀個單詞,直到⽣成句⼦結束符EOS。柱搜尋被⽤於下⼀個單詞的預測過程中。

 

公式 1

 

2.2 基於層次化句⼦Embedding的判別器

 

通過對抗訓練,本⽂想要⽣成邏輯合理且多樣的故事結尾。我們引⼊了⼀個判別器來判斷輸⼊是⼈類撰寫的,還是機器⽣成的。判別器是⼀個⼆元分類器,本⽂採⽤了⼀個層次化句⼦embedding⽅法來學習故事的表示,然後將其送⼊⼀個⼆元softmax層來得到分類為人類⽣成結尾的概率。這個概率值就是reward,模型將此訊號傳遞給⽣成器以幫助調節其引數。

 

2.3 對抗訓練過程

 

在對抗訓練過程中,期望判別器能⽣成⽆法與⼈類撰寫的結尾相區分的結尾,本⽂採⽤了策略梯度⽅法來達到這樣的⽬標。如公式2所示,判別器給出R+({X,Y})作為⽣成器的獎勵,然後⽣成器使⽤REINFORCE演算法來最⼤化⽣成結尾的期望獎勵。θ表示⽣成器的引數集合。

 

公式2

 

對於每⼀個機器⽣成的故事結尾Y,判別器給出⼀個打分R+({X,Y})。公式2對θ的梯度計算如公式3所示,可以被⽤來更新⽣成器的引數。

 

公式3

 

為了得到對抗訓練增強的⽣成器,本⽂⾸先使⽤最⼤似然在訓練集上訓練⼀個Seq2Seq模型,然後預訓練⼀個判別器(⼈類撰寫的故事作為正例,機器⽣成的結尾加故事上下⽂作為負例),之後再採⽤⽣成器和判別器迭代訓練的⽅式。最後,就能得到對抗訓練增強的Seq2Seq⽣成器。

 

3. 實驗

 

3.1 資料集

 

本⽂使⽤的資料集是ROCStories資料集。訓練集中每⼀個樣例都是5句話組成的⼩故事,開發集和測試集中每⼀個樣例包含⼀個4句話組成的故事上下⽂,以及⼀對⼀錯兩個故事結尾。詳細的資料集統計詳⻅表1。

 

表1. 資料集統計

 

3.2 實驗結果

 

表2~5 中展示了本⽂的實驗結果。

 

表2. 100條隨機挑選的故事結尾的⼈⼯評估結果

 

從表2中可以看出,對抗訓練增強的Seq2Seq模型取得了更好的故事結尾⽣成打分( 1.78),⽐僅僅使⽤MLE訓練的Seq2Seq模型( 1.47)提升了21%。對於Perfect和Good等級,對抗增強的Seq2Seq模型表現更好;⽽且在Perfect等級上,對抗增強的Seq2Seq模型領先了10個百分點。

 

表3. Pairwise模型對⽐

 

在表3的結果中,我們直接⽐較了對抗訓練增強的Seq2Seq模型和僅僅使⽤MLE訓練的Seq2Seq模型⽣成結尾的好壞。可以發現,對抗訓練增強的Seq2Seq模型在49%的情況下,都⽣成了更好的結尾。⽽僅僅使⽤MLE訓練的Seq2Seq模型只在33%的情況下⽣成了更好的結尾。

 

表4. 故事結尾多樣性評估結果。 UnigramDiv和BigramDiv分別是不同的unigram數和bigram數除以⽣成的單詞總數

 

表4中展示了⽣成故事結尾的多樣性評估結果。從中可以發現,對抗訓練增強的Seq2Seq模型可以⽣成更加多樣的故事結尾。

 

表5. 測試集上Story Cloze Test實驗結果

 

此外,本⽂也在故事結尾挑選的任務上對⽐了⼀些基線⽅法。從表5中可以看出,最好的基線⽅法CGAN只取得了60.9%的結果。 Seq2Seq-MLE取得了與DSSM相近的實驗結果,⽽對抗訓練增強的Seq2Seq模型取得了最⾼的準確率為62.6%。實際上,所有的基線⽅法都不能⽣成故事結尾,他們均通過直接⽐較相似度的⽅法挑選故事結尾。⽽本⽂的⽅法從⽣成的⻆度來解決挑選問題:本⽂⾸先使⽤⽣成模型⽣成真實的故事結尾,然後通過⽐較⽣成結尾和候選結尾的相似性進⾏挑選。對於讀者來說,這種⽅法可解釋性更好,因為讀者可以通過閱讀⽣成的結尾和候選結尾來理解是如何挑選出正確結尾的。

 

4. 結論

 

故事⽣成是⼈⼯智慧中⼀個⾮常具有挑戰性的任務。給出⼀個故事上下⽂,本⽂探索了⽣成故事結尾的新⽅法。具體地,我們採⽤了⽣成對抗⽹絡的思想,提出⽤對抗訓練增強的Seq2Seq模型來⽣成合理且多樣化的故事結尾。⼈⼯和⾃動評估指標表明,相⽐於僅僅使⽤最⼤似然估計訓練的Seq2Seq模型,對抗訓練增強的Seq2Seq模型能夠⽣成合理且多樣化的故事結尾。