搜索,然后学习:两阶段的无监督文本生成
論文標(biāo)題:
Unsupervised Text Generation by Learning from Search
論文作者:
Jingjing Li, Zichao Li, Lili Mou, Xin Jiang, Michael R. Lyu, Irwin King
論文鏈接:
https://arxiv.org/abs/2007.08557
文本生成是自然語(yǔ)言處理的核心任務(wù)之一,很多應(yīng)用如機(jī)器翻譯、文本摘要都依賴于文本生成技術(shù)。一個(gè)高質(zhì)量的文本生成模型往往需要大量的標(biāo)注數(shù)據(jù),這就從數(shù)據(jù)上限制了模型的發(fā)展。
本文提出TGLS——一種基于“先搜索后學(xué)習(xí)”的無(wú)監(jiān)督文本生成方法,模型反復(fù)迭代,最終能生成較高質(zhì)量的文本。
在復(fù)述生成和文本正規(guī)化兩個(gè)任務(wù)上,TGLS能顯著超越之前所有的無(wú)監(jiān)督模型,甚至逼近有監(jiān)督模型效果,體現(xiàn)出無(wú)監(jiān)督學(xué)習(xí)的強(qiáng)大潛力!
無(wú)監(jiān)督文本生成
機(jī)器翻譯是最為常見的文本生成任務(wù),但是要得到一個(gè)高質(zhì)量的機(jī)器翻譯系統(tǒng),一定數(shù)量的平行語(yǔ)料是必不可少的。
盡管也有很多工作研究了不依賴平行語(yǔ)料的機(jī)器翻譯模型,但目前為止,它們和有監(jiān)督相比仍然不能望其項(xiàng)背。
但是一個(gè)事實(shí)是,無(wú)論是什么任務(wù),平行語(yǔ)料總歸是極少數(shù),無(wú)標(biāo)注語(yǔ)料卻隨處可見,如何充分利用這些語(yǔ)料訓(xùn)練文本生成模型,從而生成高質(zhì)量的文本,是未來(lái)一個(gè)非常具有發(fā)展?jié)摿Φ难芯糠较颉?/p>
在這里讀者需要注意區(qū)別無(wú)監(jiān)督的預(yù)訓(xùn)練和無(wú)監(jiān)督的訓(xùn)練。
預(yù)訓(xùn)練一般是指在大規(guī)模通用語(yǔ)料上訓(xùn)練,而無(wú)監(jiān)督訓(xùn)練一般是在特定領(lǐng)域數(shù)據(jù)上訓(xùn)練;預(yù)訓(xùn)練后往往還需要微調(diào),而無(wú)監(jiān)督訓(xùn)練后可以直接用于測(cè)評(píng)。這里需要讀者甄別。
基于此,本文提出TGLS,一種完全無(wú)監(jiān)督的文本生成方法。
TGLS的整體思想是“先搜索后學(xué)習(xí)”,搜索就用模擬退火等方法進(jìn)行,把搜索出來(lái)的文本當(dāng)成“偽平行語(yǔ)料”讓模型學(xué)習(xí),然后反過來(lái),模型生成的文本也可以指導(dǎo)搜索方向,如此反復(fù)進(jìn)行,從而達(dá)到比較好的效果。
具體的做法我們將在下一節(jié)詳述,但總的來(lái)說(shuō),本文有如下貢獻(xiàn):
提出TGLS,一種通用的無(wú)監(jiān)督文本生成方法;
TGLS可以和預(yù)訓(xùn)練模型結(jié)合,也即把整個(gè)訓(xùn)練過程當(dāng)做微調(diào);
在文本復(fù)述和文本正規(guī)化兩個(gè)任務(wù)上,碾壓其他無(wú)監(jiān)督模型,甚至接近有監(jiān)督模型的效果。
TGLS:unsupervised Text Generation by Learning from Search
TGLS的總體思路比較簡(jiǎn)單:首先用一個(gè)固定的搜索器根據(jù)輸入文本搜索目標(biāo)文本(本文使用模擬退火搜索);然后把搜索得到的文本作為“偽標(biāo)注文本”,用來(lái)訓(xùn)練一個(gè)生成器;之后再把生成器生成的文本輸入到搜索器里面,再把這一次搜索得到的文本用來(lái)訓(xùn)練生成器。
這其實(shí)有兩個(gè)階段,每個(gè)階段的目標(biāo)有所區(qū)別,第一個(gè)階段用交叉熵訓(xùn)練,第二個(gè)階段用最大間隔訓(xùn)練,我們下面會(huì)進(jìn)行介紹。
下圖是這個(gè)流程的示意圖,就是搜索時(shí)的打分:
模擬退火搜索
對(duì)于文本搜索,就是在搜索的每一步,選擇插入、刪除或替換其中的一個(gè)詞,我們記輸入文本為,替換后的文本為,那么這可以給出一個(gè)打分函數(shù):
表示文本的流暢度,表示替換前后文本的關(guān)聯(lián)度,是和具體的任務(wù)相關(guān)。
對(duì)于,我們當(dāng)然想要最大化這個(gè)得分,這就可以用模擬退火去做。注意到,該搜索器是不需要學(xué)習(xí)的。該搜索算法參見原文附錄中的算法二。
假設(shè)現(xiàn)在已經(jīng)進(jìn)行了輪,即當(dāng)前的文本是,然后在此基礎(chǔ)上又進(jìn)行一輪,就可以得到編輯后的句子,并且有它的一個(gè)得分。
接下來(lái)可以根據(jù)概率考慮接受(即令)或者拒絕它(即令)。這樣進(jìn)行若干輪,就能得到最終搜索出來(lái)的句子。
現(xiàn)在的問題是,得分函數(shù)里的三項(xiàng)是什么。
文本流暢度:用一個(gè)微調(diào)的GPT2計(jì)算文本的概率得分,微調(diào)是在特定領(lǐng)域的非平行語(yǔ)料上完成的;
語(yǔ)義相關(guān)度:分為兩種,詞級(jí)別的和句子級(jí)別的。詞級(jí)別的得分首先用預(yù)訓(xùn)練的RoBERTa得到每個(gè)詞的特征,然后計(jì)算它們的余弦相似度,即:
上式度量了兩個(gè)句子關(guān)鍵信息的相似度。相似地,句子級(jí)別的得分就可以是:
從而最終的語(yǔ)義相關(guān)度得分就是二者的加權(quán)乘積;
具體任務(wù)得分:這個(gè)得分和具體的任務(wù)相比。對(duì)復(fù)述而言,我們想要生成的文本在形式上和原文本盡可能不同,所以這個(gè)得分就是。
對(duì)于文本正規(guī)化來(lái)說(shuō),這個(gè)得分就可以用一個(gè)實(shí)現(xiàn)訓(xùn)練的分類器實(shí)現(xiàn):。
以上就是搜索的整個(gè)過程。總結(jié)一下,就是在每一輪,基于現(xiàn)在的句子搜索出一個(gè)新句子,計(jì)算它的得分,把當(dāng)前得分和前一個(gè)得分作差得到一個(gè)概率,按照這個(gè)概率接受它或者拒絕它;重復(fù)上述過程即可。
一階段訓(xùn)練
我們說(shuō)搜索器是固定的不用學(xué)習(xí),我們真正想要學(xué)習(xí)訓(xùn)練的是文本生成器。既然我們已經(jīng)搜索出來(lái)一個(gè)文本了,那么就可以把當(dāng)做的標(biāo)注數(shù)據(jù),去訓(xùn)練一個(gè)已經(jīng)預(yù)訓(xùn)練的GPT2就好了,這就可以采用標(biāo)準(zhǔn)的詞級(jí)別交叉熵?fù)p失。
如一開始的圖所示,首先用模擬退火SA得到句子,然后讓GPT2在上面訓(xùn)練,實(shí)際上是在一定程度上去擬合上述打分函數(shù),從這個(gè)角度講,打分函數(shù)的設(shè)計(jì)相當(dāng)重要。
二階段訓(xùn)練
但是上述過程有一個(gè)問題:搜索和生成是相互獨(dú)立的,搜索出來(lái)的默認(rèn)作為訓(xùn)練目標(biāo),那這樣和只用搜索有什么區(qū)別呢?
所以TGLS做的第二件事就是:讓GPT2生成的句子再送入搜索器,再在相應(yīng)的搜索結(jié)果上訓(xùn)練一波。這樣就可以增強(qiáng)搜索結(jié)果的多樣性。
具體來(lái)說(shuō),把輸入到GPT2中,用beam search得到個(gè),記為;之后從中隨機(jī)選一個(gè),輸入到搜索器中,得到搜索結(jié)果,這樣就有個(gè)樣本。
然后按照打分公式從中選擇分最大的那個(gè)作為正樣本,記為,其他的就是負(fù)樣本;最后就能用最大間隔去訓(xùn)練GPT2:
那么為什么不用交叉熵呢?因?yàn)檫@些樣本都是由GPT2自己生成的,自己訓(xùn)練自己沒有意義。
相反,用最大間隔去訓(xùn)練,可以讓GPT2從整體上去更加細(xì)致地區(qū)別更好的那些文本,或者說(shuō)“讓好的更好”,而交叉熵是“讓不好的變好”。
下圖是TGLS的訓(xùn)練算法。注意到,第二階段訓(xùn)練是在第一階段全部訓(xùn)練完之后才開始的,而不是交替進(jìn)行。
實(shí)驗(yàn)
本文在文本復(fù)述數(shù)據(jù)集Quora和文本正規(guī)化數(shù)據(jù)集GYAFC上實(shí)驗(yàn),其他實(shí)驗(yàn)設(shè)置詳見原文。
下表是主要結(jié)果。可以看到,TGLS在兩個(gè)數(shù)據(jù)集上吊打了其他無(wú)監(jiān)督方法,甚至在復(fù)述任務(wù)上還接近監(jiān)督學(xué)習(xí)的效果。
在文本正規(guī)化任務(wù)上,無(wú)監(jiān)督模型也更加接近監(jiān)督學(xué)習(xí)的表現(xiàn)。
最后再來(lái)看看TGLS各個(gè)部分的影響,如下表所示。SA表示模擬退火,CE是交叉熵?fù)p失,MM是最大間隔損失。
首先從推理速度來(lái)看,用GPT2生成顯然比用搜索的方法快,因?yàn)樗阉餍枰?jīng)過很多次迭代;其次,注意到第二階段訓(xùn)練用交叉熵和用最大間隔的區(qū)別非常大,這就驗(yàn)證了最大間隔的作用其實(shí)是和交叉熵完全不同的。
小結(jié)
本文提出TGLS,一種無(wú)監(jiān)督文本生成模型。TGLS的特點(diǎn)在于“搜索學(xué)習(xí)”和“兩階段訓(xùn)練”。
基本操作是首先搜索出目標(biāo)文本,然后在這之上訓(xùn)練,只不過訓(xùn)練分為兩個(gè)階段,一個(gè)是“讓不好的變好”,第二個(gè)是“讓好的更好”,二者的損失函數(shù)不同,需要特別注意。
從實(shí)驗(yàn)結(jié)果來(lái)看,本文效果很好,可以在一定程度上說(shuō)明文本生成方向的無(wú)監(jiān)督學(xué)習(xí)還有很大的發(fā)展?jié)摿Α?/p>
當(dāng)然,本文的方法還有一些明顯的可改進(jìn)之處,比如:更好的搜索方法,可學(xué)習(xí)的搜索方法,更簡(jiǎn)單的訓(xùn)練方法等。這些都需要未來(lái)持續(xù)而深入的探索。
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的搜索,然后学习:两阶段的无监督文本生成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小鹏 P7+ 官宣 10 月 10 日全
- 下一篇: 修改Transformer结构,设计一个