Help us understand the problem. What is going on with this article?

BERTで自動要約を行う論文「BERTSUM」を紹介する+α

こんにちは!Deep Learning論文紹介 Advent Calendar 2019の1日目の記事です。

早速宣伝ですが、まだ空きがありますので是非ご参加ください。論文概要だけさらっと紹介する程度でも全然OKですし、もちろん詳細に解説していただいても構いません。誰でも気軽に参加していただければ幸いです。

概要

本稿では現在の自然言語処理で最も有名といっても過言ではない「BERT」を自動要約に適応させた「BERTSUM」について紹介します。

また、自動要約全体に関する知識と資料をまとめることも目的しています。

自動要約とは

自動要約とは自然言語処理におけるタスクの1つで、テキストの自動要約を指すことが多いです(以下、文章要約)。文章要約は抽出型と生成型(抽象型)に分かれますが、現在は生成型(と抽出型を組み合わせたもの)が主流となっています。

  • 抽出型:元の文章から重要文を抜き出して要約文を作成する手法
  • 生成型:文の表現を抽象化して1から要約文を作成する手法

抽出型で有名なのはTextRankです。これはGoogleの検索に使用されていたPageRankを文章要約に応用させた手法です。SummaRuNNerも有名な抽出型手法です。生成型で有名なのはPointer-Generator Networksです。

こういった話題をもっと詳しく知りたい方は次の資料がおすすめです。

BERTSUM概略

事前学習モデルBERTを拡張し、ドキュメントレベルのEncoderを備えた自動要約のためのBertSumというモデルの提案をする論文です。CNN / Daily MailデータセットでSOTAを実現しています:State-of-the-art table for Extractive Document Summarization on CNN / Daily Mail

これまでの文章要約ではseq2seqベースのモデルが主流でした。そんな中、BERT等の事前学習言語モデルが登場し、多くの自然言語処理タスクが塗り替えられましたが、文章要約タスクへ応用させる研究はありませんでした。

提案手法

image057.jpg
論文中より引用

BERTSUMではBERTと入力データが少し異なります。BERT(左)ではトークンの先頭にのみ[CLS]トークンを付与していますが、BERTSUM(右)では複数の[CLS]トークンを挿入することにより複数の文を区別しています。それがSegment Embeddingsの色分けで示されており、奇数偶数で文が区別されます。

その他、Token Embeddingsは各トークンの意味を、Position Embeddingsは文章内の各トークンの位置を示しています。

これによって階層的に重要度を計算します。このモデルをBERTSUMと呼んでいます。

image065.jpg
論文中より引用。full paperとの多少の差異に注意。

BERTSUMが出力したセンテンスベクトル $T$ はPosEmbで変換し、最終的にシグモイド分類器で出力した$\hat{y}$(このモデルをBERTSUMEXTと呼ぶ)とgoled label $y$ のbinary classification entropyで損失を計算します。

ここまでで抽出型の文章要約モデルが出来ました。full paperではさらに生成型モデルに拡張しています。

生成要約モデルはEnoder-Decoderをベースに、Encoderには上記の事前学習させたBERTSUMを使用し、Decoderにはランダムに初期化された6層のTransfomerを使用します。

ただしEncoderは事前学習され、Decoderはゼロから訓練させる必要があるため、問題が発生する恐れがあります。そこでoptimizerを別々に調整する方法を取っています。この2段階で微調整するモデルをBERTSUMEXTABSと呼びます。

使用するデータセット

  • CNN/DailyMail news
  • New York Times Annotated Corpus(NYT)
  • XSum

実装

実装にはPyTorch, OpenNMT, bert-base-uncased等が使用されています。有難いことにnlpyang/BertSum: Code for paper Fine-tune BERT for Extractive Summarizationから試すこともできます。ちなみに学習は抽出型でGTX1080 Ti 3枚、生成型で4枚使用したそうです。

結果

CNN/DailyMailでの結果のみ掲示します。その他のデータセットや細かいパラメータについては論文をご参照ください。

image059.jpg
論文中より引用

また、自動評価に加えて人手での評価も行っています。:Discourse Constraints for Document Compression - ACL Anthology

所感

BERTSUMに繋げるDecoder部分は多層のTransformerで、独自の機構を使用しているわけではありません。そのため注目すべき本論文の凄さは

  • 入力形式の変更
  • Encoder-Decoderのoptimizerを2段階で調整させた

あたりなのでしょう。とはいえ入力形式は[CLS]を各文に付与したのみですので、一見とても単純な変化に見えます。しかしそれでSOTAモデルになったというのは面白いですし、今後もBERTをベースとしたモデルが続々と出るのだろうと楽しみにしています。

次回予告:アドベントカレンダー2日目は?

なんとあの@yoyoyo_さんです。

等を惜しげもなくアップされている非常に凄いお方です。明日も是非、よろしくお願いします。

ヘルプ

ここまで、文章要約とは何かということ以外、例えばBERT等については既知であるという前提で進めてきました。しかし、もっとBERTやTransformerといった中身の本質的な話題に興味がある人も多いでしょう。

そこで本稿の残りは、これらをより理解するための知識と、参考資料についてまとめることにします。

BERT

BERTとは…という説明は今更不要でしょうか。BERTは2018年10月に発表された自然言語処理の事前学習モデルです。最近ではその後BERTをベースとしたモデルが僕などでは追えないくらい登場し、発展し続けています。

そんな事前学習言語モデルの動向をまとめられている神スライドがあるので、興味のある方はこちらを読んでみることをおすすめします。

これはxpaperchallengeで発表されたスライドですね。話は逸れますが同じく自然言語処理に関する資料はACL網羅的サーベイ報告会 - 資料一覧 - connpassにまとまっています。どれも非常に参考になるものばかりですので、難解ですが一読をおすすめします。

BERTの実装を出来るだけ簡単に理解するためには、やはり体系的に学べるものが良いですよね。書籍「つくりながら学ぶ! PyTorchによる発展ディープラーニング」は何とBERTを含めた近年のモデルを詳細に取り扱っている神本です。ディープラーニング?何それという方は別の入門書を先に読むことをおすすめしますが、おそらくここまで読んでいる方でそれはないでしょうから、読んでいなければ是非。

BERTはその他にもググれば役立ちそうな資料が散見されますので、色々調べてみると良いかもしれません。

Transformer

実はBERTの大部分はTransformerといっても過言ではありません。なのでTransformerを知らない方はこちらから学んだ方がスムーズに理解ができるはずです。論文:Attention Is All You Need

Transfomerの神記事を紹介します。

その他、自動要約に関する資料

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away