渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

全くのゼロから「駆け出しデータサイエンティスト」を育てる方法論

f:id:TJO:20191113231703p:plain
(Image by Pixabay)

「データサイエンティスト」の第一次ブーム勃興から6年余り、人工知能ブームに便乗した第二次ブームで人口に膾炙してから3年余り、気が付いたら何やかんや言われながらもデータサイエンティスト及びその類似職が、じわじわと日本国内の産業各分野・企業各社に広まりつつあるように僕の目には映ります。


そういう背景がある中で、ここ1年ぐらいの間にそこかしこで目立つようになってきたのが「ゼロからデータサイエンティストを育てたいのだがどうしたら良いか」という相談や議論。割とあるあるなのが「取引先がデータサイエンティストを採用して商談の席に同席させるようになって、彼らがデータサイエンスの知識を駆使してビシバシ突っ込んでくるのだが、こちらにデータサイエンティストがいないので対応できない」みたいなお話。これは実はUSでも同様だと聞くので*1、案外洋の東西を問わない課題なのかもしれません。


ということで、今回は「ゼロからデータサイエンティストをどうやって育てるか」というテーマについて考えてみたいと思います。僕自身も半端者である一方で7年以上もデータ分析業界にいることもあり、これまでに様々な組織でデータサイエンティストをゼロから育てるという経験を積んできていますので、そこで得た知見や体験を問題ない範囲で一般化して書いてみることにします。


ただし、今回は「(アナリストの延長としての)データサイエンティスト」に的を絞ります。「(エンジニアの延長としての)機械学習エンジニア」の話題はしませんので、ご注意ください。

有望なデータサイエンティスト「候補者」を集める


いきなりそもそも論みたいな話になってしまって恐縮ですが、ゼロからデータサイエンティストを育成するのであれば「どんな候補者が良いか」というのは結構重要なポイントです。これは、考え方としては3つあって

  • データサイエンスの素養がある人たち
  • 現在の仕事で新たにデータサイエンスを使う必要性が出てきた人たち
  • 素養の有無を問わず強い課題意識を持って「データサイエンスを習得したい」という意欲のある人たち

のいずれかを選抜するというやり方が考えられます。まず、1番目は単純で要はCS/ML系や計量経済などの分野で高等教育を受けたことのある人たちです。こういう人たちは確かにちょっとトレーニングすればあっという間に最先端の領域までキャッチアップ出来ます。


なのですが、そういう人たちに限って「別に今の仕事にそこまでデータサイエンスは必要ではない」となると容易にモチベーションを下げてしまいがち。特に大学や大学院でも学んで(研究して)はいたものの今は興味がないみたいなパターンだと、勉強にも身が入らないということは往々にしてあります。一般にどんな仕事であれ普段はそれなりに忙しいわけで、そこにアドオンでさらに仕事とは関係のないデータサイエンスの勉強をするとなるとかなりきついものがあります。実際、僕がこの7年間に何度も手掛けたデータサイエンス講座においても、「仕事ではデータサイエンスを必要としない」人たちのコンプリート率は低かったです。


2番目に、新たにデータサイエンスを仕事で使う必要性が出てきた人たち。これは1番目に比べると明確にデータサイエンスを仕事で必要とされているので、モチベーションは決して低くない人たちです。実際、そういう人たちは比較の問題で言えばデータサイエンスの習得には熱心です。ただ、以前の記事でも書きましたが、往々にしてヒトは易きに流れるもの。データサイエンスを使わなくても仕事上の課題を解決できるのであればデータサイエンスは無しで済ませたい、というメンタリティの人はやはり勉強に身が入らないものです。


そういう点で言えば、ベタですが3番目に挙げた通り、出身専攻分野のような元々の素養や仕事での必要性といった外的な条件を問わず、純粋に「強い意欲と課題意識」のある人たちを集める方が確実だろうと思います。そしてそういう人たちが晴れて「駆け出しデータサイエンティスト」になった時に、実際にデータサイエンスを必要とするチームに異動させてそこで活躍してもらう、というのが正しい育成の姿だろうと個人的には考える次第です。


「ジュニアレベルのデータサイエンティスト」をゴールに設定する


ということで、実際に「強い意欲と課題意識」のある人たちが候補者として集まったとしましょう。では、その人たちに目指すべきゴールはどのレベルに設定するべきでしょうか?


