Data

足りないのは、データではなくサイエンス

こんにちは、シバタアキラです。気づけばいつもご無沙汰しておりますが、DataRobotのお客様先などで「ブログ読んでます」などと言われる様になると、古いネタだけのブログも忍びなくなってきました。今回のお話も実は構想し始めたのは5月に招待されたオラクル社のイベントでの公演がきっかけでしたが、以来少しづつ温まってきました。

「うちにはこんなに沢山データが有るんです。
AIと組み合わせたらすごいことにななります」

今回のテーマを起案した頃の5月に出た英エコノミストのテーマは「世界で最も価値のある資源はもはやオイルではなく、データだ」という内容でした。

データに対して洞察のある方であれば引っかかるコンセプトですが、実際にはこういうお話を日々耳にします。おそらくHadoopを始めとするビッグデータ系のベンダーなどがそのようなことを吹聴し、「とにかくデータは取っておけば価値になる」とか、「全部取っておけば、必要なものをあとから使えばいい」とかが盲信されるようになったものと思われます。そしてハイプカーブの頂点にあって、「AIは自動的にこのデータを黄金色に輝かせてくれる」という憶測に到達してしまう傾向は容易に量産されます。私などのデータ活用を生業にしている者にとっては過度な期待値ではあってもこのようなパブリシティーは大変ありがたいものです。しかしこの考え方には問題があります:

なぜデータサイエンティストが必要なのか

データ活用(そして多くの場合「AI」も)による価値創出において、今までの「IT活用」と比較して重要な特徴は、入力データへの決定的な依存度によって、どんなにいいシステムやプログラムを作っても、ゴミデータを入れたらゴミインサイトしか生まれないということです。Garbage In, Garbage Out(GIGO)などと言われます。今までのIT技術による価値は、工学(エンジニアリング)的な問題解決による効率化が基本でした。人間が手作業で行ってたこと、機械的に行ってきた明示的な既存プロセスを、デジタル化、コンピュータープログラム化することで高速化、大容量化、遍在化することにより達成されてきました。一方で、収集されたデータを新しい価値創出に活用するプロセスは、明示的な既存プロセスではなく、「人間の感覚値」や「専門家の熟練」などの暗示的なプロセスの解決を目的としています。そのため、「感覚」や「経験」をどのようにデータ化し、システムやプログラムに入力するべきなのかは自明ではなく、また、その分析手法や利用アルゴリズムなども、目的に応じて異なってきます。更にはその結果を解釈し、構築されたプロセスを継続的に改良していく必要があります。このようなプロセスを得意とするのがサイエンティスト=科学者です。

サイエンティスト=科学者になるための資格

データサイエンティスト、の「サイエンティスト」が英語であるためなのか、時として「サイエンティスト」がとてもカジュアルに捉えられているようです。例えば「医者」とか「弁護士」、とかであればなかなか「明日から俺は医者だ」などと言うことはできないと正しく認知されていますが、データサイエンティストの場合、突然「今日から・・・」などということに遭遇します。データサイエンティストならまだしもチーフ・データサイエンティストだったりします。私は学歴主義は嫌いですが、専門職につくためには専門的な教育が必要です。そして科学者になるための資格と言うのは実はあります。一般的には博士号もしくはPh.D.と呼ばれています。博士号とは何かとわかりやすく説明しますと(出典)、まず全人類の知識をこの恐ろしいほど簡略化された円に例えてみましょう。そして、小学校を終えたときに得ている知識と言うのを青い点で表しています。つまり基本的なこと、かつ少量の知識です。

多くの人は、義務教育及び大学教育を経て少しずつその知識を特化させていきます。世界には非常に多くの知識があるため、何かを深く知ろうとすると、必然的にそこに多くの時間を取られるようになり、また深く掘れば掘るほど更にその深みが見えてくるものです。博士課程とは、この専門知識をもっともっと深く掘り下げ、まだ誰も知らないレベルに到達することを言います。そしてそのような知識を獲得するためには、当然鋭い視点と、血の滲むような研究努力が必要となります。私がPh.D.を取得する過程でも、周りでは多くの人々がこれに挫折したのを見てきました。そして、Ph.D.=博士号を得るということは、その研究により、ある一点において人類の知識の果てに到達したことを意味します。つまりこの図の赤い点線で囲まれているところです。

