# 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))

## 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 時,效能較好

#### EFFECT OF PRE-TRAINING OBJECTIVES
* GSG: 比較了 6 種變體 (mask 30 %)
* 下圖顯示 Ind-Orig 最好,其次是 Seq-Uniq;Ind-Orig 和 Seq-Uniq 始終比 Random 和 Lead 更好;Lead 在新聞的表現不錯,非新聞的就差
* 顯示選擇重要的句子比較適合下游摘要任務, large 用 Ind-Orig

* 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%

* MLM: 與 GSG Ind-Orig 一起預訓練 (如架構圖),選 30% 句子與額外的 15% mask
* 下圖顯示只用 MLM 進行預訓練非常爛;MLM+Ind-Orig 跟 random 差不多;MLM+Ind-Orig 跟 Ind-Orig 相比,經驗顯示 MLM 在預訓練前期 (100k~200k) 有用
* 因此 large 沒有加 MLM

#### 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

### 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 上的表現更好


* 對於較小的資料集,沒有預訓練的 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 的結果一樣好

* 在只有 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 的結果與所有監督式的結果和參考摘要比較

* 在顯著性小於 0.01 的情況下 large 的輸出至少都與參考摘要相同
* 在 zero shot
* XSum, CNN/DailyMail 中 large(HugeNews) 也不比人類的差
* Reddit TIFU 中,因為風格多樣,所以需要充分的監督
## Conclusion
* 提出了 PEGASUS,具有空缺句生成的模型,為抽象式摘要量身訂製的預訓練目標
* 選擇重要句子挖空最好
* 展示了預訓練語料庫、GSR、詞彙量的影響,並按比例放大模型,並且在 12 個資料集上達到最佳
* 模型的 zero shot 很出色
* 人類評估也很棒
###### tags: `Paper`