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

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

データサイエンティストは「アルゴリズム実装系」と「アドホック分析系」とに分けた方が良いかも

最近色々なデータ分析の現場の方々と意見交換したり一緒に飲んだりするようになり、ますます現場ごとの仕事のやり方の違いや雰囲気の違い、はたまた価値観の違いといったことについてそこそこ深く知るようになってきました。


おかげさまで、今の僕の立ち位置は「データサイエンティストのエバンジェリスト」みたいな感じになってきておりまして*1、むしろもっと本業*2を頑張らねばと焦っているところです(笑)。ということでそんな中で思うようになってきたことを今回はちろっと。


最近何となく感じてる「データサイエンティスト」の境界線について


実は「データサイエンティスト」そのものと他の職種との境界線も変わってきたのかなという気がしてる一方で、「データサイエンティスト」の「中」にも内部区分としての境界線が引けそうだなぁという気もしてます、という。


データサイエンティストの新・3要素


まず、5月の講演会でお話した「データサイエンティストの3要素」についてですが、どうも実態に即さなくなってきた気がするので今後は以下のように3要素を設定し直そうかなぁと思ってます。

  1. ビジネススキル:コンサルティング・マーケティング・アナリティクス
  2. エンジニアリングスキル:DB・アルゴリズム実装・コーディングなどのデータ基盤技術系スキル
  3. 学術系スキル:統計学機械学習などの専門知識


以前のものとは違い、アナリティクスをそっくりそのままビジネススキルに統合してしまい、代わりにITスキルを完全に独立させて追加しました。というのは、やはりデータ分析環境の構築などを考えた際にDBやアルゴリズム実装とそのためのコーディング技術一式を避けては通れないからです。


で、これまで散々「ビジネスの理解が大事」「ビジネス感覚が大事」とか抜かしてまいりましたが*3、ぶっちゃけ現在のデータサイエンティストの枠組みの中では1番と2・3番との間には越えがたい深い深い溝があるというのも事実でございまして(汗)*4、当面は2・3番を軸とした話題をしていくことになるんじゃないかな、と思ってます。


2・3番目を併せた中にもさらに区分がある


ここからが今回の本題。以前にもそれっぽい話を記事にしたことがありますが*5、より日本語圏での概念に合わせてカスタマイズしたものを考えてみました。


要は、何を主業務とするデータサイエンティストなのか?というのがさらなる区分の基準になるというお話です。それは、ひいては何に関心・知的好奇心を持っているデータサイエンティストなのか?という分け方でもあるのかもしれませんが。。。


そもそも、データ分析業務自体がざっと業界を眺めていると二つに分かれる印象があります。

  1. サーバーサイドで高度な機械学習や統計解析を実装し、データ処理もしくはデータ分析の自動化を目指す
  2. DBからアドホックにデータを抽出した上で統計解析や機械学習を用いて分析を行い、コンサルティングやマーケティングに活かす


実際問題として、それぞれを明確に主力事業として前面に打ち出している企業もあるわけで、例えば前者はPreferred Infrastructureさん、後者はブレインパッドさんが代表例でしょう。ちなみに両者ともに手掛けるALBERTさんという例もあります。


ポイントは、この両者におけるデータサイエンティスト像が意外と重ならないように見えること。そこで、ここでは前者のタイプを「アルゴリズム実装系」、後者のタイプを「アドホック分析系」のデータサイエンティスト、と定義することにします。


「アルゴリズム実装系」とは


おそらくこちらの方が、多くの方々が想像するような「データサイエンティスト」像でしょう*6。人材像としては「ITエンジニアリングスキルに優れ、機械学習アルゴリズムを初めとしたデータサイエンス諸分野に詳しく、主にバックエンドシステムの実装を担うプロフェッショナル」といったところでしょうか。代表的なスキルを列挙してみると、

  • エンジニアリング:サーバーサイド実装、DB基盤技術全般
  • プログラミング:Python, Ruby, C++, Java
  • 学術的知識:機械学習(アルゴリズムレベルで熟知)、最適化計画法、アルゴリズム理論、統計学各分野(機械学習の前提として)


