エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

ニューラル文章要約モデルの紹介

こんにちは!クリスマスに何をしようか悩んでいるエンジニアリンググループの 鹿山です。

この記事はエムスリーアドベントカレンダー1日目の記事となります。今後の記事もお楽しみに!

今回トップバッターとして、 最近のニューラル文章要約モデルについて、その概要と代表的な論文をご紹介させていただきます。

目次

系列変換 (Sequence to Sequence) モデル

まず、要約モデルの基礎となる系列変換モデルについて簡単に紹介させてください。 近年研究が盛んになっているニューラル翻訳モデル・要約モデルはほぼ、系列変換(Sequence-to-Sequence) モデルが元になっています。 このモデルは系列を入力として系列を出力する機構になっています。

f:id:kayamin:20181129223134p:plain
Sequence to Sequence モデル概要

Encoder と呼ばれる図左側の青い部分で入力を順番に受け、入力分の情報を詰め込んだベクトルを作成します。 作成されたベクトルは Decoder と呼ばれる図右側の緑色の部分へ入力され、順次出力が生成されます。 このように、系列を持つ入力から系列を生成するため、系列変換 (Sequence to Sequence) モデルと呼ばれます。

系列変換モデル学習させる入力・出力系列の組み合わせを変えることでモデルを翻訳モデルにも、要約モデルにもすることができます。

例えば下図のように英文から日本語の文章を生成するように学習させれば翻訳モデルとみなせ、多数の英文から内容をまとめた少数の英文を生成するように学習させれば要約モデルとみなすことができます。

f:id:kayamin:20181129182352p:plain
モデルと入出力の対応例

系列変換モデルを初めてお聞きした方は、まず下記スライドに目を通していただきザックリとした概要を理解してもらえればと思います。

文章要約モデル分類

文章要約モデルは、要約対象・要約方法の観点から大きく4つに分類することができます。

要約対象

  • 単一ドキュメント:一つのドキュメント内に記述されている内容を要約する
  • 複数ドキュメント:複数のドキュメントそれぞれに記述されている内容を要約する

要約方法

  • 抽出要約:ドキュメント内で、文章全体の内容を表しているセンテンスを抽出する
  • 抽象要約:ドキュメント内のセンテンスから、文章全体の内容を表すセンテンスを新たに作成する

今回は 単一ドキュメントからの 抽出・抽象要約についてその概要と代表的な論文についてご紹介させていただきます。 抽出・抽象要約の例を下図に示します。抽出要約の場合、ドキュメント内で重要なセンテンスを選び、それを要約とします。一方,抽象要約は新たにセンテンスを作成しなくてはならないので、抽出要約よりも難しいタスクになります。

f:id:kayamin:20181129183840p:plain
抽出(Extract)・抽象(Absract)要約の例

要約モデルの学習に用いるデータセット

要約モデルを作るには何はともあ、学習するデータセットが必要になります。要約モデルの研究でよく用いられているのが CNN Daily Mail Dataset (正式名称はDeepMind Q&A Dataset) です. CNNおよび DailyMail の記事と,その要点をまとめた幾つかのセンテンス(参照要約)がペアになっています。

  • ペア数 : 31万
  • 平均記事長:781語
  • 平均要約文数:3.75文

f:id:kayamin:20181129190631p:plain
CNN Daily Mail データセットの例

文章要約モデル

ようやく本記事の主題になります。

系列変換(Sequence-to-Sequence) モデルを要約学習データセットで学習させることで、要約モデルを得る事ができます。それでは順にみていきましょう。

単一ドキュメントからの抽出要約

抽出要約モデルは、記事の全センテンスが入力として与えられた時に、要約として用いるべきセンテンスを当てられるように学習します。

抽出要約でよく比較に用いられる代表的なモデルが SummaRuNNer です.

Ramesh Nallapati, Feifei Zhai, and Bowen Zhou. (AAAI 2017) SummaRuNNer: A recurrent neural network based sequence model for extractive summarization of documents.

f:id:kayamin:20181129193356p:plain
SummaRuNNer 概略図 : Ramesh Nallapati, Feifei Zhai, and Bowen Zhou. (AAAI 2017.) SummaRuNNer: A recurrent neural network based sequence model for extractive summarization of documents.

モデルの処理手順

1. 入力ドキュメントの各センテンスをそれぞれ 双方向LSTM でエンコード(Word Layer)
 - センテンスの意味を捉えたベクトルを作成
