對(duì)比兩篇論文 : 其中一篇是A Neural Attention Model for Abstractive Sentence Summarization,另一篇是Abstractive Sentence Summarization with Attentive Recurrent Neural Networks,兩篇文章都出自于Harvard NLP組,兩篇是姊妹篇,第二篇是第一篇的升級(jí)版,所以要結(jié)合著讀,對(duì)比著分析。
世上沒(méi)有什么所謂的銀彈,每種方法存在都有其存在的意義。第一篇paper嘗試將seq2seq+attention應(yīng)用在summarization任務(wù)上,但并未取得比較令人滿意的結(jié)果,反而增加了一些人工特征之后,才得到了很大的提升,雖然第二篇模型依舊是一個(gè)data-driven的模型,但我想如果給其添加上人工特征也會(huì)得到更好的效果。綜合多種方法的優(yōu)點(diǎn)來(lái)解決一個(gè)問(wèn)題才是王道,而不是一味地、粗暴地套用某個(gè)范式,某個(gè)框架。
兩篇文章從同一個(gè)角度入手,采用了不同難度的模型,非常好地解決了這個(gè)問(wèn)題。聯(lián)想到上周看的paper,他所采用的是多層lstm作為encoder和decoder,但數(shù)據(jù)集使用的并不相同,所以并不知道與本周的兩篇paper哪個(gè)效果更好。但這也給出了一種發(fā)paper的思路,多去嘗試一些encoder和decoder模型,不斷地組合和對(duì)比,一定會(huì)有不錯(cuò)的發(fā)現(xiàn)。但這樣的解決方案對(duì)于提升層次上沒(méi)有太多溢出,因?yàn)榇蠹叶际钦罩0迦プ觯](méi)有真正地更深地理解到這個(gè)問(wèn)題的本質(zhì)。
一個(gè)系統(tǒng)的構(gòu)建需要處理好方方面面的細(xì)節(jié),比如數(shù)據(jù)的預(yù)處理,比如評(píng)測(cè)的實(shí)現(xiàn),比如模型的參數(shù)調(diào)優(yōu),每個(gè)方面想要做好做精都是一門學(xué)問(wèn)。
Abstract
Paper 1
本文提出了一種data-driven的方法來(lái)做句子摘要,使用了一種基于局部注意力模型(local
attention-based
model),在給定輸入句子的情況下,生成摘要的每個(gè)詞。模型結(jié)構(gòu)非常簡(jiǎn)單,可以套用流行的end2end框架來(lái)訓(xùn)練,并且很容易擴(kuò)展到大型訓(xùn)練數(shù)據(jù)集上。模型在DUC-2004任務(wù)中效果優(yōu)于幾個(gè)不錯(cuò)的baselines。
Paper 2
本文使用一種conditional RNN來(lái)生成摘要,條件是卷積注意力模型(convolutional attention-based encoder),用來(lái)確保每一步生成詞的時(shí)候都可以聚焦到合適的輸入上。模型僅僅依賴于學(xué)習(xí)到的features,并且很容易在大規(guī)模數(shù)據(jù)上進(jìn)行end2end式地訓(xùn)練,并且在Gigaword語(yǔ)料上和DUC-2004任務(wù)中取得了更好的效果。
兩篇paper的模型框架都是seq2seq+attention,最大的區(qū)別在于選擇encoder和decoder的模型,第一篇的模型偏容易一些,第二篇用了rnn來(lái)做。seq2seq或者說(shuō)end2end現(xiàn)在火的不得了,最初在機(jī)器翻譯開始使用,后面推廣到多模態(tài)學(xué)習(xí),對(duì)話生成,自動(dòng)問(wèn)答,文本摘要等等諸多領(lǐng)域。
Introduction
文本摘要有幾種類型的任務(wù),本文屬于headlines generation,輸入的是一段話,輸出的是一句話或者一個(gè)標(biāo)題。
Paper 1
受最近機(jī)器翻譯中seq2seq技術(shù)的啟發(fā),本文將Neural Language Model和帶有上下文的encoder結(jié)合起來(lái),其中encoder與Bahdanau(Neural machine translation by jointly learning to align and translate)的attention-based encoder一樣。encoder和decoder在句子摘要任務(wù)中共同訓(xùn)練。另外,decoder中也使用了beam search進(jìn)行摘要生成。本文的方法簡(jiǎn)稱ABS(Attention-Based Summarization),可以輕易擴(kuò)展到大規(guī)模數(shù)據(jù)集進(jìn)行訓(xùn)練,而且可以在任何document-summary對(duì)中進(jìn)行使用。本文采用Gigaword語(yǔ)料集進(jìn)行訓(xùn)練,包括大約400萬(wàn)篇新聞文章。為了檢驗(yàn)?zāi)P偷男Ч?,與多種類型的文摘系統(tǒng)進(jìn)行了對(duì)比,并且在DUC-2004任務(wù)上獲得了最高分。
Paper 2
本文的decoder是一個(gè)RNNLM,生成摘要依賴的條件是encoder的輸出,encoder會(huì)計(jì)算輸入中每個(gè)詞的分?jǐn)?shù),這個(gè)分?jǐn)?shù)可以理解為對(duì)輸入作軟對(duì)齊(soft alignment),也就是說(shuō)decoder在生成下一個(gè)單詞時(shí)需要注意輸入中的哪些單詞。encoder和decoder要在一個(gè)sentence-summary數(shù)據(jù)集中進(jìn)行共同訓(xùn)練。本文的模型可以看作第一篇ABS模型的擴(kuò)展,ABS模型中decoder是用FNNLM,而本文使用RNN,encoder部分本文更加復(fù)雜,將輸入單詞的位置信息考慮在內(nèi),并且使用了卷積網(wǎng)絡(luò)來(lái)編碼輸入單詞。本文模型效果優(yōu)于第一篇paper。
兩篇paper都是seq2seq在sentence-level
abstractive
summarization任務(wù)中早期的嘗試,給文本摘要方法帶來(lái)了新鮮血液,第一篇paper中encoder和decoder都用了比較簡(jiǎn)單的模型,但已經(jīng)得到了優(yōu)于傳統(tǒng)方法的結(jié)果,再一次地證明了deep
learning在解決問(wèn)題上的優(yōu)勢(shì),第二篇paper升級(jí)了encoder和decoder,考慮了更復(fù)雜的細(xì)節(jié),得到了更好的效果,相信后面會(huì)有大量的paper套用seq2seq+attention,再配合一些其他的技術(shù)來(lái)提升模型的效果,但整體的思路基本已固定下來(lái),如果想要更大的突破,可能還需要提出另外一種框架來(lái)解決問(wèn)題。
Related Work
這部分內(nèi)容是初入門徑的研究者最喜歡的工作,尤其是這個(gè)領(lǐng)域中最新研究的paper還沒(méi)有出survey的情況下,大家想最快地了解這個(gè)領(lǐng)域中新技術(shù)的應(yīng)用情況,讀高水平paper中的相關(guān)工作是最有效的。
Paper 1
文本摘要任務(wù)在sentence這個(gè)level可以等同于headlines
generation,某種程度上與paraphrase相近。seq2seq于2014年在機(jī)器翻譯領(lǐng)域中提出并流行開來(lái),之前的研究大多都是基于extractive的思路,借助一些人工features來(lái)提升效果。seq2seq的意義在于完全基于數(shù)據(jù)本身,從數(shù)據(jù)中學(xué)習(xí)feature出來(lái),并且得到了更好的效果。本文的方法比較簡(jiǎn)單,decoder也只用了NNLM(2003年由Bengio提出),而seq2seq在機(jī)器翻譯中應(yīng)用時(shí)都采用的是RNNLM,所以在Future
Work中作者會(huì)用RNNLM,于是就有了第二篇paper。
Paper 2
由于都是一個(gè)組出的paper,還有共同的作者,這個(gè)部分寫的差不多,只是多提了第一篇paper做的工作。
都說(shuō)讀書破萬(wàn)卷,下筆如有神。在做一個(gè)領(lǐng)域的研究之前,免不了讀大量相關(guān)的paper來(lái)做一些積累,related work這個(gè)部分就是大家寫的小型survey,經(jīng)常會(huì)提到一些該領(lǐng)域最經(jīng)典的paper。感覺(jué)Rush他們組應(yīng)該是比較新的NLP研究力量,將一個(gè)新的技術(shù)用在了自動(dòng)文摘領(lǐng)域中,攢了兩篇paper,也是數(shù)量上的一種積累。不過(guò)他們share了paper相關(guān)的code,用Torch來(lái)寫模型部分,用python作數(shù)據(jù)處理。組里也包括那位將CNN用在sentence classification中的Yoon Kim,相信他們?nèi)蘸髸?huì)有更多更好的成果。
Background
本節(jié)是用數(shù)學(xué)語(yǔ)言定義句子摘要問(wèn)題,兩篇文章解決的問(wèn)題相同。給定一個(gè)輸入句子,目標(biāo)是生成一個(gè)壓縮版的摘要。句子級(jí)別的摘要問(wèn)題可以定義如下:

