データ分析・機械学習業界で生き残るということ
GW明け、以下のようなnote記事およびツイートが目についた。
ざっくりまとめると、この業界・分野でどのように自らのキャリアを築いていくか、という話になる。
僕自身はデータサイエンティストという肩書きを持ち、かつデータ分析・機械学習関連のユーザーをtwitterでフォローしている。そのため、このような記事やツイートが目につくのは当たり前といえば当たり前だが、特に最近この界隈のキャリアについての言説は増えているように思える。
キャリアへの不安・迷い・焦りの原因
キャリアについての不安や迷いや焦り、今後どのようなスキルを身につけるべきか、というのはこの界隈のみならず一般的だろう。しかし、他のIT業界のいわゆる バックエンド*1 や フロントエンド*2 のエンジニアからはそこまでキャリアに関する話を聞かない。
これは単にこの分野がまだ新しく未成熟なため、キャリア目標にするロールモデルがいない、というのが一つの理由と思われる。
また、以下のような職種がある(とされている)ため分かりづらいということもある(※各企業によっては各職種の定義や役割が異なったり、一人で掛け持ちしているということは往々にしてある)
・データアナリスト
・データサイエンティスト
・データエンジニア
・機械学習エンジニア
しかし、それ以上に多くの人が気付いていることだが、この機械学習・AIバブルがいつ終わるか、という恐れがこのキャリア不安になっているのはまず間違いない。
多くの日本企業にデータ分析や機械学習は必要ない
以下のブログ記事でTJO氏*3 が指摘しているように、「データ分析の効果は『掛け算』」とされている。
データ分析の効果というのは一般には「売上プラス1億円」とかではなく「売上1%アップ」という感じになりやすい、ということです。すると当然ながら、毎月の売上高が100万円の小さな事業ではデータ分析の効果は1万円アップにしかならないわけですが、これが毎月の売上高100億円の大きな事業なら1億円アップになるというわけです。
つまり、ある分析や機械学習のシステムによって改善したとしても、そのインパクトを保証するにはそのビジネスもしくはサービスのスケール規模が十分に大きいことが大前提となる。
逆に言えば、規模が小さい場合にはその分析や機械学習によるリターンよりも、それに関わった人の人件費のコストの方が高くなってしまう。
これを考慮すると、多くの日本企業ではデータサイエンティストなどの人材を採用できたとしても、そのビジネスに想定通りのインパクトを与えることは難しい。
一方、それ以外のバックエンドやフロントエンドのエンジニアが開発・構築するシステムほぼ想定内のインパクトを与えることができ、今後もその需要が大きく変わることはない(と信じられている)ため、キャリア不安は小さいと考えられる。
また、特に機械学習周りのツールやサービスの整備はかなり速く、GoogleやMicrosoft、AmazonやIBMなどの大企業が注力しており、データ分析や機械学習に関するプロセスが効率化・自動化されていくことも予想されている。このような状況では少数の データ系人材*4 がそれらのツールを用いるのが最もコストパフォーマンスがよいため、余計に需要が減る可能性はある。
コンサル系統かエンジニア系統のデータ人材か
前述したようにデータ系人材はさまざまな職種に分かれるが、今回読んだnote記事に書いてあるように実際には大抵2種類に分けられ、この記事の主題の一つがどちらのキャリアパスに進むかという話だ。
・コンサル系
・エンジニア系
すでにこの業界に身を置くと決めている、もしくは身を置いている人にとって、どちらに進むかというのは大きい決断になる。
それぞれのキャリア系統を、簡単に説明してみよう。
コンサル系
データからそのビジネスの課題を解決したり、サービス改善の意思決定に関わる分析をする人。統計やSQLの知識があることは当然として、加えてビジネスの知見や、マーケティングやグロースハックのスキルを持っていることが多い。また、レポートやダッシュボードなどの作成・開発作業を行う。
エンジニア系
データ分析や機械学習に必要なデータを収集し、蓄積する基盤を開発したり、機械学習のモデルを構築したりする人。基本的にはバックエンドエンジニアと同等以上のスキルを持ち、加えて機械学習周りの知識やスキルを持っている。元々バックエンドエンジニアの人が機械学習周りを勉強したパターンが多い(筆者調べ)。
結論としては、前述のnote記事の作者もTJO氏も言っているが、エンジニアリングスキルをつけておいた方が将来的に食いっぱぐれないと考えている節がある。
僕自身は元々バックエンドエンジニアで機械学習周りを勉強したパターンなのでエンジニア系統になる訳だが、確かにエンジニアリングスキルがあるとすでに持っているスキルや知識が他企業でもそのまま通用することが多いので転職しやすいと思われる。また、単純に自分が作りたいものを作れるのは楽しい(作りたいものを作れるのが楽しいのは当たり前だ)。
個人的には、もし興味があるならエンジニアリングを新たに学習するのはよいと思っている。以下の書籍によると、現代人は医療の発達により100〜120歳と長生きする可能性は高い。だとすればその100年のうち数年を費やしても十分元を取れるのではないだろうか。
データ × ○○という戦略
別の戦略でいうと、何かしら データ × ○○ を作るということが重要そうだ。この〇〇はUXデザインのようなスキルでもいいし、経済のような専門知識でも当てはまる(以下の記事がとても素晴らしい)。
未来への不確実性に対応するための戦略
IT関連の技術の進歩は目まぐるしく、Windows 95をパソコンとして初めて触ったときから環境は大きく変わってしまった。自動運転も現実のものになるらしい。
そんな状況で未来がどうなるか分かるはずない。リスペクトする文芸評論家の 石川忠司*5 の言葉を借りると、不確実性に対応する選択肢は二つある。
不確定なシチュエーションに対処していく道は二つある。単位を極端に大きくして長期的に未来を予測するか。単位を極端に小さくして目先の切実な問題をクリアしていくか。
つまり、マクロに10年とか20年で考えるか、もしくはミクロに1ヶ月とかせいぜい1年とかで考えるかなのだが、たかが一個人にマクロな視点が持てるはずもなく、近視眼的に一日一日を毎回右往左往するしかないに決まっている。
僕自身の戦略
元々バックエンドエンジニアとしての経験が長く、+αとしてデータ分析や機械学習をつまみ食いしてきた。今後もエンジニアリングメインでやっていく気がする。
理由としては以下の通りだが、特に深い訳はない。
・楽しいから
・自分の性に合っている
・知り合いが多くて勉強しやすい
具体的には、最近はデータエンジニア的に GCP*6 や Go*7 などでデータ分析基盤の構築をしているので、機械学習システムを0から開発・構築するようなエンジニアになっていきたいと思っている。個人的には言語や翻訳関連に興味があるので、加えて 自然言語処理*8 などもやるかもしれない。できれば博士号など取れれば今後面白いかもしれないと思っている。
注釈
・*1 バックエンドエンジニア: 簡単にいうと、あるシステムでデータを入れたり出したりするエンジニアのこと。
・*2 フロントエンドエンジニア: 簡単にいうと、あるシステムで画面に何かを表示したりするエンジニアのこと。
・*3 TJO氏: データサイエンティストといえば多くの人が思い浮かべ、統計やデータ分析周りで調べると、だいたいTJO氏のブログに行き着く。「〇〇で働くデータサイエンティスト」と、場所によってブログ名を変えることで有名。もちろん、twitterもフォロー推奨。
・*4 データ系人材: データ分析や機械学習に関わる職種の人たち。本当にこのように呼称するかは分からない。
・*5 石川忠司: ジャズとロックを聴く評論家。文芸評論家と名乗っているが一般的な評論と違い、評論対象の小説より評論内容の方が面白くなる傾向にある。引用した部分は赤坂真理という日本現代文学の作家だが、ちなみに僕はこの作家をテーマに大学で卒論を書いた。
・*6 GCP: Googleが出しているクラウドサービス。クラウドというのはどこか遠くにあるたくさんのパソコン群のこと。
・*7 Go: Googleが開発したプログラミング言語。この名前の検索しづらさは有名で、検索サービスであるGoogleのネーミングセンスが秀逸であることがわかる。
・*8 自然言語処理: プログラミング言語に対して、自然言語というのは普段人間が使用している日本語や英語などのこと。それらを扱う機械学習の技術で、自動翻訳やメールのスパムフィルターなどで活用されている。