アイソモカ

知の遊牧民の開発記録

論文50本読む!じゆうちょう Advent Calendar 2021

じゆうちょう Advent Calendar 2021 - Adventarのための投稿です。「2021年にやってみた新しいこと」というお題で、研究を始めるときにやった「論文50本読む!」を紹介します。

背景

4月から情報科学博士課程の学生(D1)になりました。自然言語処理が専門です。とはいえ一応R&Dエンジニアとして働いてもいるので、右往左往しながら気づいたらもう12月という感じです。

物理の修士課程の学生だった頃(6年ほど前)、ほとんど論文を読んだことがなく(注意欠如な学生と放任的な指導教官の組み合わせ…)、「論文ってどうやって探したらいいの?」「何ができたら読んだことになる?」と、論文の読みかたがわからないまま修了してしまいました。 新しく研究を始めるとき(あるいはこれまでと違う分野に挑戦するとき)、「どうやって研究を始めたらいいの?」「何が『研究のネタ』になるの?」と、よく分からないんですよね。 そんなときにボッスに 50本読め! と言われ、模索しながら編み出したタスクが良かったのでシェアします。

この記事では本タスクを説明し、私が気をつけたことを紹介します。このタスクをやってみるメリットは以下です。

  • 分野のこれまでの流れと雰囲気、すごい研究のすごさがなんとなく分かる
  • 論文を読む苦手意識が軽減され、拾い読みができるようになる
  • その後の研究を進める足がかりになる

50本読め!の概要

このタスクは、2週間で論文を50本をざっと読むというものです。目的は、それぞれの論文で解こうとしている問題を知ることです。

目的の設定

「何が『研究のネタ』になるのか?」が知りたかったので、それぞれの論文で解こうとしている問題を知ることを目的にしました。他の目的でもいけるのではないでしょうか。(e.g. 「原子核のベータ崩壊を調べると、何がわかるの?」「Social Computing でジェンダーに関する研究は、どんなのがあるんだろう?」「文章要約で、現在最強の手法は何?どうすごいの?」)

アウトプット

  • メモ(ノート)
    • 著者・雑誌/会議名・発表年、タイトル、URL、解こうとしている問題、使っている手法、使っているデータセット(この辺りは、分野により必要な情報が違いますね…)、後述するクラスタラベル
    • Excel に表を作って書いた(文献管理ツールはまだ使ったことなので、便利なのがあったら教えてください)
  • スライド(パワポ)6ページ程度
    • 50本を6個ぐらいのクラスタに分け、1本につき [著者・雑誌/会議名・発表年] タイトル、1行程度の概要を書く
    • 研究室で報告する用
    • e.g. [Piijey, はてな, 2021] 論文50本読む!じゆうちょう Advent Calendar 2021:初めての分野の論文を50本読んでリストを作るタスクを紹介している
  • 利用可能なリソースのリスト
    • e.g. 機械学習の公開データセット、コーパス、学習済みモデルなど
    • 作成手法(自動or手動)や、サイズ、パラメータ数が比較できて、URLからすぐにたどりつけるようにする
    • 自分で持っておく用

50本読め!の手法

最初に言っておきますが(最初?)、全文は読みません。そんなに速く読めないので。「全部読んで完全に理解する」はやりません。(週刊少年ジャンプばりに論文を読む某先輩に、読みかたを聞いてみたいな〜)

探しかた

その分野のすごい研究が載っている雑誌や、トップカンファレンスを先輩に聞きます。物理なら Physical Review、自然言語処理なら ACL, EMNLP でしょうか。雑誌や国際会議のサイトで、自分の興味あるキーワードを使って検索します。迷ったら、新しいものにしましょう。 これを読むぞと決めたら、著者・雑誌/会議名・発表年、タイトル、URLをメモします。pdfを保存するかどうかは、どっちでもいいと思う。URLがあったらアクセスできるし。

