FreeStyleWiki

テキスト要約の評価

[機械学習,文章要約]

テキスト要約の評価

  前提知識

N-gram
任意の文字列や文書を連続したn個の文字で分割するテキスト分割方法.特に,nが1の場合をユニグラム(uni-gram),2の場合をバイグラム(bi-gram),3の場合をトライグラム(tri-gram)と呼ぶ.
再現率(recall)
結果として出てくるべきもの(記事や文書)のうち、実際に出て来たものの割合。網羅性に関する指標。
適合率(precision)
システムが出した結果において、本当に正しかったものの割合。検索対象の文書群の中から、正しく検索された文書の割合を指す。正確性に関する指標。
F-尺度(F-measure)またはF値
適合率(precision)と再現率(recall)という、正確性と網羅性の総合的な評価の際に利用される尺度のこと。 Wikipedia - 検索性能の評価

  要約文書の評価方法

  • 上記のQiitaを参考にした、ROUGE-NはBLEUを参考にしたようだ

要約を評価する観点としては、通常の機械学習と同様適合率(Precision)と再現率(Recall)の観点があります。

https://qiita.com/icoxfog417/items/d06651db10e27220c819

ROUGEによる評価はRecall的

例えば,ROUGE-1は1gramでの一致,ROUGE-2では2gramでの一致をみます

https://qiita.com/amtsyh/items/a926b79b90dfabe895e9

ROUGE-N = "正解テキストに含まれるN-gramの数" / "正解テキストと生成テキストとの間で一致するN-gramの数"

評価指標 観点
BLEU 一致率の評価
ROUGE-N カバー率の評価。N-gram単位での一致を取る手法。
ROUGE-S/ROUGE-SU ROUGE-Nでできなかった、並んでいない単語のペア(文中の単語の純粋な組み合わせ)を考慮
ROUGE-L/ROUGE-W 生成した要約と人手で作成した要約とで「一致する最大のシーケンス」(longest common subsequence=LCS)を評価
ROUGE-BE 文法的な要素間の関係(係り受け)を考慮
METEOR 参照訳と出力のユニグラムの合致数をもとにした評価
  • どれを使うか

各ROUGEのスコアと、人が要約につけたスコアの相関を調べた結果があります。

ROUGE: A Package for Automatic Evaluation of Summaries

こちらを見ると、ROUGE-L/ROUGE-SU4がなかなかいい働きをするのではないかと思えます。

→ よって、言い換え表現の評価軸を持たせたい場合METEORを併用したほうがよい

  fast_abs_rlの要約評価を確かめてみる

  • fast_abs_rl は要約の答えが一応あるので、ROUGE-LとMETEORが試せるわけか
  • モデルはnewのほうだけ試すことにする

実行の準備

  • ROUGEはPerlのスクリプトが必要
    • ROUGE-1.5.5
    • これをDLしてプロジェクトのルートディレクトリに置く
  • 実行
$ DATA=/path/to/decompressed \
   ROUGE=/path/to/ROUGE-1.5.5  \
   python eval_full_model.py --rouge --decode_dir=<fast_abs_rl で作成した要約が格納されているディレクトリ>

結果の精査

  • 検証の対象
    • 論文発表時のパラメータ(acl)と論文発表後に改良されたパラメータ(new)が公開されている
    • また、要約作成時のパラメータ(bean_sizeは1か5から選べる)

→ 今回はnewでbeam_size=1で実施

  • beam_sizeの詳細
beam_size: number of hypothesis for (diverse) beam search. (use beam_size > 1 to enable reranking)
beam_size=1 to get greedy decoding results (rnn-ext + abs + RL)
beam_size=5 is used in the paper for the +rerank model (rnn-ext + abs + RL + rerank)
  • 論文のほうで公開されているROUGEの結果

For all the datasets, we evaluate standard ROUGE1, ROUGE-2, and ROUGE-L (Lin, 2004) on fulllength F1 (with stemming) following previous works

とあるように、結果はすべてF値で計算している

Validation set
  • 表は公式のGitHubで公開されている指標(new, beam_size=1のみ)
Models ROUGEs (R-1, R-2, R-L) METEOR
① rnn-ext + abs + RL (41.23, 18.45, 38.71) 21.14
  • 手元で実施して出力された指標(①と同じ)
    • ほぼGitHubで公開されている指標と一致した
  • ROUGEの指標が_R, _P, _Fと出力されるが、それぞれ
    • recall: 再現率
    • precision: 適合率
    • F-measure: F値
---------------------------------------------
1 ROUGE-1 Average_R: 0.48969 (95%-conf.int. 0.48743 - 0.49185)
1 ROUGE-1 Average_P: 0.37611 (95%-conf.int. 0.37395 - 0.37817)
1 ROUGE-1 Average_F: 0.41233 (95%-conf.int. 0.41050 - 0.41415)  <-- ここ
---------------------------------------------
1 ROUGE-2 Average_R: 0.22027 (95%-conf.int. 0.21802 - 0.22245)
1 ROUGE-2 Average_P: 0.16787 (95%-conf.int. 0.16605 - 0.16962)
1 ROUGE-2 Average_F: 0.18440 (95%-conf.int. 0.18260 - 0.18623)  <-- ここ
---------------------------------------------
1 ROUGE-L Average_R: 0.45969 (95%-conf.int. 0.45738 - 0.46191)
1 ROUGE-L Average_P: 0.35329 (95%-conf.int. 0.35121 - 0.35535)
1 ROUGE-L Average_F: 0.38719 (95%-conf.int. 0.38539 - 0.38898)  <-- ここ
Test set
  • 表は公式のGitHubで公開されている指標(new, beam_size=1のみ)
Models ROUGEs (R-1, R-2, R-L) METEOR
① rnn-ext + abs + RL (40.41, 17.92, 37.87) 21.13
  • 手元で実施して出力された指標(①と同じ)
    • ほぼGitHubで公開されている指標と一致した
---------------------------------------------
1 ROUGE-1 Average_R: 0.49097 (95%-conf.int. 0.48840 - 0.49353)
1 ROUGE-1 Average_P: 0.36062 (95%-conf.int. 0.35856 - 0.36280)
1 ROUGE-1 Average_F: 0.40390 (95%-conf.int. 0.40197 - 0.40579)
---------------------------------------------
1 ROUGE-2 Average_R: 0.21874 (95%-conf.int. 0.21628 - 0.22101)
1 ROUGE-2 Average_P: 0.15937 (95%-conf.int. 0.15760 - 0.16117)
1 ROUGE-2 Average_F: 0.17893 (95%-conf.int. 0.17700 - 0.18073)
---------------------------------------------
1 ROUGE-L Average_R: 0.46010 (95%-conf.int. 0.45764 - 0.46255)
1 ROUGE-L Average_P: 0.33808 (95%-conf.int. 0.33604 - 0.34021)
1 ROUGE-L Average_F: 0.37859 (95%-conf.int. 0.37670 - 0.38046)

  ROUGEの公開されている実装

  評価の方法について

  • ROUGE-NのF値を使う評価方法が一般的であるとわかった
  • 言い換え表現を評価する場合ROUGEは使えないので、別の方法を探す必要がある
    • それがMETEORになる