x表示輸入句子,y表示生成的摘要句子集合,定義一個(gè)系統(tǒng)是abstractive的,就是從生成句子集合中找到score最大的那一個(gè)。而extractive摘要系統(tǒng)可以定義如下:

sentence compression系統(tǒng)可以定義如下:

然而abstractive summarization存在一個(gè)更加困難的生成過(guò)程。
用了一個(gè)簡(jiǎn)單的數(shù)學(xué)公式將問(wèn)題描述地非常清楚,包括一些細(xì)節(jié),比如輸入長(zhǎng)度大于輸出長(zhǎng)度,輸出長(zhǎng)度為固定值,輸入輸出擁有相同的詞匯表等等。從數(shù)學(xué)公式來(lái)看score函數(shù)的定義很重要,考慮的參數(shù)類型不同會(huì)有不同的score,也就是不同的模型,明顯看得出abstractive要遠(yuǎn)難于extractive和sentence compression。
Model
模型部分是paper的重頭戲,分為Objective,Encoder,Decoder,Generation,Training五個(gè)子部分來(lái)討論。
Paper 1
Objective
目標(biāo)函數(shù)是Negative Log-Likelihood(NLL),decoder中生成摘要單詞的條件是encoder的輸出和當(dāng)前生成詞的窗口詞向量,具體如下:

