Pointer Network 生成文本摘要

指針網(wǎng)絡(luò) Pointer Network 是一種 Seq2Seq 模型邑雅,但是其 Decoder 預(yù)測的結(jié)果是從 Encoder 的輸入序列中得到的坑质。Pointer Network 從輸入序列中得到輸出結(jié)果,所以比較適合用于文本摘要的生成前硫,并且可以比較好的避免 OOV (Out of vocabulary) 問題胞得。本文主要介紹兩種利用 Pointer Network 的文本摘要算法:Pointer-Generator Networks 和 Multi-Source Pointer Network。

1.引言

在之前的文章中介紹過指針網(wǎng)絡(luò) Pointer Network屹电,指針網(wǎng)絡(luò)是一種 Seq2Seq 模型阶剑,但是其 Decoder 預(yù)測的結(jié)果是從 Encoder 的輸入序列中得到的。指針網(wǎng)絡(luò)改變了傳統(tǒng) Seq2Seq 模型 Attention 的用法危号,用 Encoder 輸入序列中 Attention 得分最高的作為當(dāng)前輸出牧愁。下圖展示了傳統(tǒng) Seq2Seq Attention 與 Pointer Network 使用上的區(qū)別。簡單來說外莲,傳統(tǒng)的 Seq2Seq 在預(yù)測時(shí)計(jì)算的是整個(gè)字典中的概率分布猪半,而 Pointer Network 預(yù)測時(shí)計(jì)算的是輸入序列中每個(gè)單詞的概率分布。

Seq2Seq Attention
Pointer Network Attention

而文章摘要是 NLP 中一個(gè)比較重要的領(lǐng)域偷线,常見的文章摘要方法可以分為抽取式摘要和生成式摘要办龄。抽取式摘要主要從源文檔中提取現(xiàn)成的句子作為摘要句,一般在語句流暢程度上比生成式摘要好淋昭,但是容易引入較多的冗余信息。生成式摘要主要根據(jù)源文檔內(nèi)容安接,通過算法模型生成摘要翔忽,而非提取原文的句子。

Pointer Network 由于可以復(fù)制輸入序列的 token 作為輸出盏檐,因此比較適合用于文本摘要歇式,另外 Pointer Network 可以在一定程度上緩解 OOV 問題。例如訓(xùn)練集里面沒有出現(xiàn) "哈士奇" 這一個(gè)單詞胡野,但是在預(yù)測的時(shí)候出現(xiàn)了 "哈士奇"材失,一般的 Seq2Seq 在生成摘要時(shí)通常會(huì)用 "UNK" 替換 "哈士奇",但是 Pointer Network 可以直接從輸入序列中復(fù)制 "哈士奇" 作為輸出硫豆。

本文主要介紹兩種利用 Pointer Network 的文本摘要算法:Pointer-Generator Networks 和 Multi-Source Pointer Network龙巨。Pointer-Generator Networks 是一種同時(shí)利用了抽取式和生成式的摘要算法笼呆,而 Multi-Source Pointer Network 主要是抽取式。

2.Pointer-Generator Networks

Pointer-Generator Networks 出自論文 《Get To The Point: Summarization with Pointer-Generator Networks》旨别。Pointer-Generator Networks 的主要內(nèi)容包括以下兩點(diǎn):

  • 傳統(tǒng) Seq2Seq 模型可以計(jì)算輸出時(shí)整個(gè)字典所有 token 的概率分布诗赌,Pointer-Generator Networks 在此基礎(chǔ)上融合了指針網(wǎng)絡(luò)計(jì)算出的輸入序列 token 概率分布。從而可以緩解 OOV 問題秸弛,并且同時(shí)賦予模型生成新單詞和復(fù)制原始序列兩種能力铭若。
  • 為了解決 Seq2Seq 生成摘要時(shí)容易重復(fù)相同單詞的問題,Pointer-Generator Networks 加入了 coverage 機(jī)制递览,coverage 可以記錄已生成的內(nèi)容叼屠,避免重復(fù)生成。

2.1 模型

Pointer-Generator Networks 在 Seq2Seq 基礎(chǔ)上加入了指針網(wǎng)絡(luò)绞铃,首先看一下 Seq2Seq 的模型結(jié)構(gòu)圖镜雨,如下圖所示。

Seq2Seq 的模型結(jié)構(gòu)圖

Seq2Seq 中利用 Decoder 的輸出和 Encoder 每一時(shí)刻的輸出計(jì)算出 Attention 分?jǐn)?shù)憎兽,并根據(jù) Attention 分?jǐn)?shù)融合 Encoder 的輸出得到 context vector冷离,將 context vector 和 Decoder 的輸出傳入 Softmax 得到字典中 token 的概率分布。計(jì)算的公式如下:

Seq2Seq Attention

Pointer-Generator Networks 在 Seq2Seq 中加入了指針網(wǎng)絡(luò)的機(jī)制纯命,模型如下圖所示西剥。

Pointer-Generator Networks

