# PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization [1912.08777](https://arxiv.org/pdf/1912.08777.pdf) ## Abstract * 近期的研究對於 pre-trained trainsformers 用於大型語料庫的 self-supervised 外加下游任務 (包含摘要) 的 fine-tuned 已經有顯著的成功 * 但未針對抽象摘要訂製 pre-training objective * 且缺乏跨領域的系統評估 * 本文提出了在大型語料庫應用 self-supervised 的 transformer pretrain 方法 * 重要的句子從輸入文檔中刪除或 mask 接著用其他句子輸出缺漏的句子當一個序列 (類似提取式摘要),效果很好 * 在新聞、科學、故事、說明書、電子郵件、專利和立法法案的 12 項下游摘要做評估,都得到最好的結果 (人工評估也好棒棒) * 在 low-resource 的摘要中,只用了 1000 個 data 就打趴 6 個 dataset 的結果 ## Introduction * seq-2-seq 和 transformer 已經成為主要的架構 * 神經網路的成功依賴大量精準的 supervised 資料集 * 越來越多人做抽象摘要,但卻沒有系統評估模型 * 選擇假設很重要的句子比隨機或引導的選擇句子還要好 * 推測這樣的目標因為類似抽象摘要的生成,很適合下游 * 作者稱這樣的 self-supervised objective 為 Gap Sentences Generation (GSG) * PEGASUS 就是使用 GSG 在大型文檔上對 Transformer encoder-decoder 進行 pretrain * 最好的模型有 568M 個參數 * 一般來說大規模的文檔摘要資料集很少見,學術與現實的資料集又有不匹配的問題,且現實資料蒐集成本很高 * 常見的設置是 low-resource summarization * 本文模擬了上述的配置,只用 1000 筆資料就打趴 6 個資料集的排行 * 即使在少量監督下,輸出還能跟參考摘要一樣好 * 貢獻 * 提出了一種新的 self-supervised 的預訓練目標,用於抽象摘要、克漏句、並且研究選擇句子的策略 * 精挑細選 568M 個參數的模型好棒棒 * 少量監督資料的 fine-tune 很強 * 人工評估效能也好棒 ## Relate Work * 用語言模型 (LM) 和 atuo-encoder 對 in-domain 預訓練可以提高 RNN 等序列模型的效能 * 但把預訓練跟更大的語料庫和 transformer 的序列模型結合,再對自然語言理解與文本生成進行 fine-tune,可以顯著提高性能 * 與本文的做法類似是在某些 mask 預訓練目標上進行預訓練的 Transformer encoder-decoder 模型 * MASS: 提出 masked seq-2-seq 生成方法 * UniLM: 建議應該聯合 3 種訓練 LM * unidirectional (left-to-right and right-to-left) * bidirectional (word-level mask, with next sentence prediction) * seq2-seq (word-level mask) prediction * T5: 把 text-2-text 架構推廣到各種 nlp 任務上,證實模型 (11 billon) 跟預訓資料集 (C4) 大小的優勢 * BERT: 去噪 auto-encoder 預訓練 seq-2-seq,用隨機噪點破壞文檔並重建 * 跟上述的相比,PEGASUS mask 多個完整句子,而非較小文本片段 * 最終目標是根據句子重要性選擇準確的句子,而非隨機選擇 * 跟 T5 相同,不輸出完整序列,只輸出被 mask 的部分 * 本文完全專注於下游摘要生成的任務,不評估 NLU ## Pre-training Objectives * 為了比較,還是有單獨做 MLM ### Gap Sentences Generation (GSG) * 作者假設使用更接近下游的預訓練會提升 fine tune 後的性能 * 為了用大量語料庫預訓練,設計在沒有摘要的情況下設計一個 seq-2-sqe 的 self-supervised 目標 * 幼稚的選擇是預訓練一個提取式摘要模型,但這樣只能複製句子,不適合抽象摘要 * 在文檔中選擇整句 mask 並把缺的連成一個假的摘要 * 用 [MASK1] 取代 * Gap sentences ratio (GSR): 表 MASK 比例 * 為了貼近摘要,選擇重要的句子 * 最終目標是證明 mask 的優勢同時預測下游任務 * 文檔 $D = \{x_i\}_n$ 中有 n 句 * 3 種方法選擇 m 個句子(不從文檔中替換) * Random: 隨機 m 句 * Lead: 選前 m 句 * Principal: 選最重要的 m 句 * 計算句子與其他句的 ROUGE1-F1 $s_i = rouge(x_i, D \setminus \{x_i\}), \forall i$ * 句子獨立評分 (**Ind**) 並選擇前 m 句;或如同 Nallapati 等人 (RNN 摘要) 的方法依序選擇 (**Seq**) 分數最高的句子 * 將 n-gram 弄成一個集合 (**Uniq**);或對相同的 n-gram 做 2 次計算(**Orig**) * 4種變體 (Ind/Seq, Orig/Uniq) ### Masked Language Model (MLM) * 跟 BERT 相同,但標記為 [MASK2] * 可以單獨或跟 GSG 一起預訓練 * 單獨訓練且依據 Rothe 等人方法 (序列生成) fine tune 時,ed/decoder 共享參數 * 下圖展示 GSG, MLM 一起使用 * 但 MLM 不能在大量的預訓練步驟中改善下游 ([section 6.1.2](#EFFECT-OF-PRE-TRAINING-OBJECTIVES)) * 最終模型 $\text {PEGASUS}_{\text {LARGE}}$ 沒有用 MLM 預訓練 ([section 6.2](#Larger-Model-Results)) ![](https://i.imgur.com/CZ8KCLd.png) ## Pre-train Corpus * C4 (Colossal and Cleaned version of Common Crawl): 350M 個網頁的文字 (750GB) * HugeNews: 2013~2019 的 1.5B 篇新聞 (3.8TB) ## Downstream Task/Datasets * 只用公共抽象摘要資料集 * 用 TensorFlow Summarization Datasets 存取 (可以拆資料集) * 如果沒拆,用 80/10/10;如果沒有驗證集,拆 10 % * 附錄 A 說明所有下游資料集的使用細節 * XSum: 2010~2017 的 227k 篇 BBC 文章 (主題廣泛、專業的單句摘要) * CNN/DailyMail: 93k CNN 、220k Dailymail * NEWSROOM: 由作者與編輯撰寫, 1998~2017 的 38 個主要出版物 1.3M 篇文章 * Multi-News: 在 newser.com 的 56k 篇新聞 * Gigaword: 從 Gigaword 語料庫的 4M 新聞,任務是從第 1 句話產生標題 * arXiv, PubMed: 來自 arXiv.org 113k 與 PubMed 215k 的科學長文檔資料集,任務是從論文中生成摘要 * BIGPATENT: 9種分類的 1.3M 個美國專利 * WikiHow: 來自 WikiHow.com (指令資料集),200k 個資料,每筆都包含多個指令段落及一句摘要 * Reddit TIFU: 2013/01~2018/08 來自 Reddit-TIUP 的 120k 篇文(故事),因為這個板嚴格限制 "TL;DR" 的摘要規則 * AESLC: 來自 Enron 語料庫的 18k e-mail 正文及其題目 * BillSum: 103~115 屆 (1993~2018) 國會的 23k 份法案 ## Experiments * 為了省時省力,用較小的模型 $\text PEGASUS_{\text BASE}$ (較少參數、4 個資料集、較小的 batch size) * 因為抽象性、風格、大小的多樣性選擇 XSum, CNN/DailyMail, WikiHow and Reddit TIFU * $\text {PEGASUS}_{\text {BASE}}: L= 12, H = 768, F = 3072, A = 12, batch size = 256, parameters = 223M$ * $\text {PEGASUS}_{\text {LARGE}}: L= 16, H = 1024, F = 4096, A = 16, batch size = 8192, parameters = 568M$ * L: en/decoder (transformer block) 層數, H: hidden size, F: Feed-Forward 層數, A: self-attention heads * 沒預訓練的 $\text {PEGASUS}_{\text {BASE}}$ 稱為 $\text {Transformer}_{\text {BASE}}$ * 根據 attention is all you need 用正弦 position ecoding * Adafactor: learning rate 以平方根遞減,drop out 0.1 * 在 base 用 greedy-encoding ([section 6.1](#Ablations-on-span-idMathJax-Element-10-Frame-classmjx-chtml-MathJax_CHTML-tabindex0-data-mathmlPEGASUSBASE-rolepresentation-stylefont-size-113-position-relativePEGASUSBASEPEGASUSBASEtext-PEGASUS_text-BASE)),在 large 用 length-penalty 長度為 $\alpha$ 的 beam-search * 超參數在附錄 C ,實驗數據在附錄D, E ### Ablations on $\text {PEGASUS}_{\text {BASE}}$ * 用 base 評估預訓練語料庫的好壞、預訓練目標的好壞、詞彙量多寡 (只公開 C4 對後2者個結果) * 接下來的圖片,縱軸是根據最左邊 bar 的 normalization * 預訓練了 500k 都看不完訓練集,附錄 B 展示預訓練步驟對下游產生很大的影響,故進行消融研究及 large 的研究 #### PRE-TRAINING CORPUS * 根據下圖,預訓練的語料庫跟下游任務相同 domain 時,效能較好 ![](https://i.imgur.com/CrKOyyZ.png) #### EFFECT OF PRE-TRAINING OBJECTIVES * GSG: 比較了 6 種變體 (mask 30 %) * 下圖顯示 Ind-Orig 最好,其次是 Seq-Uniq;Ind-Orig 和 Seq-Uniq 始終比 Random 和 Lead 更好;Lead 在新聞的表現不錯,非新聞的就差 * 顯示選擇重要的句子比較適合下游摘要任務, large 用 Ind-Orig ![](https://i.imgur.com/wFtBAqy.png) * GSG 中有個重要的超參數 GSR,越低挑戰與計算效率降低;越高會導致生成所需的上下文被挖空 * 比較 15% 與 75% (文章都 400 字);在 encoder 中的 maximum input length, $L_{input}$ 與 decoder 中的 maximum target length, $L_{target}$ 都設 512 * 下圖顯示不同下游資料集的最佳 GSR 略有不同,但都低於 50%;拓展到 large[section 6.2] 時選擇 30% ![](https://i.imgur.com/qKKnOAi.png) * MLM: 與 GSG Ind-Orig 一起預訓練 (如架構圖),選 30% 句子與額外的 15% mask * 下圖顯示只用 MLM 進行預訓練非常爛;MLM+Ind-Orig 跟 random 差不多;MLM+Ind-Orig 跟 Ind-Orig 相比,經驗顯示 MLM 在預訓練前期 (100k~200k) 有用 * 因此 large 沒有加 MLM ![](https://i.imgur.com/wFtBAqy.png) #### EFFECT OF VOCABULARY * 比較 2 種不同的 tokenization 方法 * Byte-pair-encoding algorithm (BPE) * SentencePiece Unigram algorithm (Unigram) * 用 32k~256k 個不同詞彙量評估 Unigram (Ind-Orig, 15% GSR, C4, 500k step) * 下圖顯示 BPE 跟 Unigram 在新聞上表現差不多,Unigram 在非新聞中勝出;在 XSum 與 CNN/DailyMail 上 Unigram 96k 最好;在 WikiHow 與 Reddit TIFU 最佳配置是 128k, 64k * 因此在 large 中選擇 Unigram 96k ![](https://i.imgur.com/xusRqHz.png) ### Larger Model Results * 為了鼓勵模型複製句子(抽取式摘要),保留 20% 選定的句子不用 [MASK1] 替代 * 把 GSR 提高到 45% (接近前述的 30%) * CNN/DailyMail, Multi-News, arXiv, PubMed, BIGPATENT 的長度大於預訓練時的長度 (512),position embedding 會出問題 * 但因此證實了正弦 position ecoding 的通用性,當 large 調整為超過訓練中觀察到的輸入長度時,最多可輸入 Linput = 1024 * 由於 BIGPATENT, arXiv, PubMed, Multi-News 的長度更超過 1024 個字 * 因此更進一步擴大 Linput 或用兩階段方法(Liu 等人,序列生成)可能可以提高效能 [作者偷抱怨這超出論文的範圍了] * 下 2 表顯示 base 與 large 在下游資料集上的差異 (BillSum 只有抽取式,其他都是比抽象摘要;摘要很長的只用了 256 個 token) * 儘管 base 在許多資料集上都超過了當前的 SOTA;但使用 HugeNews 在所有下游資料集上, large 的表現都優於 SOTA,儘管 C4 在 WikiHow 上的表現更好 ![](https://i.imgur.com/B5CpfTT.png) ![](https://i.imgur.com/HFipjPT.png) * 對於較小的資料集,沒有預訓練的 Transformer base 到 large 的改善更明顯 * AESLC 翻 3 倍、Reddit TIFU 翻 5 倍 * 小的摘要資料集受益於預訓練 ### Zero and Low-Resource Summarization * 實際應用很難蒐集那麼多 label data 來預訓練或 fine tune * 為了模擬,用 $10^k$ (k = 1 ~ 4) 來 fine tune large * batch size = 256, learning rate = 0.0005, step = 2000,並選擇驗證結果最好的 checkpoint * 下圖顯示只看 100 筆 data 下 12 個資料集有 8 個可以達到跟 Transformer base 看完 20k~200k 筆 data 的結果一樣好 ![](https://i.imgur.com/ph7Mdpv.png) * 在只有 1000 個的情況下也有 6 個打敗 SOTA * 在 CNN/DailyMail 只有一半參數的 large 表現比 GPT-2 * 用 1000 個的 large 分數高達 19.35 比 Khandelwal 等人 (Transformer LM) 用 3000 個的 13.1 高許多 ### Qualitative Observations and Human Evaluation * 總體來說語言品質越高的輸出越接近模仿 ground truth 的風格 * 雖然以前的論文 (Welleck 等人的論文) 顯示 maximum likelihood training 會導致輸出重複的句子 * 我們的輸出很少見,所以不用額外措施 * 雖然 ROUGE 真的有缺點,導致過度逞罰抽象式摘要,讓抽相式摘要的語言品質降低 * 使用 aggregated ROUGE (而非直接優化 ROUGE) 來選擇 perplexity-optimized 的模型可以得到較好的結果 * 附錄 H 顯示透過程式隨機抽樣模型對所有資料集解碼,可以得到廣泛的 ROUGE 得分 * 發現即使是低分的模型,輸出通常也是有品質的 * 在 Amazon Mechanical Turk 上進行人類評估,評估 large 的輸出 * 範例來自 XSum, CNN/DailyMail, Reddit TIFU,前 2 者受前人歡迎,第 3 個風格迥異 * 要求工人對摘要給分 (1~5),並用 paired t-test 評估顯著性,附錄 F 有完整評分 * 人類跟模型的結果比較 * 第 1 個實驗將 large 對不同語料庫預訓練的結果與 Transformer base 和參考摘要比較 * 第 2 個實驗把 large(HugeNews) 用 10、100、1000 筆 fine tune 的結果與所有監督式的結果和參考摘要比較 ![](https://i.imgur.com/d4GUi6Y.png) * 在顯著性小於 0.01 的情況下 large 的輸出至少都與參考摘要相同 * 在 zero shot * XSum, CNN/DailyMail 中 large(HugeNews) 也不比人類的差 * Reddit TIFU 中,因為風格多樣,所以需要充分的監督 ## Conclusion * 提出了 PEGASUS,具有空缺句生成的模型,為抽象式摘要量身訂製的預訓練目標 * 選擇重要句子挖空最好 * 展示了預訓練語料庫、GSR、詞彙量的影響,並按比例放大模型,並且在 12 個資料集上達到最佳 * 模型的 zero shot 很出色 * 人類評估也很棒 ###### tags: `Paper`