Abstract
- 通過文本抽取的方式生成摘要已經(jīng)陷入瓶頸。
- 通過抽象語句的含義來生成摘要是一個(gè)很有潛力的方向。
- 本文提出了End to end attention-based model來解決這個(gè)問題。
Introduction
- Abstractive Summarization:摘要的本質(zhì)是文本核心意思的壓縮表示。許多成功的摘要系統(tǒng)都是通過文本抽取(text extractive)實(shí)現(xiàn)的,本文提出了一種完全數(shù)據(jù)驅(qū)動(dòng)的生成式摘要抽象方法。
- NNLM and encoder:本文參考了神經(jīng)機(jī)器翻譯的思想,將神經(jīng)語言模型和基于attention機(jī)制的上下文encoder結(jié)合起來做summarization。同時(shí)文章還借鑒了extractive的方法提出了一個(gè)基于beam-search的decoder。
- Scale:由于本文的模型是End-to-end訓(xùn)練的,因此非常容易遷移到大數(shù)據(jù)上進(jìn)行訓(xùn)練。
Background
- 本文的目標(biāo)是對(duì)輸入的句子進(jìn)行信息壓縮,輸出句子的摘要信息。
- 輸入x是一個(gè)長(zhǎng)度為M的句子,輸出y是一個(gè)長(zhǎng)度為N的句子,其中N<M,N的長(zhǎng)度是固定的。通過one-hot編碼將x編碼成V*M的矩陣,將y編碼成V*N的矩陣,其中V指的是語料庫大小。
-
sentence abstractive:表示從所有可能的y中選擇最優(yōu)的一個(gè)。
sentence abstractive -
sentence extractive:表示將x轉(zhuǎn)化成最能表示其含義的subsentence。
sentence extractive -
sentence compression:表示從x中刪除最不重要的word。
sentence compression - x到y(tǒng)的映射函數(shù)s由下式定義。預(yù)估輸出的第i個(gè)詞
yi時(shí),依賴輸入x、yi的前C個(gè)詞yc以及隱變量theta,這里對(duì)上下文窗口C做了Markov假設(shè)。映射函數(shù)s
Model
模型融合了一個(gè)神經(jīng)語言模型和一個(gè)encoder,其整體框架如下
模型整體框架
a. Neural Language Model
-
神經(jīng)語言模型是如上圖紅圈部分,采用了Bengio提出的NNLM語言模型,其定義如下式所示NNLM模型
對(duì)這個(gè)模型的解釋如下所示
- 通過embedding矩陣E對(duì)上下文
yc進(jìn)行embedding,生成上下文的壓縮表示。由于矩陣E是D*V維的,yc是V*C維的,所以E·yc生成的是D*C維的矩陣,再經(jīng)過Flatten操作變?yōu)镃D*1維的向量。 -
yc的embedding表示經(jīng)過全連接再激活之后生成語義向量h,該向量是當(dāng)前的上下文yc的語義壓縮,表示yc的下一個(gè)詞,操作如圖所示語義向量h的生成過程 - 通過一個(gè)encoder將輸入x和上下文
yc編碼成H維的向量enc(x,yc),這個(gè)向量實(shí)際上就是一個(gè)注意力向量。矩陣W和V分別將NNLM和encoder的輸出轉(zhuǎn)化為V維向量再進(jìn)行join,最后經(jīng)過softmax變?yōu)橄乱粋€(gè)摘要文字的生成概率。第i+1位摘要文字的生成概率
- 通過embedding矩陣E對(duì)上下文
b. Encoders
如果沒有encoder,這個(gè)模型只是一個(gè)依賴生成句子上下文的語言模型。通過encoder可以將輸入x也編碼進(jìn)生成過程中,這樣最終生成的概率同時(shí)包含了輸入x和上下文yc的信息。
本文介紹了三種encoder
-
Bag-of-Words Encoder:最簡(jiǎn)單的encoder是BoW,如下式所示。BoW encoder
- 首先通過embedding矩陣F將輸入x編碼成H*M維的矩陣,每個(gè)word由原來的V維降為H維(H<V)。
- 構(gòu)造均勻分布的注意力向量p,相當(dāng)于在估計(jì)下一個(gè)生成word時(shí)給輸入句子x中的每個(gè)詞相同的權(quán)重。
- 將x變化為H維的語義向量,這個(gè)過程丟失了原來句子的語序關(guān)系,因此效果并不好。
- Convolutional Encoder:一個(gè)深層卷積模型,這個(gè)模型較BoW的優(yōu)勢(shì)在于可以獲取相鄰單詞之間的組合信息,這個(gè)encoder同樣沒有考慮將上下文信息
yc編碼進(jìn)來。CNN Encoder
這幾個(gè)公式實(shí)在太晦澀,所以我畫了一個(gè)圖來說明文中的卷積塊是如何設(shè)計(jì)的,如圖所示Q是一個(gè)大小為H*(2Q+1)的卷積核,maxpooling的窗口大小為2*1。由于卷積采用了padded at the boundaries的方式,因此每次卷積完輸入size不變,只在maxpooling之后減半,所以文中說M必須大于2的L次冪。一個(gè)卷積塊的例子
由上圖可知CNN網(wǎng)每次可以獲取2Q+1個(gè)word的臨近關(guān)系,CNN的模型容量遠(yuǎn)大于BoW,但是每生成一個(gè)摘要詞語,輸入x中所有單詞貢獻(xiàn)的權(quán)重是一樣的。這顯然違背我們的直覺,因?yàn)檎忻總€(gè)詞只對(duì)應(yīng)輸入文本中的一部分詞語,所以這里提出了第三個(gè)encoder。 -
Attention-Based Encoder:attention-based encoder的結(jié)構(gòu)圖如下所示,是之前模型整體框架中藍(lán)圈部分的展開。attention-based encoder結(jié)構(gòu)圖
attention-based encoder的定義和BoW的很接近,如下式所示。attention-based encoder的定義
這里對(duì)式子進(jìn)行簡(jiǎn)單推導(dǎo):
- 對(duì)上下文
yc進(jìn)行embedding,由于G是D*V維,所以embedding之后再Flatten的yc為CD*1維。 - 對(duì)輸入x進(jìn)行embedding,由于F是H*V維,所以embedding之后的x是H*M維。
- 矩陣P是輸入x和上下文
yc之間的一個(gè)軟對(duì)齊,大小為H*(CD)維,因此p是M*1維的輸出向量。這里重要的是對(duì)這個(gè)向量p的理解:向量p代表在當(dāng)前上下文yc的情況下,生成下一個(gè)詞語y(i+1)對(duì)輸入x中各個(gè)詞語的依賴概率,也就是注意力概率。 - 對(duì)embedding矩陣
~x進(jìn)行平滑(吐槽簡(jiǎn)書不支持Latex),具體做法是用一個(gè)大小為2Q+1的窗口對(duì)相鄰詞語向量求平均,實(shí)際上就是由2Q+1個(gè)詞向量組成短語向量。 - 最終的輸出
enc(x, yc)代表對(duì)輸入x和上下文yc進(jìn)行結(jié)合的語義向量。(上下文yc按照不同的注意力概率對(duì)輸入x中的各個(gè)短語向量進(jìn)行加權(quán)求和)
-
一個(gè)生成摘要的例子,橫軸代表生成的摘要句子,縱軸代表輸入的原始句子。圖中每一列代表生成該詞語時(shí),其上下文對(duì)輸入句子中詞語的注意力概率熱力圖。上下文對(duì)輸入句子的軟對(duì)齊
c. Training
由于缺少生成約束條件,因此訓(xùn)練采用最小化負(fù)對(duì)數(shù)似然的方式來逼近最優(yōu)解,優(yōu)化算法采用mini-batch SGD。
負(fù)對(duì)數(shù)似然,總的輸入-輸出對(duì)為J個(gè)
Generating Summaries
-
前面的介紹都是給定了訓(xùn)練集,如何訓(xùn)練網(wǎng)絡(luò)尋找生成概率最大的詞語?,F(xiàn)在回歸到初始問題:給定一個(gè)輸入句子x,如何生成概率最大的摘要句子。
- 由于沒有硬對(duì)齊的約束,因此可以用Viterbi算法解決,時(shí)間復(fù)雜度為O(NV^{C}),由于V數(shù)值過大,因此求解的性能會(huì)受到影響。
-
本文采取的策略是beam search,每輪迭代生成概率最高的K個(gè)摘要子串,算法復(fù)雜度為O(KNV),算法流程如下:beam search
- 由于每一輪迭代都會(huì)計(jì)算給定上下文
yc下K個(gè)最可能的子串,這個(gè)計(jì)算行為可以通過mini-batch進(jìn)行,因此K這個(gè)參數(shù)可以忽略不計(jì),極大的提升性能。
Extension:Extractive Tuning
抽象式模型的一個(gè)缺點(diǎn)是對(duì)于源句子中的一些沒見過的專有名詞不能抽取出來。解決這個(gè)問題可以將Abstractive模型和Extractive模型的優(yōu)點(diǎn)結(jié)合,即ABS+模型。
ABS+的優(yōu)化目標(biāo)是最小化負(fù)對(duì)數(shù)似然函數(shù)