論文を読んでみて「こういうの興味あるんだよな〜」「このタスク面白い」「このやりかた、いいな」と思ったら、似た論文を探します。 その論文に出てきたキーワードで検索するか、論文の先行研究を述べている部分に載っているもの、今読んでいる論文を引用している論文(Google Scholar で論文名を入力して検索し、「引用元」をクリック)なを探すなど。 特に「自分の興味に合致しているがちょっと古い💦」という場合は、「引用元」で新しい論文を探すのがおすすめです。

Google Scholar の「引用元」

読みかた(読むというより情報抽出する)

論文の中から、解こうとしている問題、使っている手法、使っているデータセットを探し出し、メモを埋めていきます。私は最初、解こうとしている問題を探すのが難しかったかな、大きなゴール(夢とか)と小さいゴール(具体的に実際にやったこと)が書いてあったりするので、まぎらわしかったです。 DeepLとかを使ってもいいですが、専門用語が正しく訳せないことがあるので、適切な和訳が分からないときは英語のままメモっておいたほうがいいかも。

最初は知りたいことを探すのに時間がかかると思いますが、何度も繰り返していくうちにだんだん慣れてきて(パターンが掴めてきて)少しずつ速くなってくると思います。

メモを埋めて、「ふーん」と思ったら、その論文を読むのは終わりにします。「探しかた」のところに戻って、次に読むやつを探します。

「あれ?この問題設定、前に読んだアレに似てるな?」と思ったら、1〜数単語でその問題をメモの「クラスタラベル」に書いておきます。というのを繰り返し、適宜修正し、50本を6個ぐらいのクラスタに分けます。 最初はあまり悩まず、20本目ぐらいから考えていくといいかも。 このクラスタリングは、自分が設定した目的に合わせるのがいいと思います。(なので、今「問題」って書いたけど、手法を調べることを目的にするなら手法でクラスタリングする)

「こういうの興味あるんだよな〜」と思ったら、論文の先行研究を述べている部分を見てみましょう。関連研究を探すためでもあるし、これまでの研究の流れやトレンドを教えてくれるのがいいです。

研究室で論文紹介の担当になったり、授業のレポートで論文のまとめを提出する必要があるかもしれません。じっくり読みたいものがあったら、色を塗って目立たせておきましょう。(「詳しく理解する方法」については、本投稿の範囲を超えるので、ここでは書きませんが…)

結果

2週間では無理だったので結局3週間で、48本をざっと読みました。 アウトプットのところで書いた「スライド(パワポ)6ページ程度」を使って、研究室のミーティングで報告しました。

50本読め!で気をつけたこと

  • 細部まで理解しようとせずに、数をこなすことを優先する。
  • なるべく新しい論文を読む。けど、あっちこっちで名前が出ている論文は古くてもチェックしとく。

感想とその後の展開

4月末から5月にかけて実施したのですが、大学院入試の研究計画書を書く前に実施したほうがよかったな〜と思いました。

50本読め!の後、「これ面白いやん!ぼくもやりたい!」と思った数本を研究室の論文紹介で紹介し、そのうち1つについて再現実験をやりました。再現実験というのは、事前学習済みモデルとデータセットをダウンロードして、自分のところで動かし、結果を評価することです。 初めての分野への入門から、次のステップにつながったのがよかったです。

実は、以前は論文読むのが怖かったんです。というのは、「みんな論文書いてる!バシバシ発表してる!何もしてないのはぼくだけだ……」と焦りを感じてしまったから。 でも読んでるうちに何かが焼き切れて、「これから仲間に加わりますヨロシク!」みたいな気持ちになってきて、さらに、「この名前、前も見たな、有名な先生なのかな?」「みんな親切だなあ、この論文はすごい丁寧に説明してくれてる」などと思って、ちょっとずつ楽しめるようになってきました。

新しく研究を始める(あるいはこれまでと違う分野に挑戦する)みなさんの参考になれば幸いです。 論文を読むときや、先行研究を調べるとき、みんなどうしてるんですかね。ご意見ご感想ご質問 Twitter でお寄せください。