2. 全センテンス(Word Layer出力)を双方向LSTM でエンコード(Sentence Layer)
 - ドキュメント内での各センテンスの関係性を捉えたベクトルを作成
3. Sentence Layer 出力から各センテンス抽出する確率を出力(Classification Layer) 

CNN Daily Mail Dataset では人が作成した参照要約が与えられていますが、どのセンテンスを抜き出せば良いかは示されていません。そこで各参照要約と n-gram(連続する n 単語の並び) 一致率が最も高いセンテンスを,抽出するべきセンテンスとする正解ラベルを作成します。このデータセットを用いて、抽出するべきセンテンスに対しては 確率1を、それ以外には確率0を出力するようにモデルを学習させます。

公開されている CNN Daily Mail Dataset で学習済みのモデルでの抽出要約結果は下の様になります(学習には用いていないテスト用のデータに対する要約結果です)。参照要約の数と同じになる様に、推定された抽出確率上位3センテンスを抜き出しました。 人が作成した要約センテンスと見比べてみると、概ね記事の主張を捉えたセンテンスを抽出できている一方で、センテンスをそのまま抜き出してしまっているので、要約として読むには長くなっています。

f:id:kayamin:20181129203031p:plain
左:人が作成した要約センテンス , 右:モデルへ入力する記事本文

f:id:kayamin:20181129203039p:plain
学習済み SummaRuNNer 出力結果

単一ドキュメントからの抽象要約

抽出要約では記事中のセンテンスをそのまま用いるため、記事の内容を人のように"端的に"要約することができません。そこで研究されているのが抽出要約になります。抽出要約モデルでは、記事の全センテンスが入力として与えられた時に、その内容を要約したセンテンスを出力する様に学習します.

抽象要約でよく比較に用いられる代表的なモデルが Pointer-Generator Networks です。

Abigail See, Peter J. Liu, and Christopher D. Manning. (ACL 2017) Get to the point: Summarization with pointer-generator networks.

f:id:kayamin:20181129200207p:plain
Pointer-Generator Networks 概略図 : Abigail See, Peter J. Liu, and Christopher D. Manning. Get to the point: Summarization with pointer-generator networks.

モデルの処理手順

1. 入力ドキュメント全体を双方向LSTM でエンコード (図赤色箇所)
 - センテンスの意味を捉えたベクトルを作成
2. デコーダ LSTM でAttention メカニズムを用いて単語の生成確率分布を計算 (図青色、緑色箇所)
 - 以前Attention を当てた部分に対しては Attention を減衰  (Coverage Mechanism)
 - なるべく入力ドキュメント全体の情報を用いてセンテンスを生成する
3. 単語の生成確率分布に Attention を当てた部分の単語を用いる確率を加算 (Copy Mechanism) (図 Final Distribution)
 - モデルの出力語彙に含まれないような珍しい単語も生成する確率を計算できる
 - ※ ニューラルモデルでは出力確率分布の計算時間を抑えて学習を効率化するために、出現頻度が低い単語はそもそもモデルの出力語彙に含めないことが多い
4. Final Distribution から生成する単語を決定
5. 2 ~ 4 の手順を繰り返すことで、要約センテンスを作成。

CNN Daily Mail Dataset を用い、参照要約を全て繋げた文章を生成する確率が高くなる様にモデルを学習させます。

公開されている CNN Daily Mail Dataset で学習済みのモデルでの抽象要約結果は下の様になります。上記抽出要約に対して用いたものと同じ記事に対して要約文を1つ生成しました。 抽出要約に対してセンテンス長は短くなったものの、一から生成しているため元の記事の内容を正しく伝えられていません。また、英文としてもぎこちなくなってしまっています。

f:id:kayamin:20181129203035p:plain
学習済み Pointer-Generator Networks 出力結果

単一ドキュメントからの抽出 x 抽象要約

抽出要約では記事の内容を端的に表現できない一方で、抽象要約では正しく記事の内容を伝えることが難しい。そこで今年登場したのが、抽出要約と抽象要約を組み合わせた手法です。

(詳細については最下部参考に貼らせていただいたスライドをご参照下さい)

まず抽出要約モデルで記事の内容を表すセンテンスを抽出します。その後に抽象要約モデルを用いて、それらをより短いセンテンスに書き換えることで、人が作成するような端的かつ正しい要約を生成することを考えます。

抽出要約モデルでは抽出するべきセンテンスを当てられるように、抽象要約モデルでは抽出されたセンテンスから人が作成した参照要約センテンスを生成できるようにそれぞれ学習させます。

