「本を読む本」流、技術論文を二通りで読んでみる


## :writing_hand_tone3: この記事を書くことになったきっかけ

- 「時間があれば読みたい」「きっと読んだほうが良いけど読めていない」論文が誰しもいくつかあるはず
- CVPRやNeurIPSなど主要な学会では何百本も論文があって、どこから読んでいよいのか分からない
- いざ論文を読もう！となった時にどこまで読めば良いのかのラインが分からない
- 論文を読んだのに「この論文の要点は？」と聞かれて答えられないような事態には陥りたくない
- 論文を読んだ時間を無駄にしたくない、学んだことを実務や何かに活かしたい
- 習慣的に論文を消化するプロセスを構築したい

などなど

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/57385e19-04f4-efb5-b43a-eecfd7adaf7b.png)

## 「ちゃんと読み切りたい」は曲者

書籍もそうだけれども、読んだからには正確に100%理解したいと考えてしまう。どういうことを引き起こすかというと、1ページ目から最後のページまで読んでいくことになる。これはかなり時間がかかるし、


## 読み方のモードを2種類に分ける

「[本を読む本](https://www.kinokuniya.co.jp/f/dsg-01-9784061592995)」では、「点検読書」と「分析読書」が紹介されている。世の中にある書籍の99％は読むに値しないという前提の元、いかに有益な書籍を発見し、熟読して自分のものにできるかが紹介されている。論文もこの方法論が通じるはずである。

```mermaid
flowchart TB
a("点検読書: 95%")
b("分析読書: 5%")
```

### 点検読書
- **目的**: 書籍の概略を把握し、読む価値があるかを判断する
- **方法**: 表紙、目次、序章、結論、ランダムに選んだページを読む
- **特徴**: 短時間で書籍の全体像を掴む。読みたい本を選別する際に有効

### 分析読書
- **目的**: 書籍の内容を深く理解し、著者のメッセージを完全に把握する
- **方法**: 章ごとの構成、主張、証拠を詳細に分析。必要に応じてメモや要約を行う
- **特徴**: 時間をかけ、書籍の深い理解を目指す。学術的、専門的な知識の習得に適している


## モチベーションを妨げる要因

論文読みのモチベーションを下げる要因はいくつかある。
そもそも何のために読むのかが明確ではないと、モチベーションも上がらないというのはある。読んだ結果、何が得られるのかを実感できなければ、次のを読むきっかけにつながらない。いざ読んだ際に書いてある技術そのものが難解で理解する過程そのものが苦しい（基礎知識の不足）というのもある。マイナーな「書籍にも引用されている超重要な論文」だけども投稿から5年以上経っていて陳腐化しているリスク

上のようなモチベーションを下げる要因と戦うためには、いくつか明確にしておく点がある。これらのメリットを十分実感した上でないと、人は動かない。「読んだらいいことあるよ」だと読まないので、なるべく具体的に「良いこと」を定義してあげる。


## 点検読書：論文を効率的に読むための戦略

点検読書は、論文が熟読に値するかを素早く判断するために行う。アウトプットも雑で良いし、しなくても良い。
内容は、深追いしすぎず、全体概要を理解することに徹する。手法の理解が不十分でもOK。分析読書の際に、じっくり時間をかけて詳しく把握する工程を設けるので、点検読書の際に全部を理解しようとしないことが大切。

### 1. 自分のニーズを明確にする（〜5分）

まずは、自分が何を求めているのかを明確にする。業務上必要となってくる特定の問題を解決するためのアイデアが欲しいのか、個人的興味から新しいテクノロジーについて学びたいのか、それとも転職先の業界のトレンドを追いたいのか。論文を読む前に、「なぜ読む必要があるのか」「論文に期待していること」を言葉にしておく。「批判的な視点を持つ」というのも有効な気がする。「本当にそれ合ってるの？」と疑いながら読むことで読むことに積極的な姿勢が生まれる。

### 2. 要約と結論を読む（〜5分）

論文のアブストラクト、結論だけまず読んで論文の概要を素早く把握する。認知負荷を下げるために、ChatGPTなどのツールを補助的に活用する。これにより、全文を読む価値があるかどうかを判断できる。この時点で期待と内容に乖離がある場合は、離脱して良い。

### 3. 実験方法と結果に注目する（〜10分）

技術論文の中核は、実験方法と結果である。これらのセクションに注目して、どのような実験が行われ、どのような結果が得られたのかを理解する。機械学習系の論文であれば、用いられている評価データセットの特性などは論文内で扱われていない可能性もあるので、それらの前提知識は事前に確認しておく

### 4. 自分なりの要約を作成する（〜10分）

1.で書いておいた自分の期待値と内容が合っているかどうか、熟読に値するかどうかをアウトプットする。また、間違っていても良いので自分で理解した範囲で論文の要点を簡潔に記載する。文章を公開することで「説明口調」になるため、「人に教えることでより理解度が上がる効果」を得ることもできる。理解度が上がると将来的に論文の内容を素早く思い出せるようになる。



## 分析読書：論文の深い理解を目指すための方法論

分析読書は、点検読書で価値があると判断された論文に対して行い、深い洞察を得ることが目的。内容理解のための時間投資が必要。論文の詳細な理解と批判的分析を行う。実務であれば、どうやったら実装できるかという視点も重要だし、弱点やリスクはないかという視点も重要。

### 1. 論文全体を読む（〜1時間）
論文の全文を通して読む。アブストラクト、導入、方法、結果、議論、結論の各部分を丁寧に読む。重要な部分や理解が難しい箇所にはマーカーをつけたり、メモをとる。背景や要素技術は別途論文を読む必要が出てくることもある。批判的な視点を持ちながら読む。著者の主張に対する自分の意見や質問をメモする。

### 2. 手法と実験の詳細を理解する（〜2時間）
実験方法、使用されたデータセット、アルゴリズムの詳細を理解する。実験結果の解釈や著者の主張を読み解く。手法の有効性や限界について考える。

### 3. 論文内外の情報を関連付ける（〜1時間）
論文の内容を既存の知識や他の関連論文と照らし合わせて考える。研究の意義、影響、適用可能性について考える。分野全体のトレンドや今後の研究の方向性を予測する。

### 4. 批判的なレビューを作成する（〜2時間）

読んだ内容をもとに、論文の強み、弱み、重要性を分析する。勉強会などでチームに共有できるレベルでアウトプットする。


## 💼 論文を実務に活かす方法

### 論文からのアイデアの応用
- 論文のアイデアを自分のプロジェクトや開発に取り入れる
- 実際に応用することで、理論と実践を繋げる

### トレンドとフィードバックの活用
- 最新のトレンドを業務に反映し、チームや会社で共有
- フィードバックを通じて知識の共有と改善の機会を創出


## 論文読解のスキルを高めるためには・・・

### 定期的な読解練習を行う
- 毎週特定の時間を設け、論文を読む習慣を身につける
- 定期的な練習により、読解力が向上する

### ディスカッションを活用する
- 同僚や業界の仲間と論文について議論する
- 異なる視点からの意見を聞くことで、より深い理解が得られる

### 関連する分野の知識を広げる
- 論文の内容を理解するためには、関連する分野の基礎知識が不可欠である
- 関連分野の学習を通じて、より深い洞察を得ることができる


## どんな論文が有益なのか

- 社内外の優秀な人がお勧めした論文
- 自分が開発している製品もしくはプロトタイプに関連した論文
- ドメインに特化した論文
- 実装方法もgitに上がっていて商用ライセンスもOKな論文

## 結論
- 論文を読んで優秀な人材になろう！