當前位置:
首頁 > 最新 > 用生成對抗網路解決NLP問題:谷歌大腦提出MaskGAN

用生成對抗網路解決NLP問題:谷歌大腦提出MaskGAN

選自arXiv

作者:William Fedus等

機器之心編譯

參與:Jane W、李澤南

生成對抗網路(GAN)自推出以來,在計算機視覺領域中引起了一股風潮,在自然語言處理中卻鮮有研究。看來,這或許需要 GAN 的提出者 Ian Goodfellow 自己來推動。谷歌大腦 William Fedus、Ian Goodfellow 和 Andrew M. Dai 共同提交的論文中,研究人員使用 GAN 和強化學習方法在 NLP 中做了自己的探索。目前,該論文已提交至 ICLR 2018 大會。

前言

循環神經網路(RNN)(Graves 等人, 2012)是序列型數據以及序列標記任務中最常見的生成模型。循環神經網路在語言模型(Mikolov 等人,2010)、機器翻譯(Wu 等人,2016)和文本分類(Miyato 等人,2017)中顯示出引人注目的結果。在這些模型中,文本通常是模型生成的,通過從條件分布中抽樣得到,而條件分布基於前一個詞語以及一個包含目前為止產生的詞語的隱藏狀態。這些訓練通常通過最大似然以一種 teacher forcing 的方法進行訓練,其中真實的詞語作為條件被饋送回模型中以便生成句子中新的詞語。

但是這會在生成抽樣樣本時造成問題——模型通常被動以未作為訓練條件的序列作為條件。這導致了 RNN 中無法預測的動態隱藏狀態。一些方法如 Professor Forcing(Lamb 等人, 2016)、Scheduled Sampling(Bengio 等人, 2015)可以解決這個問題。這些方法間接通過使隱藏狀態動態變得可預測(Professor Forcing)或者通過隨機將訓練時抽樣的詞語作為條件。但是,這些方法都不直接指定基於 RNN 輸出的損失函數的形式,從而無法鼓勵高質量的樣本抽樣。而谷歌大腦提出的新方法可以實現這個目的。

生成對抗網路(GAN)(Goodfellow 等人, 2014)是一個在對抗設置下訓練生成模型的框架,對抗分為兩部分:生成圖像並試圖愚弄判別器的生成器(generator)和通過訓練鑒別真實圖像和合成圖像的判別器(discriminatory)。相比其它方法,GAN 在生成超模擬圖像的領域取得了巨大成功,但是它在文本序列領域並沒有廣泛的應用。這歸結於自然文本的離散性,使得標準 GAN 中的傳播梯度(propagate gradient)從判別器回到生成器變得難以實現。我們通過使用強化學習(RL)解決了這一問題,利用最大似然和隨機梯度下降方法,在訓練判別器的同時進行生成器的訓練。GAN 也通常受到諸如訓練不穩定性和模式下降(mode dropping)等問題,這兩個問題在文本情況下都更加惡化。模式下降會在某些形式的訓練集中由生成器很罕見地引起,例如,使得所有生成的火山圖像變成同一個火山的多個變體。這在文本生成中變成一個重要的問題,因為數據含有許多複雜模式,從 bigram 到短語到長習語。訓練穩定性也是一個問題,因為不同於圖像,文本是自回歸生成的,從而只有在完整的句子生成之後才能從判別器觀察到損失函數的具體值。當生成越來越長的句子時,這個問題會複雜化。

我們通過文本 fill-in-the-blank 或 in-filling 任務訓練我們的模型,從而減少這些問題帶來的影響。這與 Bowman 等人(2016)提出的方法類似,但是我們的設置更具有魯棒性。在這個任務中,一部分文本被刪除或編輯。這個模型的目的是隨後填充文本中缺失的部分,使其無法與原始數據相區分。當填充文本的過程中,模型自回歸地對已經填充的字元(token)進行操作,如在標準的語言模型中以真實的已知文本作為條件時那樣。如果整個文本被編輯,那這就簡化到語言模型問題。

