読者です 読者をやめる 読者になる 読者になる

六本木で働くデータサイエンティストのブログ

元祖「銀座で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木

フルオートで何でもやってくれるデータ分析ツールが登場したら、データサイエンティストは本当に失業するのか

先日、とあるデータ分析フレームワーク*1の営業をうちのチームの人たちが受けたそうで、後で色々話を聞きました。


何でもそのプロダクトは名立たる国際データ分析コンペ*2上位入賞者という猛者たちが作った代物だそうで、宣伝文句やデモによれば「データの前処理、学習モデルのアルゴリズム選択、効果検証、API構築までを全部フルオートで出来る」のだとか。


f:id:TJO:20151008133304g:plain
(From Wikimedia Commons)


それを聞いて、僕はすぐに「あーこれで自分たちも早々に失業だわ、違う仕事探そうっと」と即断しかけたんですが、チームのメンバーたちと話していくうちに「いやこれではまだ失業させてもらえないじゃん」ということに気付いたのでした。ぶっちゃけマエショリストの僕らとしてはいつでも失業させてもらいたいくらいなんですが(笑)、世の中そう簡単にはうまくいかないようです。。。


ということで、今回は「そんな凄いデータ分析ツールが登場したらデータサイエンティストは本当に失業するのか?」という疑問についてちょっと考えてみた結果をだらだら書いてみます。あ、3回連続で与太話エントリでごめんなさいorz


そもそもフルオートのデータ分析ツールと言ったらどこまで出来るのか?


ひとまず今回話題になったデータ分析ツールについて言えば、どうやら「KaggleやKDD cupで配布されるようなデータセットであればフルオートで前処理から全部やれる」ということのようで。これは例えばうちのチームで半分お遊びで取り組んだ昨年のKDD cupのデータセットなんかを考えると*3、それなりに煩雑なデータでも扱えるんだなということは分かります。


ただ、一般にKaggle辺りで扱われるデータセットというのは「ひとつの組織内で融通されているデータセット」が多いような印象があります。即ち、ある組織の中でそれなりに統一的に整備されていて、どれほどフォーマットが汚かったとしても互いの紐付けはそれなりにうまくできて、これらのリレーションをきちんと整理できれば一気呵成に前処理をかけるというのは割とフルオートでいけるんじゃないかなと。その気になれば自然言語処理を含むケースでもいけるみたいです。


f:id:TJO:20151009134410p:plain


ここまで出来れば、学習データを構築し、交差検証などで適切な学習モデルを選択し、そしてAPIを構築するというところまでは割とサクサクいけるんじゃないかという気がします。R or Pythonの各種パッケージで実装されている手法であれば難なくいけるんじゃないかなと。


f:id:TJO:20151009163046p:plain


なおこの辺の話題についてうちのチームでは「だったら自分たちでも同じものを自社向けオレオレ環境で作ればええんちゃう?このプロダクトの契約料とうちらの工数単価とそんなに変わらないし」みたいな話題になったので、多分その気になればやれるんじゃないかという気がしています(笑)。


・・・ところが、です。これはデータソースがひとつの組織内で完結していればうまくいくと思われるのですが、そうでない場合はどうでしょうか? 例えばCRM関係であるあるなのが「提携先や代理店が複数あってそれらともデータをやり取りしてこなければけない」ようなケース。


f:id:TJO:20151009163310p:plain


こういう場合はそもそもDB同士の紐付けどころかリレーションも不明確で、挙句の果てにテーブルごとどころか究極のケースだと行ごとにフォーマットがバラバラなんてことも。。。それもDBに入っているうちはまだマシで、中にはネ申Excelファイルの羅列で構成されるものもあったりしてorz こうなると、いかな前処理までフルオートでやってくれるような優れたデータ分析ツールでもお手上げです。


つまり、フルオートでやれるというのは近未来ぐらいまでであれば、恐らく「ある程度一定の法則性をもって(例えばひとつの組織内で共通して)作られているデータソース同士を前処理しながらKaggle的なやり方で最後までデータ分析を貫徹できる」ようなデータセット、に限られるのではないかと思うのです。そう考えると、意外と僕らは失業したくてもさせてもらえないんだなぁという感じがありますね。


どれほど優れたデータ分析ツールがあっても、その出番がいつどこにあるかを判断するのは結局人間で、それには畢竟データ分析の専門知識が要る


