ジョイジョイジョイ

ジョイジョイジョイジョイジョイ

論文の書き方

どのようにして論文を書いているかを尋ねられることが最近よくあります。場当たり的に回答することが多かったのですが、このことについて改めてしっかり考えて公開することにしました。

ここで扱う内容は、科学者とはこうあるべき、という理想論ではなく、等身大の大学院生がいかにして論文を捻りだすかという実践的な方法論です。科学者の規範に照らすと適切ではない内容もあるかと思いますがご容赦ください。その代わり、現役の大学院生にとってはただちに活用できる内容になったと思います。

以下では時系列に沿って各段階の方法について述べていきます。

イデアを考える

まずは論文のアイデアを収集します。僕は普段からネタ帳にアイデアを書き溜めていき、論文を書こうと思い立ったタイミングでその中からアイデアを一つ(または二つの組み合わせ)を選んで作業をはじめます。

どのようにアイデアを得るかはあまり一貫性がありません。ここでは代表的な二つの方法を紹介します。

論文や教科書読んでいて思いつく

これはやりやすい方法かと思います。気をつけないといけないことは、論文で提案されていることを改善することを目指すと、得てしてインクリメンタルな研究となりインパクトが小さくなることです。

おススメの方法は、既存論文に書かれている言い訳を覆す方法です。例えば、論文 A で「タスク X の実データは利用できないので人工データで代用する」と書かれていれば、タスク X の実データを収集して公開できないか考える、論文 B で「アプローチ Y は動作が遅すぎて実用的でないので比較からは除外する」と書かれていれば、アプローチ Y を高速にする方法を考える、といった要領です。

この方法の利点の第一は、新規性が担保されることです。こんな手法やデータがあったらいいなと自分で勝手に考えると、よくよく調べたところ同じような手法やデータが見つかり新規性がなかったということが多くあります。論文中で「ない」と述べられていれば、存在しないか、存在していたとしても何かしらの問題があるのでしょう。これにより、実は新規性がなかったと後で発覚する失敗を避けることができます。

第二の利点は、潜在的な顧客が確保できることです。タスク X の実データを収集して公開すれば、おそらく論文 A の著者は利用してくれるはずです。アプローチ Y の高速な手法を提案すれば、論文 B の著者は利用してくれなくとも、比較には含めてくれるか、引用してくれる可能性はあります。また論文 A, B の著者がいるということは、コミュニティーには他にも興味を持ってくれる研究者がいると期待できます。これにより、研究内容が独りよがりになる失敗を避けることができます。

日常生活の不満を解消するアイデアを考える

ビジネスや発明では基本的なアプローチかと思います。

このアプローチの利点は、自分という顧客を確保できること、自分の欲求に基づくのでモチベーションが保ちやすいことです。

欠点は論文化が難しいことです。日常生活の不満を解消するためには、解法は複合的になることが多く、性能を高めようとするほど設定が特殊化していきます。一方、研究に必要なのは普遍性と再現性です。自分の用途に特殊化した複雑な手法から良い論文を生成するのはなかなか難易度が高いです。慣れていないとあっという間に「素人思考・素人実行」な論文ができあがります。このため、日常生活から研究のアイデアを考えるのは、初心者こそやりがちですがむしろ上級者向けです。まずはインクリメンタルな研究を無難にこなして研究に慣れてからこの方向性に進むのがおすすめです。

このパターンの論文を書くときのコツは、いったん自分の用途にカスタマイズした手法を考え、そこから核となる普遍的な構造を抽出することです。最初から普遍的な手法を考えるよりも取っかかりやすく軸がブレづらいのが利点です。

論文化するアイデアを選ぶ

よし、論文を書くぞと思い立ったタイミングで、前述のネタ帳からアイデアを選びます。

イデアの選定で気をつけているのは、第一には、良い面も悪い面もハッキリしたアイデアを選ぶことです。多くの人に受け入れられなくても、良い面を受け入れてくれる少数の人に強く突き刺されば十分です。査読者全員から weak accept を貰って採択されるくらいであれば、strong accept と strong reject を貰って不採択を食らってやるというくらいの気概で選んでいます。

この基準で選ぶに際しては、論文を書き終わったあとに「こういう論文を書きました」と Twitter に投稿する場面を想像しています。グダグダ説明が必要になりそうならあまり良いアイデアとはいえず、短い言葉や 1 枚の画像で良い面を伝えられれば良いアイデアと言えます。

ハッキリしたアイデアであれば、読者のペルソナを想定しやすく、この後の論文執筆がやりやすくなります。また、学会で発表する際にも、アイデアを短い時間で確実に伝えられ、有益なディスカッションに繋がることが多くなります。

第二に気をつけているのは、できるだけアイデアを寝かせておくことです。最近思いついた最高のアイデアよりも一年前に思いついたそれなりのアイデアを優先するくらいの感覚で選んでいます。

