データサイエンティストの定義は?必要スキルは?現役データエンジニア/アナリストと考えた結論
需要が高まるデータサイエンティストというロールですが、業務の定義や、必要スキルは一体どのようなものでしょうか。3名のデータエンジニア/アナリストに実践から得た答えを聞きました。
- データエンジニアとデータアナリストの違い
- 分析と実装。データサイエンティストに求められる要件
- 数学の素養が重要。技術は仕事で身につけられる!
- データエンジニア/アナリストが考える必要なスキルセット
- データアナリスト・データエンジニアにとっての「事業貢献」
「データサイエンティスト」という肩書を耳にすることが増えています。 データの蓄積はとどまるところを知らず、さらにビジネスにおけるデータの重要度が増し続ける現在、同職が同じく重要になっていることは想像に難くないでしょう。
反面、データサイエンティストが現場で何をしているかは、なかなかイメージできません。果たして、現場のデータサイエンティスト、何を読み解き、そこから何を生み出しているのでしょうか。
今回はWeb系の企業に勤める3名の若手データエンジニア・データアナリストに集まってもらい、データサイエンティスト、データを取り扱うエンジニアが現場でどのような仕事をしているか、どんな職業なのか、どのようにして事業に貢献し価値を生み出しているのか。そしてデータサイエンスのためのスキルセットをいかにして獲得するか、などデータサイエンティストを志す方が気になる部分を語っていただきました。

- LINE株式会社 LINE Data Labs
データアナリスト 丸尾大貴(写真左) - 東京大学大学院情報理工学系研究科電子情報学専攻修了。NTTデータを経て、2016年10月、LINEに入社。現在は、データ分析技術を使って、LINEの各種サービスにおける意志決定の改善に携わっている。
- クックパッド株式会社 研究開発部 機械学習グループ
データエンジニア 染谷悠一郎(写真中) - 東京工業大学大学院で情報工学を学び、2016年4月、クックパッドに入社。同年7月に発足した研究開発部に配属され、機械学習基盤の効率化に加え、研究成果をプロダクトに実装する業務にも従事。
- 株式会社Gunosy 開発本部データ分析部
データエンジニア 米田 武(写真右) - 大阪大学院理学研究科数学専攻を修了し、2017年4月、Gunosyにロジックエンジニアとして入社。「グノシー」や「ニュースパス」に用いられるニュース推薦アルゴリズムの開発・実装を担当。
データエンジニアとデータアナリストの違い

——いわゆる「データサイエンティスト」と呼ばれることが多いとうかがっています。ますはじめに、どんな業務を担当されているかを教えてください。
米田 僕はGunosyのロジックチームに在籍し、推薦アルゴリズムの改善に携わっています。データも扱えば、推薦システムのバックエンドなどサーバエンジニアがやるような仕事にも取り組みますが、経営者層や事業部トップの意思決定に関わるようなデータを集めたり、分析したりする業務には関わっていません。
ロジックチームは組織横断的な職種ですが、データ分析やレポーティングは、GunosyやLUCRA(女性向けトレンド情報提供アプリ)など、それぞれのプロダクト専属のアナリストが担当しています。
染谷 だとするとロジックチームは実装を担当し、プロダクトを改善する際の根拠となるデータは、アナリストの分析レポートがもとになるわけですか?
米田 ABテストの集計などでアナリストにサポートしてもらうことはありますが、基本的にはロジックチームは独立して動いていて、推薦アルゴリズムの改善の根拠となるデータもチーム内で収集・分析しています。僕たちのチームが意思決定をサポートするために動くことはほとんどないので、アナリストとは全く違う分野の仕事と言っていいかもしれません。
染谷 うちも同じだな。僕が所属している研究開発部の機械学習グループも、アプリケーションへの機械学習の実装や、研究開発部で行われる実験を効率化するための仕組みづくりがメインの業務です。分析は各事業部が必要に応じて行なっています。
例えば僕のチームの取り組みの中に、料理写真を分類するため機械学習のモデルの精度を高めたり、分類できる料理の種類を増やすという課題があります。しかし、モデルの精度を高めるという仕事がサービス開発全体が追いかけているKPIにどれだけ貢献しているか、判然としないという感覚があるのは確かです。ただ僕自身は、ユーザーに「こういうサービスや機能を届けたい」というアイデアと実現の間を埋める手段として、機械学習を活用しているのだと理解して取り組んでいます。
——なるほど。お二人の場合、データ分析よりも「分析基盤を実装する」という業務が中心になっているのですね。丸尾さんは「データアナリスト」とのことで、分析そのものを中心に担当されているのでしょうか。
丸尾 私はABテストを設計したり、経営判断のための指標数字を考えたりしています。統計学や機械学習という手法を使って、意志決定を支えるコンサルティングをしている、というのが実態に近いでしょうか。
日々、数字そのものを見てJupyter Notebookと向き合っている時間が長いので、推薦アルゴリズムの改善といった、もの作りは、自分の業務とはかなり異なる印象があります。
分析と実装。データサイエンティストに求められる要件