先人に教えを請い、粘り強い研究努力を続け、奨学金の出る期限に脅されながら微かに人類の知識を押し広げたことに与えられる称号、これがPh.D.です。この果てに押し広げるためのプロセスを、特に物理、化学、生物、地学などの自然科学分野ではサイエンス=科学とよんでいます。つまりPh.D.を持っているということは、この科学的プロセスを使い、新しい発見をしたという証明になります。

このような資格を持つ人がなぜデータ活用に必要とされている能力を持っているかというと、データ活用は科学的プロセスの根幹的手法だからです。

「科学する」とは

とは言っても、Ph.D.を持っていないとデータサイエンティストになれないと言うのは、多くの人に取って面白くないでしょう。もうすでに誰かの気まぐれでデータサイエンティストになってしまった人にとってはなおさらです。また、私も様々なデータ分析担当者の方とお仕事する中で、Ph.D.を持っていなくても、科学することが非常に得意な方にもお会いしたことがあります。仮にPh.D.を持っていてもスタップ細胞のようなGarbage Outを、知ってて正当化しようとするような輩もいるので、資格主義に走るのも問題です。

Wikipediaにも長々といろいろ定義されていますが、そのプロセスの幹となるところは下記のようなステップです

  1. 解決するべき課題を設定する
  2. その過課題に対して仮説を提唱する
  3. 仮説それが真であるときに現れる現象を導き出す
  4. 仮説を検証するのに有効な観測(データ)を取得・処理
  5. データと仮説が矛盾していないかどうかを検証
  6. 検証結果の信頼性と限界を把握する
  7. 実験の検証範囲内で実世界への洞察(インサイト)を導き出す
  8. 洞察が得られなければ、課題もしくは仮説を変えて何度も繰り返す
  9. 検証結果・インサイトを論文やモデルの形で公開する

このプロセスを行うことで、与えられた問に対して、様々な答えを試行錯誤し、「明日の売上は、このようなデータを使えばうまく予測できるんだ」とか、「こういう顧客に優先的に営業に行った方が利益率がいい」などの具体的なインサイトや、それを体現するモデルを手にすることができるのです。

皆Ph.D.を取るべき、会社が金を出すべき

このような知識や経験を社内で育てるのは大変難しいことです。そして、今どの企業に行っても「動やったらデータサイエンティストを育てることができるのか」という問題に直面しています。幾つかの企業は、「データサイエンティスト育成講座」のようなものを提供し、また、そのようなタイトルの本が書店を賑わせています。多くの場合、その内容は「Pythonを使ってデータを処理する」とか「Rを使ってARIMAモデルを作る」などの技術的な内容が大半を占めます。そしてそのような知識を得ることこそがデータサイエンティストなのだと誤解されているようです。こういった「ワザ」は、たしかにデータを取り扱う上で役に立つと思われますし、データエンジニアリングには必要な知識ですが、人を科学させるには至りません。科学する方法を学ぶには、知識の壁に対峙する時間が必要です。そのためには企業も社員に休暇とお金を出してPh.D.を取らせなくてはなりません。それは研究所の職員だけでなく、総合職につく社員も対象にするべきです。私が知る限りではドイツなどではこういった仕組みが発達しているようです。

また、データサイエンスとひとくくりに言っても非常に広い範囲の活動を指しており、そこにはよりエンジニアリング寄りの仕事から、科学、そしてビジネス応用寄りの仕事まで幅広く存在します。アメリカでは、データエンジニアと言う仕事は確立されて来ており、データサイエンティストとタッグを組んでデータ活用に取り組んでいます。学者上がりのサイエンティストは多くの場合、プロダクションレベルのシステム構築経験はないので、補完的な関係が作れます。またMBAや幹部研修などでも、データ活用技術の概観や、科学するための手法を教えていくことで、まだ企業に馴染みの薄いサイエンティストたちをより効果的かつ現実的に活用できるようになると考えられます。結局のところ、良い科学も、良いビジネスも新しいインサイトから生まれるので、深いところではつながっているのではないでしょうか。私がポスドク(Ph.D.取得後のプロ科学者)を辞めて、ビジネス分野に飛び出してからの関心は常にそこにあり、今はその知識の壁をさらに押し広げています。