研究でよくある失敗は、研究し始めた段階では素晴らしいアイデアに思えても、一年後には、あるいは研究の途中で既に、つまらないと感じてきてしまうことです。思いつきたてのアイデアは特に魅力的に見えますが、その分色褪せるスピードも早いので、一年後にはつまらなくなる可能性が高いです。一方、一年前に思いついたそれなりのアイデアは既に一年耐えたのだから一年後にもそれなりを保っていることが期待できます。また、最近思いついたアイデアのモチベーションは開始した時点がピークであとは下降するだけですが、昔思いついたアイデアはやってみると意外と面白いじゃんと上昇するケースも多くあります。研究は長期戦なので、こういう長期的なモチベーションコントロールは重要だと考えています。

イデアを一年も寝かすとライバルに先を越されると心配してしまうかもしれませんが、数か月を争うようなアイデアに取り掛かるのはそもそも博打度が高いです。あえて一年寝かすという制約を付けることは、そのような移り変わりの激しい分野から遠ざかることにもつながるので、むしろ利点であると考えています。

サーベイする

イデアを選び終わるとサーベイを行います。サーベイは最初に行う派と最後に行う派がいるようですが、僕はできるだけ先に行います。なぜなら、サーベイで見つけた類似研究が論文の方向性を決定づけるからです。

サーベイによって類似研究が見つかると、その研究と自分の研究の差異を考えます。全く同一のアイデアであることはあり得ないので、小さなことでも何かしらの差は見つかるはずです。また、物事には必ず良い面と悪い面の両面があるものなので、差さえ見つかればそこから提案法の優位な点を抽出できるものです。例えば、提案法は既存法よりも大胆な近似を行っている場合、精度は悪いが高速に動作するでしょう。この場合、時間制約が厳しいアプリケーションや、大規模処理が必要なアプリケーションを考えれば、提案法の良い面が強調できます。論文を書く際には、この差が強調されるようにストーリーを構築して、この差が強調されるように実験設定を考え、この差が強調されるように書き進めていくことになります。既存研究との差は、論文を書き進める方向性を決定づけるものなので、できるだけ早い段階で確定していることが望ましいです。

予備実験を行う

論文を本格的に書き始める前に、アイデアがちゃんと動作するかを予備実験で確かめておきます。ここで気をつけているのは、できるだけ最初の段階から最終形に近い形で実験を行うことです。つまり、人工データ→小規模実データ→大規模実データの順で段階的に実験するのではなく、最初から大規模実データを使って実験を行います。うまく出版できるかは実データにおける実験の成否にかかっているので、予備実験では、この条件がクリアできるかを確認することにまずは全力を注ぎます。この予備実験は実弾(本実験)の前の曳光弾のようなイメージです。

論文を書く

論文を書くにあたっては、まずはいわゆる吐き出し稿 (vomit draft) を仕上げることに注力します。この時には、英文法の誤りは気にせず、適切な引用先を知らなければ空欄にしておきます。特に、引用文献を調べ始めると芋づる式に文献が見つかり際限なく時間がかかるので、最初のフェーズ(アイデアを選んだ直後に方向性を定めるフェーズ)でサーベイは十分に行ったことを信じて、まずは書ききることを目指します。

この方式を採用する理由は先延ばしを避けるためです。初稿が完成するまでは、サーベイが足りないとか、ストーリーが固まっていないとか、様々な先延ばしの言い訳を考えてしまいます。この先延ばしの根本的な要因は、初稿が書き上がるまでは不確定要素が多く、そのために様々な可能性を模索してしまって手に負えなくなることだと思っています。なので、できるだけ早く初稿を書き上げて不確定要素を無理やり確定させてしまいます。その後で、局所探索的に改善を行い、ベストエフォート品質で締切に間に合わせるということを常に意識しています。

推敲する

原稿ができあがった後は推敲を重ねます。ここはひたすら地道に、印刷して赤ペンを持って推敲することを時間間隔をあけて繰り返します。

論文を書くのに慣れないうちは、特に意識して推敲を繰り返すことをおすすめします。初心者が書く論文は多くの場合、推敲が不十分です。推敲が十分でない論文は日本語が不自然な Amazon の商品説明のようなもので、読者は商品(提案手法)の品質まで悪いんじゃないかと勝手に想像してしまいます。推敲不足のせいでリジェクトされるのは悲しいので、やりすぎなくらいに原稿をチェックすることをおすすめします。

一方で、論文を書くのに慣れた後(主著で十本程度論文を書くことを経験した後)は、推敲を止めるタイミングにも気をつけています。慣れてくると最低限の体裁は初期の段階で整えられるようになります。また、研究が軌道に乗ってくると論文化したいアイデアがどんどん溜まっていきます。こうなると推敲を最後まで重ねて打率を 1 パーセント上げるよりも打数を稼ぐ方が効率的になってきます。慣れるとずっと推敲したくなってきますが、時にはグッとこらえて次に進むことも重要です。