——ここまでデータエンジニア、データアナリストのお仕事の内容をうかがってきました。それでは「データサイエンティスト」の定義はどう考えられていますか?
丸尾 データサイエンティストは2種類あると考えています。1つが機械学習エンジニアで、サービスに機械学習を用いた機能を実装するのが役割です。もう1つがデータアナリスト、意思決定の精度を上げるためのレポーティングを受け持ちます。
データサイエンティストという言葉そのものは2010年ごろから言われ始めましたが、その頃は今で言うデータアナリストとデータエンジニアが一緒くたになっていたと思います。今ではデータサイエンティストとエンジニアは違う、と考えるエンジニアが多いと感じます。
言葉が流行りだした当時のイメージが未だに残り、「データサイエンティスト」としてひとまとめにされている印象はありますね。

染谷 僕自身がデータエンジニアなので、データエンジニアについて言うと、データを利用したアプリケーションを開発するエンジニアがデータエンジニア。機能的には機械学習エンジニアや検索エンジニアなどが含まれていると認識しています。
米田 僕の定義もデータアナリストの使命は統計学・機械学習を駆使してデータを活用し事業貢献することだと思います。それに対してデータエンジニアは、機械学習・統計学のみならず、基本的なWebエンジニアリングの知識やコンピュータサイエンスの知識を用いサービスにデータを活用した機能を導入することが使命だと思っています。
丸尾 小さいサイズの組織では分析と実装を同じ職責にしているところもあるようですが、まるでスーパーマンですよね。実装と分析では求められるスキルも違うから、専門のロールがあったほうが個々の能力を上手く生かせるように思います。
染谷 見るべき数値や、有効な差を見いだせるサンプルサイズといった部分は、本来はアナリストの方に任せるべきでしょう。とはいえある程度、組織が大きくないと分離しにくいロールだと思います。
米田 一時期僕は、ロジック作りとA/Bテストの設計を自分ひとりでやってましたけど、分析にはかなり手間取りましたね。僕はものづくりが好きなので、テストの集計や、「統計的に有意な差があるか」を見ていくことに対しては、あまりモチベーションが湧かないです。
データアナリストもデータエンジニアも得意とする領域が違うので、本来は分業すべきなのは確かだと思います。
染谷 データエンジニアの立場からすると、データアナリストには、不確定な状態下でも根拠を持って方向性を打ち出してくれる存在だと思っています。
米田 それは分かります。
数学の素養が重要。技術は仕事で身につけられる!
——みなさん、どのようにデータエンジニアやアナリストのスキルを身につけていったのですか?
丸尾 今の仕事を選んだ経緯を話すと、学生時代は物理専攻で、機械学習を学んでいたわけではないんです。修論で量子情報の実験のお手伝いと理論をやっていたときも、実験やシミュレーションの結果を分析する瞬間が一番楽しかったので、データ分析を仕事にしようと思ったんです。
物理と機械学習はどちらも数学を使いますし、データ分析も研究も問題定義、仮説立案、仮説立証、のプロセスはよく似ているので障壁も大きくなかった。流行りもの好きということもあって、機械学習を用いたデータ分析の仕事をやろうと考えてSIerの研究部門に新卒で就職するつもりでした。しかし別の部署に配属されてしまい、データサイエンスの仕事ができる環境を求めて半年で退職しています。
米田 大学・大学院では純粋数学を専攻していて、卒業後も何かしら数学に関わる仕事をしたいと考えていました。そこで個人的に機械学習、とくに理論部分を学んでいきました。独学を進めるうちに応用数学にのめり込んで、Twitter(@mathetake)やブログで発信するようになりました。
その発信の結果として、卒業直前にGunosyと縁があり入社したのですが、元々情報系ではなかったのでエンジニアリングがそこまでできなかったんです。
最初の頃は、とにかく分からなかったことをその日のうちにメモして、土日のうちに全部勉強してというのを繰り返していましたね。今でも分からないことがあったら、同じようにして調べて学ぶ。知識がついてくると、優秀なエンジニアとも話がかみ合うようになってきて自信もついてくるので、当時はそれが学習のモチベーションになっていましたね。
染谷 自分はコンピュータサイエンスを学んでいたものの、学部の4年生の時に研究室に入ってみると、周りのしゃべってることが何も分からない。昼食の時に聞こえた単語を拾ってあとで調べていたのをいま思い出しました(笑)。大学時代にCourseraのMachine Learningコースは一通り終えましたが、機械学習を専攻していたわけではなく、開発基盤やDevOpsに興味を持っていたくらいです。
——学生時代に機械学習を専攻されていたわけではないんですね。
米田 確かに、3人とも機械学習は学んでいないですね。でもデータエンジニアやアナリスト、サイエンティストを目指すなら、数式を読めるといった素養がないと難しいかなという気はします。僕の同僚も、全員が理系の修士以上で、数学的素養をある程度は持っています。
染谷 僕も業務でそこまで複雑なモデルを組むわけじゃないですけど、データサイエンスの全体図を把握する上では、論文をシュッと読めるっていうのは結構重要かもしれません。
米田 確かに。実現可能性を見極める力は、日常的に論文を読んでいないと身につきませんからね。
現役データエンジニア/データアナリストのオススメ論文
【丸尾さん推薦】Inferring causal impact using Bayesian structural time-series models
ベイズ統計学に基づいてキャンペーンを打たなかった時どのようにKPIが推移していたかを推測し、実際の時系列との差分を計算することによって、キャンペーン効果を測定する手法を提案している。このような考え方(反実仮想/counterfactual)をベイズ統計学に基づいて実現するアイデアと、分析での使いやすさが非常に優れた論文だと思います。(丸尾)
【染谷さん推薦】Exploring the Limits of Weakly Supervised Pretraining
Instagramのハッシュタグを利用した大規模な弱教師あり学習(ノイズが含まれていたり、教師あり学習)を行うことで、転移学習において優れた性能を持つモデルが学習出来ることを示しました。画像認識に用いるデータセットについて、ラベルの質を敢えて犠牲にしてその量を増やすことでより有用なデータセットを構築できるという可能性を示したという点で優れた論文だと思います。(染谷)
【米田さん推薦】DIZK: A Distributed Zero Knowledge Proof System
データサイエンスというよりはどちらかというと暗号学の論文です。 信頼できない計算リソースに対して計算のアウトソースをした際に、その結果の正当性を検証するためのフレームワークとして用いることが出来るゼロ知識証明(または検証可能計算)についての論文。この論文で初めてその計算リソースの提供サイドの処理の並列化の仕組みが提案されただけでなく、その機械学習モデルの応用に関する実験もある。(米田)
丸尾 数学はできてもエンジニアリング経験が乏しい、という人にはどうアドバイスしますか?
染谷 どういうロールにつきたいかで変わると思いますが、仕事で覚えるのが一番じゃないかと思います。
丸尾 アナリストで入って、少しずつエンジニアリングのタスクを振ってもらうとか?今ならインターンにいくのもいいでしょうし。
染谷 そうですね。インターンを願い出れば受け止めてくれる会社は多いと思います。仕事として取り組んでみると何を学ぶべきかはっきり分かってきますから。僕もアルバイトを始めてから、エンジニアで学ぶべきことはこういうことなんだなあ、とやっと分かりました。

米田 仕事で学ぶのが一番早いです。学生が1人で「どうすればいいか分からない」と悩むくらいなら、少し虚勢を張ってでも良い環境に飛び込むほうが絶対いい。もちろんどんな会社でも、優秀なエンジニアが来れば嬉しいでしょうけど、めちゃめちゃプログラミングができる人じゃなきゃダメっていうことはないですからね。分かっている人がいる環境に身を置くのは有効な手段だと思います。
データエンジニア/アナリストが考える必要なスキルセット
続きをお読みいただけます(無料)。

- すべての過去記事を読める
- 過去のウェビナー動画を
視聴できる - 企業やエージェントから
スカウトが届く