[NLP&論文]Text Summarization with Pretrained Encoders論文翻譯

1、介紹算法

本文主要提供了一個基於bert的篇章級編碼器,可以編碼一篇文章並獲取每一句話的表徵。爲了提取句子,咱們的提取模型是創建在編碼器的頂層,經過疊加一些句間Transformer層來獲取篇章級特徵。而抽象模型提出了一個編碼器-解碼器結構,結合相同的預訓練bert編碼器(使用隨機初始化的Transformer解碼器)。論文設計了一個新的訓練流程,可以分開編碼器和解碼器的優化步驟來適應編碼器和解碼器,由於前者是預訓練的,然後者必須從頭訓練。框架

本文的貢獻主要有三點:函數

  • 證實了篇章級編碼對於摘要任務的重要性。目前有各類各樣的技術用來加強摘要性能,包括複製機制(copying mechanisms)、加強學習、多交互編碼器(multiple communicating encoders)。咱們使用最小需求的模型、沒有使用任何其餘的機制就獲取了更好地結果。性能

  • 咱們展現了在抽取和抽象的設置下有效利用預訓練模型進行摘要的方法;咱們但願在模型與訓練中的任何改進都能更好地進行摘要的特徵抽取。學習

  • 提出的模型能夠作提升摘要新能的基石,也能夠做爲測試新方案的baseline測試

2、背景優化

一、抽取摘要編碼

抽取摘要系統經過識別(和子鏈接)一篇文章中最重要的句子進行摘要。神經模型將提取摘要視做句子分類問題:一個神經編碼器建立了一個句子表徵,一個分類器預測這個句子是否應該被選作摘要。spa

二、抽象摘要設計

抽象式摘要的神經方法將這個任務概念化爲seq2seq問題,seq2seq將編碼器將一篇文章中的一個句子映射爲一系列tokens,如在原始文章中x=[x1,...,xn],轉變爲一個句子的連續表徵z=[z1,...,zn],而解碼器會token-by-token的生成目標摘要y=[y1,...,ym],使用自迴歸(auto-regressive)方法,所以模型化條件機率:p(y1,...,ym|x1,...,xn)

三、模型結構

以下圖所示,左圖爲原始bert圖,右側爲應用於摘要的bert結構圖,命名爲bertSum,能夠看出,右圖主要有兩個變化:

①每一句話都使用[CLS]開頭,以[SEP]結尾,而原始bert只在最開始的時候有一個[CLS],而且用[SEP]來分割句子。

②是segment embedding,原始bert由於有NSP訓練過程所以使用E_A,E_B表示兩句話,而bertSum因爲輸入的是篇章,所以使用E_A,E_B,E_A,E_B,...等來表徵不一樣語句,如輸入是x=[x1,x2,x3,x4,x5,x6],則seg_emb=[A,B,A,B,A,B]

3、微調bert

一、提取式摘要

令d表示一篇文章,d=[sent1,sent2,...,sent_m],其中sent_i表示文章d中的第i句話。向量t_i,是頂層中第i個[CLS]標誌的用於表徵第i句話sent_i的向量。

爲了提取摘要,在bert的輸出上疊加一些句間Transformer層來獲取篇章級特徵。

最終的輸出層是一個sigmoid分類器。

咱們經過最頂層(第L層)的Transformer來獲取sent_i的向量,實驗時,咱們經過設置L=1,2,3層Transformer來進行測試,發現當L=2時,即有2層Transformer時性能最好,最終命名該模型爲BERTSUMEXT。

模型的損失函數是預測值y_i和標籤y_i的二分類熵值。句間Transformer層會聯合微調BertSum。

咱們使用adam優化器(beta1=0.9,beta2=0.999)。

學習率按照warming-up安排(warmup=10000).

lr = 2e^{−3} · min (step^{−0.5}, step · warmup^{−1.5})

二、抽象式摘要

使用標準的編碼器-解碼器框架來進行抽象式摘要。編碼器是與訓練的BERTSUM,而解碼器是一個6層的隨機初始化的Transformer層。能夠想象的在編碼器和解碼器之間會有一個不匹配現象,由於編碼器是預訓練的而解碼器必須從頭訓練。這會致使微調不穩定,好比說編碼器是過擬合而解碼器是欠擬合的,反之亦然。

本文提出了一個新的微調手段,是將編碼器和解碼器的優化器分開設計。

咱們使用兩個adam優化器,其中編碼器的優化器使用參數以下:beta1=0.9,beta2=0.999,而解碼器的則不一樣,使用不一樣的warmup-steps和學習率以下:

這樣作的依據是:假設與訓練的編碼器應該使用更小的學習率和更平滑的decay進行微調(以便於編碼器可使用更精確地梯度進行訓練而解碼器能夠變得穩定)。該模型命名爲BERTSUMABS.

另外,咱們提出了一個兩階段微調方法,第一階段是在提取式摘要任務上微調編碼器,而後在抽象式摘要任務上進行微調。該模型命名爲BERTSUMEXTABS.

4、實驗細節

一、數據:CNN/DailyMail,NYT,XSum

二、提取式摘要:

  • 在3 GPUs(GTX 1080 Ti)上訓練50000步,每兩步進行一次梯度累積。

  • 保存和評估模型的checkpoints,是在驗證集上每1000步進行一次。

  • 使用驗證集上的評估損失,咱們選取損失最低的3個checkpoints,而後報告測試集上的平均結果。

  • 咱們使用貪心算法來獲取每篇文章的最佳的摘要來訓練提取模型。這個算法生成一個最佳的包含多個句子的摘要,相對於標籤的摘要來講它能獲取最高的rouge-2分數。

  • 當進行預測時,咱們使用這個模型獲取每一個句子的得分,並從高到低排序,而後選取最頂層的3個句子做爲摘要。

  • 在句子選擇的過程當中,咱們使用三元組塊來減小冗餘。在給出摘要S和候選句子c的狀況下,若是c和S之間存在三元組重疊,則跳過c。這一直覺性的選擇相似於MMR(Maximal Marginal Relevance),咱們但願可以最小化候選的句子和已經選擇做爲摘要的句子之間的類似性。

三、抽象式摘要:

  • 在全部的抽象的模型中,咱們在全部的線性層前應用dropout(probability=0.1),標籤滑動且滑動因子=0.1。

  • Transformer的解碼器有768個隱藏神經元,全部前饋層的隱藏size=2048.

  • 全部的模型訓練200000步,在4塊GPU上(GTX 1080 Ti),每5步進行一次梯度累積。

  • 每2500步進行一次模型保存和評估(在驗證集上)

  • 選擇驗證集上評估損失最低的3個模型參數應用在測試集上並報告其平均結果。

  • 在解碼階段咱們使用beam search(size=5),而後爲了進行長度懲罰,在驗證集上解碼時從0.6到1之間調整alpha

  • 咱們解碼直到最後一個句子token都被處理而後重複三元組被組成塊。 

相關文章
相關標籤/搜索