はやみずの「は」

特定のトピック着目型の文献サーベイ方法

特定のトピック(分野の中でも特定の問題や手法とその周辺情報)についての文献をサーベイする際に、最近自分がやっている方法のざっくりとしたまとめ。

根っこになる論文を見つける

  • (A) 自分が着目しているトピックの、そもそもの概念を考えだした論文
  • (B) そのトピックが属している研究分野の、最低限押さえておくべき有名論文

をまずは探しだす所から始める。このへんの"根っこ"になる論文を一通り抑えておくと、あとはこれらを引用して派生していった論文のグラフを辿るイメージでサーベイを進めていくことができる。これらを見つけるために派生論文を漁りながら根にたどり着くことになるので、根を掘り当てた後はすでに通った道をバックトラックすることになる場合も多い。

まずは注目しているトピックそのものの源流である(A)を探すところから始めるのがよい。既に具体的にこの論文、という文献が見つかっている場合にはこのステップは必要ない。 そうではない場合、話題として興味がある、あるいはこういう研究が過去にやられているはずなのだが具体的にどの論文かは知らない、という状態なので、とにかく広く浅く関連しそうな文献をかき集めていくことになる。 論文の集め方は、大体次のような手順で行っていく。

  • サーベイのメモ用に1つファイルを作っておく
    • Wordでもテキストファイルでもなんでもよいので、1つのファイルに全部まとめておくと情報が拡散しなくてよい
    • 自分はgluentを立ち上げて、Markdownでメモしていくスタイルをとっている
  • Google ScholarMicrosoft Academic Search で関係がありそうなキーワードを思いつくだけ入れて検索
    • 引っかかった論文をリスト化していく。自分はPapersに"seed"フォルダを作って放り込んでいくスタイル。Mendeleyでも同じことが出来ると思う
    • この段階ではそこまで関連が深く無さそうなものでもとにかく収集しておくのが重要
  • "seed"フォルダに収集した論文をフィルタリングしていく
    • フィルタされた論文を放り込む"filtered"フォルダを作る
    • まず関連研究を読み、トピックに関係しそうな論文が引かれていたら片っ端から"seed"に放り込む
    • 次にアブストラクトを読み、トピックに関連しそうなら"filtered"フォルダに放り込む
    • 本文は読まずに捌いていく
    • この際、他に興味があるトピックが出てきてもそっちに寄り道しないよう心がける。そういうトピックはメモ用ファイルに忘れないように記録しておく
  • "seed"を"filtered"に選別していく段階で、よく名前を見かけた著者をリストアップする
    • その著者の名前で文献を検索して、特に"filtered"に入っている論文が書かれた前後数年を中心に更に関連しそうな論文がないか調べる
      • 見つかればその都度"seed"に放り込んで上の手順を繰り返す
    • 計算機科学系だとDBLPを使えば著者の論文は一通り抑えられるので便利
  • "filtered"に入れた論文のアブストラクトとイントロダクション、必要に応じて詳細な内容まで見ながら、"filtered"の中でトピックに直接関係するものと、周辺領域のものとを分別していく
    • "filtered"の中にサブフォルダを作って整理するようにしている
    • 周辺領域が複数カテゴリに渡る場合には、カテゴリ毎にフォルダを作っておくのもよし
    • 本当は被引用数や引用している論文リストなどのメタデータも管理したいが、そういう機能を持っているソフトを知らないので知っている人がいたら教えて欲しい

ここまでやると、着目しているトピックに関連する重要な論文は一通り集まった状態になり、何度か大雑把に目を通しているので、それらが引用している根となる論文が把握できている状態になっているはずなので、それらに印をつけておく。これで(A)の収集は完了。 更に、ここまで収集してきた論文から頻繁に引用されているものが(B)になる。集めた論文リストに対して、引用されている論文リストを被引用数でソートしてくれるような機能がある文献管理ソフトほしい。。

トピックに関する最近のトレンドを調べる

前段で集めた(A)を引用している論文で、最近のもの、とくにインパクトのあるジャーナルや会議で発表されているものを中心にリストアップする。 Google ScholarMicrosoft Academic Searchで、ある論文を引用している文献一覧を取得することができるので、その機能を使うと便利。 応用分野が広がっている技術とかだと、かなり関係のないものまで引っかかったりするので面倒だが、アブストラクトをざっとみて関係しそうなものを一旦リスト化して、さらに関係しそうなものを抽出していくというアプローチで地道に絞り込む。(A)や(B)の論文の著者が書いている論文だと"アタリ"である可能性が高い。

ここまでやると抑えておくべき論文群が手元にリスト化されており、さらにある程度関連度順に整理された状態になっているので、重要そうなものから精読していく。 どういう順番で読んでいくかが良いかは場合によるが、根っこになる古い論文は基本を抑えておく目的で、最近の論文はどういう方向性で論文をまとめるのが有望だと人々が考えているのかを把握する目的で、それぞれ読むことが多い。

論文の精読の仕方

まず、頑張るぞ、と気持ちを高める ← 一番重要

  • サーベイメモ用ファイルに論文タイトル、会議やジャーナル情報、著者名と所属を書く
    • 自分は人の名前がなかなか覚えられないので、できるだけ著者名は手打ちしながらこの人か、と確認するようにしている
  • アブストラクトと序章を丁寧に読み、扱っている問題と、論文のcontributionを把握する
  • 実験結果のグラフを眺める。説明文を読まないと意味が分からない場合もあるが、とりあえずは読まない
  • 結論を読んで、結局何を達成したかを確認
  • ここまで読んだところで、サーベイ用メモに要点を箇条書きでまとめる
  • 内容の詳細を読み込んでいく
    • 一気に全部読もうとするよりも、途中でもその日論文読みに当てられる時間に余裕を残して切り上げて、メモ用ファイルに理解した内容をざーっと書き出していく
    • このあたりのやり方は色々変えながら試している

PapersやMendeleyにもメモ書き機能があるのでそちらにメモを書いていくでも良いのかもしれないが、それだと特定のトピックを想定しながら論文を読んだ時に読み取って理解した内容が分散してしまうので、個人的にはあまりうまく機能しないように感じている。論文は何を読み取るつもりで読んでいるかによって、かなり見え方が変わってくることが多いので、それを軸に情報を1点集中させるのが後々見返した時に有用なように思う。

論文の読み方に関しては、色んな人たちがかなり参考になることを既にWebに公開しているので、それらが参考になるのであまり細かいことはここに書く必要はないかな