# AREDSUM
Adaptive Redundancy-Aware Iterative Sentence Ranking for Extractive Document Summarization
[2004.06176](https://arxiv.org/pdf/2004.06176.pdf)
---
## Abstract & Introduction
* 對摘要中需包含的句子的冗餘度進行評分,與他們的 salience information (顯著性信息)一起使用,或者作為額外的句子評分步驟單獨使用
* 若給定一部份的摘要了,要再增加其他句子的判定由以下2點決定
* salience(顯著性): 表句子擁有多少訊息
* redundancy(冗餘性): 表句子已經存在給定摘要中的程度
----
* 先前的論文證實了神經序列生成模型(neural sequence generation model)同時選擇句子與評分的效能,但分不出是 encoder 變好還是減少冗餘的功效
* 同樣的,salience 跟 diversity components 也看不出成果
<!-- * 為此開發2種模型
* AREDSUM-SEQ
* transformer bases
* 前人的延伸(同時評分與選擇)
* 在選擇句子時,同時參考 salience and novelty
* AREDSUM-CTX
* 先對 salience 評分,接著學習平衡 salience and redundancy,以衡量各方面的影響
* 結合 surface features (n-gram overlap ratio, semantic match scores) 衡量多樣性
* 在 CNN/DailyMail, NYT50 上顯示,通過單獨步驟建模 CTX 的性能比 SEQ 跟 BERTSUM 好
* Extractive summarization: 在文章中識別和組合最重要的句子輸出成摘要 -->
* 很久以前的論文討論過 redundancy, 最近的都只討論 salience
* 通常都當 sequence labeling task 或分類任務,但卻沒有移除 redundancy
* 適應能力不夠,通常對同一篇文章用同樣演算法
<!-- * e.g. Maximal Marginal Relevance (MMR) (Carbonell and Goldstein, 1998), Trigram Blocking (TRIBLK) (Liu and Lapata, 2019),or model based approaches (Ren et al., 2016) -->
<!-- * 貢獻
* 提出了2種 redundancy-aware 改善 BERTSUMEXT
* 有跟 heuristic-based (BERTSUMEXT) 的模型比較
* 我們的模型 AREDSUM-CTX 好棒棒 -->
---
## Related Work
<!-- * 提取摘要方法通常分解為兩個子任務,即評分和選擇,分別處理顯著性和冗餘性 -->
----
### Salience Scoring
* unsupervised: Graph-based models 廣泛利用具於句子評分
* supervised: 用分類任務或序列標記 (Naive Bayes, maximum entropy, conditional, random fields, hidden markov model)
* 大量使用工人智慧(word frequncy, sentence length)
* NN 替代了前者;hierarchical LSTM 和 CNN 取代了後者
* 這些架構也被 reinforcement learning 擴展
* 再最近一點 BERT-base 更強
----
### Sentence Selection
* 比較少人討論句子冗餘
* Integer Linear Programming based methods: 視為摘要長度限制下的優化問題
* Lin 等人的論文用 submodular functions 尋找最佳子集
----
* Maximal Marginal Relevance (MMR): 貪婪一點的算法,選分數最高最不冗的句子
* Trigram blocking: 遵循 MMR,濾出與先前有重疊的句子
* Ren 等人的論文用2組工人智慧取得 informativeness 和 redundancy
* Zhou 等人的論文用序列生成模型一併學評分與選擇(但不知道是哪部分提升性能)
---
## Iterative Sentence Ranking
* 將提取摘要公式化為迭代句子排序的任務
* 令有 L 句句子的文件 $D = \{s_1, s_2, ... , s_L\}$
* 目標是提取 t 句 $\hat{S_t} = \{ \hat{s_k} | 1 \leq k \leq t, \hat{s_k} \in D \}$
* 可視為 t-step 的迭代排序
* 對於每個已選摘要 $\hat S_{k-1}$ 選擇 $s_k \in \{ D - \hat S_{k-1} \}$ 加到摘要中 ($\hat S_0 = \phi$)
* 函數 $M(\hat S_k; S^*)$ 測量提取的摘要 $\hat S_k$ 與 ground truth $S^*$ 間的相似度
----
* 訓練一個評分函數 $f( \cdot )$ 讓選擇 $\hat s_k$ 效益最大化 <!-- M 用 ROUGE -->
* $\mathop{\text{argmax}}\limits_f M((\{ \hat s_k \} \cup \hat S_{k-1}); S^* )$
* $\hat s_k = \mathop{\text{argmax}} \limits_{s_i \in D - \hat S_{k-1}} f(\{ s_i \} \cup \hat{S}_{k-1})$
* $\hat s_k$ 要同時顯著 (salient) 於文件 $D$ 且新穎 (novel) 於已選的 $\hat S_{k-1}$ (式1)
* 由於 ground truth $S^*$ 多數都是人寫的 (abstractive)
* 先前的論文多數從文章中選幾個比較像的 $\hat S^*$ 作為訓練
* 就是說用 $M(\hat S_k; \hat S^*)$ 來訓練
---
## Redundancy-Aware Summarization
<!-- * 後面會提到啟發式 (heuristic) 的缺點 -->
* 本篇延伸了 BERTSUMEXT 做了2個模型
----
### Document Encoder
* 通用於本文的 encoder
* 跟 BERTSUMEXT 差不多,在句子前加 [CLS]; 後加 [SEP]
* 用 $E_A, E_B$ 來區分單雙數句子
* 接著串接數層 transformer encoder (BERT)
* 進一步將 [CLS] 的輸出 $E_{si}$ 進行文檔級的編碼
* 還有新的 position embedding $E'_i$ 跟 document embedding $E_D$ (how to get?)
* 再串2層 transformer encoder
* 最後輸出為 $h_D, h_{s_i}$ 表文章跟句子
----

---
### AREDSUM-SEQ: Sequence Generation
* 在同時對下一句的冗餘性與顯著性建模時,**順序**很重要
* 用 2層 tranformer decoder 學習選擇與排序文檔中的句子序列作為摘要
* 跟標準的 auto-regressive decoder 不同
* (標準的讀序列 token 預測下一個 token)
* 本文的 decoder 為條件模型
* 用序列句子特徵當輸入 ($h$)
* 從剩的句子選擇一個具有最大效益的句子在摘要中
----
* 根據標準的 encoder-decoder 架構,第 k 個 current hiddent state 可以用堆疊狀的 decoder 來獲得 (式2)
* $h'_{\hat s_{k-1}} = DEC([E_{\hat s_1}, ... ,E_{\hat s_{k-1}}], [h_{s1}, ... , h_{sL}])$
* E 表被選到的句子的 embedding
* h 表 sentence representation
* $E_{\hat s_0}$ = 0
----
* 接2層 MLP 對給定隱藏狀態 $h'_{\hat s_{k-1}}$ 的候選句子 $s_i$ 評分 (式3) <!-- 就只是2層 dense -->
* $o_l(s_i) = W_{2s} \tanh (W_{1s} [h'_{\hat s_{k-1}} ; E_{s_i}])$
* $W_{1s}, W_{2s}$ 為權重 (沒bias)
* $;$ 表向量 concate
----
* 若 $o_l(s_i)$ 無法獲得 $s_i$ 的充分的顯著性,則計算與 $D$ 之間的 matching socre $o_g(si)$,無論先前選了什麼 (式4)
* $o_g(s_i) = \tanh (h_D W_{ds} h_{s_i})$
* $W_{ds}$: bilinear matching 的矩陣
* $h_D, h_{si}$: 文章與句子的 embedding
* 可以提高性能
----
* 最終分數為 $o_l, o_g$ 的線性組合 (式5)
* $o(s_i) = W_o(o_l(s_i) + o_g(s_i))$
* 第 k 步選到 $s_i$ 的機率為 D 中剩下的候選句 $s_j$ 的分數 softmax (式6)
* $P(\hat s_k = s_i | \hat S_{k-1}) = \frac {\exp(o(s_i))} {\sum \limits _{s_j \in D - \hat S_{k-1}} \exp(o(s_j))}$
----
* 相對於已選擇的句子 $\hat S_{k-1}$,針對 ROUGE-F1 的增益進行優化 (繼NEUSUM) (式7)
* $g(s_i) = M(\{ s_i \} \cup \hat S_{k-1} ; S^*) - M(\hat S_{k-1} ; S^*)$
* $M$: 相較於 ground truth ROUGE 的分數
* 用 min-max normalization 得到區間 [0, 1] 的 $\tilde g$
----
* 用 temperature 為 $\tau$ 的 softmax 生成目標分布 (式8)
* $Q(s_i) = \frac {exp(\tau \tilde g(s_i))} {\sum \limits _{s_j \in D - \hat S_{k-1}} exp(\tau \tilde g(s_i))}$
* 一般的 tau 都在分母,>1會讓分布更平滑[wiki](https://en.wikipedia.org/wiki/Softmax_function#Reinforcement_learning)
* $\tau$ = 10, **20**, 40, 60
----

----
* 最終目的為最小化句子分數的機率分布與 rouge 增益(式6, 8)之間的 KL divergence
* 可視為 listwise ranking loss (Ai等人的論文),最大化目標句子的機率同時降低其他句的機率
* 透過優化 ROUGE 增益隱含得知冗餘,並且在同一個 decoder 中同時評分與選擇
---
### AREDSUM-CTX: Context-aware Sentence Ranker
* 先對顯著性評分
* 接著根據顯著和冗餘性選擇一個句子,並將先前提取的句子作為上下文
* Salience Ranking 階段: 專注於學習顯著性的評分
* Ranker for Sentence Selection 階段: 用 "surface features" 表示冗餘,根據給定的顯著與冗餘性用 ranker 對句子升/降級
----
#### Salience Ranking
* 前提: 假設句子的顯著性獨立於已選的句子
* 單一步驟非迭代
* 用 $F_{sal}$ 預估一個句子可能在 $\hat S^*$ 的機率 (式9)
* 基於 $h_D, h_{s_i}$ 間的 bilinear matching
* $F_{sal}(s_i) = \frac {\exp(h_D W_{ds} h_{s_i})} {\sum ^{j=L}_{j=1}\exp(h_D W_{ds} h_{s_j})}$ <!-- * L: 文件 D 中的句子數 -->
* 目標: 最大化 $s_i$ 屬於 training data 的機率
* $\mathcal{L} = \sum \limits_{s_i \in \hat S^*} \log (F_{sal}(s_i))$ (式10)
----
#### Redundancy Features
* 明確表示冗餘,讓模型專注學習平衡顯著和冗餘
* 第 k 步,提取 ngram-matching 和 semantic-matching 的 features,表示給定已選句子 $\hat S_{k-1}$ 的候選句 $s_i$ 的冗餘性
----
* ngram-matching features: (scalar 吧?)
* $f_{n-gram} = \frac {|n-gram(\hat S_{k-1}) \cap n-gram(s_i)|} {n-gram(s_i)}$ (n = 1, 2, 3) (式11)
<!-- * n-gram(x) is the set of n contiguous words in x -->
* semantic-matching feature:
* 要選的句子與已選句子的相似度(純量串接?)
* $f_{sem} = \mathop {\max} \limits _{\hat s_j \in \hat S_{k-1}} \cos(h_{s_i}, h_{\hat s_j})$ (式12)
* 多數由 document level 輸出的相似度多接近 1,所以用 min-max normalization 得到 $\tilde f_{sem}$
----
* redundancy features 對於最終分數為非線性
* 越冗餘的句子分數數應該減少更多
* 為了獲得冗餘性在不同值部分的影響,將[0,1]的範圍平均劃分為 m 個 bin
* 並根據其值把每個 feature 離散化到相應的 bin ?
* 把每個 feature 轉換為長度為 m 的 one-hot vector 接著串在一起獲得整個冗餘特徵向量
* $F_{red}(s_i) = [f'_{1-gram} ; f'_{2-gram} ; f'_{3-gram} ; f'_{sem}]$
* $f'$ 表 binning 後的 one-hot vector
* m = 10, 20, 30
----
#### Ranker for Sentence Selection
* 只要學怎麼針對 $F_{red}(s_i), F_{sal}(s_i)$ 做最後評分
* 第1個選到的句子分數最高
* 用3維矩陣 $W_F$ 對冗餘特徵及顯著分數做 bilinear matching 得到 d 維 output matching 向量
* 接著用單層的 MLP 得到最後的分數 (式13)
* $f(s_i) = W_f \tanh (F_{sal}(s_i) W_F F_{red}(s_i))$
* $W_F$ output 的維度 = 5, 10, 20, 30
----

----
* 在訓練的時候,從 $\hat S^*$ 提取 1~l-1 句當上下文 (l是輸出包含的最大句子數)
* 接著模型學著找到顯著且新穎的下一句
* 訓練目的如同 SEQ,但 $o(s_i)$ (式6) 替換成 $f(s_i)$ (式13)
* SEQ 目標是得到一個有序的句子序列
* 而 CTX 永遠預測(給定無序上下文)最好的下一句
---
## Experimental Setup
----
### Datasets
#### CNN/DailyMail
* Hermann 等人的方法分資料集
* 287226/13368/11490筆
* 無匿名化
#### NewYork Times (NYT)
* Paulus 和 Durrett 等人的方法預處理
* 按時間分資料
* 133602/16700/16700筆
----
### Baselines
* BERTSUMEXT with/without trigram block
* LEAD3, Seq2Seq (2018), NN-SE (2016), SUMMARUNNER (2017), NEUSUM (2018), HIBERT (2019) 和 ORACLE
* NEUSUM 用序列生成模型在評分和選擇句子時減少冗餘
* SUMMARUNNER 在序列標記時減少冗餘
* 其他的不考慮冗餘
<!-- * 更多資料在附件B, C -->
---
## Results and Discussion
----
### Automatic Evaluation Results
* 根據 NEUSUM, BERTSUMEXT 都用3句摘要以示公平
* 用 ROUGE-F1 對整句做評估 ROUGE-1, 2, L
----
#### CNN/DailyMail

<!-- ----
* TriBlk 很有用 AREDSUM-SEQ 稍微比沒用的好一些
* AREDSUM-CTX 只用 salience ranker 跟 BERTSUMETX 差不多好
* AREDSUM-CTX 跟 BERTSUMETX 在測試集中有30.6%的輸出不同,顯示 CTX 可以在不同文檔中適應的平衡顯著與多樣性
* 不論 encoder 的結構(BERT還是其他神經網路),序列生成式輸出都不會比較好 -->
----
#### NYT50

<!-- ----
* TriBlk 反而讓 BERTSUMEXT 的性能下降
* 不僅如此 ORACLE 的降幅更大
* 表示 TriBlk 可能不適用所有資料集
* 且統一的冗餘消去規則可能使性能降低
* AREDSUM-SEQ 介於是否用 TriBlk 的 BERTSUMEXT
* AREDSUM-CTX 就因為明確表示冗餘且動態控制影響所以比較好
* 由於冗餘移除對 NYT50 只有小幅度的影響,AREDSUM-CTX 跟 BERTSUMETX 在測試集中只有10.1%的輸出不同,但還是比較好 -->
----
### Model Analysis
* AREDSUM-SEQ 的性能與 BERTSUMEXT 相近
* 因目標序列對順序敏感,而最終評估則不是
----
#### Precision at Each Step
* 由於 $\hat S^*$ 與 $S^*$ 略有不同,對前者精度高不一定對後者有更好的 ROUGE 分數
* 由於 BERTSUMEXT 和 AREDSUM 分別對 $\hat S^*$ 與 $S^*$ 進行優化,因此輸出與分數略有不同,為此分析了模型在第K步的選擇對分數的影響
----
* 在2個資料集都有類似的趨勢 (縱軸: precision)

<!-- ----
* 因為一開始都是用顯著性選擇句子,所以 P@1 都一樣(SEQ除外)
* BERTSUMEXT 都最好,因為針對 $\hat S^*$ 訓練
* 加了 TriBlk 後,精度降低了,但分數變高了
* 介在這之間的 AREDSUM-CTX 針對先前提取的句子,獲得最佳的分數且對精確的損害也比較小
* 表示更能平衡顯著與冗餘(??)
* 生成的句子序列覆蓋了多數的 $\hat S^*$ 但還是沒比較好(跟不對順序敏感的優化相比) -->
----
#### Position of Selected Sentences

<!-- ----
* 前5句比較常被選到
* AREDSUM-SEQ 更常選前3 (紅色)
* 有加 TriBlk 的更傾向選後面的句子 (綠色)
* AREDSUM-CTX 介在中間,跟先前提到的準度分布相似
* 試圖濾出顯著但冗餘的句子
* 這些句子通常在前面 -->
----
### Human Evaluation
* 選了最好的 baseline 跟模型,並隨機挑選 ROUGE2 差異超過0.05的20個摘要
* 根據 Zhou 等人的方法,要求志願者對模型依照 informativeness, redundancy 及 overall 評分
* 越低越好
* 在 NYT50 中 AREDSUM-CTX 的冗餘大幅減少
---
## Conclusions
* 以前的 redundancy-aware 方法使用序列生成模型在句子評分過程中與顯著性一起處理,或者在句子選擇的第二步中單獨處理,其中可以使用啟發式(heuristic) (如 BERTSUM) 或基於模型的方法。
* AREDSUM-CTX 比 AREDSUM-SEQ 跟其他人做的還要好
* 表示 redundancy-aware 真的很重要,而且要單獨建模
---
END
###### tags: `Paper`