在以前的自然語言 GAN 研究中,設計每個時間步的誤差分布被視為是重要的(Yu 等人, 2017; Li 等人, 2017)。文本填充任務自然地考慮到了這個問題,因為判別器會評估每個字元並因此向生成器提供一個細粒度的監督信號。例如,設想如果生成器生成一個在前 t-1 時間步完美匹配數據分布的序列,但是隨後生成了一個異常字元 yt,(x1:t?1yt)。儘管整個序列由於錯誤字元而明顯是合成的,判別模型在異常字元處產生了很高的損失信號,但是對於其它不是,判別模型將很可能產生一個更有信息的錯誤信號給生成器。

這項研究也為自然語言環境下的條件 GAN 模型提供了進一步的研究。在以下部分中,

我們將介紹一個由填充(MaskGAN)訓練的文本生成模型。

在極大動作空間(action space)中考慮 actor-critic 架構。

考慮新的評估指標和生成合成訓練數據。

圖 1:seq2seq 生成架構。藍色的方塊代表已知字元,紫色的方塊代表生成的字元。我們通過虛線展示了一個抽樣過程。編碼器在掩碼序列中讀取,此處掩碼字元用下劃線表示,然後解碼器通過使用編碼器隱藏狀態生成缺失字元。在這個例子中,生成器應該按照字母表順序填充(a,b,c,d,e)。

方法細節

訓練之前,我們先進行預訓練。首先我們用標準最大似然訓練一個語言模型。然後將預訓練語言模型的權重應用於 seq2seq 編碼器和解碼器模塊。在這些語言模型的基礎上,我們使用最大似然方法在 in-filling 任務中預訓練 seq2seq 模型,特別的是,Luong 等人(2015)提到的注意(attention)參數。我們通過超過 500 次的超參數掃描來選擇在掩碼任務中產生最小驗證複雜度(validation perplexity)的模型。初始的演算法不包含 critic,但是我們發現包含 critic 將梯度估計的方差降低了一個數量級,這顯著改善了訓練。

表 1:用於 MaskGAN 和 MaskMLE 模型的來自 PTB 數據集的條件樣本。

表 3:用於 MaskGAN 和 MaskMLE 模型的來自 IMDB 數據集的條件樣本。.

表 7:Mechanical Turk 平台對 IMDB 評論訓練的兩個模型的盲評估。來自每一個模型的 100 條評價(每條 40 詞長度)為無條件隨機抽樣。評估者被詢問兩個樣本中哪個更喜歡。每個模型對比比較中得到 300 個打分。

表 8:Mechanical Turk 平台對 PTB 數據集訓練的兩個模型的盲評估。來自每一個模型的 100 條新聞(每條 20 詞長度)為無條件隨機抽樣。評估者被詢問兩個樣本中哪個更喜歡。每個模型對比比較中得到 300 個打分。

論文:MaskGAN: Better Text Generation via Filling in the ______

論文鏈接:https://arxiv.org/abs/1801.07736

神經網路文本生成模型通常為自回歸(autoregressive)語言模型或者 seq2seq 模型。這些模型通過序列抽樣詞語生成文本(抽樣分布將前一個詞語作為條件),並且對於幾種機器翻譯和摘要總結的基準是最先進的模型。這些基準通常通過驗證複雜度定義,儘管這不是直接對生成文本質量的衡量。除此以外,這些模型通常使用極大似然或者 teacher forcing 進行訓練。這些方法非常適合優化複雜度(perplexity),但是可能導致樣本質量差,因為生成文本需要將可能從來沒有在訓練過程中觀察到的詞語序列作為條件。我們提出使用生成對抗網路(GAN)來提高樣本質量,它通過顯式地訓練生成器產生高質量樣本,並且已經在圖像生成領域取得很大成功。GAN 最初設計用於輸出可微分的值,所以生成離散語言是具有挑戰性的。我們認為驗證複雜度本身不代表模型生成的文本質量。我們引入條件 actor-critic GAN,它可以基於上下文填充缺失的文本。我們從定性和定量的角度證明,相比最大似然訓練的模型,這種方法生成了更真實的有條件和無條件文本樣本。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

?------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

脆弱的神經網路:UC Berkeley詳解對抗樣本生成機制

TAG:機器之心 |