あたりかなと思ってます*7。イメージとしては、「そもそもコーディング能力が高い」「アルゴリズム実装に習熟している」が第一義。ぶっちゃけ、学術的知識は後からでも身に付ければ良いものなので、とにかく実装がしっかりできる人材であることが重要という認識です。言い換えると、このタイプの人々は「作る(創る)」のが仕事ということです。


なお、このような事情により特に機械学習情報理論に強い関心を持っている人が多い印象です。


「アドホック分析系」とは


一方、最近になって存在感が増しつつあるのがこちらのタイプ。どちらかと言うとマーケッターやコンサルタントに多いタイプだと思いますが、オンラインで走っているシステムにデータ分析を組み込むというよりは、オフラインでデータを取り出してきてアドホックな分析を行い、そこから得られた知見に基づいてレポート・提案を行うことを主業務とする人々です。なので代表的なスキルも結構異なるイメージがあって

  • エンジニアリング:ケースバイケース(殆ど他に丸投げの人から何もかも自分で組める人まで)*8
  • プログラミング:R, Python, Ruby, その他スクリプト系言語*9
  • 学術的知識:統計学各分野、計量分析手法諸分野*10機械学習(変数重要度の推定などに多用)、最適化計画法


上記の「アルゴリズム実装系」との最大の違いは、「システムに組み込める言語よりはアドホックに手早くデータ分析を実践できる言語を好む傾向がある」「データの性質を把握するための手法に通じている」といったところでしょうか。言い換えると、このタイプの人々は「知る」のが仕事ということです。


よって強い関心を寄せる先も、どちらかというと統計学のさらに深い知識や特殊な統計手法(例えば空間統計学)であるという印象があります。


両者は好対照な存在だが、データ分析の現場としてはできれば両方とも同時に揃えておきたい人材


「アルゴリズム実装系」と「アドホック分析系」は、互いに相容れないというわけではありませんが*11、あえて言うならかなり好対照な存在であると言えると思います。


一方で色々な現場の話を見聞きしている限りでは、企業としても実は(特に)プライベートDMPが整備されていれば整備されているほど、どちらのタイプのデータサイエンティストも同時に重要になってくることが多いように感じられます。DMPがあれば、サービス側の最適化のために様々なデータサイエンスに基づくバックエンドシステムを入れていくことができるし、並行して入ってくる大量のマーケ関連データに基づいて企画立案や改善施策につながるマーケティング・コンサルティング系のデータ分析をアドホックで回すということもできるわけです。


もちろん、両者をPDCAサイクルの輪の中に入れて*12ハイスピードで回す、という考え方もあるでしょう。というか、それが今後のデータ分析活用のメインになっていくのだろうと予想しています。


おまけ


実はここで書いてる区分って、以前の記事(「データサイエンティスト」と一括りにせず、Quantitative Analyst / Engineer / Researcherの3カテゴリに分けよう)に照らし合わせると、

  • 「アルゴリズム実装系」=Quantitative Engineer
  • 「アドホック分析系」=Quantitative Analyst


とほぼ一対一対応できます。要は既出のお話だったというわけです(笑)。もっとも海外ではこの辺の切り分けが進んでいる*13一方で、日本ではまだその辺の認識は広まってないのかなぁと思ったもので、改めて書いてみた次第です。

*1:公私ともにそっち絡みの案件が物凄く多い昨今。。。

*2:一応現職での正式な職名も「データサイエンティスト」なので

*3:いやビジネス理解のないデータサイエンティストなんてただの学者さんですぜ

*4:2・3番を1番に寄らせるのは難しくないけど、1番を2・3番に寄らせるのは至難の業

*5:文末「おまけ」をお読みあれ

*6:データサイエンティストと言えば「レコメンドを作る人」みたいなイメージが強いせいかも

*7:もちろん異論が出まくるかとは思いますが

*8:中にはエンジニアリング部分は全て外注という人もいると聞いたことが

*9:あの悪名高いMatlabも入るかもですが、ここではあえて外してやりました(笑)

*10:計量経済学、計量社会学、計量○○学。。。

*11:特にアカデミックな研究者出身の人なら大抵はもう片方のスキルをそこそこは持っているもの

*12:Checkが「アドホック分析系」、Actが「アルゴリズム実装系」

*13:Google, Facebookなどデータ活用で知られるグローバル企業はかなり以前からこの分類に基づいて求人をしょっちゅうLinkedInなどに投げているんですねこれが