はじめに
この記事はレジリエントでウェルビーイングなぴょこりんクラスタ Advent Calendarのために書きました。
去年は学位などもとったので僕の研究者ごっこももう終わりやなと思っていたのですが、細々と相変わらず何故か論文を書いていたり、全然関係ない業務でアカデミアの先生方との接点が少しできたり、人生はよくわかりません。もちろん本業は研究者などではなく、お仕事をしながらそう言った活動をやっていくわけなのですが、そうなると生産性を高めていく必要があります。労働者としての日常を過ごしながら、研究者ごっこを続けるのは大変なことです。特に論文を読むことは研究者にとって必須でありながら忙しい生活の中で優先度がどうしても下がってしまいがちです。
この記事では、論文を読むことを習慣化するための施策を打ったのでその取り組みについて紹介します。
論文を読むときのプロセス
論文を読むという業務プロセスの改善を目的としているので、まずはその業務プロセスについて述べます。
自分の場合、大きく分けて、
- 論文を見つける
- 大まかな概要をつかむ
- きちんと中身を読み、メモに残す
といった具合に論文読みを見つけます。一つ一つ課題を抽出していきましょう。
論文を見つける
このフェーズでは自分の場合特定の目的で探したもの、偶発的に発見し関心を持ったものの2つのパターンに分類されます。
特定の目的で探したもの
特定の目的についてもう少し具体的に述べれば、類似タスクの先行研究や自身のテーマに必要な技術要素などを扱う論文がこれにあたります。
業務効率改善という観点では、これらの論文を見つける作業は検索システムに頼ることになり、自動化の余地はあまりないように思えます。
偶発的に発見し関心を持ったもの
例えばXなどのSNSで見つけたものなどがこれに該当します。具体的には割とここを旧twitterで担保していたのですが、最近僕自身が見る頻度を減らしていることと、もしかしたらサービスの改悪などがあり論文情報を投稿するbotが見えなくなったりそもそもサ終したりしてるなどもあるかもしれません。このチャネルからの技術情報の接種は減少傾向にあり、ここに依存するのはレジリエント (突然のタイトル伏線回収) な感じがしません。
大まかな概要をつかむ
これが結構厄介で、アブストを読めばよいと思われがちですが、どうもアブストだけだと何言っているかわからないものもあり、知りたい情報の有無を確認するために結局後半まで読む必要があるといったこともあります。
多くの情報から有益な情報を取り出したいと思うとこのフェーズで読むべきかどうかの判断、枝刈りを効率的に行うのは重要で、何とか効率化したいポイントです。
きちんと中身を読み、メモに残す
ここにおける課題はその処理速度よりむしろ、読んで得た情報の永続化にあります。読んだ論文やそのメモを軽率に捨てがちなので、何とか情報を残す必要があります。
E2E論文読み支援システム
というわけでこれらを実現するざっくりとしたシステムを試作、運用してみました。構成は大体以下のような感じ。

明示的に外部システムの名前がついてない部分は自宅の実験用マシンで動いています。この図はあとでちゃんと書き直すつもりでしたが、そんな日は来ませんでした。とりあえず順番に説明していきます。
論文格納用ディレクトリ
読む候補の論文をここに突っ込んでおきます。ディレクトリをいくつか分けてあり、優先ディレクトリとそうでないディレクトリにまず分かれます。優先ディレクトリの扱われ方については後述しますが、それぞれのディレクトリ以下に更にジャンルごとのディレクトリに分けています。例えば統計や機械学習はstatsmlといったディレクトリを作ったりしています。
ここにはオンラインで公開されている未読の論文、例えば国際会議のproceedingsが全部公開されているとかそういった類のものをガッと引っ張ってきて突っ込んでいます。
論文サマリ生成機能
論文格納用ディレクトリから論文を一つピックアップし、これのサマリをChatGPTにさせます。ピックアップのルールとしては、優先ディレクトリ以下にpdfがあったらそれを、なければそれ以外のディレクトリのpdfをピックアップします。なので、基本優先ディレクトリの中は空です。一応ブラウザから優先ディレクトリにアップロードできる口をはやしているので、読みたい論文が生えてきたときの導線をここで作っています。指示としては 落合先生フォーマット形式のjsonを返すように指示しています。
落合先生フォーマットは「どんなもの?」「先行研究と比べてどこがすごい?」「技術や手法のキモはどこ?」「どうやって有効だと検証した?」「議論はある?」「次に読むべき論文は?」といった観点で論文の要点をまとめるのですが、ここではこれらの各項目への回答を返すというプロンプトを投げています。なお、自動生成させるという意味では「次に読むべき論文は?」はあってもあまりうれしくないので、これは省きました。
生成された結果に基づき、slackの論文サマリチャンネルに投稿と、後述する論文メモアプリ側にpdfとサマリのjsonを渡します。この仕組みが1日に2回、朝の10時と夕方17時に動くようになっています。
論文メモアプリ
サマリが並んだ一覧の画面と、論文にメモを取るためのメモ付きビューアが主な機能です。まずサマリ画面からスクショを。
サマリ画面は大体こんな感じ、あとで自分の嗜好を知りたい気がしたのでふぁぼ機能をつけておいてあります(この論文はいいね済み)。これは一例ですが、これくらいの情報がまとまってると読むか読まないかの判断がなんとなくできるのではないでしょうか。
次に論文のビューアとメモ機能です。論文、さすがに著作物なのでモザイクかけとくかーって感じなんですが、画面としては以下のような感じです。
お絵描き周りは大体fabricjsで何とかしています。マウスでもペンタブでもすらすらかけます!
1色(赤)のペンと消去機能のみであまり複雑な機能は載せていません。強いて拘りを上げるのであれば正方形のキャンバスを用意し、論文の右側にメモ専用の余白を用意している点と、あとはペンの色を少しだけ透過させている(例えば先ほどのスクショのINTRODUCTIONの文字が塗りつぶしてるけれど読める)点でしょうか。
運用してみた結果
さて、試作した諸々を用いることで、定期的にslackに投稿されたサマリを読み、論文を見つけ、大まかな概要をつかんだうえで、興味を持った論文についてきちんと中身を読み、メモに残すことができるようになりました。実はこの仕組み自体は今年の春に出来上がっており、すでに半年以上動いています。以降はその結果と今後の展望について述べます。
...
......
本当に全然使わなかった。slackの1日2回の投稿とか見るチャンネル多すぎて見ないし、液タブもペンタブも付属品のケーブルやらペンやらが行方不明だったし、もう生活が終わってるので論文読み環境より住環境を変えなきゃいけないことが判明しました。たまった500件以上のサマリは割と気軽に読めるのでその点は良かったのだけれど、それを踏まえてせっかく作ったメモ機能を生かしていくのは今後の課題です。
というわけで論文の読み方なんかより生活をなんとかせんといかんので明後日からは3日分かけて引っ越しの話をします!!!!!以上!!!!!!