僕個人の見解としては、ゼロから学び始めるのであればまずは上記の記事で示した「ジュニアレベル」のデータサイエンティストを目指してもらう、というのが無難なラインだと思っています。即ち、

  1. 一般的なアナリストとしてのスキル
    • BIツールなどを用いたインサイトレポートが出来る
    • A/Bテストなど効果検証とそのデザインが出来る…etc.
  2. 東京大学出版会統計学シリーズ3巻分に該当する統計学の知識
  3. はじパタに該当する一般的な機械学習の知識
  4. SQL文法を含むデータベース操作の技術
  5. クラウドの知識
  6. データ前処理・特徴量エンジニアリングの技術
  7. 何かしらのビジネス領域における若干年数の実務経験

を習得する、というのが目指すべきゴールです。これでジュニアレベル???とびっくりした人は、上記のスキル要件記事のシニアレベルの項目をお読みくだされば納得していただけるかと思います(笑)。少なくとも僕の7年余りのデータ分析業界経験から言えば、これらが備わっていることが「駆け出しではあってもデータサイエンティストと名乗ってプロとして仕事ができる」最低要件です。


ただし、最近ではAutoMLのように「機械学習モデリングの高度な学術・技術的知識は要らないが機械学習という取り組みの『デザイン』について知っていなければ使いこなせない」フレームワークも登場しているので、今後はこのスキル要件も変化していくのではないかと予想しています。


最低限のスキル教育と、現実のデータを扱わせる実践的教育の組み合わせ


では、どうやって選りすぐりの候補者たちを「ジュニアデータサイエンティスト」へと育てるのか?というと、これまた極めてベタですが基本的には以下の二本柱で育てるのが王道だと思います。

  • 最低限のスキル教育を座学で行う
  • 現実のデータを扱う経験を実践の現場で積ませる

前者は言うまでもありませんが、どういう教材が良いかというと色々迷う部分もあります。特に既に実務でデータ分析を担うことが期待されているor実際にデータサイエンスが必要な課題に直面している人たちに、回りくどい座学を施している余裕はないと思った方が良いでしょう。個人的には、手前味噌も含みますが以下のテキストをなぞってもらうようにしています。

手を動かしながら学ぶ ビジネスに活かすデータマイニング

手を動かしながら学ぶ ビジネスに活かすデータマイニング

Rによるデータサイエンス データ解析の基礎から最新手法まで

Rによるデータサイエンス データ解析の基礎から最新手法まで

Rによるやさしい統計学

Rによるやさしい統計学

はじめてのパターン認識

はじめてのパターン認識

scikit-learnとTensorFlowによる実践機械学習

scikit-learnとTensorFlowによる実践機械学習

1冊目は単に内容を熟知しているから使っているというだけなので勘弁してください(笑)。残りも実際に僕がゼロからデータサイエンティストを目指すという人たちに薦めていたり、時には実地に講釈している書籍たちです。これらの書籍の内容を座学で、必要に応じてRもしくはPythonで実際に手を動かしてコードを組んでもらい、「実際のデータに対してこのように動く」という体験をしてもらうようにしています。


それを一通り終えたところで、後者のOJTに移るというのが自然な流れでしょう。即ち、実地のビジネス課題の解決のために候補者たちを送り込み*2、彼ら自身に存分に試行錯誤してもらった上で然るべき解を出してもらう、ということです。ただ、単にOJTを行うというだけでは良くも悪くも「何となく慣れる」というだけになってしまいます。そこで、いかにしてメンターが適切にOJTの過程で「データ分析の現場で直面しやすい普遍的な問題」や「多くのデータ分析課題で共通する陥穽」といったポイントをあぶり出し、候補者たちにその対処法を適切に指導できるか?が重要になってくるかと思います。


メンターの方法論は僕自身まだまだ模索中なのでとても偉そうに例示なんか出来ませんが(笑)、やはりメンター自身も多くの試行錯誤を行なっているという過程を候補者たちに見せることが大事だと思います。その点である意味ペアプロミングみたいな要素があると個人的には思っていて、

  1. まずメンター自身が候補者から見える形でデータ分析課題へのアプローチを行なってみせて
  2. 次に候補者がメンターの行なった分析プロセスに対して批判的考察を行い、改善する方法を考えて実践してみせる
  3. その候補者の提案&実践に対して、メンターは効果測定を行い、さらに文献や自身の学識・経験に基づいて論評する

という一連のプロセスを何度もループさせて、候補者の見識を深めるというフェーズを作るというのは個人的には良い方法なんじゃないかと思っています(候補者のレベルが上がってきたら順番を逆にすると良い)。というのも「(アナリストの延長としての)データサイエンティスト」と称するからにはやはり実践が大事だと個人的には見ていて、実践なきデータサイエンティスト教育はあり得ないと考えるからです。


