Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2019: We need to talk about standard splits #241

Open
jojonki opened this issue May 25, 2019 · 7 comments
Open

2019: We need to talk about standard splits #241

jojonki opened this issue May 25, 2019 · 7 comments

Comments

@jojonki
Copy link
Owner

jojonki commented May 25, 2019

Kyle Gorman, Steven Bedrick. ACL 2019.

Tweet: https://twitter.com/wellformedness/status/1130129820124368896
PDF: https://www.aclweb.org/anthology/P19-1267/

Podcastでも解説しました.
https://anchor.fm/lnlp-ninja/episodes/ep32-We-need-to-talk-about-standard-splits-e457nd

概要

システム性能のランキングを行うために,一般的にはテストセットに対する評価結果が採用されている.しかしその結果が偶然によるものなのか,複数のtrain/testセットで結果は安定しているのか,これらに対する研究はほとんどない.我々は2000-2018における9つのPOSタガーを複製,追試を行った.そしてランダムにスプリットしたtrain/testセットを使って,ランキングの結果を再現することに失敗した.我々は,システム比較には複数のランダムにスプリットされたtrain/testセットを使うことを提案したい.一般的に使われるstandard splitに対する疑問を呈する.

イントロ

広く使われているstandard splitでなく,random splitsを提案する.
standard splitは,train/dev/testに分かれたデータセットを用いて,trainをシステムの学習に,devをハイパパラメタなどの調整に,testをシステム評価に対して利用する.同じ条件下であれば,このtestに対する評価結果が良い方がシステムが優れているとされる.

システム比較のための仮説検定

まずシステムS1とS2を比較することを考える.このときtestの正解率の差異は,δhat =M(Gtest; S1) - M(Gtest; S2)として表す.そしてδを真のシステムパフォーマンスの差異を表す潜在変数として考えることができる.差異がない(δ=0)は,McNemarの検定を利用して間接的に計算できる.n_{1>2}ををS1は正しかったが,S2が誤ったtestの数,n_{2>1}はその逆とする.δ=0とは,大雑把に不一致の半分がS1が正解で,もう半分がS2が正解,ということになる.
つまり帰無仮説は,n_1>2 ~ Bin(n, 0.5)となる(n回試行で半分がn_1>2となる二項分布(n),n=n1>2+n2>1).

統計的にシステム比較を行った最近の研究はあまりない.Dror (2018)は,ACL 2017のロングペーパーを分析し,それらの研究の大部分はシステム比較のための適切な統計検定を行っていないと指摘した.
我々はシステム比較のための仮説検定の不足は,Type I error(真の帰無仮説を棄却してしまう,False Positive)に陥ると仮説する.そのためそのリスクの評価のための,実験環境を作った

standard v.s. random splits

standard splitはシステム評価に対して不十分な方法であると考える.それは研究者はtrain/testの変動に対して,無意識にoverfitさせてしまうかもしれない.この傾向は,publication biasとしてScargle (2000)によって強調されている.
現在のリサーチフィールドでは,State of the Artパフォーマンスとは,standard splitにおける最高性能として定義されており,公開されているstandard splitにおいて改善を報告しない研究はほとんどない.このような傾向は特にサチっているようなタスクで言われており,帰無仮説の事前確率(差がない)を高める可能性がある.我々はこのリスクを評価しようと思う.

replication and reproduction

追試はNLPにおいては本来は難しくないはずだが,下記のような理由で問題が発生している.利用可能データ,ソフトウェア,ランダムシード,隠れた実装詳細.これらの危険を避けることはできないので,我々は英語のPOS taggingタスクを選んだ.POSタギングはデータもソフトも充実している.またPOSタギングは様々なNLPタスクにおいても非常に重要な処理である.エラーは後段タスクにも影響するしね.

実験環境

コーパスは,英語POSタギングで広く使われているPenn Treebank-3のWall St. Journal部分.実験1では更にOntoNotes 5という部分も使った.

手法は,様々な時期のSOTAのPOSタガーを9つ選んだが,内6つの手法を実装できた(他3つはエラーで諦めたっぽい).3.1参照.2000〜2018の期間における様々なタガーが入っている(SVMやBiLSTMなど).

メトリクスは,トークン正解率を採用し,システム比較にはMcNemar検定を採用.またOOV正解率,文レベル正解率も採用

実験

実験1:Replication

standard splitを使って報告されている結果と一致しているか調べた結果をTable 2に.6つのタガーの内,2つは完全一致,4つは報告の値とかなり近いものに.Penn Treebankの場合,トークン正解率のMcNemar検定はすべてのペアワイズ比較において有意( α=0.05)).OntoNotesの場合,LAPOS vs Stanfordを除いて(p=0.1366)すべて有意だった.
Screen Shot 2019-05-26 at 12 33 21 PM

