# Text Summarization with Pretrained Encoders
[1908.08345](https://arxiv.org/pdf/1908.08345.pdf)
## Abstract
* extractive and abstractive models.
* 使用基於 BERT 上的 transformer 抽取摘要
* extractive: inter-sentence Transformer layers
* abstractive: encoder-decoder architecture; 隨機初始化的Transformer decoder
* 用新的 fine-tune 法平衡 BERT 與後者的不平衡
* separates the optimizers of the encoder and the decoder 分開優化
* two-stage approach: encoder fine-tune 2次;先 extractive 再 abstractive
* 在3個不同寫作習慣(重要訊息放的地方;簡短的摘要等等)的 dataset 中2種摘要生成都最好
* 3個貢獻
* 強調 document encoding 很重要,且用小小的模型就打趴一些很高深的技術的模型
* 展示了用 pretrain model 在摘要生成的方法
* 變成將來新模型的墊腳石及 baseline
---
## Background
### Pretrained Language Models
* pretrain model 變成 NLP 多數任務的主流
* 原始BERT的結構如下
* CLS 表整個序列的訊息;放開頭
* SEP 表句子邊界;放句尾

* 句子會被表為3種embedding,並合成1個 vector $x_i$ 餵給多層雙向 transformer
* token embedding: 每個 token 的意義
* segmentation embeddings: 區分2個句子
* position embeddings: 句子在原序列的位置
* $\widetilde{h}^l = \text{LN}(h^{l-1} + \text{MAHtt}(h^{l-1}))$
$h^l = LN(\widetilde{h}^l + \text{FFN}(\widetilde{h}^l))$
$h^0 = \text{PosEmb}(T)$
$T$: $sent_i$ 的特徵向量
PosEmb: 表示每個句子的位置($E_P$)
LN: normalization
MHAtt: multi-head attention
上標$l$: 深度
* BERT 會在最上層輸出句有上下文訊息的 token $t_i$
* 因為 BERT 的會跟下游一起微調,所以目前比 ELMO 廣泛
### Extractive Summarization
* neural encoder 創建句子的 representation (理解句子)
* classifier 選擇哪些是摘要
* 範例:
* SUMMARUNNER: 最早的 NN 摘要; RNN
* REFRESH: 針對 ROUGE 優化的 reinforcement learning
* LATENT: 直接針對人類給定的句子做最佳化
* SUMO: 用 multi-root dependency tree 表達文章並預測輸出
* NEUSUM: 同時評分及選擇句子; extractive summarization 中的最好
### Abstractive Summarization
* NN 將此視為 seq2seq 問題
* encoder 把輸入序列 x 映射到連續表達序列 z
* decoder 以 auto regressive token-by-token 的生成摘要 y
* 對條件機率 $P(y|x)$ 建模
* 範例
* Rush 和 Nallapati 是第1個把編解碼器架構運用在摘要生成的人
* See 用 pointergenerator network (PTGEN) 加強前者的模型,並用 coverage mechanism (COV) 追蹤已當作摘要的 word
* Celikyilmaz 提出用多個 encoder 表示文檔並用階層的attention 當 decoder 的抽象系統: Deep Communicating Agents (DCA), end-to-end with reinforcement learning
* Paulus 提出: deep reinforced model (DRM), 用 intra-attention 處理 coverage 問題, decoder 注意先前生成的 word
* Gehrmann 用 bottom-up approach, 先確定摘要要有那些文章中的片語,接著在 decode 時針對先前預選的片語用 copy mechanism
* Narayan 用 CNN 加主題分布為條件,提出一種特別適合極端摘要(單句摘要)的抽像模型
---
## Fine-tuning BERT for Summarization
### Summarization Encoder
<!-- * [BERTSUM](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?view#Extractive-Summarization-with-BERT) -->
* 因 BERT 的輸出太片面,通常只有字的表示不是整(多)句話,所以修改了輸入及embedding 來進行摘要分析
* 在句子前加 [CLS]; 後加 [SEP]
* 用 $E_A$, $E_B$ 來區分單雙數句子
* $T_i$ 表 $sent_i$ 的特徵向量

* 可以分層學習文檔表達,其中較低的 Transformer layer 表相鄰的句子,而較高的層結合自注意,則代表多句話語
* 原先 BERT 的 position embedding 只有512,這裡添加更多的並隨機初始化然後一起訓練
### Extractive Summarization
<!-- * [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?view#Methodology) -->
* $sent_i$ 表文件中的第 $i$ 句
* 若句子 $sent_i$ 包含在最後的輸出中,則輸出 $y_i$ = 1
* 代表第 $i$ 句為摘要
<!-- * [BERTSUMEXT](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?view#Inter-sentence-Transformer) -->
* BERTSUMEXT:
* 用一個 transformer 做分類會比前一個好
* $\widetilde{h}^l = \text{LN}(h^{l-1} + \text{MAHtt}(h^{l-1}))$
$h^l = LN(\widetilde{h}^l + \text{FFN}(\widetilde{h}^l))$
$h^0 = \text{PosEmb}(T)$
$T$: $sent_i$ 的特徵向量
PosEmb: 表示每個句子的位置($E_P$)
LN: normalization
MHAtt: multi-head attention
上標$l$: 深度
輸出層一樣是 sigmoid
* 實驗發現$l$=2最好(在$l$=1~3中)
* $\hat{Y}_i = σ(W_o h^L_i + b_o)$
* $h^L$: 第$L$層 transformer 的輸出向量
<!-- [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?both#Fine-tuning-with-Summarization-Layers) -->
* 計算 $\hat{Y}_i$ 與 $Y_i$ 的 Binary Classification Entropy
* 這個額外的 layer 跟著 BERT 一起 fine-tuned
<!-- [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?both#Implementation-Details) -->
* Adam β1 = 0.9, β2 = 0.999 is used for fine-tuning.
* Learning rate schedule is following with warming-up on first 10,000 steps:
$lr = 2e^{−3}· min(step^{−0.5}, step · warmup^{−1.5})$
### Abstractive Summarization
* 表準的 encoder-decoder 結構 (See)
* encoder: pretrained BERTSUM
* decoder: 6 layers transformer (random initial)
* 分別用2個 Adam β1 = 0.9, β2 = 0.999 但 warm-up 和 learning rate 不同
* $lr_\mathcal{E} = \widetilde{lr}_\mathcal{E} · min(\text{step} ^{−0.5} , \text{step} · \text{warmup}_\mathcal{E}^{−1.5})$
$lr_\mathcal{E} = 2e^{−3}$ ; $\text{warmup}_\mathcal{E} = 20,000$
* $lr_\mathcal{D} = \widetilde{lr}_\mathcal{D} · min(\text{step} ^{−0.5} , \text{step} · \text{warmup}_\mathcal{D}^{−1.5})$
$lr_\mathcal{D} = 0.1$ ; $\text{warmup}_\mathcal{D} = 10,000$
* pretrained encoder 以較小的學習速率和更平滑的衰減進行微調(以便在 decoder 變得穩定時可以使用更準確的梯度來訓練 encoder)
* 2階段 fine tune: 先對 extractive 接著對 abstractive fine tune
* 利用這兩個任務之間共享的訊息,而無需從根本上改變結構
* 上面的叫 BERTSUMABS;用2階段 fine tune 的叫 BERTSUMEXTABS
---
## Experimental Setup
### Summarization Datasets
<!-- [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?both#Summarization-Datasets) -->
* CNN/DailyMail news highlights dataset
* associated highlight
* 沒有匿名化
* 用 Hermann 等人的方法分訓練、驗證、測試集
* 用 CoreNLP 和 See 等人的方法做句子分割及預處理
* Input truncated to 512 tokens
* New York Times Annotated Corpus (NYT)
* abstractive summaries
* 根據日期9/1拆測試集;4% validation(4000筆)
* 摘要少於50字的刪除
* 用 CoreNLP 和 Durrett 等人的方法做句子分割及預處理
* Input truncated to 800 tokens
* XSum
* 只有一句的 summary
* 用 Narayan 等人的方法分訓練、驗證、測試集及預處理
* Input truncated to 512 tokens.
* 前2 dataset 算 extractive 後算 abstractive
* 期望結果可以更偏向 dataset 的特性
* 最右欄: novel bi-gram (新穎的2字組)在 gold 中所佔的比例

### Implementation Details
* PyTorch, OpenNMT, BERT(bert-base-uncased)
* source 跟 target 都用 BERT 的 subwords tokenizer 標記
* 根據 loss 前3低的 checkpoints 進行 testing
#### Extractive Summarization
<!-- [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?both#Implementation-Details) -->
* trained for 50,000 steps
* batch size 約 36
* Model checkpoints are saved and evaluated on the validation set every 1,000 steps
<!-- [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?both#Summarization-Datasets) -->
* 類似於 Nallapati 等人的 oracle 算法用於為每個文檔生成預言摘要來訓練模型
* 選擇可以讓 ROUGE2 分數最高的語句作為預言語句
<!-- [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?both#Trigram-Blocking) -->
* 類似 Maximal Marginal Relevance (MMR) 但簡單的許多
* 指判斷候選句 c 跟已存在的 S 的 word 重複性 (超過3個就略過 c)
#### Abstractive Summarization
* 所有抽象模型都在線性 layer 前 dropout (p = 0.1);並且用 label smoothing (factor = 0.1)
* Transformer hidden nuit = 768
* hidden size of all feed forword layer = 2048
* trained for 200,000 steps
* Model checkpoints were saved and evaluated on the validation set every 2,500 step
* 在 decode 時
* 使用 beam search (size = 5)
* α for the length penalty 0.6 ~ 1
* 使用 trigram blocking
* 直到 end-of-sequence token 出現
* 沒有用到 copy 或 coverage 的技術卻很受歡迎
* 因為模型是最小需求
* 因為有 subwords tokenizer 所以很少出現 out-of-vocabulary words
* trigram-blocking 也有效的減少重複的摘要
---
## Results
### Automatic Evaluation
* ROUGE-1,2 評估訊息豐富程度
* ROUGE-L 評估流暢性
* ORACLE (ROUGE-2最高分)當 upper bound
* LEAD-3 (只拿錢3句)當 baseline
<!-- [link](https://hackmd.io/hewYhCOXSB2TbxY7c27ORA?both#Experimental-Results) -->
* TransformerEXT: baseline; 沒預先訓練, 參數較少且隨機的 BERTSUMEXT
* 6 layers; hidden size 512; feed-forward filter size 2048
* 模型按照Vaswani等人的相同設置進行訓練
* TransformerABS: baseline; 用跟 BERTSUMABS 相同的解碼器
* encoder 為 6 layers; hidden size 768; feed-forward filter size 2048
#### CNN/DailyMail
* BERT base 的 models 只比 ORACLE 差
* BERTSUMEXT 表現最好,因為 dataset 本身就偏向抽取式,連抽象式 BERT 也因為 dataset 而偏向從文章複製
* 較大版本的 BERT 可以有效提升性能
* 而 interval embeddings 只能有微小提升

#### NYT
* 用 Durrett 的方法評測
* limited-length ROUGE Recall
* 輸出截斷至 gold summaries 的長度
* BERT base 的 models 又把其他人打趴
* 抽象 BERTSUM 幾乎快追上 ORACLE

#### XSum
* 透過 LEAD 及 ORACLE發現抽取式模型效能不佳
* 因為 XSum 是1句式摘要
* 所以沒有跟抽取式模型比較
* BERT base 又打趴以前的模型了

### Model Analysis
#### Learning Rates
* 重寫式摘要的 lr 根據下表發現 $lr_\mathcal{E} = 2e^{−3}$; $lr_\mathcal{D} = 0.1$ 表現最好

#### Position of Extracted Sentences
* 對於提取式摘要進一步分析摘要位於原文中的位置的相關性
* ORACLE 非常的平滑
* TransformerEXT 則傾向文章的前段
* BERTSUMEXT 非常接近 ORACLE 表示預訓練的模型更深入了解文章的意思而非只用位置判別重要性

#### Novel N-grams
* 對重寫式摘要進一步分析新 n-gram 的比例
* 在 CNN/DailyMail 中生成的比低很多
* 其中 BERTEXTABS 的比例又最低,因為先被訓練成提取式模型
* 但在 XSum 中就比較靠近參考

### Human Evaluation
* 用 QA 範例量化模型保留文件的關鍵訊息
* 根據 gold summary 創建問題集
* 假設 highlight 了最重要的內容
* 參與者只讀生成的摘要就回答問題;可以回答對越多問題的表該模型越好
* 由於重寫式可能會混亂或不合語法
* 因此採用 Best-Worst Scaling method 向參與者顯示2個模型(及原始文件)的輸出
* 根據 Informativeness, Fluency, and Succinctness 判斷優劣
* 上2中方法都在 Amazon Mechanical Turk(工人智慧平台) 評測
* 對於先前發表的模型 CNN/DailyMail and NYT 用相同的20篇文章和問題
* 對於 XSum 從 Narayan 等人的模型隨機選擇20篇文章和問題
* QA 的評測:
* 全對為1; 部分0.5; 錯0分
* 判斷品質:
* 被選擇較好的次數 - 較差的次數的百分比
* 範圍 -1 ~ 1
* 把性能最好的 BERTSUM 跟各種最新系統的比較
* LEAD 當 baseline; GOLD 當 upper bound
* QA 評測中除了 TCONVS2S 外都具有統計意義 (p < 0.05)


---
## Conclusions
* 3個 dataset 都顯示模型基於自動或人類的評估都好棒棒
---
###### tags: `Paper`