[論文速速讀]PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization

Posted by John on 2020-06-24
Words 2.1k and Reading Time 8 Minutes
Viewed Times

〖想觀看更多中文論文導讀,至[論文速速讀]系列文章介紹可以看到目前已發布的所有文章!〗

paper: https://arxiv.org/pdf/1912.08777.pdf

Google ICML 2020的paper,一打開發現有54頁…哎呀我的媽

好險後面都是附錄,實際上只有8頁而已。

Abstract

 Recent work pre-training Transformers with self-supervised objectives on large text corpora has shown great success when fine-tuned on downstream NLP tasks including text summarization. However, pre-training objectives tailored for abstractive text summarization have not been explored. Furthermore there is a lack of systematic evaluation across diverse domains.

基於transformers的self-supervised模型(bert以及相關變形)已經橫掃一遍了NLP的應用,透過bert的pretrained model來fine tune後續的task已經被證實可以達到很好的結果,包含文本摘要。不過在抽象式文本摘要(abstractive text summarization)的部分還做得不夠好。所以這篇就是提出一個NLP的pre-trained model來做這件事。

抽象式文本摘要是啥,跟一般文本摘要又差在哪裡? 可以看下面Introduction一開始的介紹。

Introduction

Text summarization aims at generating accurate and concise summaries from input document(s). In contrast to extractive summarization which merely copies informative fragments from the input, abstractive summarization may generate novel words. A good abstractive summary covers principal information in the input and is linguistically fluent.

文本摘要有兩種類型:

  • extraction-based summarization: 僅從文章中擷取重要的詞來組成摘要
  • abstractive summarization: 產生的摘要可能包含文章沒出現過的詞,這種方法產生的摘要往往更加流暢以及能夠表達得更加清晰

重點來了:

We find ument and generating these gap-sentences from the rest of the document works well as a pre-training objective for downstream summarization tasks. In particular, choosing putatively important sentences outperforms lead or randomly selected ones. We hypothesize this objective is suitable for abstractive summarization as it closely resembles the downstream task, encouraging whole-document understanding and summary-like generation. We call this self-supervised objective Gap Sentences Generation (GSG).

他們發現,透過遮住部分的句子來進行pre-training,這樣的方式有助於文本摘要的task

  • 也就是說,mask幾個句子,然後goal是要還原這些句子,透過這種方式來pre-train。
  • 並且如果遮住的句子是重要的效果會更好。
    • 哪些句子是重要的呢? paper中提到他們是透過importance來選

好結束,本篇論文就讀到這裡,大家再會。

…開個玩笑,不過重點就真的是這裡,概念懂了就通了,我們再透過google ai blog的一張gif來搭配理解:

遮住部分句子,然後透過transformer還原那些句子(注意並不是還原整句input)。

題外話,這種self-supervised(自監督學習)的方法優勢在於,不需要人工標註label(因為label就來自你的dataset,你只要想辦法去前處理他),所以你可以產生跟dataset一樣多的資料來train你的model,而這也是其他supervised方法的缺點。

他們假設會比較好是因為這樣的pre-training很接近他們的downstream task(也就是抽象文章摘要)想要做的事情。

他們稱這種方法為Gap Sentences Generation (GSG),然後透過這個pre-trained方法產生的抽象文版摘要seq2seq模型稱之天馬,PEGASUS(Pre-training with Extracted Gap-sentences for Abstractive SUmmarization Sequence-to-sequence models)

…好,上面那張是亂入的,看不懂不要理我沒關係。

不過只細看全名的話會發現根本不是每個word的第一個字,很棒,延續了芝麻街時代之後,NLP取名字的傳統xD

Pre-training Objectives

Gap Sentences Generation (GSG)

這邊在講如何找出之後要mask的gap sentence。

首先,對於大量的文本dataset我們並不具有文本摘要的ground truth,按照這篇的想法我們可以用gap sentence來替代摘要當作ground truth,但要如何找到適合的gap sentence呢?

他們做了三種不同的方法:

  1. Random: 隨機選m句子
  2. Lead: 開頭的前m個句子
  3. Principal: 透過importance來找出前m個重要的句子,透過算ROUGE1-F1來實現,細節可以去看paper。
    • 在Principal的方法上總共有4種不同的策略,分別是Ind-Orig, Ind-Uniq, Seq-Orig, Seq-Uniq,細節請參閱paper

之後把gap sentence都用[MASK1]替換掉來做pre-training