可以看到,Pointer-Generator Networks 在 Seq2Seq 預(yù)測的概率分布 P_vocab (圖中綠色部分) 加上了 Attention 分布 (圖中藍(lán)色部分)亿汞,得到最后的概率分布瞭空。可以看到 P_vocab 中原本沒有單詞 "2-0"疗我,但是在 Attention 分布中包含了 "2-0"咆畏,因此最后的分布也加入了 "2-0",從而減緩 OOV 問題吴裤。Pointer-Generator Networks 通過一個(gè)參數(shù) p_gen 將兩個(gè)分布加在一起旧找,p_gen 通過學(xué)習(xí)得到。

2.2 coverage 機(jī)制

Pointer-Generator Networks 為了避免模型生成重復(fù)的序列以及遺漏翻譯麦牺,加入了 coverage 機(jī)制钮蛛。通過一個(gè) coverage 向量 ct 記錄 t 時(shí)刻前所有的 Attention 分?jǐn)?shù),因此可以通過 coverage 向量中每個(gè) token 的取值判斷該 token 是否被使用過剖膳,取值高的更可能被使用過魏颓。

coverage 向量

然后在計(jì)算 Attention 時(shí)要加入 coverage 向量。

計(jì)算 Attention

最后要在 Loss 中加上 coverage loss吱晒,可以看到對(duì)于第 i 個(gè)單詞甸饱,如果其 attention 值和 coverage 值都很大,說明之前已經(jīng)大概率生成過單詞 i,則此時(shí) coverage loss 會(huì)很大叹话。

2.3 實(shí)驗(yàn)效果

實(shí)驗(yàn)效果

上面是三種模型的摘要對(duì)比偷遗,藍(lán)色的是參考摘要,紅色的是錯(cuò)誤的摘要渣刷,可以看到 Seq2Seq 模型的摘要包含較多錯(cuò)誤以及 UNK 單詞鹦肿。綠色的是重復(fù)的摘要,Pointer-Generator Networks 雖然比較少錯(cuò)誤和未知單詞辅柴,但是其會(huì)生成重復(fù)的摘要箩溃。而加上了 coverage 機(jī)制的 Pointer-Generator Networks 則可以比較好避免重復(fù)摘要。

3.Multi-Source Pointer Network

Multi-Source Pointer Network (以下簡稱 MS-Pointer) 出自論文《Multi-Source Pointer Network for Product Title Summarization》碌嘀,是阿里巴巴團(tuán)隊(duì)提出的涣旨,用于生成產(chǎn)品的標(biāo)題。

MS-Pointer 需要兩個(gè)數(shù)據(jù)源股冗,其中一個(gè)是商品原來的標(biāo)題霹陡,另一個(gè)是一些額外的信息。額外的信息稱為 "knowledge"止状,主要包含商品名和品牌名烹棉,類似與一些商品的標(biāo)簽。

由于產(chǎn)品的標(biāo)題不應(yīng)該引入不相關(guān)的信息并且要保留原來的重要信息怯疤,所以 MS-Pointer 采用了抽取式的方法浆洗,摘要中所有的 token 均來自標(biāo)題或者 "knowledge"。

MS-Pointer 和 Pointer-Generator Networks 比較類似集峦,區(qū)別在于 MS-Pointer 使用一個(gè)標(biāo)題 Encoder 得到標(biāo)題 token 的 Attention 分布伏社,使用一個(gè) "knowledge" Encoder 得到 "knowledge" 的 Attention 分布,將兩個(gè) Attention 分布融合在一起塔淤。模型的示意圖如下:

MS_Pointer

如上圖所示摘昌,MS-Pointer 將兩個(gè) Attention 分布融合,融合的參數(shù)用以下公式計(jì)算:

MS_Pointer 融合的參數(shù)

4.參考文獻(xiàn)

Get To The Point: Summarization with Pointer-Generator Networks

Multi-Source Pointer Network for Product Title Summarization

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末高蜂,一起剝皮案震驚了整個(gè)濱河市聪黎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌备恤,老刑警劉巖稿饰,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異烘跺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脂崔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門滤淳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人砌左,你說我怎么就攤上這事脖咐∑痰校” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵屁擅,是天一觀的道長偿凭。 經(jīng)常有香客問我,道長派歌,這世上最難降的妖魔是什么弯囊? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮胶果,結(jié)果婚禮上匾嘱,老公的妹妹穿的比我還像新娘。我一直安慰自己早抠,他們只是感情好霎烙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蕊连,像睡著了一般悬垃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甘苍,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天尝蠕,我揣著相機(jī)與錄音,去河邊找鬼羊赵。 笑死趟佃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的昧捷。 我是一名探鬼主播闲昭,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼靡挥!你這毒婦竟也來了序矩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤跋破,失蹤者是張志新(化名)和其女友劉穎簸淀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毒返,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡租幕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拧簸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劲绪。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贾富,到底是詐尸還是另有隱情歉眷,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布颤枪,位于F島的核電站汗捡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏畏纲。R本人自食惡果不足惜扇住,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霍骄。 院中可真熱鬧台囱,春花似錦、人聲如沸读整。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽米间。三九已至强品,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屈糊,已是汗流浹背的榛。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逻锐,地道東北人夫晌。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像昧诱,于是被迫代替她去往敵國和親晓淀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355