AutoMLとか機械学習の自動化が進むとデータサイエンティストの言葉の定義によっては大半は不要になるかもしれないけれど不要になることは絶対ない

言いたいことはタイトルで大体言った

キャリアが絡んでいることもあるだろうが自動化が進むとデータサイエンティストが不要になる、いやならないという話でAutoMLを中心にして燃え上がっている盛り上がっているのをこのところ見かける。

何がどう自動化されているのか、これからどうなりそうなのか、その時キャリアにはどういった影響が出るのかということには興味があるので今回は主に機械学習の自動化ついてあれこれ思うところを書きつらねてみたい。なおプログラミングをしないでGUIで実現するツールは自動化ツールとは違うので今回は除外。

今機械学習の何が自動化されているのか

現状の「機械学習自動化ツール」が対象としているのはすでにデータがあり、それをいかにプログラミングで処理するところのそのまた一部と認識している。

それは主にパラメータチューニングを自動でやってくれるところで、ツールによっては複数のモデルを使ったり欠損などの前処理まで行ってくれるようだがまだそこまでのツールは少ない。

精度はGoogle の AutoML が KaggleDays での表形式データのコンペで第 2 位にといった事例は出ているがこれはむしろ例外で(時間やコストを考えなければ)まだまだ人の方が強く、そこまで汎用的にはなっていない、といったところか。

次に視点を変えて何が自動化されていないのかも考えてみたい。

まだ機械学習で自動化されていないところ

機械学習に関する業務(あえてデータサイエンティストの仕事とは言わない。理由は後述)はデータ分析プロセスを元にして考えてみるのが良さそうだ。

すると現在の自動化されているのは「分析」フェーズの前処理を除いた部分だ。ということは

  • 解くべき課題を考える
  • 課題に合わせて機械学習をどう適用するかを考える
  • データを集める
  • 結果をプレゼンする

といったそれ以外の部分はまだ自動化されていないということであり、言い換えれば自動化されているのは全体の一部でしかない。

その先のどこまで自動化されるか

そうなると次は何がどこまで自動化されるのだろう、と興味がわくがまったくの不透明だ。

まず気になるのは「分析」の精度がどこまで上がり、どれだけ汎用的に使えるようになるかだろう。あらゆるデータに対してそれなりの精度が手軽にできるようになるのか、あまり汎用性は無く限られた状況においては強いが他ではそうでもないになるのか。

次に「分析」の中でも前処理の自動化だろうか。投入されたデータの組み合わせから新しい特徴量を作るぐらいはすぐできそうだが、ありとあらゆるデータを試したり、社内のDBにない外部のデータを自動で探して取得といったことまで自動化されるのだろうか。

さらに「分析以外」では課題の設定は人間がやらないといけないだろうが、とあるECサイトに限定すれば「利益が最大化するように」とだけ人が指定してあとは問題の優先度を決めるところから最適化の実装まで全て自動でやってくれる仕組みもできるかもしれない。

いずれにしても自動化ツールを作っている当人以外にはいつどこまで何が自動化されて何が永遠に自動化されないのかはわからないし、あるいは当人にも予想がつかないのかもしれない。

機械学習の自動化の進み具合によるキャリアへの影響

機械学習の自動化がどこまで進むのかはコントロールできないが、だからといって出てきたら都度対応するのではリスクが高すぎる。そこで何が起きるかシナリオを考えてみることは重要だろう。

シナリオ1:高度なレベルでのモデリングの汎用化が実現した場合

現在モデリング中心の仕事をしている人の多くはその業務が不要になる。残るのは自動化ツールの中のアルゴリズムを作るごく一部の専門家のみであり、それ以外の人は、前処理を行う、アノテーションするといった準備が主業務となるだろう。

さらに前処理の大部分も自動化されるのであれば今の仕事がそのまま消滅もしかねない。その場合はデータを作るか、課題を聞いたり設定したりするコンサルタントやマーケターのようになるか、いずれにしてもかなり違う畑のスキルが要求されることになる。

モデリング以外にも課題を決めたりクライアントや社内調整をしたりをしている人はさほど状況は変わらずむしろモデリングの時間の分が他の仕事に使えるようになるので恩恵を受けることになるだろう。

シナリオ2:自動化はそれなりにされるがドメイン知識が精度に影響する場合

自動化は進んでもドメイン知識を使ってチューニングした方が精度が高く出せる場合、モデルを開発する専門家以外にもドメイン知識を反映するためのチューニングなどの仕事は残る。

しかし相当に規模が大きいサービスやプロダクトでなければそれほど精度を出す必要があるとも思えず、出してもコストに見合わない。なので中小企業では多くの業務はシナリオ1と同様な状況を迎えるだろう。ただしそのサービスやプロダクトへの汎用度次第によって大きく状況は変わるだろう。