Yen-Chun Chen and Mohit Bansal. (ACL 2018). Fast abstractive summarization with reinforce-selected sentence rewriting.

f:id:kayamin:20181129205349p:plain
モデル概略図 (論文中の図を加工) : Yen-Chun Chen and Mohit Bansal. (ACL 2018). Fast abstractive summarization with reinforce-selected sentence rewriting.

モデルの処理手順

Extractor でのセンテンス抽出(図右上)
1. 入力ドキュメントの各センテンスを表現するベクトルを、センテンス内の単語ベクトルを畳み込んで作成 (図右上灰色)
2. 双方向LSTMで各センテンスごとに、ドキュメント内でのセンテンス同士の関係性を捉えたベクトルを作成 (図右上紫色)
3. LSTM + Attention を用いて抽出するべきセンテンスを決定 (図右上緑色)
 - LSTM の各ステップで Attention を計算し最も高い Attentionが計算されたセンテンスを抽出、次のLSTMへの入力とする
 ※ すでに抽出済みのセンテンスには Attention を計算しない

Abstractor でのセンテンス要約(図右下)
- 上で紹介した抽象要約モデルと同等なモデルで Extractor から出力される1センテンスを入力として、1センテンスを出力する
 ※ Coverage メカニズムは除く

CNN Daily Mail Dataset に対して、本モデルでは2段階の学習を行います。

モデルの学習手順

1. Extractor, Abstractor それぞれ個別での学習
 - Extractor : 参照要約センテンスと最も n-gram 一致度が高いセンテンスを抽出できるように学習
 - Abstractor : 最もn-gram 一致度が高い記事中のセンテンスから参照要約センテンスを生成できるように学習

2. Extractor, Abstractor を結合させた状態での Extractor 学習
 - Abstractor のモデルパラメータは固定した状態で、Abstractor がより良い要約センテンスを生成できるセンテンスを抽出できるようにExtractor を学習
 ※ 本手法の肝となる強化学習手法を適用する部分。 Advantage Actor-Critic (A2C) Reinforcement Learning Algorithm で学習を行う。
  - Extractor -> Abstractor とセンテンスを渡すときに、センテンスをサンプリングしてしまうので誤差逆伝播、微分によるパラメータ更新ができないため

公開されている CNN Daily Mail Dataset で学習済みのモデルでの要約結果は下の様になります。抽出・抽象要約に対して用いたものと同じ記事対して参照要約と同じ3つの要約文を生成しました。

1サンプルのみですが、参照要約と比べてみても遜色なく、記事の意味を的確に捉えており英文としても問題ない要約が生成できています。

f:id:kayamin:20181129213536p:plain
学習済み Fast Abstractive Summarizationモデル 出力結果

参考

  • 上記 抽出 x 抽象要約 手法の論文について外部勉強会で発表させていただいた時のスライドになります。

大自然言語時代のための、文章要約

  • 要約タスクについてより細かい詳細と、ニューラル文章要約モデル以外の要約モデルについてまとめて下さっています。

ROUGEを訪ねて三千里:より良い要約の評価を求めて

  • 今回ご紹介できなかった要約の評価指標について丁寧にまとめて下さっています

CS294 Deep Reinforcement Learning

  • 抽出 x 抽象要約 手法の論文で用いられている強化学習手法を含む、強化学習についての UC Berkley での講義資料・動画になります. 最初の1〜6まで見ていただければ、A2C の概要を掴めると思います。

まとめ

今回はニューラル文章要約モデルについてご紹介させていただきました。画像認識・翻訳等と並んで要約も日々研究が行われています。最近では CNN Daily Mail Dataset よりも大きく、多様性に富んだ News Room Summarization Dataset 等も公開されています。紹介させていただいた単一ドキュメントからの要約だけでなく複数ドキュメントからの要約、特定の情報抽出等 様々な魅力的な課題があり今後も要約関連の研究からは目が離せません。

We are hiring !

エムスリーでは医師の方々に日々のニュースから、学術論文の解説まで様々な情報をお届けしています。忙しい医師の方々の情報収集を、今回紹介させていただいた要約技術等を駆使して効率化することでより良い医療の実現の一助になれたら素敵だと思いませんか?

M3 Tech Blog を読まれて興味を持った方はぜひ下記リンクよりご応募ください!  また、Tech Talkの参加、登壇もお待ちしていますのでお気軽にご連絡ください!

jobs.m3.com