社会人ドクター経験談

この記事は，NTTドコモ サービスイノベーション部アドベントカレンダー23日目の記事です。

ドコモの落合です。業務ではヘルスケア関連のデータ分析に取り組んでいます。  
私は会社の支援を受けて社会人ドクターとして東京大学大学院工学系研究科に3年在籍し，2017年9月に博士（工学）の学位を取得しました。
その経験を踏まえ，この記事では社会人ドクターの経験談や研究を進める上で有用だったツールの使い方，博士号取得後の話などを紹介します。

社会人ドクターについては、研究・論文投稿，博士論文審査などいろいろあります。ここでは概略を紹介しますので、詳しくは私の経験談をまとめた[ブログ](http://k1ochiai.tumblr.com/post/168148637491/%E7%A4%BE%E4%BC%9A%E4%BA%BA%E3%83%89%E3%82%AF%E3%82%BF%E3%83%BC%E3%81%A8%E3%81%97%E3%81%A6%E5%8D%9A%E5%A3%AB%E5%8F%B7%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F)をご覧ください（ブログはあくまでも個人的なものです。ブログ中で某社と書いてますがバレますね笑）。

## 社会人ドクターとは？
企業で働きながら博士後期課程に通っている状態で，社会人博士という学位があるわけではありません。

## 入学準備
研究テーマを決める，大学・研究室を決める，入試の手続き，社内の手続きなどを行う必要があります。

私の場合は当時の業務でTwitterデータの分析や[サービス開発](https://www.nttdocomo.co.jp/binary/pdf/corporate/technology/rd/technical_journal/bn/vol20_4/vol20_4_012jp.pdf)をしていましたので，ソーシャルメディア分析を行なっている先生を探し，大学・研究室を決めました。私は東大の松尾先生の研究室に在籍していたのですが，Webマイニングの研究（[Twitterから地震を検出する研究](https://dl.acm.org/citation.cfm?id=1772777)など）が有名です。

松尾先生の研究室は東京大学大学院工学系研究科技術経営戦略学専攻に所属しているので工学系研究科の入試を受けました。大学や専攻によっては社会人特別選抜という社会人だけの枠があることもありますが，私が受けたところ社会人枠はなく通常の入試を受けました。社会人で入学する場合は、所属長の承諾書なども提出する必要があり，入試の要項はよく読んでおいたほうがいいです。

## 在学中
無事に入試に合格し，2014年の秋入学で二足のわらじの生活が始まりました。在学中は通常業務を行いながら研究を行い授業にも出席するためタイムマネジメントが重要になります。

研究の進め方では，データサイエンス系の研究ではデータの性質を理解した上で手法を考えることが重要なため，やってみないとわからないという部分があると思います。また，研究室のゼミ（研究会）がほぼ毎週1回2～3時間あり，先生に各学生が研究の進捗を報告し相談する会があり，研究会にある程度結果を持って行くことで先生から的確なアドバイスをもらえると思います。なので，機械学習を使った一般的な流れである（1）特徴量生成，（2）分類器の学習，（3）精度評価という工程を早く一通り実装し，結果を元に議論できるように心がけていました。こういう進め方は業務を進める上でも同じな気がします。

## 博士論文
東大で博士取得の要件は明示されていませんが，ジャーナル3本に相当する研究が一般的だと思います。
9月卒業を目指していたので予備審査は約半年前の5月，本審査は8月でした。博士論文のまとめ方には苦労し，予備審査の当日も副査の先生からアドバイスをもらい本審査向けにはうまくまとまったと思います。このへんは詳しくはブログで。

## 研究Tips
ここで，研究で使っていた形態素解析器MeCabで便利な使い方を2つ紹介します。

私の研究ではTwitterから地名や施設名などを抽出して場所に関する投稿を分析していました（[参考](https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=101908&item_no=1&page_id=13&block_id=8)）。地名や施設名の辞書をユーザ辞書として複数追加して分析をしていました。アプリケーションとして駅に関する投稿だけを表示する等，特定の辞書に含まれる投稿を表示したいことがあります。そのときに，地名が抽出されているので，あとから再度地名データベースと突合してもいいのですが煩わしいので，形態素解析をした段階でどの辞書を使ったかタグ付けができます。

[MeCabの公式ページ](http://taku910.github.io/mecab/dic.html)にも記載がある通り，「自分の好きな情報をCSVが許す範囲で追加」できるのでこれを使います。MeCabの辞書フォーマットは

`ユーザ設定,,,10,名詞,一般,*,*,*,*,ユーザ設定,ユーザセッテイ,ユーザセッテイ,追加エントリ`

となっているので，例えば東京駅に駅名というタグを付けるなら

`東京駅,,,10,名詞,固有名詞,地名,*,*,*,*,*,*,駅名`

という感じで辞書を作り，最後のカラムでどのタグか判定すれば簡単に処理できます。

あと，ネットで検索しても意外と情報がなかったのが，ユーザ辞書を複数登録するときの記載方法です。これはMeCabの設定ファイルにカンマ区切りで書くとうまく動作しました。

`userdic = XXX.dic,YYY.dic,ZZZ.dic`


## 博士号取得後
私自身は博士課程の研究でDeep Learningには取り組んでいませんでしたが，在籍していた研究室でDeep Learningに関する研究が盛んに行われていました。研究室メンバの発表を聞いて基礎的な知識を得ることができ，現在の研究・業務に役立てています。
また，AI分野ではインパクトのある研究を有名な学会で発表することで，優秀なエンジニア・研究者がその企業・組織に注目し，優秀な人材が集まるという好循環が生まれると個人的には考えています。そのため，有名な学会での発表というのは重要だと考えています。

そのような背景で，今年のKDDで開催されたDeep Learningに関するワークショップ（[Deep Learning Day](https://www.kdd.org/kdd2018/deep-learning-day)）に心電図から不整脈を検出する研究について投稿し[発表](http://www.kdd.org/kdd2018/files/deep-learning-day/DLDay18_paper_16.pdf)を行いました。KDDの参加報告は本アドベントカレンダーの[10日目](https://qiita.com/kenji_shinoda/items/5c811659df7178483d90)に詳しくありますので参考にしてください。また，UbiCompというユビキタスコンピューティングの国際会議でも[発表](https://ubicomp-mental-health.github.io/papers/2018/cognitive-ochiai.pdf)しています。

## 最後に
社会人を経験してから博士課程に行くメリットとして，研究の課題設定のリアリティがあると思います。特に人工知能分野はビジネスと研究の距離が近いので，実務の課題を元に研究してサービスを世に出し，そこで得られたデータで研究をさらに進めるという循環を回していきたいと思います。