這里當(dāng)前生成詞的窗口詞向量由下式表示:

其實(shí)也就是NNLM中的N-gram,用來(lái)預(yù)測(cè)下一個(gè)詞。目標(biāo)函數(shù)表示為:

對(duì)于i<1的情況,在句子前padding幾個(gè)開始符號(hào)。接下來(lái)建模的部分就是研究如何表達(dá)條件概率。
目標(biāo)函數(shù)用生成詞的條件概率的對(duì)數(shù)來(lái)表示是NLP中非常常用的做法。不同的模型都在研究如何表示條件,比如encoder的表示,encoder輸出的表示,decoder中當(dāng)前詞前序詞的表示等等。
Encoder
本文一共提出了三種encoder模型。
Bag-of-Words Encoder
詞袋模型是最簡(jiǎn)單的一個(gè)模型,將輸入的句子用詞袋模型降維到H,生成一個(gè)word embedding層。模型如下:

詞袋模型并不會(huì)考慮詞序的關(guān)系,效果并不會(huì)太好,但是作為paper中的一個(gè)baseline模型會(huì)有很好的對(duì)比結(jié)果。
Convolutional Encoder
卷積模型是一個(gè)深度網(wǎng)絡(luò)模型,可以很好地捕捉輸入的特征。模型如下:

其中矩陣F是輸入句子的word embedding矩陣,Q包括了一系列過(guò)濾層,并且采用了最大池化技術(shù)來(lái)處理。
CNN通過(guò)結(jié)合word
embedding將句子表示成一個(gè)matrix,通過(guò)不同尺寸的卷積核來(lái)filter出句子中的feature,本質(zhì)上和N-gram一樣,N-gram的N就是卷積核的尺寸,構(gòu)建出多種feature
maps,然后max pooling,然后filter,然后pooling,最終采用一個(gè)MLP得出結(jié)果。
Attention-Based Encoder
雖然卷積模型比詞袋模型更能捕捉句子的特征,卻同樣需要對(duì)整個(gè)句子做表示,機(jī)器翻譯領(lǐng)域在解決相同問(wèn)題時(shí)采用了注意力模型來(lái)構(gòu)建context,然后基于生成的context來(lái)構(gòu)建representation。本文采用一種類似于詞袋模型的注意力模型,模型如下:

其中矩陣G是context的word embedding矩陣,P是一個(gè)權(quán)重矩陣,權(quán)重連接著輸入word embedding和context embedding,Q是一個(gè)光滑窗口,流程如下圖:

本文的注意力模型可以視作將詞袋模型中的P向量用一個(gè)待學(xué)習(xí)的soft alignment來(lái)替換了。
三種encoder模型給出了input sentence的表示,第三種還給出了summary和input之間的關(guān)系,encoder的輸出將作為decoder的輸入,來(lái)生成summary。
Decoder
decoder的本質(zhì)就是一個(gè)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型,本文用了2003年Bengio提出的NNLM,模型如下:

