データサイエンスは演繹的な推測を得ようとする活動である、という私なりの定義を先の稿では述べた。つまり、データサイエンスと呼ばれる領域に期待されていることは、ただデータにあるものを観察して把握するということではなくて、その中から法則性を見つけ、そしてその法則性に従うことで未知の物事についての推測を行うという側面である、と。
今回はそのことが生み出す困難について少し議論を広げていきたい。
データサイエンスにおいてモデルはデータから学習することで得られるものだが、そのモデルが演繹的に利用できるものかどうかを保証するものは、データからは得られない。残念ながら、これを理解している人はどうにも少ないように私は感じてしまう。
もう少し統計っぽい言い方をしてみよう。
基本的には、統計モデルが期待通りの性能を示すためには、学習データと予測データの中で、着目している変数群が同じ分布に従っている必要がある。実際にはこれはかなり強い前提条件であるし、その仮定をおいて良いと判断できるかどうかはデータがどのように生まれるかに依存しているから、データそのものだけではそこに答えられない。
「んなこたぁどんな機械学習の教科書にも載ってる! わかってるよ!」とあなたは仰るかもしれない。きっと優秀なデータサイエンティストであるあなたはそうだろう! だけど、 あなたのカウンターパートはどうかな?
「そういうことに起因するバイアスがないことを確認するためのクロスバリデーションだろ?」……違うんだよ。あなたの素晴らしい集客状況の予測モデルは検証データでも確かに性能劣化しなかったかもしれない。でも、 明日この国でクーデターが起こっても、性能劣化しないと言い切れるか?
流石にそんな例は極端だとしても、ビジネスにおけるデータサイエンスというのは往々にして日々変化する環境の中でワークすることを求められてしまう。強力な広告キャンペーンはアクセスするユーザー層に変化をもたらさないか? ビジネスが日々成長している中でユーザーの購買商品と売上の分布は変化しないか? 大幅な商品追加や仕様変更は? 統計モデルがワークするために出来るだけ条件を揃えてくれなんてあなたは言えない。モデルのためにビジネス成長を止めようなんてのは本末転倒だ。
何にしても、ホールドアウトした検証データで性能の劣化が無かった程度のことで「汎化」性能などというのはちょっと言い過ぎなんじゃないか? あまり強い言葉を使うなよ。
そんなこんなで、ビジネス現場において統計モデルがワークする理論的な前提というのはなかなか満たされない……というか、満たされているかどうかもよくわからない、というのが実際には多い状況かもしれない。そうなってくると、モデルが演繹的に適用できるとみなせるかどうかは、ある種のプロジェクト内での信念の共有か、あるいはリスクヘッジの問題となってくる。データサイエンティストがどれだけ頑張っても、そういった部分をキチンとハンドルしない限り、得てしてプロジェクトはあらぬ方向にいってしまう。
きっとそれはデータサイエンスに関わる人間なら理解しておいたほうが良いことだ。