最終更新日:
著者のJeremie Harris氏は、データサイエンティスト志望者が職に就くまで助言を行うメンターシップ・サービスを提供するスタートアップSharpestMindsの共同設立者。同氏が英文長文記事メディアMediumに投稿した記事では、データサイエンティスト志望者が目指すべきキャリアパスについて論じられています。
現在「データサイエンス」という言葉で語られる内容は広範囲にわたる一方で、データサイエンスをビジネスに活用したい企業はそれぞれ個別的な問題を抱えています。こうした現状をふまえて、同氏はデータサイエンティスト志望者に「どんなデータサイエンティストになりたいのか」ということを第一に考えることをすすめています。というのも、漠然とデータサイエンスに関して何でも知っている人材より、企業が抱えている具体的な問題を解決する専門的なスキルを持っている人材のほうが雇用のチャンスに恵まれるからです。こう述べたうえで、同氏はデータサイエンティスト志望者が目指すべき5つの職種を解説します。その5職種とはデータエンジニア、データアナリスト、(狭義の)データサイエンティスト、機械学習エンジニア、機械学習リサーチャーです。
以上のデータサイエンティストにまつわる5職種を理解することは、データサイエンティストを雇う企業にとっても有益です。というのも、この5職種について知っていれば、企業が抱えている問題を解決するのはどの職種の人材なのかがわかるからです。例えば、新規にAIの予測モデルを導入するのであればデータアナリストが不可欠となります。
同氏が解説するデータサイエンティスト5職種が日本でも定着するかは定かではありませんが、国内AI人材市場が成熟するに伴いデータサイエンティストの職種が細分化されて、人材のマッチングが最適化されるのは充分に起こり得ることでしょう。
わたしはデータサイエンスに関するメンターシップを手がけるスタートアップで働いているのだが、メンティー(メンター対象者)に気づくと何度もあるひとつのアドバイスをしていることが分かった。もっとも、同じアドバイスを繰り返すことはわたしの望んでいることはなかった、というのが本当のところだ。
新しいライブラリーやツール、あるいは何らかのレジュメをハックすることよりも、メンティーにはまずはじめにどのような種類のデータサイエンティストになりたいかについて考えることをすすめている自分に気づいたのだ。
以上のようなことをメンティーにすすめるのにはもっともな理由がある。データサイエンスは単純なものではないし、明確に定義されている研究領域でもない。さらには、企業は総合的な言わば何でも屋的な「データサイエンティスト」を雇うのではなく、非常に専門的なスキルセットを持っている個人を雇うからだ。
企業が専門的なデータサイエンティストを雇う傾向にあることの理由を知るには、実際にデータサイエンティストを雇おうとしている企業のことを想像するとよい。こうした企業は助けを必要としている非常によく定義された問題を抱えており、その問題を解決するには非常に専門技術的なノウハウと専門的技術に関する知識が要求されている。例えばある企業は大規模なデータにシンプルなモデルを適用しようとしている一方で、ほかの企業は小規模なデータに複雑なモデルを適用することもあり、また自社が構築したモデルを急いで訓練しなければならない企業もあれば、もはや定型的なモデルを使わない企業もあるのだ。
それぞれの企業は完全に異なるスキルセットを求めているのだから、データサイエンティストは総合的であろうとすることを受け入れるようにすすめるアドバイスは極めて見当違いなのである。つまり、「Pythonの使い方や分類/回帰/クラスタリングに関するプロジェクトの構築法を学習し、学んだことを仕事に応用し始めなさい」と一般的なアドバイスをするのはナンセンスなのだ。
何でも屋的なデータサイエンティストを生み出してしまう悪しき傾向に関しては、ほかならぬデータサイエンス業界で働くわたしを含めた業界人が大いに非難されるべきでもある。わたしたち業界人は、普段の会話やブログへの投稿記事、そしてプレゼンテーションにおいてあまりにも多くの事柄を「データサイエンス」というバケツに放り込んでまとめてしまう傾向にある。製品のために頑健なデータパイプラインを構築するのは「データサイエンスの問題」である。新しい種類のニューラルネットワークを発明することも「データサイエンスの問題」なのだ、といった具合に。
以上のような傾向は由々しきことである。というのも、この傾向はデータサイエンティストが特定の問題を解決する職種に注意を向けることに失敗することを助長し、何でも屋になることをうながす原因になるからだ。誤って何でも屋になった一部のエンジニアは、もはや個別の問題に気づき解決することが難しいことになってしまっている。そして、こうしたデータサイエンスに関するゼネラリストがすでに市場に溢れかえってしまっている。
そうは言ってもデータサイエンティスト志望者がスペシャリストになるに際して、どのような職種とその職種に求められる共通した課題があるのかについてはじめに知っていなければ、ゼネラリストになることを避けることは難しいだろう。こうしたわけで、データサイエンティスト志望者がゼネラリストになることを避けるために、以下に5つの職種とその職種に求められる課題を列挙していく。これらの職種はしばしば「データサイエンス」という名のもとでひとくくりにされてしまっているものだ。
1.データエンジニア
職種の説明:この職種は、大規模なデータを取り扱う企業のためにデータパイプラインの管理を行う。データパイプラインの管理で意味しているのは、取り扱うデータを効率的に集め、データが必要になったり、クリーニングや前処理を行うときにデータ元からデータを検索できるようにすることである。
なぜこの職種が重要なのか:比較的小さい(5Gバイト未満)サイズのcsvファイルあるいはテキストファイルから構成されたデータセットを取り扱う企業にとっては、なぜデータパイプラインを構築しメンテナンスするためにフルタイムで働く人材が必要なのかを理解するのは難しいかも知れない。この職種が必要とされる理由は、次の通りいつくか理由がある。1)50Gバイトのデータセットは企業スタッフのコンピュータのRAMには収まらないので、こうした大きなサイズのデータセットをモデルに渡すには単純にコンピュータのRAMに渡すのとは異なる方法が必要となる。2)大きなサイズのデータを処理するには馬鹿げたほどの長い時間がかかりこともあり、またそうしたデータにはしばしば冗長したデータが保存されている。様々な問題を引き起こす大規模なデータストレージを管理するには専門的技術的なノウハウが求められる。
職種に要求されること:この職種が仕事で使う技術にはApache Spark、Hadoopあるいは/さらにはHiveがあり、Kafkaも求められる。この職種ではたいてい堅固なSQLを構築することが求められるだろう。
この職種が対処すべき問題は、以下のようなものである:
→「1分あたり10,000リクエストを処理するパイプラインをどのように作るか」
→「RAMにロードせずにデータセットをクリーニングできるか」
2.データアナリスト
職種の説明:この職種は、データを実行可能なビジネスのアイデアに翻訳する。この職種の人材は、しばしば技術チームとビジネス戦略チーム、あるいはセールスチームやマーケティングチームのあいだを行き来するだろう。データの可視化が日々の仕事の大部分となるだろう。
なぜこの職種が重要なのか:高い技術をもっている人材はしばしばなぜデータアナリストが重要なのか理解するのに時間がかかってしまうのだが、データアナリストは実に重要なのだ。訓練済みのモデルやテスト段階のそれ、さらには多くのユーザに関するデータのまわりにビジネス戦略を設計できるようにするためには、誰かがそうしたモデルを扱いやすいフォーマットに変換しなければならない。データアナリストは、データサイエンスチームがビジネス的価値を生み出さない問題を解決するのに無駄な時間を費やさないように助けることもある。
職種に要求されること:この職種が仕事で使う技術にはPython、SQL、Tableau、そしてExcelがある。高いコミュニケーション能力も求められるだろう。
この職種が対処すべき質問は、以下のようなものである:
→「ユーザ数が増えた要因は何か」
→「最近のユーザ利用料の値上げがユーザの離脱を招いた運営に関して、どのように説明できるのか」
3.データサイエンティスト
職種の説明:この職種はデータセットをクリーニングして探索し、ビジネス的価値をもたらす予測を行う。この職種の日々の仕事はモデルの訓練と最適化、そしてしばしばモデルを製品に実装することになるだろう。
なぜこの職種が重要なのか:人手を使って分析するには大き過ぎ、それでいて無視するには価値が大きすぎるデータの山を保有している企業は、そのデータから実行可能な知見を何らかのかたちで抽出することが求められる。このニーズに応えることが、データサイエンティストの基礎的な仕事となる。すなわち、データセットを実行可能な結論に変換するのだ。
職種に要求されること:この職種が仕事で使う技術にはPython、scikit-learn、Pandas、SQLがあり、可能であればFlask、Spark、TensorFlowあるいは/さらにはPyTorchを習得することが望ましい。一部のデータサイエンティストのポジションは純粋に技術的な問題解決に専念できるが、大多数は何らかのビジネスセンスを持っていることが求められるだろう。つまり、データサイエンティストは誰も解いていない問題を解いたらそれで終わりというわけではないのだ。
この職種が対処すべき質問は、以下のようなものである:
→「われわれのユーザは、どのくらいの種類に分けられるのか」
→「ある種類の製品がどのようなユーザに売れるか予測するモデルを構築できるか」
4.機械学習エンジニア
職種の説明:この職種の仕事は機械学習モデルを構築・最適化し、製品に実装することである。この職種の一般的な仕事は機械学習モデルをAPIやコンポーネントとして取り扱うことにある。言ってみれば、機械学習モデルを何らかの種類のフルスタックのアプリやハードウェアにプラグインすることを行うのだ。しかし、自ら機械学習モデルを設計することが求められることもあるだろう。
職種に要求されること:この職種が仕事で使う技術にはPython、Javascript、scikit-learn、 TensorFlow/PyTorch (あるいは/さらには企業向けのディーラーショップ・フレームワーク)、そしてSQLあるいは(アプリのデータベースに典型的に使われる)MongoDBがある。
この職種が対処すべき質問は、以下のようなものである:
→「Kerasで構築されたモデルをJsvascriptのアプリに統合できるか」
→「おすすめシステムにおけるおすすめを算出する処理時間と処理コストを減らすことができるか」
5.機械学習リサーチャー
職種の説明:この職種の仕事は、データサイエンスとディープラーニングにおける挑戦的な問題に関する解決法を探すことである。この職種ではお手軽な解決法ではなく、独自な解決法が求められている。
職種に要求されること:この職種が仕事で使う技術にはPython、TensorFlow/PyTorch(あるいは/さらには企業向けのディーラーショップ・フレームワーク)そして SQLがある。
この職種が対処すべき質問は、以下のようなものである:
→「どのようにすればモデルの精度を最先端のそれに近づけることができるか」
→「カスタマイズされた最適化はモデルの訓練時間を減らすのに役立つだろうか」
以上に挙げた5つの職種に関する記述は、どの職種に関しても単独で成り立つというものではないだろう。例えばスタートアップの初期段階では、データサイエンティストはデータエンジニアあるいは/さらにはデータアナリストを兼任しなければならないだろう。しかし、データサイエンスに関するほとんどの仕事は、5つの職種カテゴリーのうちのいずれかに適切に落とし込むことができるだろう。そしてスタートアップより大きな企業においては、この職種カテゴリーがより適切に適用される傾向にある。
結局のところ、データサイエンティストとして雇われるために留意すべきことは、より専門的に絞られたスキルセットを築いたほうがよい、ということである。もしデータアナリストになりたいならTensorFlowは習得しなくてもよいし、もし機械学習リサーチャーになりたいならPysparkの習得を優先すべきではない。
また、データサイエンティストになるために何を習得すべきか考える代わりに、働きたいと思っている企業が築いてきた価値とは何であるかについて考え、その企業が築いた価値を適切に市場や社会に届けようとすべきなのである。こうしたことが、ほかのどんなことより企業に雇われるという扉を開く最善の道となる。
最後にもしあなたがわたしとチャットしたいのであれば、@jeremiecharrisのツイッターアカウントにいつでもDMを送ってください!
原文
『Why you shouldn’t be a data science generalist』
著者
Jeremie Harris
翻訳
吉本幸記
編集
おざけん