シナリオ3:現在以上の高度な汎用化はされない

プログラミングしている部分が自動化されるぐらいでさほど高度な精度が出るわけでもなければ汎用的に使えるようになるわけでもないと言う場合でも受領したデータを何らかの手法で分析(処理)してレポートを作るといった仕事や受託分析サービスは早々に淘汰されそうだ。

しかし現在の自動化の進化具合を見るとここに留まることはなさそうなのでこれで終わりにする。

データサイエンティストが不要になることはない

確かに自動化ツールが進化すればデータサイエンティストの定義次第ではその”大半は”不要になると上述したが、まったく不要になるという主張は3つの点において正しくないと考えている。

1つは、あらゆる問題が解ける汎用ツールが実現するとして、ではそのツールを作るのは誰かといえばまさにデータサイエンティストの仕事ではないだろうか。つまりデータサイエンティストはむしろ高度な専門家として残る。

もう1つは現実的な問題としてあらゆる問題にあらゆるレベルで対処できる汎用ツールができるとは考えづらく、もしできても大分先になるだろうから現状のデータサイエンティストの仕事を前処理+モデリングとしてもやはり不要にはならない。

最後に、データサイエンティストの仕事がモデリングだけではなく問題を機械学習のタスクに落とし込むことや、もっと広く課題そのものを考える領域まで含めるのであれば自動化されるのはそもそもプログラミング関わる全体の一部でありいくら自動化が進んでも残る。

なのでいずれにしても「データサイエンティストが一切不要」については言い過ぎではないか。

データサイエンティストという呼び名の問題

ただ、モデリングをせずに課題解決や社内調整することが主業務になるとしたらそれは「データサイエンティスト」と呼ぶべきなのかということは気になる。

これはデータアナリストと名乗っている人が分析しないのであればアナリティクスディレクターデータアーキテクトといった別の名前で呼ぶのが良いのではないかと述べているのと同じ状況だ。

個人的にはモデルを作ったりそれを使ってサービスを改善したりが主業務でないならデータサイエンティストではない別の名前の方がよいかなとは思っているが、分析しないデータアナリストも以前データアナリストのままなのでそのままになりそう(そして余計な混乱を生みそう)。

混乱の原因は話の前提

ところでこの手の話はなぜこれほどまでに話が混乱するのかを考えてみたい。

まず前提としてデータを使った仕事が今までなかったところに降ってわいたデータサイエンティストという言葉自体がまだ10年にも満たないこともあり、各人がその業務についてどのような前提で話をしているかが違う。

そもそもデータサイエンティストとは「高度な理論を使うデジタルに特化したデータアナリスト」ぽいけど実態は「機械学習エンジニア」なので、まずそこからしてずれがある。

その上でデータサイエンティスト(つまりは機械学習エンジニア)の業務内容が語られる場合、大体この3つに分かれる。

  • 分析(+洞察が必要ならそれも)の部分だけをデータサイエンティストの仕事と考える
  • 目的に対してどう解決するかを考えるところからデータサイエンティストの仕事と考える
  • 課題を設定してそれをどう解決するかを考えるところまですべてデータサイエンティストの仕事と考える

もしデータサイエンティストが第一の意味であるなら、確かに自動化ツールが進化すればその大半は不要になるだろう。しかし第二第三の意味であれば、いくら自動化が進んでもそれ以外の仕事は残るので不要にはならない。この業務内容の定義が違うと全くかみ合わないのは当然だ。

ベンダー側の言うデータサイエンティストは主に第一(をさらに狭く解釈している可能性もある)であり、実務者は第二第三の定義で話していることが多いようだ。それが正しいかどうかという問いには意味がないが、話を聞く側としては何を前提に話をしているかは注意しなければならない。

正しく言い換える

正しく言い換えるには、というよりは不要論に振り回されないためにはどう読むのがいいかということだが、前処理やモデリングが(全部ではなくても)自動化されることで問題を考えることに時間がより使えるようになると理解しておくのがよいのかなと思っている。

機械学習の自動化が進んだら真っ先に仕事がなくなりそうな人はどうしているのか

ところで、この手の話をしているのは実務者のしかもかなり上級者(自動化が進んでも当分は大丈夫そうな)人達が目立ち、一方で自動化により真っ先に仕事がなくなりそうな人たちがあまり気にしていないように見えるのが不思議なところ。

その人たちがあまりピンときていないのかあまり反応が無く、かえってそちらのほうが心配になる(余計なお世話だろうが)。

雑多な話を書いてみたがもっと議論してみたい

というわけで、機械学習の自動化についてTwitterで書いたり考えていたことをまとめて書いてみた。業務で使っているわけでもなく知識も浅いのは承知なので、異論や反論があれば是非と議論できれば幸いだ。