search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

ACL論文分享:修改生成對抗網路,訓練半監督問答模型|分享總結

雷鋒網AI科技評論按:雖然ACL 2017早已落下帷幕,但對精彩論文的解讀還在繼續。下面是雷鋒網()在ACL現場記錄的Zhilin Yang的報告。Zhilin Yang 是卡耐基·梅隆大學計算機學院語言技術研究院的一名博士生,William W. Cohen和Ruslan Salakutdinov兩位大牛的高足。

目前,QA對數據集的獲取需要人工標註,這往往代價比較大。Z Yang他們提出了一種半監督的Generative Domain-Adaptive Nets模型,通過引入GAN和domain tag,同時利用標註的數據和未標註數據訓練模型,能夠得到很好的效果。

圖文分享總結

大家好,我是Zhilin Yang,下面我將要講的是半監督問答。這項工作是我與Junjie Hu,Ruslan Salakhutdinov 和William W. Cohen共同完成的。

動機及問題

近來在QA方面出現了很多神經網路模型。這些模型一般面臨一個問題,即要想訓練好就需要大量的訓練數據。目前有一些這樣的資料庫,例如SQuAD等,他們通過人工來生成問答對。這種資料庫收集是非常耗時耗力的。也有一些無監督模型來做這種自動問答對生成,它們會使用多層RNN、關注、匹配等技術,但這種模型一般較為龐大。

一邊是比較耗時耗力的人工問答對,一邊是可以從Wikipedia上大量下載的未標記文本。那麼我們就自然想到「半監督問答」。

所謂「半監督問答」就是,用少量標記的問答對和大量未標記的文本來訓練問答模型,由未標記文本來提升問答的表現。

但我們會遇到幾個困難。首先,標準的半監督學習(semi-supervised learning)方法在這裡並不適用。我們比較一下半監督學習的問答設置和標準設置,我們可以看到數據格式是不一樣的,例如標記數據中,標準設置只有(x, y)兩項,而問答設置則有段落、問題和答案三項。所以我們不能使用標準的半監督學習演算法,只能自己另開發出一種新的方法了。

第二個困難是,我們只有少量的標記數據可用,我們該如何利用未標記的文本來提升問答模型的表現呢?

半監督問答模型

針對前面兩個問題,我們採用一種修改版的生成對抗網路的方法來構建一個半監督問答模型。首先,我們從未標記的文本出發,我們使用NLP標記以及一些規則從文本中生成可能的「答案」(answers)。我們應該注意這裡的標記方式和規則是固定的。隨後我們會通過一個問題生成器利用「段落」和「答案」來自動生成「問題」。於是「段落」、「問題」和「答案」就可以視為一個「標記」的數據組了。我們利用這個數據組來訓練問答模型中的判別器。不過有幾個問題需要解決。首先我們注意到模型生成的數據組和人類註解數據組其分佈是不一樣的。其次,我們該如何將生成器和判別器連接起來?

針對第一個問題,我們採用域標記的方式來把模型生成的數據和人類生成的數據區分開來。我們用「true」標籤來表示人類標記數據,用「fake」標籤來表示未標記數據(或模型生成數據)。

如何將生成器和判別器連接起來呢?我們使用自動編碼器將「段落」自動編碼成一個「01」序列,選為「答案」的部分則為「1」,否則為「0」。通過生成器生成「問題」,隨後產生的「答案」也將是「段落」中的「1」。通過比較前後兩次「答案」的序列的重合度將得到損失函數。

這張圖顯示了我們如何通過生成對抗網路來訓練半監督問答模型的。首先我們未標記的「段落」和用生成器生成的「問題」來訓練辨別器,注意這裡用的域標籤是「fake」。在右側的圖中,我們訓練生成器,不過這裡用「true」標籤來替代「fake」標籤,也即用人類標記的「段落」和「問題」。這種結果對抗訓練的結果可以用辨別器對問題答案判別的概率來測量。

這是生成域對抗網路(GDAN)模型的數學公式。模型中,我們選用gated-attention reader來作為辨別器,用seq2seq模型來作為生成器。

模型訓練

在我們的GDAN模型中,如果訓練沒有停止,那麼首先我們固定生成器,通過域標籤為「fake」的數據,用最陡梯度下降法(SGD)來更新辨別器。另一方面,我們固定辨別器,通過域標籤為「true」的數據,用用增強學習法(Reinforce)和最陡梯度下降法來更新生成器。

實驗及結果分析

接下來,讓我們看一下試驗。

我們選取SQuAD的數據作為標記數據,取10%作為測試集。未標記數據則來自Wikipedia,我們從Wikipedia上採集一百萬個「段落」,並生成五百萬的「答案」,這個量大概是SQuAD的50倍。我們選取四種模型作為對比,分別為SL(監督學習)、Context(使用附近單詞作為問題)、GAN(用GAN生成器訓練)、AE(用自動編碼目標訓練)。

這是我們試驗的結果。第一列Labeling rate是我們標記數據使用率。這裡0.1,是使用了8000條標記樣本。從中可以看到我們的模型無論是F1-score(測試精確度的一種測量)還是EM(Exact matching)上都優於其他幾個模型。

我們先來看與SL模型的對比。我們看到當標記數據使用率為0.1時,我們的模型F1-score要比SL模型高出10%,EM高出7%。當數據使用率為0.2時,仍然能夠F1仍然高出7%,EM高出6%。所以我們的模型要遠遠優於監督學習模型。

與其他幾種模型相比,精確度方面也有很大的提升。

甚至,我們看,當SL模型使用了0.2的數據時,其模型精度也沒有我們使用0.1數據時的精度高。所以我們的模型即使只使用一半的數據,仍然比SL模型好。

不過有一個問題是,當標記數據較為豐富時,想要通過增大未標記數據的量很難提升模型的表現。我希望我們以後能解決這個問題。

這張圖中展示的是生成的「問題」樣本,其中,「Ground truth question」是人工標記的「問題」,「MLE」表示通過最大似然估計方法生成的「問題」,「RL」表示通過增強學習方法生成的「問題」。我們看到,相比於MLE方法生成的「問題」,RL方法生成的「問題」包含更多的信息,更少的「UNK」(unknown)標識。

在這裡我們也會看到在生成的「問題」中包含著一些語法錯誤。不過我們要強調,只要它能夠在QA模型中提升模型的表現,出現這些語法錯誤並沒有關係。

在這張圖上我們能更好地看到,隨著未標記數據量的增加,生成問答對的訓練損失函數將會迅速減下。當數據量達到一定值后,損失函數下降就不怎麼明顯了。另外,我們還可以看到RL方法要比MLE方法更優,這主要就是對抗訓練的結果。

結論

我們在此做一個總結。我們使用少量標記問答數據和大量未標記文本數據設計一個半監督問答模型,這個模型使用了生成對抗模型,不同的是我們增加了域條件來進行對抗增強訓練。我們使用Wikipedia文本和SQuAD標記數據來訓練模型,我們的結果顯示在標記數據較少的時候可以有高達10%的增益。

最後一張,這個網址里有我們所使用的數據。感興趣的話可以下載下來使用。謝謝大家!

雷鋒網AI 科技評論整理。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