論文筆記 --《Get To The Point: Summarization with Pointer-Generator Networks》

作者:himon
時間:2021.1.6
來源: ACL 2017
關(guān)鍵詞:NLG,Pointer-Generator Networks


1.背景及問題描述

seq2seq模型的出現(xiàn)給生成式摘要(abstractive text summarization)的實(shí)現(xiàn)提供了更好的方案婚瓜,但是seq2seq常常出現(xiàn)的兩點(diǎn)弊端:1. 它容易生成不準(zhǔn)確的細(xì)節(jié) 2. 容易重復(fù) 3.不能處理OOV問題戏自。作者提出了兩個方法來提升seq2seq模型的表現(xiàn)涯鲁,一個是將PointerNetwork與seq2seq中的encoder結(jié)合起來卫袒,使得生成的結(jié)果中既有seq2seq從全部詞典中生成的扣唱,也有從源文本中copy的汞舱,這樣即可以幫助生成準(zhǔn)確的詞語,同時也可以處理OOV的問題隆夯。第二點(diǎn)是使用coverage機(jī)制來追蹤摘要的部分钳恕,一次來避免重復(fù)(repetition)。

2.已有的解決方案

seq2seq+attention是處理此類問題的baseline:

seq2seq

seq2seq模型分為encoder和decoder蹄衷。在encoder端忧额,需要將文章w_i中的單詞一個一個的fed到encoder中(LSTM或者Transformer),經(jīng)過encoder得到文章i的編碼狀態(tài) h_i (encoder hidden states),在decoder端愧口,在每一個時刻t睦番,decoder接收前一個時刻單詞的詞向量,求得解碼狀態(tài)s_t(decoder hidden state )耍属,然后計算得到注意力權(quán)重a^t
e^t_i=v^T tanh_{(W_hh_i+W_ss_t+b_{atn})} \\ a^t=softmax(e^t)
公式中v,W_h, W_s以及b_{attn}都是可學(xué)習(xí)的參數(shù)托嚣。
這里得到的注意力權(quán)重a^t可以看作是關(guān)于source中所有詞語的關(guān)注度概率,用來告訴decoder應(yīng)該關(guān)注那一個word來生成下一個詞語恬涧。

然后使用注意力權(quán)重a^t和編碼狀態(tài) h_i計算得到加權(quán)的編碼狀態(tài),看作是上下文向量h^*_t
h^{*}_t = \sum_i{a^t_ih_i}

將上面得到的上下文向量h^*_t送入到兩層線性層,計算softmax得到單詞表概率分布P_{vocab}碴巾,概率值表示詞典中所有vocab被選中的概率溯捆。

P(w) = P_{vocab}=softmax_{(V^{'} (V[s_t, h^{*}_t] + b)+b^{'} )}

最后使用交叉熵計算loss,完整的loss就是序列每個位置loss的平均值:
loss_t = -log_{P(w^{*}_t)} \\ loss = \frac{1}{T}\sum^{T}_{t=0}{loss_t}

3.解決方案概述

本篇論文是在seq2seq基礎(chǔ)上提出了Pointer-Generator Networks厦瓢,也就是seq2seq+PointerNetwork:

PGN
  1. Pointer-Generator Networks

在解碼階段提揍,如何確定是從source中copy還是生成,作者引入一個權(quán)重p_{gen} \in [0,1]來決定煮仇。具體的計算,在t時刻:
p_{gen}= sigmoid(W^{T}_{h^{*}}h^{*}_t + w^{T}_ss_t + w^{T}_xx_t+b_{ptr})
其中劳跃,W_{h^{*}},w_s, s_x以及b_{ptr}是可學(xué)習(xí)參數(shù),解碼狀態(tài)s_t浙垫,上下文向量h^*_t刨仑,decoder的輸入x_t
在解碼階段需要維護(hù)一個擴(kuò)展的詞典夹姥,即原本詞典加上source中出現(xiàn)的所有詞語杉武,我們在這個擴(kuò)展的詞典上計算所有token的概率:

P(w) = p_{gen}P_{vocab}(w) + (1-p_{gen})\sum_{i:w_i=w}{a^{t}_i}
在這里,如果w是OOV辙售,則P_{vocab}為0,相同的轻抱,如果w沒有出現(xiàn)在source中,則后面一項(xiàng)也為0.

loss的定義與seq2seq中相同旦部。

2.Coverage mechanism

