Fine-tune BERT for Extractive Summarization: BERT和文字摘要

語言: CN / TW / HK

個人公眾號:阿黎投喂舍

Fine-tune BERT for Extractive Summarization: BERT和文字摘要

論文連結:https://arxiv.org/pdf/1903.10318v2.pdf

原始碼:https://github.com/nlpyang/BertSum

BERT論文系列導讀

What does BERT learn: 探究BERT為什麼這麼強

TinyBert:超細節應用模型蒸餾,有關蒸餾的疑問看他就夠了

量化技術及Albert動態量化

DistillBert: Bert太貴?我便宜又好用

[論文分享] | RoBERTa:喂XLNet在嗎,出來捱打了

XLNet論文導讀-超越Bert的後浪

導讀

文字摘要主要分為抽取式文字摘要和生成式文字摘要,抽取式文字摘要因為發展的時間比較長,因此在工業界應用的範圍比較廣。比較常用的抽取式文字摘要的演算法就是Textrank,但是呢,本文要介紹一篇和BERT相關的抽取式摘要的模型。當然作為對比,本文也介紹了另一篇文章,結合了Textrank和BERT的模型,希望對大家有所啟發。

Bert With Summarization

首先介紹一下模型的結構,原始的BERT的輸出是針對Token而不是句子的,而且原始BERT的輸入只有兩個句子,並不適合文字摘要。

因此首先作者對BERT的結構做了一些更改,讓他變得更適合文字摘要這個任務,作者的更改可以在下圖體現到:

  1. 作者使用[CLS]和[SEP]區分每一個句子,在原始的BERT中[CLS]表示一整個句子或者句子對的內容,在這裡作者修改了模型結構,使用[CLS]來區分每一個句子
  2. 作者對每一個句子增加了segment embedding,segment embedding由句子的奇偶順序決定,例如對於句子[sen1, sen2, sen3, sen4, sen5]他們的segment embedding就是[EA, EB, EA, EB, EA]。

Summarization layer

得到了句子的向量之後,接下來要做的工作就是判斷這句話是否要組成文字的摘要。這就是一個二分類的工作了,作者嘗試了三種summarization layer,分別是

  1. 傳統的全連線層

  2. Inter-sentence Transformer

    結構如下圖所示,初始位置的句子向量為position embedding,之後每一個位置的輸入都是由上一個位置的輸入經過多頭Attention層,layer norm和全連線層之後的輸出結果。最後的輸出依然是一個二分類。

  1. RNN層

    這裡是在BERT之後接了LSTM層,LSTM是非常適合NLP任務的一種結構,當然最後輸出也是一個二分類的結果。

實驗結果

作者在CNN Daily和NYT兩個公開資料集上進行了實驗,實驗效果如下圖所示,其中

  • Lead是抽取文字的前三句話作為摘要
  • REFRESH是優化了ROUGE矩陣的抽取式文字摘要系統
  • NEUSUM是抽取式文字摘要的state-of-art的效果
  • PGN是Pointer Generator,生成式文字摘要
  • DCA是當前生成式文字摘要的state-of-art的效果

結論:抽取式文字摘要的效果優於生成式(甚至PGN的效果不如規則?)這一點我保持懷疑。BERT+Transformer的效果超過了目前抽取式模型的SOTA效果。

缺點:

  1. RNN是一層的和多層Transformer對比不太合理
  2. 實驗結果顯示生成式模型的效果還差於規則的結果,這點保持懷疑
  3. 沒有解釋對於過長的文字的是怎麼處理的

推薦資料

這裡給大家推薦另一篇論文——Sentence Centrality Revisited for Unsupervised Summarization。本文結合了Bert和Textrank演算法,使用微調Bert作為Sentence encoder,來計算文字之間的相似度。最後的效果也是超過了SOAT的效果。

  • 論文連結:https://arxiv.org/pdf/1906.03508.pdf
  • 原始碼:https://github.com/mswellhao/PacSum

下面是提問和思考環節

  1. 兩篇文章對BERT的使用有什麼區別
  2. PACSUM對BERT做了怎麼樣的微調