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


一、介紹

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

本文的貢獻主要有三點:

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

  • 我們展示了在抽取和抽象的設置下有效利用預訓練模型進行摘要的方法;我們希望在模型與訓練中的任何改進都能更好地進行摘要的特征抽取。

  • 提出的模型可以做提高摘要新能的基石,也可以作為測試新方案的baseline

二、背景

1、抽取摘要

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

2、抽象摘要

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

3、模型結構

如下圖所示,左圖為原始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]

三、微調bert

1、提取式摘要

令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})

2、抽象式摘要

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

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

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

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

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

四、實驗細節

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

2、提取式摘要:

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

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

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

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

  • 當進行預測時,我們使用這個模型獲取每個句子的得分,並從高到低排序,然后選取最頂層的3個句子作為摘要。

  • 在句子選擇的過程中,我們使用三元組塊來減少冗余。在給出摘要S和候選句子c的情況下,如果c和S之間存在三元組重疊,則跳過c。這一直覺性的選擇類似於MMR(Maximal Marginal Relevance),我們希望能夠最小化候選的句子和已經選擇作為摘要的句子之間的相似性。

3、抽象式摘要:

  • 在所有的抽象的模型中,我們在所有的線性層前應用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都被處理然后重復三元組被組成塊。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM