2018年10月30日『データサイエンティスト養成読本 ビジネス活用編』の発売を記念して、「仕事ではじめる機械学習」の共著者としてもおなじみの中山心太氏(ところてん)に、データ分析業界に突如として現れたイキリデータサイエンティストのマスクド・アナライズ氏(マスクド)がデータ分析者の未来について聞きました。
マスクド:中山さんの経歴についてはじめにお伺いして良いでしょうか。
ところてん:私の経歴はいろいろと転々としていて、もともとは情報セキュリティの研究者をやっていました。そこからクラウド部門に移動しました。その後ソーシャルゲーム会社に転職し、技術支援部門的なところでインフラや集計等を行っているうちに、データ分析の仕事をメインに行うようになりました。リリース前のゲームのパラメータ設計を担当するうちに、企画そのものをやり始め、最終的にはゲームディレクターとして働いていました。
そのあとはECのマーケティング会社に入り、機械学習や商品設計などを行っていました。最近は独立して自社サービスを開発する傍ら、外部の会社で機械学習顧問やゲームディレクター、コンサルタントとして働いています。
私はデータサイエンティストというよりも、コンサルティングから入って、シナリオを出して、そこからデータ分析を始めるという働き方をしています。そのため、サイエンティストというよりは、ビジネスや企画寄りのタイプです。
ところてん:そういえばマスクドアナライズさんは、この業界にどういう入り方をされたんですか?
マスクド:私はデータサイエンティストというわけではなく、AIなどを手がけるITベンチャーで働いています。元々はIT業界にいて、いろいろあって今の会社に所属しました。職種的には営業とか広報とかコンサルタントみたいな感じです。いろいろなお客様からデータ利活用の相談を受ける中で思ったことや、他のメンバーの仕事ぶりや悩みから、Twitterで情報発信するようになりました。
ところてん:データ分析に興味・関心がいったのはどういうところがきっかけでしょうか。
マスクド:前職で営業活動において効率的にどのお客さんにアプローチすれば売上が上げるかという業務をしていました。闇雲にあたるのではなくて、どのお客さんに当たればいいのかという業務です。今の会社に転職したときは、ビッグデータがブームで、徐々にデータ分析などの依頼が増えてきた頃でした。ちょうど社長がそういったツールや事業を考えてたんです。会社がまだ設立間もないときに見付けて、たまたま入社できた形ですね。
高度な分析がしたければ大きい企業に行きなさい!
マスクド:こういう仕事をしているとよく聞かれるのは、学生さんから「学生のときに何をやった方がいいですか」という質問です。
ところてん:ありますね。
たとえば、私の場合はちゃんとSQLの書き方を身に付けたのって、会社に入ってからなんです。学生の頃にSQLの勉強をしてみたんですが、テストデータで勉強しても何も面白くないんですよね。これとこれをjoinしてこれが出てきます、とか言われてそれがなんの意味あるんだって。
でも実際に会社に入ってからSQLをさわり始めると、生データと業務プロセスを通じてデータ構造を理解できたため、何のためにこの処理をやってるのかすごい勢いで理解が進みました。今、データサイエンスをやってる学生さんって何のためにこれやってんの? っていうのが割と多いんじゃないかなって気はしていますね。
そのため、学会や企業が提供するサンプルデータセットで遊ぶだけでなく、インターンやアルバイトで企業に入ってみて、現実の汚いデータや、運用のための仕組みを一度見てみると、何のために勉強しているのかが、スッとつながるのではないかと思います。
実際に企業に入った新卒を見ていて、これは良くないなって思ったのは、研究室ですごい高度な分析を勉強していたから、それをそのまま会社でも使いたいです、というタイプです。会社に入って難しい分析を何ヵ月やっても結果が出ない、みたいな。
マスクド:アカデミック出身者がハマる罠という感じがします。
ところてん:データサイエンスは、アカデミアと非常にビジネスが近い業界という認識になっていることを鵜呑みにして、最先端の分析をやろうとしてしまう例は非常に多いですね。たとえば、最新の手法で0.1%改善しますって言ったときに、じゃあその0.1%ってビジネスで言うといくらだよっていう話なんです。もともとの売上規模が1千億だったら、0.1%って1億円なわけでそれってめちゃくちゃものすごい価値があるので、意味があります。1億円のビジネスだったら0.1%っていくらかって話です。10万ですよね。これはやる価値がありません。高度な分析でパフォーマンス出したいなら大きい会社行くのをお勧めします。
とはいえ、大きい会社ほどデータ分析に対する理解が薄かったり、会社の壁が厚かったりするので、入社したからといって高度な分析がいきなりできるわけではないのが難しいところですが。
マスクド:大きい会社というか古い会社はそうだと思いますね。
ところてん:大きい規模で高度な分析が実現できれば、それは良いと思います。高度な手法が試してみたい学生は、1千億の売上がある企業をリストアップしたらいいんですよ。そうすれば、自分が研究している最先端のアルゴリズムで0.1%改善できますって言ったらそこの会社だったら価値が出ます。逆に売り上げが1億円の会社でそういう人が入ってきても価値を出せないんです。
今データサイエンスやってる人たちが考えなくてはいけないのは、データサイエンスはレバレッジが非常に効くがゆえに、レバレッジの元手となる売上が小さい会社では役に立たない、というところですね。
マスクド:小さい会社からもオファーは来るんですけども、PoC(実証実験)でも数百万円かかるので、試して効果があるかは重要だと思います。やっぱりクライアントは一部上場クラスのような規模感が目安になりますね。メーカーさんでも半導体みたいな利益率が高く歩留まりが悪い製品などは、挑戦する価値があると思います。一方でこのように考えると、データサイエンティストが活躍できる場は結構狭いような感じがしますね。
ところてん:そうですね、人材にかかるコストとなおかつ莫大なマシンリソース、それを投入しても売上が伸びる状況じゃないとデータサイエンスはなかなか役に立ちません。
しかし、データサイエンス以外の業務までできると全然話が変わってくると思います。私の場合は企画屋さんとして仕事をさせてもらってるケースもあって、そもそもの企画時点からレバレッジを効かせてビジネスを進めて、最後にデータサイエンスで修正していくというやり方を今やらせてもらっています。
途中から入ってデータサイエンスで売上伸ばしてくださいって案件はつらいですね。月商がこれぐらいで、何%伸びても、うーんっていうところですね。
マスクド:ほかに、学生さんがやっておきたいことっていうのはありますか。
ところてん:先ほど言ったように、インターンに行きなさいとは言いたいけど、インターンで労働力を搾取されるのもなぁってあるんですよ。インターンに行くと、現場の汚いデータをいっぱい見せてもらえるんですね。ただ純粋な労働力として見られてしまうので、それって労働力のダンピングだよねって思うところもあって、だいぶ心苦しいなって。
また、プログラミングや基礎技術のラインを越えていないと、インターンに行ってもデータサイエンスは勉強できないと思います。インターンに行ってもプログラミングの基礎を勉強して終わりました、みたいなことになってしまいます。腕に自信がある人はいいですが、そうじゃない人が応募すると、結構ツライことになるんじゃないですかね。
データ分析者の育成について
マスクド:データ分析はいろいろなスキルや経験が求められるので、未熟なままインターンを経験しても、得るものは少ないですよね。そう考えると、データサイエンティストの育成方法が重要かと思います。この点についてお伺いします。
ところてん:育成について考えると、データ分析の業務プロセスは広いので、1人で全部やるのは超人しか無理ですね。かといって、それぞれの会社において得意不得意もあるので、そこにうまく当てはまるスキルを事前に身につけるというのも難しいですね。
マスクド:なるほど。
ところてん:前提として、私の場合はフリーランスみたいな状態で働いているので、業務プロセスの責任範囲を細かく分けています。これには自分の責任範囲をある程度絞りたい意図がありますし、相手の会社に何をしてもらいたいのか、というのを明確にして、先方を動きやすくするという意図があります。
また、一緒に仕事をしているような企業は、インフラエンジニアだったりアプリケーションエンジニアだったり、必要な人材が揃っていることが多いです。そういうところに私が呼ばれていって、相手の会社のメンバーと共同でデータ分析を行うことになります。
たとえば、お手伝いさせていただいているReproさんでは、機械学習のPoC回りをメインでやらせていただいており、論文調査、他社事例調査、Reproさんの環境に合わせた特徴量の設計、機械学習モデルの実装と評価、効果検証といったあたりは私が行っています。一方で本番環境への投入のためのプロダクションコードの作成や、安定運用については、Repro側の社員の方に依頼しています。
私自身としては、データ分析の業務プロセスのすべてができているわけではありませんが、相手の会社と適切に協力することで、データ分析業務ができています。
マスクド:社内で育成する場合はどうでしょうか。
ところてん:社内で育成する場合ですが、インフラもできるコードも書けるけどデータ分析はまだちょっとっていう人や、業務サポート系からから統計を学んで分析をはじめましたみたいな人だったりとか、いろいろなタイプの人がいると思います。そこは社内の人材アセットがどうなっているのか次第で、チーム編成は変わってくると思います。どんなチームを作っていくかということを視点に考えるのが良いのではないでしょうか。
マスクド:足りないところを埋めていくような体制がとれると、我々としてもありがたいですよね。いきなり全部の工程をお任せっていうのは難しいです。
ところてん:そうなんです。全部お任せで会社の業務プロセスの修正からやってくれよって、いえいえ、それコンサルとかそれ社長の仕事でしょって事例、けっこうあるんですよね。育成については、まず社内のアセットを整理をして、そこから足りないピースを外注してから、社内で育成するのが良いのかと思います。ただし、社内で育成するのは時間がかかります。
マスクド:社内で一から育成するためには、データサイエンスの基礎力があれば良いのでしょうか。中山さんの場合はどうだったのでしょうか。
ところてん:私の場合は、データサイエンスから入っているわけではなくて、企画屋さんからこの業界に入りました。
私は新しいことをやりたい、という思いが非常に強く、そのためには自分でコードを書くしかないと考えていて、企画屋兼プログラマをずっと続けてきました。企画を実現するために使えるリソースが自分しかないから、自分が仕方なくコードを書く、という感じですね。なので、根っこは企画屋だと思っています。そのため、データ分析の前工程の企画の話と、後工程のプログラミングの話の両方が理解できているデータ分析者として重宝されていると感じています。
逆にデータサイエンスだけやってきた人は、前工程の企画の話と後工程のアプリケーション運用の話の両方がちゃんとできるひとが少ないという感覚を受けます。そのため、突き抜けた分析力も大事ですが、最終的に会社に利益をもたらすためには、前後のプロセスの理解が必要になってくると思います。
最近考えているのは、エンジニアをデータ分析者に転向させるには、いちどマーケティング部門を経由することで、うまくいくのではないか、と考えています。これは今回の書籍に書いた話ですが、エンジニアとデータ分析者のメンタルモデルが大きく異なるため、直接転向させようとすると高確率で失敗します。そのため、一度マーケティング部門でCPAやLTV、効果測定の方法等の価値観を学ぶことで、メンタルモデルの違いを克服できるのではないかと考えています。
表 データサイエンティストとエンジニアのメンタルモデル
| データサイエンティストのメンタルモデル | エンジニアのメンタルモデル |
仕事のスタイル | 確率、実験、やってみないとわからない | 抜けもれなく、バグがなく、QCD(Quality, Cost, Delivery) |
ビジネスの考え方 | 確率をベースにビジネスを考える | 完璧をベースにビジネスを考える |
主に利用するプログラミング言語 | PythonやRといったデータ分析が行いやすい言語を好む | RubyやJavaScript、Javaなどのサービス開発が行いやすい言語を好む |
コードの管理面 | JupyterやRStudioなどで実験コードを書き捨て | 単体テスト、結合テストをCIで回す |
仕事の管理方法 | 数値で計測することが仕事の一部だが、仕事自体を数値で計測できることが少ない(試行錯誤を繰り返すので、どの品質のものがどれくらいでできるかわからない) | 仕事自体を数値でできることが多い(バグの量、納期、品質、ダウンタイム、サーバコストなど) |
マスクド:転職などを経て、さまざまな経験を積まれたという印象を受けます。ここにメリットはあるのでしょうか?
ところてん:結局いろいろな会社を見てまわると、業種が近いと似たような問題が見えてきます。以前、半導体系のメーカーと仕事をした時期があったんですが、そうすると工場のしくみがわかって、工場のしくみがわかると今度は物流の話にも知識が必要にもなって、と。いろいろな仕事の経験値が横に広がっていくと、これとこれが一緒だよねという範囲がどんどん広がっていくんですよ。そうするととりあえず新規の案件がきても、なるほどこういう構造になってて、こういう感じなのねっ、というのを一瞬でとらえらることができるようになります。
業務知識は特別ではない
マスクド:いわゆる業務知識的なところですね。
ところてん:そうですね、みんな業務知識はすごい特殊だって言うんですけど、特殊なわけがないんですよ。業務知識は特殊ではないっていうのを知って欲しいです。経営学者のC・N・パーキンソンは「コンサルタントはミツバチである」と言っています。ある会社からある会社に知識を移動させていくのがミツバチであると。
コンサルティングは実はすごい簡単なんですよ。複数の会社を見比べて、その会社ができていない箇所を見つけて、他社と比較してどのようにすればできるかを考えてあげればいいんです。世の中の多くのコンサルタントと同様に、私がやってる仕事って大体そういうマイナスをゼロにする仕事です。
「我々は特殊だから、我々はこういう会社でこういう制約条件があって大変だ」って言うんですけど、私が外部から行くと「別にこれはあそこの会社と一緒ですよ。あそこの会社でやっていることをあなたの会社に合わせてカスタマイズしてやってみましょう」って話をするんです。そうすると比較的簡単に終わります。業務知識が特殊だからと言って思考停止している人がすごく多いと思います。
『エンジニアの知的生産術――効率的に学び、整理し、アウトプットする』(西尾泰和, 2018, 技術評論社)で書かれている話とかもそうなんですけど、1つ上のメタの知識を持っていれば、個別の案件も一緒のことが見えてくるんです。1つの案件だけを見てしまうと、そのメタな知識は得られないですが、2つ3つといろいろな業界を見ていくと、共通するところだねっていうのが見えてきます。それをベースに考えていくと、新しい業界で話すときも理解が得やすいことがありますね。
マスクド:1つの仕事とか会社に所属したことがないとその視点は身につきませんね。そういったところを埋めていくのがコンサルタントの仕事なのかなと思います。
データサイエンスは総合格闘技
マスクド:人材育成の話から、コンサルタントに必要なのがメタな知識が必要という流れになりました。そうなると、スキルを持った人間を揃えればデータ分析ができるのでしょうか。
ところてん:まず、データ分析に取り組むチームに、組織を動かす/変更できる人がいないと、こういったデータ分析案件は頓挫しますね。データ分析チームを作ったはいいものの、実際に足りない人材リソースがあって前に進めないことが多々あります。今回の書籍でも書きましたが、データ分析チームはデータ分析者だけがいれば回るわけではありません。データインフラを管理するエンジニアであったりとか、現場のアプリケーションに組み込むエンジニアとか。そもそも相手方の理解が必要です。
表 各プロセスと必要な人材
プロセス | コンサルタント | データサイエンティスト | アプリケーションエンジニア | データインフラエンジニア |
1. 自社の事業分析 | ○ | | | |
2. 改善箇所の特定と費用対効果の検討 | ○ | | | |
3. 現在取れているデータの収集と問題の定義 | ○ | ○ | ○ | |
4. 本番への試験投入 | | ○ | ○ | |
5. データ収集基盤の構築 | | ○ | | ○ |
6. 機械学習のチューニング | | ○ | | ○ |
7. 運用のための各種システム構築 | | ○ | ○ | ○ |
8. 本番投入 | | | ○ | ○ |
少なくともこちらの話している言葉を理解してもらえないと一緒にお仕事することは極めて厳しいですし、機械学習の精度がどれぐらい出るかわからない話に対して、それを認めてくれないとスタートラインに立てません。
マスクド:誰がやるかとか、誰の責任か、という感じには聞こえませんね。
ところてん:そもそもデータサイエンスは個々のスキルじゃなくて、総合力でバリューが出るという世界になってきています。じゃあその総合力をどうやって出していこうかということになると思います。
マスクド:総合格闘技みたいなところありますよね、色んなスキルや人物を組み合わせて。
ところてん:今回の本はまさに総合格闘技の話なんですよ。
マスクド:そうですね。データを取るだけでも、データ分析者は現場とのコミュニケーションスキルが必要ですよね。以前イベントで聞いたのですが、メルカリさんやサイバーエージェントさんでも、偉い人を説得するためにデータ分析がどれだけ効果があるか立証するそうです。そうやって、データ分析チームに予算や権限を付けてもらう。そのためには、人を動かすスキルが必要になりますね。そこはやっぱり技術力とは違う分野になってきます。技術が劣っていても、そういったスキルで多少カバーできるとか、Aさんがメインだけど、苦手な部分はBさんが補うとか。それができるのは組織の強味だと思いますし、最後は結局人なんですね。