重復(fù)是seq2seq模型經(jīng)常出現(xiàn)的問題祈搜,本文引入 Coverage model來解決這個問題较店,這也是本文的主要亮點(diǎn)。具體實(shí)現(xiàn)上容燕,就是將之前所有step的注意力權(quán)重相加到一個覆蓋向量(coverage vector) c^{t} 上梁呈。就是用先前的注意力權(quán)重決策來影響當(dāng)前注意力權(quán)重的決策,這樣就避免在同一位置重復(fù)缰趋,從而避免重復(fù)生成文本捧杉。具體計算如下:
c^{t}=\sum^{t-1}_{t^{'}=0}{a^{t^{'}}}
然后將覆蓋向量添加到注意力權(quán)重的計算過程中:
e^t_i=v^T tanh_{(W_hh_i+W_ss_t+w_cc^{t}_i +b_{atn})}
這就可以使得在計算注意力權(quán)重時,當(dāng)前的決定是受到歷史決定影響的秘血,這樣就可以讓注意力機(jī)制避免重復(fù)關(guān)注某個位置味抖,也就可以避免生成重復(fù)詞語。

作者發(fā)現(xiàn)引入 coverage loss 是很有必要的灰粮,coverage loss的計算方式如下:
covloss_t=\sum_i{min(a^{t}_i c^{t}_i)}

模型最終的loss為仔涩,其中\lambda是超參數(shù):
loss_t = -log_{P(w^{*}_t)} + \lambda \sum_i{min(a^{t}_i c^{t}_i)}

4.結(jié)果分析

圖1

在abstractive摘要的評測中,本文提出的方法在ROUGE這個指標(biāo)上提升比較明顯粘舟。
此外熔脂,作者發(fā)現(xiàn),lead-3的實(shí)驗(yàn)設(shè)置柑肴,也就是只取文章的前3句話進(jìn)行抽取生成霞揉,ROUGE得分明顯更高,這是因?yàn)樾侣劦年P(guān)鍵信息一般出現(xiàn)在文章開頭晰骑。實(shí)際上适秩,作者實(shí)驗(yàn)發(fā)現(xiàn),只使用前400個token效果更好硕舆。

此外作者還分析了秽荞,本文模型與seq2seq+attentoin模型生成很少見n-gram的比例:

圖二

少見n-gram的定義是沒有出現(xiàn)在原本的n-gram。從上圖可以發(fā)現(xiàn)抚官,本文模型生成比較少的少見n-gram扬跋,seq2seq+attentoin模型生成的比較多,并且大多數(shù)都是錯誤的凌节。

5.創(chuàng)新點(diǎn)或貢獻(xiàn)

  1. 文本提出了一種引入覆蓋機(jī)制的混合指針模型钦听,可以有效緩解生成模型不準(zhǔn)確和重復(fù)的問題。
  2. 在長文抽取任務(wù)中倍奢,本模型結(jié)果大大超出當(dāng)時的SOTA彪见。
  3. 本文是在seq2seq模型基礎(chǔ)上加入的PointerNetwork和Coverage model,效果提升很多娱挨,但是模型參數(shù)沒有增加很多余指。詳細(xì)的,baseline模型參數(shù)共有21,499,600參數(shù),pointer-generator增加1153參數(shù)酵镜,coverage增加512參數(shù)

6.個人思考

經(jīng)典的文章碉碉,經(jīng)典的思路,值得深入學(xué)習(xí)淮韭!

[參考]
paper
code-pytorch

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垢粮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子靠粪,更是在濱河造成了極大的恐慌蜡吧,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件占键,死亡現(xiàn)場離奇詭異昔善,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)畔乙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進(jìn)店門君仆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人牲距,你說我怎么就攤上這事返咱。” “怎么了牍鞠?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵咖摹,是天一觀的道長。 經(jīng)常有香客問我难述,道長萤晴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任龄广,我火速辦了婚禮硫眯,結(jié)果婚禮上蕴侧,老公的妹妹穿的比我還像新娘择同。我一直安慰自己,他們只是感情好净宵,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布敲才。 她就那樣靜靜地躺著,像睡著了一般择葡。 火紅的嫁衣襯著肌膚如雪紧武。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天敏储,我揣著相機(jī)與錄音阻星,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛妥箕,可吹牛的內(nèi)容都是我干的滥酥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼畦幢,長吁一口氣:“原來是場噩夢啊……” “哼坎吻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宇葱,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瘦真,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后黍瞧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诸尽,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年雷逆,在試婚紗的時候發(fā)現(xiàn)自己被綠了弦讽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡膀哲,死狀恐怖往产,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情某宪,我是刑警寧澤仿村,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站兴喂,受9級特大地震影響蔼囊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜衣迷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一畏鼓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧壶谒,春花似錦云矫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陨界,卻和暖如春巡揍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菌瘪。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工腮敌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓糜工,卻偏偏與公主長得像斗这,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子啤斗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,442評論 2 359