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