渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

NN研究における再現性にまつわるエトセトラ

先日、ふとしたきっかけでしましま先生*1がこちらの論文について触れられているのを見かけたのでした。

これは推薦システム分野におけるNN研究の再現性について検証した2019年の論文で、近年のトップ会議*2に採択されたNN手法18個に対して再現を試みたところ、「reasonableな」努力で再現できたのはわずかに7個に過ぎず、その中でも1個は論文中で主張されたベースラインを超えることは出来なかったと報告しています。


ただ、この報告はNN研究における再現性に関する議論のあくまでも一例であり、実際コロナ禍以前から「論文中ではSOTAを達成と書いているのに同じ実装をどう組んでもSOTAに達しない」みたいな業界噂話はそこかしこで耳にしたものでした。しかしながら、実際のソフトウェアやアプリケーションとしてそれらのNN手法が用いられて、尚且つその結果として何かしらの不具合でも起きない限りは、機械学習業界の外側*3に知られることがあまりなかったのも事実だと思われます。


昨今の空前のLLMブームでそこかしこにプロ驚き屋やプロ驚き界隈が跋扈するようになり、尚更ユーザー側ではこの辺の話題はすっかり忘れ去られた感がありますが、ChatGPTの登場でフィーバー状態だったLLM界隈が(例えば後続のローカライゼーションを重視した軽量LLMの登場するようになったことで)落ち着いてきたこともあり、改めてNN研究の再現性問題にスポットライトを当てても良いのかなと個人的に思ったのでした。ということで、個人的な備忘録も兼ねてざっくりまとめてみようと思います。

研究業界におけるNN研究の再現性問題の捉えられ方


意外とNN研究の再現性を懸念する声というのはかなり前から挙がっていて、それこそ冒頭に挙げた論文がコロナ禍前の2019年に出ていることを考えれば「今から4年も前には既に論文としてまとめられている」程度には業界内では広く知られる事態であったと言えるのではないでしょうか。また、機械学習分野のトップ国際会議であるNeurIPSも2019年大会の際に再現性問題に関する調査を行っており(上記リンク)、少なくとも研究者の間では課題意識が共有されていたように見えます。


ただし、実際に「NN研究に再現性の低いものが多い」という話題が公の場で盛んに言われるようになったのはやはりコロナ禍以降ぐらいという認識があり、例えばNatureがeditorialで指摘したのは2021年のことだったりします。このeditorialの中では割と広汎に渡って「何がNN研究の再現性を損なっているのか」が論じられており、例えば

  • データ収集プロセスの詳細(バイアスを避けるため)
  • データ前処理の詳細(cherry-pickingを避けるため)
  • Train / dev / testデータセットの選び方(同上)
  • Ablation study*4の実施結果(提案部分に実際に効果があったかどうかを示すため)
  • 学習にかかった時間
  • 学習時に使用した乱数シード
  • 学習だけでなくデータ収集・前処理まで含めた全体で使用したコード
  • 使用したソフトウェアライブラリ・ハードウェアのバージョンまで含めた情報

などなどを論文中で報告すべきである、と提唱しています。これは冗談でなく「NN研究において用いられる『全て』」を報告せよと言っているに等しく、研究する側からすれば大変な負荷になる話なのではないかと思われますが、一方で実際に例えば「使用したNNフレームワークのバージョンによって精度が変わる」という論文も出ているところを見ると説得力のある話だと思います。


この論文がそれで、TensorFlowとPyTorchのそれぞれで全く同じデータセットに対して全く同じNNを組んでパフォーマンスを比較したところ、バージョンが変わるとパフォーマンスも(場合によっては無視できないほど)変わるということを示しています。


あくまでも個人的な感想


僕はNNどころか機械学習分野全体で見てもアカデミックな研究者ではなく、あくまでもそれらの科学技術の「ユーザー」に過ぎませんので、実際にNN研究を行っている人たちの視点からどう見えているかについてはそれこそ業界内で飛び交う噂話や雑感の類を見ながら、推し量るしかない状況です。


それでも個人的な感想を書いてしまうと、結局のところNNに関してある程度汎用性の高い理論解析が進んでおらずその特性が理解しきれていないことから、恐らくNN(というかDeep Learning)研究初期の頃は「パフォーマンスに再現性がない気もするけど、まぁこんなものか」で流されていたものが、どんどんモデルとシステムアーキテクチャが巨大化してその再現性の低さが深刻な問題を引き起こすようになってからも、見なかったふりをされてきたということなのかなと感じています。


もっとも、理論的な側面からの対策が何も出ていないかというとそんなことはなくて、例えば推薦システム向けNN研究の再現性の低さを活性化関数(特にReLU)の性質に求めることで、これを改良することで再現性を担保しようという研究も出ていたりします。


しかし、実際にML研究界隈から聞こえてくるのはそんなにお行儀の良い話ばかりではなくて、酷いと「dev / testデータセットの設定のところでインチキをやっている」みたいな噂もあったり、はたまた「一番結果の良かった乱数シードの時の結果だけ報告していて他はお話にならない」みたいなことだったりもします。つまり、これは以前このブログでも皮肉ったような「俺様が考えた最強のネットワーク選手権」状態が未だに続いていて*5、しかもその構成要素がさらに多大になったことで「どこを弄った結果『最強』になったかが分からず、どこまで普遍性のある話なのかも分からない」ということになっているようにも見受けられます。


以前再現性問題の網羅的なレビューを書いた記事でも指摘したように、「『自分にとって都合の良い分析結果が欲しい』という人類普遍の欲求というか欲望こそが再現性問題の最大の要因」なんですよね。その「都合」が「SOTA達成」のような数値指標になっているからこそ、それをハックすることが目的になってしまっているということなのでしょう。僕の過去に放言した「闇七則」の中でも「数値指標は必ずハックされる」と嘯いたことがありますが*6、まさにそれを地で行く有様だと感じています。


それら自体はある意味「過去になかったものを見出すor過去の性能を超える」ことが至上命題の基礎研究の世界の宿命なので、本来なら一朝一夕には解決し難い難題であり、地道な啓発と現場での実戦で徐々に改善を図るべきことなのでしょう。しかし、今現在においてはNNベースのLLMがまさに破壊的イノベーションを引き起こしかけており、空前のLLMブームでそこかしこの企業・組織から次々と新しいLLMとそれを援用したプロダクトが作り出されては世に送り出されるという状況になっているわけです。そんなNNベースのLLMの中に、再現性の低いパフォーマンスしか出し得ないLLMが多数混じるような事態になれば、これほど面倒なこともないと思われます。


かつてはarXivに載った再現性の低いNN論文はただ読んで嘲っていれば良かったのが、NNそしてLLMが跋扈する現代においてはそんなことも言っていられなくなったわけで、いよいよ実務サイドでもNN研究の再現性問題には良く準備して対応するべき時期が来ているのかなと考えているところです。


余談


ちなみに、この記事を書こうと思ったきっかけはこちらのツイートを見かけたことでした。NNではない上に機械学習分野の話ですらなかったようですが、それでも「提案手法である以上は必ず既存手法を上回っていなければならない」というプレッシャーとバイアスから評価指標のハック(どころか見ようによっては改竄ないし捏造)に走ってしまうというのは、まさに宿痾だなと感じた次第です。