【ACL2019論文解讀】Self-Supervised Learning for Contextualized Extractive Summarization

論文:https://arxiv.org/pdf/1906.04466.pdf

源碼:https://github.com/hongwang600/Summarization

摘要:

現存摘要抽取模型大都用交叉熵損失(刻畫兩個概率分佈的距離)從零訓起,難以捕獲文檔級別的全局上下文特徵。本文引入三個預訓練任務,用自監督(self-supervised)方法捕獲文檔全局特徵。使用CNN/DailyMail數據集證明預訓練的模型即使接上簡單模塊也比以前SOTA表現好。

1.Introduction

抽最重要的句子,得對文檔有全局觀(如主題和文章結構),但之前end-to-end模型的都沒有明確的文檔級別編碼,指望着模型自己學出來,他認爲不大可能,畢竟從頭開始訓練。近幾年也是僅限於詞編碼和句編碼,於是提出了一種新的預訓練方法,這種方法使用自監督(self-supervised)對文檔編碼。

自監督(2007-2015)目的是學習原始數據的內在結構。其使用結構化的原始數據構造訓練信號來訓練模型。文章本來就是精心佈局謀篇的結構化數據,所以自監督能派上用場。

本文提出了Mask、Replace、Switch三個需要學習文檔級別結構和上下文的自監督任務,然後把預訓練得到的模型遷移到摘要任務。Mask任務隨機mask一些句子,然後從候選句子集中預測被mask的句子。Replace任務隨機從其他文檔裏替換過幾個句子來,然後預測某句是否被替換了。Switch任務用同一文檔的句子進行交換,然後預測某句是否被交換過。下圖是Mask任務的一個例子。

 從CNN/DM數據集實驗後發現這三個預訓練任務都很好,其中一個超過了sota模型NeuSum(ACL2018)。本文貢獻有三:

一是,首次用全局文檔信息進行非人工標註式自監督句子表徵。

二是,提出是三個方法,其中一個超過了sota。

三是,使用預訓練的模型,收斂快,效率高。

2. Model and Pre-training Methods

2.1 Basic Model

模型如上,分爲“句子編碼器模塊”和“文檔自注意力模塊”。句子encoder是雙向LSTM。Xi是詞向量,Si是普通句向量,Di是考慮文檔信息的句向量,最後通過一個線性層預測是否選爲摘要。

 2.2 自監督的預訓練模型(三個方法)

Mask 

和預測被mask的詞類似,首先以的概率mask一些句子,放入候選集合中。模型對每個被mask的位置i,從候選集合裏挑正確句子。本文把mask的句子用<UNK>代替,並計算其文檔級別上下文的句向量。用同樣的句子encoder獲取候選集合中句子的embedding是候選句子 j ,用cos給句子 j 打分。

訓練時,使用ranking loss(排序誤差)做爲損失函數最大化標準句其他句之間的差異。i是第i個位置,j是黃金句,k是其他候選句。γ是超參數。

Replace 

首先以概率隨機替換掉一些句子(來源爲其他文檔),然後預測這句是不是被替換了。具體來說,本文從1萬篇隨機選取的文檔裏抽句子形成候選集表示被替換的句子們的位置集合。本文使用一個線性層來根據文檔編碼D來預測句子是否被替換,最小化MSE損失函數。

其中, ,被替換的話y是1,否則y是0。

Switch

和Replace任務類似,但不是從其他文檔選句子,而是內部交換。表示被交換的句子們的位置集合。本文使用一個線性層來根據文檔編碼D來預測句子是否被交換,最小化MSE損失函數。

 其中,

3.Experiment 

本文和兩個baseline對比,一個是著名的Lead3(選前3句),一個是sota模型NeuSum(指針網絡)。

3.1 CNN/DM數據集

 模型和訓練細節

本文使用是摘要標1,不是標2的方法標註。根據rouge代碼和論文,本文評測了Rouge-1,Rouge-2,Rouge-L。本文使用100維的Glove初始化詞向量權重。LSTM用作句子encoder,隱藏層size爲200。文檔編碼模塊使用了5層4頭的Transformer encoder。最後是個線性分類層。

訓練分兩個階段。首先,用無標籤的原始數據預訓練(三種方法);然後,用有標籤的數據對摘要任務進行fine-tune。預訓練階段學習率爲0.0001,fine-tune階段學習率爲0.00001。收斂或epoch達到上限30時訓練停止。mask、replace、switch了1/4的句子。

結果

switch方法超過了sota的NeuSum。收斂速度方面,Mask、Replace、Switch分別用了21,24,17個epoch,並且在fine-tune階段分別在第18,13,9個epoch到達最佳效果。而basic model訓了24個epoch才達到最佳狀態。

3.2 消融分析

關於模型結構

僅用句子encoder,而文檔編碼模塊隨機初始化,結果如上表最下面SentEnc。對於Switch,取0.25時效果最好。只使用句子encoder對模型也有幫助,說明了預訓練的模型也能學習句子表示。

關於超參數

實驗了Switch了百分之多少的句子,發現對模型影響不是很大,在0.15到0.25時最佳。

4.Conclusion

本文提出了三個自監督任務讓模型學習文檔級別的上下文信息,並應用於摘要抽取任務。其中Switch的預訓練方法訓出來的模型超過了sota。文檔級別的編碼有助於摘要任務,此外超參數對結果影響不是很大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章