どうすれば「シニアレベル」へとステップアップ出来るか?


そもそも僕自身がシニアレベルかどうかも怪しいので何とも言えないのですが(笑)、上記のスキル要件記事で提示した「シニアレベルのデータサイエンティスト」の要件を見れば何となく分かりそうな気がします。

  1. ジュニアレベルのスキル全て
  2. ベイジアン統計モデリングの知識と確率的プログラミングのスキル*3
  3. ジュニアレベルの機械学習エンジニアの機械学習に関するスキル
  4. 統計的因果推論の知識と技術*4
  5. 統計分析をアナリスト業務に用いる上で生じる解釈の問題や意思決定プロセスへの関与の仕方について詳しいこと

一つはやはりジュニアレベルのデータサイエンティストとして実務経験をしっかり積み重ねることであり、もう一つは機械学習そのものについても一定の知識と実務経験を積むことであり、最後に統計的因果推論をある程度実務でも使えるようにものにする、ということなのかなと。


機械学習の経験を積むべき、というのは言うまでもありません。僕自身の経験からも、いかな「アナリストの延長」として仕事をしていても時には「繰り返し手作業でやってもらっている統計分析業務があるのだがこれを自動化したい」という要望がやってくることがままあり、中には機械学習手法を用いることで実際に容易に自動化できるケースが少なくないからです*5


そして因果推論。これは冗談でも何でもなくて、因果推論を踏まえずにデタラメな分析結果に至った挙句それを信じてデタラメな意思決定を行なった挙句、とんでもない結果になったという話は表に出てこないだけで枚挙に遑がありません。

岩波データサイエンス Vol.3

岩波データサイエンス Vol.3

岩波DS3で取り上げられた「TVCMとスマホゲームのプレイ時間の関係」はまさにそれで、因果推論に基づく補正を行わなければ「TVCMを見れば見るほどスマホゲームのプレイ時間が短くなる」という嘘みたいな結論に達しかねません*6。現実にはもっと複雑なシチュエーションが多く、因果推論の専門家でも難渋するケースは珍しくありませんが、それでも現場の「シニアレベルの」データサイエンティストとしてはその「因果推論的なおかしさ」に気付くことが出来るだけの見識を持っているべきだと個人的には思います。


勿論、例えば機械学習or数理統計学のトップ国際会議やトップジャーナルに論文を掲載させるというゴールもあり得るとは思いますが*7、それは出来れば「過程」であるべきであり、何よりもまず「価値を出せる」シニアになって欲しいと願う次第です。


雑感


これは僕の持論なのですが、端的に言えば「どんな学識&スキルレベルのデータサイエンティストであってもそれぞれに応じた活躍の場がある」。なので上記のようにトップレベルであればトップ国際会議orジャーナルに論文を載せて世界全体の研究開発や応用の流れを変える、という方向性もアリだとは思いますが、実際には「与えられた現場の課題を確実に解決していく」ことの方がずっと大事だと思っています。


データサイエンティスト業界も因果なもので、往々にして「半端者が誹られる」ことが少なくない世界です。が、現実の社会にはデータ分析による解決を要する課題が山積していて、データサイエンティストの第一人者の両手両足全てを24時間つぎ込んでも捌き切れないということが珍しくありません。そこに、一人でも多くの「駆け出しデータサイエンティスト」を育成し、送り込むことによって一つでも多くの課題を程度問題ながら*8解決していく、というスケーラビリティを意識した動き方をしていくことが大事なのではないか、と個人的には考えています。


ということを意識しながら、僕自身も引き続き新たなデータサイエンティストを育成していこうと気を引き締める次第です。

*1:しかもUSだと容赦無く数学や物理学のPhDがやってくるので大変だとかいう話を聞いた

*2:極論を言えば顧客やステークホルダーから突きつけられた課題の解決の場にいきなり候補者たちを放り込むということ

*3:ヒル本及び岩波DS当該巻に相当するレベル、時系列モデリングも含む

*4:岩波DS3及び関連書籍の内容に該当するレベル

*5:例えば毎回手動で機械学習モデルを組むのではなく、ある程度自動化可能な機械学習手法でUIも用意して誰でも任意のタイミングでモデルを組めてアウトプットも得られるようにする、というような

*6:傾向スコアで補正すると「TVCMを見れば見るほどスマホゲームのプレイ時間が長くなる」という結果になる

*7:もっともそれは研究開発部門のテーマだと思われる

*8:ベストではないかもしれないが、データサイエンスが皆無というよりは多少なりともデータサイエンスの要素を加えることでより合理的に