yoheikikuta / paper-reading

Notes about papers I read (in Japanese)
156 stars 4 forks source link

[2019] On Extractive and Abstractive Neural Document Summarization with Transformer Language Models #34

Open yoheikikuta opened 4 years ago

yoheikikuta commented 4 years ago

論文リンク

https://arxiv.org/abs/1909.03186

公開日(yyyy/mm/dd)

2019/09/07

概要

文章要約タスクにおいて、重要な文を抽出するステップとそれを基に抽象的な文章を生成するステップに別れた複合的な手法を用いた。 この複合的な手法自体が全く新しいというものではないが、前者のステップに二つの Bi-directional LSTM、後者のステップに Transformer を採用してより質が良くて抽象的な要約が可能になったことを示した。データの作り方がやや特徴的で、arXiv ならば intro と body から抽出した重要な文を入力にして abstract を出力にするような形になっている。 従来手法では source の文章の単語をそのままコピーする割合が多かったが、提案モデルでは n-gram overlap が少ないのでより抽象的な要約が可能になったと主張。

ちなみにこの論文の abstract 自体が提案モデルで出力されたものであり、なかなか洒落た演出である。

We present a method to produce abstractive summaries of long documents 
that exceed several thousand words via neural abstractive summarization. 
We perform a simple extractive step before generating a summary, 
which is then used to condition the transformer language model 
on relevant information before being tasked with generating a summary. 
We show that this extractive step significantly improves summarization results. 
We also show that this approach produces more abstractive summaries 
compared to prior work that employs a copy mechanism 
while still achieving higher rouge scores. 
Note: The abstract above was not written by the authors, it was generated by one of the models presented in this paper.
yoheikikuta commented 4 years ago

NLP のモデルが色々なタスクを高い性能で解けるようになってきて、個人的に興味を持っていた文章要約タスクが結構解けるようになってきたのかなとぼんやり考えていた。 Transformer は有力だけど入力トークン数に限りがあるし、長い入力は良い感じに間引く必要があるよなぁと思っていたけどまさにそういうことをやっていそうだったので読んでみることにした。

yoheikikuta commented 4 years ago

イントロは、言語モデルの発展の話と要約タスクの特徴とそれをどうやって解決しようかという話。

seq2seq や attention の登場は言語モデルを発展させたが、長距離依存性を捉えるには困難がある(time step を一つずつ進んでいくので linear でしか捉えられない)。さらに並列化が難しいというのも嬉しくないポイントになる。 そこで conv2seq や transformer が登場し、異なる time step の path length として log だったり constant だったりという改善(さらに並列化が容易)がなされた。

また、GPT-like architecture のような unconditional な言語モデルは学習データから implicit に要約や機械翻訳などができるようになるということが知られている。 ここは最初ちょっと何言ってるか分からなかったが、例えば intro -> body -> tl;dr のような並びの学習データで言語モデルを学習すれば、inference 時に intro -> body を与えれば tl;dr に相当する文を出力することができる、という話だろう。これは特に transformer 的なモデルに限らない話だとは思うが、ともかく要約タスクをこのように解くことができると期待される。

一方で要約タスクは何百語とか何千語とかを入力にするものである。 そのためモデルのこの依存性の改善は喜ばしいことであるが、これらのモデルは入力トークン長が制限されるので、全部のトークンを入力にすることができないという問題がある。 なので transformer を使いたいと思っても、限られた入力トークン長にできるだけ要約に必要な情報だけを詰め込むというステップが必要になる。

この論文では全体の情報を使うため、要約を二段階に分けて、文章全体から重要な文を抽出するというステップと、それらを基に要約文を生成するというステップで提案手法を構成している。

yoheikikuta commented 4 years ago

その様子を図示したものが以下。 arXiv の場合、LSTM で重要文を抽出して、intro -> extracted sentences -> abstract という順に並べて学習して、inference 時には intro と extracted sentences を入力にして abstract を出力するというものになっている。

結果として、

というものになった。 前者は ROUGE metric で、後者は入力文章をコピーしているだけの部分が少ないという観点で、評価する。

yoheikikuta commented 4 years ago

本題に入る前に ROUGE metric に関して理解をしておく。 めちゃくちゃ乱暴に言えば、precision based な BLEU metric があるがそれの recall based 版、みたいな感じである。原論文はこちら

まず BLEU を思い出しておく。原論文はこちら。 論文では一般的な形で書かれているが、よく使われるベースラインの計算は以下の通り。

ROUGE metric にはいくつかのパターンがあるが、まずは ROUGE-N の場合。 n-gram の match count recall を計算するのみ(BLEU では 1~4 gram の結果を相乗平均していたが、ここでは単一の n-gram だけで計算)である。 match count をする場合には評価の妥当性を高めるために reference は同じような意味になる複数の文章を準備するが、結果はその中で最も数値が良くなる一つを採用する(まあこれは当然だろう)。

次に ROUGE-L の場合。 これは n-gram の代わりに Longest Common Sequence (LCS) を使うというものになっている。 最も重要になる部分がバッチリ合ってるものであれば高く評価するということなのだと思うが、これはほとんど match しているのに途中の単語が一つ微妙に違うだけで低く評価されたりしてしまうので難しい感じがする。実際に、人間の判断と照らし合わせると(ROUGE-1,2,3 と比べると)相関が無いことが報告されているとのこと。