こういう話をすると「いやいやそういうグチャグチャなデータでもそう遠くない未来には全部完全に前処理できるようになるかもしれないじゃん?人工知能*4とか今時あるんだからさぁ」みたいな反応がよくあるんですが、仮にそうだとしてもまだ問題は残ります。それは「データ分析がそもそも必要かどうかを判断するのは結局人間だ」というポイント。


これだけ「ビッグデータ」だの「人工知能」だのバズワードが乱れ飛んでしまうと忘れられがちですが、そもそも世の中それをデータ分析する必要があるのか?とかどうやってやるべきか?みたいなメタレベルでのデータ分析のデザインをするのは、いかなデータ分析ツールが進歩したとしても当面*5は人間の仕事だと思われるわけです。例えばこんな状況を「フルオートで何でもやってくれるデータ分析ツール」が解決してくれるかというと、なかなか難しいかなぁと。


f:id:TJO:20151009170319p:plain


「適当にやってくれよガハハ」に対して、例えばアウトプットはレポーティングなのかシステム構築なのか、連続値を予測したいのかカテゴリを予測したいのか、などなどを考えてソリューションを提案できるのは当面はやはり人間なんじゃないでしょうか。そして、そこに定量的な正確性を与えたければやはり専門知識が要ります。例えばこんな風に。


f:id:TJO:20151009170648p:plain


この辺はもはや「作業」ではなく「デザイン」とか「メタレベル」の話であり、これらを自動化しようとするとその意思決定そのものを例えば機械学習でオートメーション化するしかないので、現状ではフルオートにしようと思ったら途方もない時間がかかると思った方が良いかなぁと。少なくとも「強いAI」を作る談義と同レベルだと見て良いのではないでしょうか。


あらゆる「作業」は自動化可能でもその全体像となるストーリーと方向性は依然としてデータ分析の専門家が描くしかない、裏を返せば残りの作業しか出来ない人たちは失業するかも


以上の議論をまとめると、基本的に「Kaggle的課題を前処理しベストモデルを構築しAPIを提供する」みたいな、かなり知的・頭脳労働としての側面が強いものの「作業」としての性格を帯びるものは、いずれはフルオートで回せるだけのデータ分析ツールがどんどん出てくるのではないかと僕個人は考えています。


しかしながら、現実にデータ分析が求められる現場でやらなければならないことの多くは、往々にしてそういう「Kaggle的課題に落とし込めたところ」の前か後にあり、そこは「作業」というより「デザイン」「メタレベル」の取り組みが求められる領域なんですね。言い換えると「分析アーキテクト」によるグランドデザイン(全体像となるストーリーと方向性のデザイン)が必要ということかと*6


f:id:TJO:20151009134621p:plain


2年ぐらい前に同様の「データサイエンティスト不要論」が早くも持ち上がった頃にも実は同じ結論を唱える人たちは結構いたものと記憶しています。それもやはり「グランドデザインのようなクリエイティブな領域こそが最後まで人間の仕事として残る」という内容だったはずで、裏を返せばそれ以外の「作業」にのみ携わる人たちの仕事はなくなりかねないということでもあると思います。。。


現状ではまだまだデータサイエンティストとかデータ分析専門職というのは「学識」「技術」「実装」の世界なのですが、今後自動化の流れが広がるとともにじわじわと「アーキテクト養成」の方向に向かっていくんじゃないか、というのが個人的な観測です。


ただ、それはむしろ望ましい方向なのかもしれませんね。機械でも代わりが可能な「作業」こそ自動化でどんどん減らされるべきものであり、真にクリエイティブな「アーキテクト」としての取り組みに尽力することこそが知性を持つヒトの営みのあるべき姿なんじゃないか、と思う次第です。

*1:この記事ではその製品自体をdisったり揶揄したりするのが目的ではないので、商品名と社名は伏せておきます

*2:って言ったらKaggleとかKDD cupとか限られるわけですが笑

*3:あれは英語テキストマイニングさえ厭わなければそれなりにサクサクやれるネタだったんじゃないかという反省がありましてですね

*4:バズワード来ちゃいました感が笑

*5:短くても50年ぐらい

*6:下の図は色々簡略化してあるので、例えばfluentdがないぞとかKinesis使えよとかLambdaやS3どこ行ったとかSparkでええやんとか、そういうツッコミはご勘弁を