Bengio的模型是一個(gè)FNN(Feed-Forward Neural Network),通過(guò)上文(當(dāng)前詞的前N個(gè)詞)來(lái)預(yù)測(cè)當(dāng)前詞,流程如下圖:

待求的參數(shù)是word embedding矩陣E,輸入層到隱藏層的權(quán)重矩陣U,隱藏層到decoder輸出層的權(quán)重矩陣V,encoder輸出層到decoder輸出層的權(quán)重矩陣W。
NNLM是一個(gè)經(jīng)典的語(yǔ)言模型,本質(zhì)上就是一個(gè)神經(jīng)網(wǎng)絡(luò)多分類器,文中也提到可以考慮用RNNLM來(lái)作decoder,也就有了第二篇paper的模型。
Generation
一般的語(yǔ)言模型都是基于上下文生成概率最高的一個(gè)詞,但對(duì)于生成摘要句子來(lái)說(shuō)還不夠。通常的做法是用一種搜索算法在一定的可行域之內(nèi)找到幾組可行的解。本文采用beam search,也是之前機(jī)器翻譯領(lǐng)域生成翻譯結(jié)果時(shí)常用的算法,算法描述如下:

給定一個(gè)beam size K,在生成每一個(gè)summary word時(shí),都保留概率最大的K個(gè)詞,從生成第二個(gè)詞開始,計(jì)算所有路徑的概率,只保留概率最大的前K個(gè)分枝,裁剪掉剩余的分枝,繼續(xù)生成第三個(gè)詞,依次進(jìn)行下去,直到生成的詞是EOS或者達(dá)到最大句子長(zhǎng)度限制。最后得到的結(jié)果是K個(gè)最好的sentence summary。
Training
本文采用mini batch SGD算法對(duì)訓(xùn)練集進(jìn)行訓(xùn)練,使得NLL最小。
因?yàn)樵谏蓅ummary時(shí)并沒(méi)有什么約束條件,所以本方法可以拓展到任意input-output pairs中使用。
ABS+
作者提出了一個(gè)純數(shù)據(jù)驅(qū)動(dòng)的模型之后,又提出了一個(gè)abstractive與extractive融合的模型,在ABS模型的基礎(chǔ)上增加了feature function,修改了score function,也就是結(jié)果對(duì)比中的ABS+模型。
Paper 2
本文模型簡(jiǎn)稱為RAS(Recurrent Attentive Summarizer)
Objective
目標(biāo)函數(shù)如下:

兩篇paper都是采用NLL,但不同的是第二篇paper目標(biāo)函數(shù)條件概率中的條件與第一篇不同,本文采用decoder的所有上文,而不是一個(gè)窗口內(nèi)的上文。
Encoder
encoder的輸出是decoder的輸入,對(duì)于每一個(gè)time step,encoder都需要給出一個(gè)context vector,本文encoder的重點(diǎn)在于如何計(jì)算時(shí)間相關(guān)的context。
輸入句子每個(gè)詞最終的embedding是各詞的embedding與各詞位置的embedding之和,經(jīng)過(guò)一層卷積處理得到aggregate vector:

根據(jù)aggregate vector計(jì)算context(encoder的輸出):

其中權(quán)重由下式計(jì)算:

Rush組的paper有一個(gè)特點(diǎn),喜歡用CNN多一些,包括那位用CNN做句子分類的童鞋。可能的原因是,Rush是Facebook
AI Research的研究人員,Lecun是Leader,所以他們對(duì)CNN的理解也更深一些,在model中使用的也就更多一些。
Decoder
decoder的部分是一個(gè)RNNLM,這里的RNN Hidden Layer使用的是LSTM單元。decoder的輸出由下式計(jì)算:

其中c(t)是encoder的輸出,h(t)是RNN隱藏層,由下式計(jì)算:

這里隱藏層的單元有兩種思路,一種是常規(guī)的Elman RNN,一種是LSTM。
RNNLM的Hidden
Unit可以不用LSTM或者GRU這么復(fù)雜,普通的隱藏層Elman
RNN可以解決問(wèn)題,采用Truncate-BPTT對(duì)RNN進(jìn)行訓(xùn)練(詳見Tomas Mikolov的PhD
Thesis)。況且LSTM和GRU會(huì)帶來(lái)更多的參數(shù),造成overfit。
Generation
生成過(guò)程中也采用beam search算法進(jìn)行summary生成。
Training
給定一個(gè)訓(xùn)練集,包括大量的sentence-summary pairs,用SGD將NLL函數(shù)最小化得到最優(yōu)的參數(shù)集,參數(shù)包含encoder和decoder兩個(gè)部分的參數(shù)。
SGD是一種常用的優(yōu)化算法,在解決NLP問(wèn)題中非常有效,其中最常見的mini batch訓(xùn)練方法。
Experiment
Paper 1
Dataset
本文采用經(jīng)過(guò)處理的約400萬(wàn)Gigaword數(shù)據(jù)集作為訓(xùn)練集和驗(yàn)證集,在DUC2004數(shù)據(jù)集上進(jìn)行評(píng)測(cè),評(píng)測(cè)使用ROUGE方法。
DUC的比賽經(jīng)常會(huì)包括文本摘要,所以常常用來(lái)比較每個(gè)模型或系統(tǒng)的優(yōu)劣。
Baselines
1、PREFIX,這個(gè)baseline是取輸入的前75個(gè)字符作為headline。
2、TOPIARY。
3、COMPRESS。
4、IR。
5、W&L。
6、MOSES+。
baselines選擇了幾組非常有代表性的系統(tǒng)。
Implementation
本文的程序用Torch實(shí)現(xiàn),并且開源在Github上,處理1000個(gè)mini batch大概用時(shí)160s,最好的驗(yàn)證集參數(shù)出現(xiàn)在第15個(gè)epoch。
Torch是一個(gè)使用率非常高的開源工具,尤其是在研究領(lǐng)域。相比于Theano的難以調(diào)試,Torch具有非常簡(jiǎn)單、易用、靈活、易調(diào)試的特點(diǎn)。
Paper 2
Dataset
與第一篇相同的訓(xùn)練集和處理方法,同樣使用DUC2004作為評(píng)測(cè)數(shù)據(jù),ROUGE作為評(píng)測(cè)方法。
Baselines
1、ABS(第一篇paper中的方法)
2、ABS+(第一篇paper中的方法)
Implementation
同樣使用Torch開發(fā),在訓(xùn)練時(shí)用摘要的混亂度(perplexity)作為評(píng)價(jià)指標(biāo)控制訓(xùn)練過(guò)程。
Result

Paper 1
分別在DUC2004和Gigaword數(shù)據(jù)集上進(jìn)行了對(duì)比,本文的ABS模型在DUC2004上評(píng)測(cè)結(jié)果相比于最好的baseline
MOSES+并不如意,MOSES+是一個(gè)基于短語(yǔ)的統(tǒng)計(jì)機(jī)器翻譯系統(tǒng)(Koehn,2007),在Gigaword訓(xùn)練集上比MOSES+好一些。但增加了人工feature的ABS+模型比ABS模型和MOSES+系統(tǒng)表現(xiàn)好了非常多。

5種不同的模型在混亂度這個(gè)指標(biāo)上比較,ABS具有明顯的優(yōu)勢(shì)。
ABS模型實(shí)際上的效果并不理想,所以本文作者又提出了一種所謂的ABS+模型,將人工feature融合到了ABS模型中,得到了不錯(cuò)的效果。如果只看這一篇paper,可能會(huì)覺(jué)得不理想的原因是seq2seq在自動(dòng)文摘中的效果一般,但看過(guò)第二篇paper之后,就會(huì)明白是因?yàn)楸疚牡哪P吞^(guò)簡(jiǎn)單,第二篇paper也就有了意義。從另一個(gè)角度來(lái)看,純粹的data-driven方法如果配合上一些extractive的方法會(huì)得到更好的結(jié)果,這點(diǎn)對(duì)于實(shí)際系統(tǒng)的開發(fā)非常有意義。
Paper 2

在Gigaword數(shù)據(jù)集上對(duì)比各個(gè)模型,RAS-Elman模型表現(xiàn)最好,說(shuō)明了seq2seq相比于傳統(tǒng)的文摘系統(tǒng)和算法,可以更好地解決問(wèn)題,又一次證明了deep
learning的強(qiáng)大。同時(shí)也驗(yàn)證了普通的RNN不見得比LSTM活著GRU表現(xiàn)差,尤其是當(dāng)序列長(zhǎng)度不是特別長(zhǎng)的情況。

在DUC2004數(shù)據(jù)集上對(duì)比各個(gè)模型,得到了相同的結(jié)論。

5種不同的模型在混亂度這個(gè)指標(biāo)上比較,本文算法RAS-Elman具有明顯的優(yōu)勢(shì)。
Links
[1]A Neural Attention Model for Abstractive Sentence SummarizationProceedings of EMNLP 2015
[2]Abstractive Sentence Summarization with Attentive Recurrent Neural NetworksProceedings of NAACL 2016