ほかにもいくつかあるが、この論文を読む上では出てこないので割愛。

yoheikikuta commented 4 years ago

モデルの設計。

重要文抽出のモデルは以下のようになっているが、結構複雑である。

これは pointer network なくても sentence level model での binary classification のみでも重要文は抽出できるのでは?という気がしたが、それは単独の文章の embedding だけ見て決めるので、そうではなくて pointer network でちゃんと文脈を考慮しつつ選び出すのが良いということなのだろう。 これらの学習は ground truth データとして summary の文章があれば実現できる。

一旦モデルが学習できれば、要約対象となる全入力を入れて重要な分だけが抜き出されることになるので、それを次の transformer に渡すという形になる。

transformer のモデルは、冒頭にも紹介したように、intro -> extracted sentences -> summary -> rest の順に並び替えたデータを作り、 intro と extracted sentences を入力とした時に summary が出力されるような生成モデルとして学習していく。 学習データの summary の後ろには intro 以降の残りの文章を入れて domain language model として学習するように促す、ということらしいがここはよく分からん。まあ確かに少しは寄与しそうな気もするがそんなにハッキリ言えるものでもない気がするが。

とにかくこれでモデルの全体像を把握した。 要約を生成する transformer の部分に特に難しいところはないが、その前段として重要文を抽出するのは結構複雑なモデルになっていることが分かる。

yoheikikuta commented 4 years ago

あとは実験。 データは arXiv, PubMed, Newsroom, BigPatent のものを使っているということだが、arXiv のものだけ詳しく書いておく。

まず要約の結果は以下。 TLM が提案手法で、TLM-I は intro だけから要約を作る場合で TLM-I+E はそれに extracted sentence も加えるもの。括弧の中身は train, test それぞれで Ground truth の extracted sentence か Model の extracted sentence を使うかの違い。学習時には使える情報を全て使い、予測時にはモデルの出力のみを用いるとして TLM-I+E (G,M) が現実的に可能でかつ最も良いと期待されるモデルだろう。 それ以外の our models は transformer による生成を使わずに抽出した重要文のみで要約を作った結果。

結果としては、ROUGE-1,2,3 では従来手法より良いが、ROUGE-L はそうでもない。 これは、一致部分を長く続けさせるには元の文章をガッとコピーする方が有利になりがち、と言っている。これは make sense だと思うし、この辺は要約をこういう指標で測るのは結構厳しいということなんだろう。

他のデータセットでも同じような傾向で、特に ROUGE-1,2 のような小さい n-gram において良い結果を示している。

yoheikikuta commented 4 years ago

具体的な出力を見てみる。 確かに pointer network で重要文を抽出したあとの結果の方が要約としてはうまくまとまっているようには見える。ただし scientific paper のように技術的な肝がある文章に対してその部分が表現できていないと全体としての質は高くないように感じる(ここでは画像のラベルだけで object detection を学習するという点は明言されてない)。この手の内容は match count based の metric では評価できないし、人手で評価するにしても専門性が必要なので難しさはあるよな。どっかの conference で研究者にまとめてガッと評価したりすれば面白そうだけど。

yoheikikuta commented 4 years ago

出力結果の抽象性に関して。

前提の問題意識としては、要約は結局元の文章からコピーしている部分が多いという話がある。 copy mechanism (要約をするときに元の文章から持ってくるか general な vocab embedding から持ってくるかを決めるもので、全てを生成するのではなくコピーした方が良い場合と判断する場合はコピーする) によって大部分をコピーするようになってしまうことがある。 それが必ずしも悪いというわけではないが、元の文章に含まれない単語を使って抽象的な要約をしたいということを考えればあまり良い方向ではない。

この論文では copy mechanism を使わずにモデルを構築したので、実際に元の文章をコピーしている部分が少ないのかは検証したいポイントになる。 ということで n-gram の overlap を調べたのが次の結果。青が従来手法で斜線が提案手法。intro のみを使った場合はコピーしている量が ground truth と同等程度で、extracted sentence を使うとコピー部分が多いが従来手法よりは少ないという結果になっている。

提案手法が一程度の成功をしているけれどもやはり性能を高めつつ抽象度を高めることはまだまだ道半ば、という印象を受ける。 いまは arXiv を対象にしているので intro だけでも結構必要な情報が揃っているので extracted sentence を使わなくてもまあまあ上手くいっているということもあるだろうし、まだまだ改善の余地が多そうだ。

yoheikikuta commented 4 years ago

ちょっと本題からずれるが word embedding の結果もある。 これは学習した embedding が domain でうまく分かれているということで、まあなるほどという感じ。大した結果でもないのだが出てくる単語が懐かしいので思わず載せてしまった。

yoheikikuta commented 4 years ago

ということで文章要約に transfomer を使うという内容だった。 ポイントになってるのは transfomer の入力には元の文章の重要なものだけを抽出して使うことになっていて、その抽出には pointer network を使っているという点だった。

着実に性能は上がっているという主張で確かにそうだとも思うけど、ROUGE metric のような評価指標の難しさも相まって、まだまだ改善の余地がありそうなトピックであると思う。