精神的に大事なこと

イデアをちゃんと深掘れば何か面白いものが書けるはず、という自信は研究を進める上で重要です。この自信は、アイデアの筋が良いという自信と、どのようなアイデアであれ面白く仕上げられるという自信の両面から成ります。前者については、何が既にやられていて何がまだやられていないかという分野の地図をまずは頭の中に構築して、こっちに進めばまだ見つかっていない面白い発見があるだろうという感覚を養うのが重要です。後者については、研究をして辿り着いた先にある成果物のみをあてにするのではなく、そちらに進んだということそのもの、そしてその過程で見た色んな材料・景色を基に研究のストーリーを構築できるようになるのが大切だと感じています。これらの感覚が得られると、精神的にも業績的にも安定して仕事を進めることができるようになりました。

おすすめ文献

Eamonn Keogh の How to do good research, get it published in SIGKDD and get it cited! は何度も読み返して大きな影響を受けました。ぜひご一読をおすすめします。

おわりに

ビビっときたやり方があればぜひ取り入れてみてください。皆さんのとっておきの論文の書き方もいつかお聞かせ願います。

連絡先: @joisino_ / https://joisino.net

自分の研究を自腹で広告した体験談

皆さんは自分の研究成果をどうやって広めていますか?

ひとつの研究は実働時間だけでも最低数ヶ月、全出版プロセスを考えると一年単位で取り組むこととなります。そうして手塩にかけて育てた研究が誰にも認知されない、というのはなんとも悲しいことです。

僕が所属している機械学習分野は人工知能ブームにより、日々洪水のように論文が発表され、その中で存在感を発揮するのは難しくなっています。

一昔前であれば、名のある国際会議やジャーナルに採択されればそれなりに存在感を発揮できたようですが、今では一つの会議に数千本の論文が採択されるため、採択された後にも競争に勝たなければ目立てないという事態になっています。

論文のクオリティを上げて名のある国際会議に採択されるだけでは不十分、となれば一体どうすれば良いでしょう。

続きを読む

実対称行列が直交行列で対角化できる直感的な証明

English Version

実対称行列の固有値が実数であること、および実対称行列の固有ベクトルで正規直交基底が作れることは様々な領域で非常に重要な役割を果たしています。例えば、主成分分析の導出はこの事実に基づいています。

線形代数の教科書であれば必ず証明が載っているこの定理ですが、その証明は直感的に分かりづらいものばかりです。この記事では、より直感的な説明を試みたいと思います。

続きを読む

合同な凸図形でn要素ベン図を構成する方法

この記事は Concrete Mathematics の演習問題 1.22 を元に作成しています。

ベン図とは複数の集合の関係を図式化したものです。例えば以下は 3 要素のベン図です。

f:id:joisino:20210214180502p:plain

n 要素のベン図には n 個の図形があり、2n 個の領域に分かれ、それぞれの領域は含まれる図形の集合が異なるようになっています。

3 要素のベン図は上記のように円で描けるのですが、4 要素のベン図は円で描けないことが知られています。(4 つの円で 24 = 16 個の領域を構成するのが無理なため。)

どんな図形を使ってもよければ多要素のベン図を構成するのは容易ですが、任意の n について合同な凸図形のみで n 要素のベン図構成することは可能でしょうか?

取っ掛かりのなく難しそうな問題ですが、実はキレイに解けることが知られています。

続きを読む

まんがタイムきらら系列誌の発売日をSlackに通知する

皆さん、忙しい日々の生活に追われ、まんがタイムきらら系列誌を買い忘れてしまうことはありませんか?

まんがタイムきらら系列誌を買い忘れると QOL が大きく低下してしまうので、これだけはなんとしても避けたいものです。

そこで、買い忘れないように発売日に Slack に通知してくれるスクリプトを書きました。

レポジトリ

github.com

レポジトリです。

続きを読む

ディープラーニングで櫟井唯ちゃんに喋ってもらう

この記事は ゆゆ式 Advent Calendar 2017 - Adventar 24 日目の記事です。

はじめに

joisino.hatenablog.com

前回、唯の画像を無限に生成することに(部分的に)成功した訳ですが、画像ができたら今度は声が欲しくなってきます。

そこで、 [1710.08969] Efficiently Trainable Text-to-Speech System Based on Deep Convolutional Networks with Guided Attention を chainer で実装して、唯の声で学習させてみました。

続きを読む

Parikhの定理

この前 Parikh の定理(パリークの定理)を知ってびっくりしたので紹介します。

形式言語界隈では常識らしいです。

三行で説明して

文脈自由言語と正規言語は、単語を記号の度数で同一視(つまり記号の順番を無視する)と、同じクラスになるというものです。

具体的には準線形というクラスになります。

びっくりしませんか?僕はびっくりしました。

続きを読む