Masked Language Model (MLM)

MLM透過隨機mask句子的token來學習token的上下文關係。這邊的用法跟Bert差不多,然後他們也附了一張圖幫助讀者瞭解如果要同時用GSG跟MLM的架構長怎樣。

不過他們也說,在後面的實驗發像MLM的mask效果其實並不好(下方實驗有提到),所以最終的模型版本$PEGASUS_{LARGE}$其實沒有採用MLM

Pre-training Corpus

使用兩個dataset來做pre-training

  • C4
  • HugeNews

Downstream Tasks/Datasets

接下來在12個dataset上實驗,細節去看paper啦!

Experiments

要繼續加速了喔,請繫好安全帶…

We refer to $PEGASUS_{BASE}$ without pre-training as $Transformer_{BASE}$

首先他們採用了一個簡單的$PEGASUS_{BASE}$模型,然後來進行不同的實驗驗證不同策略下的好壞,最後再用最好的策略來進行$PEGASUS_{LARGE}$的建模。

Ablations on $PEGASUS_{BASE}$

在兩個dataset上pre-trained後,在4個downstream dataset上進行實驗的結果,發現HugeNews的pre-train在一些新聞相關的downstream dataset效果比較好,反之則是C4的效果較好

  • 所以他們建議downstream task的類型是啥,pre-trained就最好用相同類型的dataset

EFFECT OF PRE-TRAINING OBJECTIVES

GSG

選擇了30%的句子來做GSG,然後用了六種GSG策略來做實驗(Random, Lead, Ind-Orig, Ind-Uniq, Seq-Orig, Seq-Uniq),發現Ind-Orig的效果最好。

並且他們也觀察到了Lead在新聞的數據集上其實表現得不錯,不過在非新聞的數據集就差的很多,這可能是由於在新聞數據集上的lead bias現象導致的(lead bias in news datasets (See et al., 2017; Zhong et al., 2019))。

總之,最後在$PEGASUS_{LARGE}$中採用了Ind-Orig的GSG策略。

接下來他們看說在不同GSR(Gap Sentences Ratio)下效果如何,GSR過低會使得訓練沒有效率,GSR過高則會喪失過多的上下文資訊。最後$PEGASUS_{LARGE}$模型中採用了30%的GSR。

MLM

一樣可以從上面(a)圖中來觀察,他們發現使用MLM在早期的step可以加速收斂,但在後期卻限制了收斂的效果。所以他們在$PEGASUS_{LARGE}$中決定不採用MLM。

EFFECT OF VOCABULARY

比較不同tokenization和size的方法差異,最後採用Unigram 96k。

Larger Model Results

這邊就是講說$PEGASUS_{LARGE}$的detail

Zero and Low-Resource Summarization

這裡在測試說當有label的資料很少的時候,PEGASUS的表現如何。他們發現,大約在1000個example來pre-trained時就能夠比使用$Transformer_{BASE}$,在full supervised datasets但沒有pre-trained的方法還好。

Qualitative Observations and Human Evaluation

這個部分是在測試,在不同dataset上用PEGASUS和人類產生的摘要,給其他人去判斷的話是否能夠分得出來(圖靈測試?)。

然後其實效果跟人類產生的摘要還不差呢! 棒棒哒~

A Test of Comprehension: Counting Ships

這裡的內容是出自於google ai blog的(PEGASUS: A State-of-the-Art Model for Abstractive Text Summarization),透過一篇船的文章來舉例,他們發現:

  1. 儘管文章內沒提到船的數量,但在文章內出現兩艘船、三艘船、四艘船的時候,模型仍然可以正確的摘要出船的數量(太神奇了傑克!)
  2. 但是在這方面(邏輯推理)的能力還有待加強,比方說在文章出現了六艘船時,文章摘要出來卻出現了七艘。

細節內容可以從blog去看~

總結

其實做了很多實驗,但方法不難理解,下面簡短的講一下我認為的重點:

  • google認為現階段的transformer-based(Ex: bert)的模型在訓練pre-trained上都是訓練一個通用的pre-trained model,但是針對downstream task去客製化預訓練的方式能夠有更好的結果。
  • 這篇的PEGASUS就是抽象文章摘要的一個客製化預訓練模型。
  • 而預訓練的方法是屬於self-supervisied的一種,所以不用人工去產生大量的label,讚讚。
  • 在少量的pre-trained下也可以達到不錯的效果。

References


>