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

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

戦力になるレベルのデータサイエンティストを育成することの難しさ

f:id:TJO:20210714135919p:plain
(Image by Pexels from Pixabay)

僕自身がデータサイエンティストという肩書きを与えられて働くようになった9年前から、一貫して問題意識を持ち続けてきたのが「データサイエンティストをどう育成すべきか」についてでした。その後、この9年の間に質の良し悪しや量の多寡はともかく多くのデータサイエンティスト向け技術講座・資料が沢山世に出るようになり、一見その育成体制はそれなりに整ってきたように見えます。


しかし、当事者たちから見ると必ずしもそうではないようだ、という指摘を陰に陽に見聞しており、しばらく前のことながら実際に僕自身が機会があって聞かされたコメントを引用して放言したところ、結構な反響があったので「ああ戦力になるレベルのデータサイエンティストを育成するのは誰もが難しいと思っているんだな」と実感していた次第です。そんなわけで、上記の4つのポイントに触れながら改めてその「難しさ」と、考えられる解決策を論じてみようと思います。

実戦投入可能なレベルになるまでの学習量が多過ぎる


これは毎年恒例のスキル要件記事を参照した方が早いでしょう。「実戦投入可能なレベル」即ちジュニアレベルのデータサイエンティストのスキル要件を、2021年版では以下のように提唱しました。

ジュニアレベル

  1. 一般的なアナリストとしてのスキル
    • BIツールなどを用いたインサイトレポートが出来る
    • RCT/DIDなど基本的な効果検証実験とそのデザインが出来る…etc.*1
  2. 『Rで学ぶ確率統計学』シリーズに該当する統計学の知識
  3. はじパタに該当する一般的な機械学習の知識
  4. ジュニアレベルの汎用的なスキル
    • SQL文法を含むデータベース操作の技術
    • クラウドの知識
    • AutoML技術の知識
    • データ前処理・特徴量エンジニアリングの技術
    • 何かしらのビジネス領域における若干年数の実務経験

自分で書いておいて何を言うのかと怒られそうですが、これだけ多岐に渡っていると結構しんどいですよね(汗)。今のチームのジュニアメンバーたちにもこれらのスキルを身につけてもらうためのトレーニングを行ったりしていますが、普通に1年近くかかったと記憶しています。


その具体的なプロセスは別の記事に書いた通りですが、結構手間暇かかります。単に座学として教えるだけでなく、R/Pythonによるコード実装も一通り身につけてもらい、さらにはある程度実務の現場に近いシチュエーションを想定した実践課題にも取り組んでもらい、尚且つその習熟度をチェックして狙い通りのレベルに到達しているかどうかを評価する、となるとどれほど手を抜いた構成にしても「手取り足取り」に近いトレーニングになると思います。


そういう「教える側の負荷が高い」トレーニングを、ジュニアレベルのデータサイエンティスト育成のために実施するだけの余裕が教える側にあるかどうかも、重要なポイントになってきそうです。つまり、個々の企業がそのトレーニングのためのリソース*2をどれだけ割けるか、という点にも大きく左右されるということです。


「知っている」と「使いこなせる」との間の溝が深い


ちょっと古い*3記事なんですが、未知のデータセットと課題を与えられたらこんな感じでアプローチしていくという話をしたことがあります。一般に、初学者の多くは通りいっぺんの「〇〇回帰の計算方法と使い方」「〇〇機械学習モデルの実装方法と使い方」はすぐに習得できる一方で、「実際に目の前に未知のデータセットが与えられた時にどのようにして課題解決のために分析していくか」については何だかんだで実践経験が必要になるので、そこがなかなか十分に積み増していけないという問題を抱えているように見えます。


ただし、現在であればKaggleなどのデータ分析コンペがあるので、それらの場で「使いこなせるようになる」ための研鑽を積むことは十分過ぎるくらい可能だと思います。この点については今の若い人は恵まれているのではないでしょうか。できれば、TitanicやBoston Housingのような枯れ切ったコンペではなく、きちんと最新のコンペで高順位を目指して取り組んだ方が得るものは大きいと思われます。勿論、実際に業務で出くわすデータセットに対してジュニアメンバーが分析に取り掛かるところに指導者たるシニアデータサイエンティストが張り付いて、ある程度チェックしながら指導していくというやり方もアリだと思います。


コミュニケーションの壁を乗り越えられない


これは「コミュニケーション」という語にまとめられていますが、実際には「組織の中で価値を出していく」というもっと大きな枠組みを指していると見た方が良いでしょう。この点についても、過去記事で論じた通りで「仮に理解のない同僚・上司に囲まれていたとしてもそこから価値を認めてもらいアウトプットしていく」という、「どう理解してもらうか」というフェーズに本質的な難しさがあるように思います。