実験2:Reproduction 5/27更新

20個のrandom splitsを作る.familywise error rateをコントロールするため,Bonferroni法を採用する(複数回繰り返されることで,真の帰無仮説がたまたま棄却される可能性はあがるので,検定回数(20)で有意水準を割り算して調整する方法, 最下部参照).

Table 3にはMcNemar検定が20回の内,2つ目のシステムが1回目のシステムよりToken Accが高かったのが,何回有意だったかを表している.// 2つずつ比較している.実験1で性能が低い順の手法をペアワイズにして比較している.
LAPOS vs Stanfordでは,実験1の結果と異なり,StanfordがLAPOSよりも性能が低くなっている(20回中,1回しか勝ててない).他の項目に関しては実験1と同様のランクが強調されて出ている
// Podcastでは逆に説明していました.すみません.
Screen Shot 2019-05-26 at 12 33 34 PM

Fig 1に実験1,2のトークン正解率を示す.oracle ensembleは,6タガーのうち1つでも正解を出したものを正解としたもの.|○|は実験1,影部分は実験2の正解率を表す.
Screen Shot 2019-05-26 at 2 21 59 PM

エラー分析

実験1から,過去20年間でトークンエラーは1.28%しか変わっていないことが分かる.そして現在最良のタガーはoracle ensembleから1.16%ビハインドしている.そこで我々はタガー間の不一致率に興味を持った.そこで各6つのタガーをアノテーターのように扱うコラボレーションアノテーションタスクとして取り扱い,クリッペンドルフのα係数(最下部参照)で不一致率を見てみた.

もっとも不一致率が高かった事例は,"Foreign Bonds (外国債)"のような大文字つながりの文だった(Table 4にも).このようなエラーは大文字化によって引き起こされてそうだ.多くのタガーは大文字を固有名詞の方向へ持っていくので,このようなエラーが起きやすい.
Screen Shot 2019-05-26 at 2 01 05 PM

ディスカッション

replicationとreproduction実験における2つのポイントについて話す.
1つ目,standard splitではパフォーマンスは他のものよりも良いと有意だったシステムが,再アノテーションデータあるいはrandom splitsではそうではなかったこと,つまりstandard splitにoverfitしてしまったと言えそう.2つ目,Fig 1から分かるように,全体的なパフォーマンスはstandard splitよりもrandom splitsの方が僅かに高かった.たとえば"アスベスト"という単語はstandard trainでは15回登場したが,standard testでは1回しか登場していない.このような差異がrandom splitsでは起きにくくなる.

結論

我々は標準的に使われているstandard splitが避けられるType I errorにつながることをデモした.我々は新システムのSOTAをアピールしたい場合には,Bonferroni法を利用して,random splitsによる仮説検定を提案したい

コメント

  • かなりサチったタスクに限定して評価しているので,他のより人気のタスクSQuADとかベンチマークセットGLUEとか使うとどうなんだろうか.ぶっちゃけ今回ほど分かりやすい結果は出なそうである.
  • random splitsが性能が良かったこと,これを使ったほうが良いことに対する理論的アプローチがもう少し欲しい
  • ディスカッションとエラー分析がメインの道筋から少し逸れている気がする

用語

  • Type I error (第一種過誤)
    帰無仮説が正しい場合に,帰無仮説を棄却してしまう(False Positive).
    今回は,多くの研究がシステム比較の際に,帰無仮説をシステムの評価結果には差がない,と設定し,これを棄却して,有意と判断すること,が問題であるとしている.(実際は帰無仮説は正しい(差がない)場合が多いんじゃないのと言っている)

  • Type II error (第二種過誤)
    帰無仮説が正しくない場合に,帰無仮説を棄却できないこと(False Negative)

  • publication bias
    研究結果の内容や統計検定の結果によって,publishをするかどうかの判断につながることに起因するバイアス.有意差のある情報だけpublishされるため偏った情報である可能性がある.
    https://en.wikipedia.org/wiki/Publication_bias
    http://jspt.japanpt.or.jp/ebpt_glossary/publicationbias.html

  • McNemar検定
    対応のある2組の標本の比率の差を検定する.t検定と似ているが,2つの処理の結果の差があるかどうかを検定する.
    https://oku.edu.mie-u.ac.jp/~okumura/stat/mcnemar.html

  • Bonferroni(ボンフェローニ)とfamilywise error rate
    複数回の検定をする場合,帰無仮説がたまたま棄却されてしまうことがある.複数回繰り返された検定全体において帰無仮説が棄却される可能性を,familywise error rateと呼ぶ.そこでBonferroni法ではN回の検定を行う場合,有意水準をNで割ってあげる.(有意水準が0.05でN=20であれば,0.05/20とする)
    http://www.med.osaka-u.ac.jp/pub/kid/clinicaljournalclub1.html
    https://oku.edu.mie-u.ac.jp/~okumura/stat/multiplecomparisons.html

  • Krippendroff's α(クリッペンドルフ)
    Cohenのκ係数は2名の評価者という限定があるが,3名以上に対応している
    http://ides.hatenablog.com/entry/20170414/1492153176