NLL function
其中alpha是需要學(xué)習(xí)的權(quán)重向量,函數(shù)f是一個(gè)特征生成函數(shù),最小化負(fù)對(duì)數(shù)似然等同于最大化打分函數(shù)

打分函數(shù)s
其中特征函數(shù)f的定義為

特征函數(shù)f
搞過機(jī)器學(xué)習(xí)項(xiàng)目的同學(xué)可能一看就明白了,這個(gè)實(shí)際上就是拿出ABS網(wǎng)絡(luò)預(yù)測(cè)的結(jié)果作為一個(gè)feature,再結(jié)合一些人工拍的規(guī)則組合成一個(gè)5維的特征向量。打分函數(shù)s本質(zhì)上就是對(duì)特征向量f進(jìn)行線性回歸得到的回歸分?jǐn)?shù),如果設(shè)置
α = (1, 0, . . . , 0),ABS+退化成ABS模型。文中介紹說這些人工拍的規(guī)則主要是提取輸入x中的unigram、bigram和trigram特征。
Related Work
-
Syntax-Based
Dorr, Zajic, and Schwartz 2003; Cohn and Lapata 2008; Woodsend, Fend, and Lapata 2010 -
Topic-Based
Zajic, Dorr, and Schwartz 2004 -
Machine Translation-based
Banko, Mittal, and Witbrock 2000 -
Semantics-Based
Liu et al 2015
Experimental
主要是一些超參:
- learning rate=0.05
- D=200 上下文embedding之后的長(zhǎng)度
- H=400 輸入embedding之后的長(zhǎng)度
- C=5 上下文窗口大小
- L=3 層深,這個(gè)存疑好像沒用到
- Q=2 平滑窗口大小














