BERT初の文章要約「BertSum」

Neil Wu
LSC PSD
Published in
5 min readNov 29, 2019

文章要約は自然言語処理(NLP)での一大テーマです。自然言語処理での文章要約とは機械を使った文章からの要約か、統計や数学モデルを使った文章からの要約です。自然言語での要約は出力形式から二種類に分けられます。「抽出型要約(Extractive Summarization)」「抽象型要約(Abstractive Summarization)」です。抽出型要約は文章内から最も文章の内容を代表できる語句を抽出して要約文にすることで、抽象型要約は文章の内容を十分理解してゼロから要約文を書き出す方法です。2018年以降、多くの自然言語タスクがBERTやGPT等で記録更新されましたが、文章要約はSeq2Seqで作られたPointer Networkがトップで、事前学習のモデルを使った解決法はありませんでした。

文章要約の分類(source)

他の自然言語タスクと比べると、文章要約は長文の意味を理解し しないと出来ない事なので、入力データの長さと長文の理解力が必須となるのが大きな壁です。「理解力」は単語が文章内で他の単語とどう関係し合うなので、 自然言語処理では難しい課題の上、長文が入力だと難度が更に高くなります。BERTはState-of-the-artの事前学習モデルで、長文の入力(入力サイズ512)が出来て、Self-Attention層で単語同士の関係を数値化する事も得意です。2019年9月発表した論文「 Fine-tune BERT for Extractive Summarization」内で提出した「BertSum」は初めてBERTを事前学習モデルとして使った抽出型文章要約のモデルです。

入出力

入力データ

BertSumとBERTの入力形式の違い

BertSumデータの入力形式は本来のBERTと比べて少し違いがあります。独立の語句をBERTに理解させる為、[CLS]トークンを文章前端ではなく、すべての語句前につけました。そうする事により[CLS]トークンは代表する語句の特徴を得られる事ができます。BERTのSegment Label入力(BERTの入力に関してここで説明してます)でも語句を分けて標記して語句独立性を強調しています。Segment Label入力二句目以後は、文章の奇数句と偶数句により違うラベルEA(奇数句)とEB(偶数句)で表示します。例えば、文章 [単語1(語句1), 単語2(語句1), 単語3(語句2), 単語4(語句2), 単語5(語句3)]に対して, Segment Labelは[EA, EA, EB, EB, EA]となります。これにより文章は階層的に学習ができ、浅めのTransformer層では前後の単語との関係性を理解をして、深めのTransformer層では複数単語の関係理解を深めています。

学習用の目標(ground truth)はどの語句が文章の代表性があるか0と1で事前ラベリングします。例えば文章[語句1, 語句2, 語句3, 語句4, 語句5]に対して、文句3が代表的だったら[0, 0, 1, 0, 0]をラベルとして入力しLoss計算をします。

出力データ

文句ごとに対して、文句が文章全体を代表できるかを一つ0から1のスコアにして出力します。例えば文章[語句1, 語句2, 語句3, 語句4, 語句5]に対して、出力スコアは[0.4, 0.2, 0.8, 0.1, 0.5](仮)とかになります。スコアが高ければ文章への代表性が高いです。

要約

BertSumの全体架構

BertSumはBERTからの出力したトークン別ステータスを要約層(Summarization Layer)に入れる事により文章の要約をしています。しかし残念ですが、要約層の機構に関して作者も特別な機構は提出していなかったです。作者は違う選択可能の深層学習機構(RNN based, Classifier based, Transformer based)で層を重ねて、最後に全結合層を繋げて出力を出しました。結論から言うとTransformerを重ねた要約層の要約効果が一番よかったです。BertSumのGithubはここです。

結論

BERTを使った要約モデルのBertSum、要約層の機構では一見普通でしたが、実際この論文の貢献は入力データの微調整にあると思います。私見ですが、BERTが発表して1年ほど経って要約モデルが初めて発表されたのは、BERTは入力形式が固定されていてモデルが入力を1文章として扱ってるからだと思います。それを賢くBERT学習時に使っていた[CLS]トークンで文句別理解をさせたのが大きな進歩だと思います。BertSum以降にもBERTというSoTAモデルを使った文章要約が出てくる事を心から期待しています。

if you like(this_article):
please(CLAPS)
follow(LSC_PSD)
# Thanks :)

--

--