0
本文作者: camel | 2017-08-10 23:58 | 專題:ACL 2017 |
雷鋒網(wǎng)AI科技評論按:雖然ACL 2017早已落下帷幕,但對精彩論文的解讀還在繼續(xù)。下面是雷鋒網(wǎng)在ACL現(xiàn)場記錄的Zhilin Yang的報告。Zhilin Yang 是卡耐基·梅隆大學(xué)計算機學(xué)院語言技術(shù)研究院的一名博士生,William W. Cohen和Ruslan Salakutdinov兩位大牛的高徒。
目前,QA對數(shù)據(jù)集的獲取需要人工標注,這往往代價比較大。Z Yang他們提出了一種半監(jiān)督的Generative Domain-Adaptive Nets模型,通過引入GAN和domain tag,同時利用標注的數(shù)據(jù)和未標注數(shù)據(jù)訓(xùn)練模型,能夠得到很好的效果。
大家好,我是Zhilin Yang,下面我將要講的是半監(jiān)督問答。這項工作是我與Junjie Hu,Ruslan Salakhutdinov 和William W. Cohen共同完成的。
近來在QA方面出現(xiàn)了很多神經(jīng)網(wǎng)絡(luò)模型。這些模型一般面臨一個問題,即要想訓(xùn)練好就需要大量的訓(xùn)練數(shù)據(jù)。目前有一些這樣的數(shù)據(jù)庫,例如SQuAD等,他們通過人工來生成問答對。這種數(shù)據(jù)庫收集是非常耗時耗力的。也有一些無監(jiān)督模型來做這種自動問答對生成,它們會使用多層RNN、關(guān)注、匹配等技術(shù),但這種模型一般較為龐大。
一邊是比較耗時耗力的人工問答對,一邊是可以從Wikipedia上大量下載的未標記文本。那么我們就自然想到“半監(jiān)督問答”。
所謂“半監(jiān)督問答”就是,用少量標記的問答對和大量未標記的文本來訓(xùn)練問答模型,由未標記文本來提升問答的表現(xiàn)。
但我們會遇到幾個困難。首先,標準的半監(jiān)督學(xué)習(xí)(semi-supervised learning)方法在這里并不適用。我們比較一下半監(jiān)督學(xué)習(xí)的問答設(shè)置和標準設(shè)置,我們可以看到數(shù)據(jù)格式是不一樣的,例如標記數(shù)據(jù)中,標準設(shè)置只有(x, y)兩項,而問答設(shè)置則有段落、問題和答案三項。所以我們不能使用標準的半監(jiān)督學(xué)習(xí)算法,只能自己另開發(fā)出一種新的方法了。
第二個困難是,我們只有少量的標記數(shù)據(jù)可用,我們該如何利用未標記的文本來提升問答模型的表現(xiàn)呢?
針對前面兩個問題,我們采用一種修改版的生成對抗網(wǎng)絡(luò)的方法來構(gòu)建一個半監(jiān)督問答模型。首先,我們從未標記的文本出發(fā),我們使用NLP標記以及一些規(guī)則從文本中生成可能的“答案”(answers)。我們應(yīng)該注意這里的標記方式和規(guī)則是固定的。隨后我們會通過一個問題生成器利用“段落”和“答案”來自動生成“問題”。于是“段落”、“問題”和“答案”就可以視為一個“標記”的數(shù)據(jù)組了。我們利用這個數(shù)據(jù)組來訓(xùn)練問答模型中的判別器。不過有幾個問題需要解決。首先我們注意到模型生成的數(shù)據(jù)組和人類注解數(shù)據(jù)組其分布是不一樣的。其次,我們該如何將生成器和判別器連接起來?
針對第一個問題,我們采用域標記的方式來把模型生成的數(shù)據(jù)和人類生成的數(shù)據(jù)區(qū)分開來。我們用“true”標簽來表示人類標記數(shù)據(jù),用“fake”標簽來表示未標記數(shù)據(jù)(或模型生成數(shù)據(jù))。
如何將生成器和判別器連接起來呢?我們使用自動編碼器將“段落”自動編碼成一個“01”序列,選為“答案”的部分則為“1”,否則為“0”。通過生成器生成“問題”,隨后產(chǎn)生的“答案”也將是“段落”中的“1”。通過比較前后兩次“答案”的序列的重合度將得到損失函數(shù)。
這張圖顯示了我們?nèi)绾瓮ㄟ^生成對抗網(wǎng)絡(luò)來訓(xùn)練半監(jiān)督問答模型的。首先我們未標記的“段落”和用生成器生成的“問題”來訓(xùn)練辨別器,注意這里用的域標簽是“fake”。在右側(cè)的圖中,我們訓(xùn)練生成器,不過這里用“true”標簽來替代“fake”標簽,也即用人類標記的“段落”和“問題”。這種結(jié)果對抗訓(xùn)練的結(jié)果可以用辨別器對問題答案判別的概率來測量。
這是生成域?qū)咕W(wǎng)絡(luò)(GDAN)模型的數(shù)學(xué)公式。模型中,我們選用gated-attention reader來作為辨別器,用seq2seq模型來作為生成器。
在我們的GDAN模型中,如果訓(xùn)練沒有停止,那么首先我們固定生成器,通過域標簽為“fake”的數(shù)據(jù),用最陡梯度下降法(SGD)來更新辨別器。另一方面,我們固定辨別器,通過域標簽為“true”的數(shù)據(jù),用用增強學(xué)習(xí)法(Reinforce)和最陡梯度下降法來更新生成器。
接下來,讓我們看一下試驗。
我們選取SQuAD的數(shù)據(jù)作為標記數(shù)據(jù),取10%作為測試集。未標記數(shù)據(jù)則來自Wikipedia,我們從Wikipedia上采集一百萬個“段落”,并生成五百萬的“答案”,這個量大概是SQuAD的50倍。我們選取四種模型作為對比,分別為SL(監(jiān)督學(xué)習(xí))、Context(使用附近單詞作為問題)、GAN(用GAN生成器訓(xùn)練)、AE(用自動編碼目標訓(xùn)練)。
這是我們試驗的結(jié)果。第一列Labeling rate是我們標記數(shù)據(jù)使用率。這里0.1,是使用了8000條標記樣本。從中可以看到我們的模型無論是F1-score(測試精確度的一種測量)還是EM(Exact matching)上都優(yōu)于其他幾個模型。
我們先來看與SL模型的對比。我們看到當(dāng)標記數(shù)據(jù)使用率為0.1時,我們的模型F1-score要比SL模型高出10%,EM高出7%。當(dāng)數(shù)據(jù)使用率為0.2時,仍然能夠F1仍然高出7%,EM高出6%。所以我們的模型要遠遠優(yōu)于監(jiān)督學(xué)習(xí)模型。
與其他幾種模型相比,精確度方面也有很大的提升。
甚至,我們看,當(dāng)SL模型使用了0.2的數(shù)據(jù)時,其模型精度也沒有我們使用0.1數(shù)據(jù)時的精度高。所以我們的模型即使只使用一半的數(shù)據(jù),仍然比SL模型好。
不過有一個問題是,當(dāng)標記數(shù)據(jù)較為豐富時,想要通過增大未標記數(shù)據(jù)的量很難提升模型的表現(xiàn)。我希望我們以后能解決這個問題。
這張圖中展示的是生成的“問題”樣本,其中,“Ground truth question”是人工標記的“問題”,“MLE”表示通過最大似然估計方法生成的“問題”,“RL”表示通過增強學(xué)習(xí)方法生成的“問題”。我們看到,相比于MLE方法生成的“問題”,RL方法生成的“問題”包含更多的信息,更少的“UNK”(unknown)標識。
在這里我們也會看到在生成的“問題”中包含著一些語法錯誤。不過我們要強調(diào),只要它能夠在QA模型中提升模型的表現(xiàn),出現(xiàn)這些語法錯誤并沒有關(guān)系。
在這張圖上我們能更好地看到,隨著未標記數(shù)據(jù)量的增加,生成問答對的訓(xùn)練損失函數(shù)將會迅速減下。當(dāng)數(shù)據(jù)量達到一定值后,損失函數(shù)下降就不怎么明顯了。另外,我們還可以看到RL方法要比MLE方法更優(yōu),這主要就是對抗訓(xùn)練的結(jié)果。
我們在此做一個總結(jié)。我們使用少量標記問答數(shù)據(jù)和大量未標記文本數(shù)據(jù)設(shè)計一個半監(jiān)督問答模型,這個模型使用了生成對抗模型,不同的是我們增加了域條件來進行對抗增強訓(xùn)練。我們使用Wikipedia文本和SQuAD標記數(shù)據(jù)來訓(xùn)練模型,我們的結(jié)果顯示在標記數(shù)據(jù)較少的時候可以有高達10%的增益。
最后一張,這個網(wǎng)址里有我們所使用的數(shù)據(jù)。感興趣的話可以下載下來使用。謝謝大家!
<完>
雷鋒網(wǎng)AI 科技評論整理。
論文下載:https://arxiv.org/pdf/1702.02206.pdf
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章