別の過去記事でも書いたように、機械学習統計学は科学的で合理性や合目的性を重んじるが、現実の社会全般はむしろ情緒性など人間臭く非科学的な要素を重んじる」わけです。この「人間臭く非科学的な要素」に満ち満ちた組織の中で、データサイエンティストとして「科学的な合理性や合目的性」を広めていくというのは一種の啓蒙活動に近い側面があります。僕自身も昔の職場で、決定木を使って分かりやすく可視化したマーケティング分析を上司に見せたら「こんな分かりにくい代物はダメだ、Excelのクロス集計でやり直せ」と突っ返されたこともあるので、この辺の難しさは良く理解しているつもりです。


勿論、そういった機械学習統計学のような体系に理解のある上司や同僚に恵まれれば、こんなに簡単で楽なことはありません。けれども、そうでない現場の方がまだまだ世の中の多数派を占める現状では、周囲に理解してもらうための啓蒙活動的なコミュニケーションができることもまた重要なスキルであるように思われます。


問題は、そのコミュニケーション技術をどう身につけてもらうか、ですね。簡単なのは「場数を踏む」ことなんですが、そのワンチャンスをものにできなかったらそれで一巻の終わりみたいなケースも世の中ままあるので、難しいなぁと……。あえて言うなら、やはりシニアデータサイエンティストが毎回案件ごとに「このコミュニケーションできちんと伝わるかどうか」*4をチェックして、適宜指導するというのが妥当かもしれないです。


ビジネス価値と結びつけて自走するまでの間に深い溝がある


これまで列挙されてきた「難題」たちを見ているだけでもお腹いっぱいという人が多そうですが、最後に残っているのがこの難題です。言い換えると「社会実装を自分だけで出来るようになる」ということですね。


正直なところ、これについては僕も割と最近まで出来るようになったという自信がありませんでした。というのは、「〇〇をきちんと分析できればビジネス上の価値が出せるので分析して欲しい」という「依頼」に応える(即ち「伴走」する)ことは難しくないのですが、目の前に何か特定のビジネス課題があった際に「ここでAというデータが手に入ればBという分析をすることでCないしDというビジネス上の価値をもたらせる」という全体像をパッと考え出し、さらにはその全体像を実現するために細部にまで落とし込んだ具体的なプランを立案し、実行するとなるとやはり相応の経験が要るからです。


個人的にはその自信がついたのは動画にもなった公開事例*5を手がけた時だったんですが、要は「〇〇を分析したアウトプットがその先のビジネスの何に対してどのようなメリットをもたらし、最終的にどのような価値に結び付くのか」を一貫した流れと捉えて考えられるようになるかどうか、もっと言えば「得たいビジネス価値から逆算してどのようなデータを取得しどう分析すべきかを考えられるようになる」ということだと思っています。


これで解説としては十分なんですが、あえて付け足すならば「その上で生じるリスク*6やコスト*7も踏まえて決断し責任を引き受けられるようになる」というのも重要かなと。「自分はこれでいけると思うので、いきましょう」と確信を持って分析のプランを提案できることもまた実務家には欠かせないスキルだと思う次第です。なので、これを会得させようと思ったらやはり場数を踏んでもらうか、さもなくばシニアが実案件に張り付いてそれらの「観点」みたいなものを地道にマンツーマンで指導していくしかないかもしれません……。


最後に


この4つは僕自身がジュニアメンバーを指導していて実際に直面している問題でもあり、これらを克服して一人前の戦力になるレベルのデータサイエンティストを育成することがいかに大変かは良く分かっているつもりです。ただ、本質的にはここで挙げられている問題の全てが「ビジネス実務においてデータサイエンティストはどうあるべきか」という深い課題意識に根ざしたものであり、何ならデータサイエンティストに限った話ではないんですよね。


その意味では「いかにして戦力になるレベルのビジネス実務家を育てるか」という問いとは等価で、「学術・技術だけ習得しても実務で活躍できるデータサイエンティストにはなれない」という現実の裏返しでもあるのでしょう。学術・技術を教えるというのはあくまでも1番目の話で、残り3つを何とかしなければ戦力にはならないわけです。しかも、指導するシニアの側が相応の経験を積んでいなければ教えるのもままならないわけで、それもまた難易度を上げているように見えます。


……ということで、ひとまず僕自身の経験に基づいて一通り書いてみた次第です。後学のためにも、他の企業や組織でどのようにデータサイエンティストを育成されているか書いて下さる方がいらしたら、有難い限りです。

*1:『効果検証入門』の実験に関するパートは大体把握しているというレベル

*2:それこそ業務時間を割いても良いかどうかというレベルまで含めて

*3:もう6年も前

*4:当然シニアの側に「このコミュニケーションでは伝わらなかった」という経験が豊富にあることが前提

*5:毎度お馴染みのアレです、毎回ムサい顔をお目にかけてごめんなさい

*6:ここではモデルの予測精度があまり高くないとか、モデル予測が「外れた」場合に生じ得る不利益といった諸々を含める

*7:データ取得のための労力や費用は勿論のこと、分析に要する時間や計算資源なども含めて