@jojonki
Copy link
Owner Author

jojonki commented May 26, 2019

@akkikiki
Copy link

はじめまして。面白い論文を紹介して頂きありがとうございます。
僕の理解が正しいかも含めて質問したいのですが、実験2:Reproductionで書かれている(例えばTnTとCollinsでは実験1のstandard splitではCollinsの方が性能が有意に良かったが,実験2のrandom splitsではCollinsは全敗していることが分かる)は論文にかかれていることと反対のことではないでしょうか?

Table 3のcaptionの説明として"[...]for which the second system has significantly higher token accuracy than the first one."とあるので、例えばsecond systemであるCollinsとfirst systemであるTnTを比較した際、McNemar検定で20回の内20回CollinsがTnTに有意にhigherであるので、CollinsはTnTに対してrandom splitsにおいても20回中20回全勝している、と報告しているのではないでしょうか。

@jojonki
Copy link
Owner Author

jojonki commented May 27, 2019

@akkikiki さん
コメントありがとうございます!すみません,今読み返したところ確かにそうですね...

Podcast中では,「random splits ではstandard splitと比べて順位が多くのペアで逆転」,と言っていますが,逆転しているのはLAPOS vs Stanfordだけっぽいですね.

となると,下記が言いたいんですかね.

  • 実験1と実験2で順位が入れ替わったものがある(1ペア,Table 3)
  • random splitsの方が性能がよく出る傾向がある(Fig 1)

Table 3に関しては,1ペア除いて実験1とシステムランクは変わらないので,ちょっと主張が弱くなるような

@akkikiki
Copy link

最初の解釈からだと主張は弱く感じると思いますが、LAPOS vs. StanfordはPenn Treebank上ではMcNemar検定でstandard splitでは有意差がでているのに対して、random splitやOntoNotesだと有意差がなくなる、っていう結果だけでも主張(i.e., statistically significance hackingはtrain/dev/test splitを変える、もしくはデータを変えるだけで可能な場合がある)がサポートされているので面白い、というのが個人的な感想です。
繰り返しになりますが、面白い論文をシェアして頂きありがとうございます。

@jojonki
Copy link
Owner Author

jojonki commented May 28, 2019

@akkikiki ご確認ありがとうございます!安心しました.
ちょっと前までは交差検証がメインのようなイメージがありますが,DNNになってから学習に時間がかかるため簡略化されたstandard splitが流行っているんですかね.検定についてはACL2017でもかなり多くの人が使い方間違っている,という報告がこの論文でも紹介されていましたが,とてもこのあたりの研究気になります.
引き続きご支援のほど,宜しくお願い致します!

@yahshibu
Copy link

yahshibu commented May 28, 2019

単なる感想なのですが、私もこの論文読みましたが、

"アスベスト"という単語はstandard trainでは15回登場したが,standard testでは1回しか登場していない.このような差異がrandom splitsでは起きにくくなる.

この出現する単語の偏りって悪いことなんですかね?
むしろ、未知語を捌けるかとかの汎化性能ってのも重要だと思うんですけどね。

実験2って sentence レベルでランダムシャッフルしていると書いてあったと思いますが、むしろそれも何の考えもなしに行っていいの?って思いました。

1ヶ月前くらいに、ある時系列データ解析に関する論文のデータの扱いで data leakage を起こしていて実験結果の妥当性を問題視されていました(参考)が、sentence レベルのシャッフルってそれに近いことが起こっている気がするんですよね。

つまり、PTB の standard split って section ごとに split していて、番号の小さいものを training に、大きいものを test に使っていますが、これって実使用場面に近くて、難し目のセッティングになっていると思います。
sentence レベルのシャッフルはそれよりは簡単になるはずで、案の定 Fig.1 もそういう結果になっています。

ちなみに、sentence レベルのシャッフル自体が悪いと言っているわけではなくて、主張したいことによると思うのですが。

@jojonki
Copy link
Owner Author

jojonki commented May 29, 2019

@yahshibu
偏りの部分は確かに今回のrandom splitsの主張とズレている感じは受けますね。

PTBの設定に関しては私も認知してませんでした。そうするとFig 1の結果も納得です。この論文の試み自体は面白いかなと思うのですが、やり方と分析にちょっと疑問が残る感じになりましたね。

@jojonki jojonki added the Podcast label Jun 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants