ここまで書いてきた文章で、データサイエンスというのはデータから得られた知見に基づいての「演繹」的な推測が期待される分野である、と述べてきた。一方で、データから知見を得るというのは「帰納」的なものであって、定量的に物事を計測していき、それを観察して法則性を探索していき、近似的に表現する数式を得る、というプロセスだ。しかしどうにも、「データ」とか「モデル」とかといった言葉を使っているうちに、そういった本質的な部分が曖昧になり、何か魔法の力で凄いことができるかのような錯覚を覚えられているケースがままあるように思う。
そもそもモデリングしようとする現象については法則性あるいは傾向がないといけない。計測してデータとしてなった現象の中に法則性や傾向があってはじめて、それをモデルとして捉えられる可能性が生まれる。それがまず大前提だ。
さらに、モデルの 実用性 について考えた時、その傾向というのは、
- 観測することができて、
- 何らかの施策に繋げることができて、
- ビジネス的に好ましく、コストを上回るインパクトを生み出せる
ものでなくてはならない。これらの条件が揃って初めて、ビジネス的な有用性を持つ統計・機械学習モデルを作ることができる。
入力データは全くのランダムではないだろうから、データの中に何らの傾向も存在していない、ということはないだろう。しかし、上に挙げたような条件を満たす「有用な」傾向がデータの中に存在することは、果たして自明だろうか? 一定の精度で近似する定量的なモデルとして記述できることは、果たして自明だろうか? そして、それは決まった時間や方法論の枠組みの中で確実に達成できるものなのだろうか?
機械学習による何らかの予測モデルを実装することを目標としたプロジェクトがあるとする。カウンターパートに対してウソ発見器などをつけた状態で「ビジネス上有益なはっきりとした変数間の傾向がこれから分析するデータの中にあると、確信できますか?」と問うてみよう。
「もちろんできる」と言ってもらえる、既に事前の分析から信頼性の高い仮説がいくつか浮かび上がっている段階からスタート出来る、そんなプロジェクトもあるだろう。それは大変に素晴らしいことだ。そういったプロジェクトにいつも取り組める幸福なデータサイエンティストは、この文章の続きを読む必要はあまりないかもしれない。(ウソ発見器を騙せるくらいに強く事実と反することをカウンターパートが信じていた場合には別の恐ろしい事態へと進展するが、そのケースについては一旦措くとする)
実際のところ、「あるかもしれないし、ないかもしれない。実際のところはよくわからない」となるプロジェクトも世の中には少なくないのではなかろうか。カウンターパートは何をどうすればうまくいくのか見当もついていないが、すべての混乱を終わらせてビジネス上のペインを消し去る「デウス・エクス・マキナ」のような役目をデータサイエンスは果たせると信じている……往々にしてそんな状況だ。
「そういうものを見つけるのがデータサイエンスなんじゃないの?」と言われたら確かにそうとも言えるのだが、期待と現実の齟齬が生まれるポイントもここにある。データ分析を通じて「背後にある関係性を発見することができる」と喧伝されることは多い。確かに、十分に訓練されたデータサイエンティストならば、様々な武器を使ってデータに切り込んでいくことができる。外れ値や欠損、表記ゆれなどに対する一般的な前処理に始まり、様々な変数間の相関を可視化した段階で何かわかるかもしれない。勾配ブースティングやランダムフォレストに放り込んで特徴量重要性を計算したりするのも手だ。そもそも Python や R やといったソフトウェアによるデータの整形も慣れない人が障壁を感じる一つのスキルで、やってることの内容は理解できても実行に移せない人だっているだろう。
ただ、上記のような一般的な処理だけでは有益な力強い傾向を見つけられないかもしれない。そうすると例えば、業務プロセスを考慮して仮説を組み立て、何か特殊なデータの変換をモデルに施していったり、当初のデータセットに入っていなかったデータをまた集めてきたり、学習の手法を見直したり……といったことを試すことになるだろう。要はドメイン知識を利用するっていうやつだ。
データ分析におけるドメイン知識の重要性は頻繁に説かれている。そうなってくると今度は「データサイエンスとドメイン知識を組み合わせればビジネスインサイトが発見できるのだ!」という考え方も蔓延ってくるが……「分析技術とドメイン知識を組み合わせる」という共創的なプロセスはインサイトを得るための必要条件に近いものであったとしても、十分条件にはなり得ない。そして、その共創プロセスがうまく回るための前提の理解もあまり共有されていないと私は感じる。
「ドメイン知識の取り込み」と言われた時に行われるのは、実際には仮説ベースで変数を作り、その変数としての有用性を検証するというプロセスの地道な繰り返しである。実際のところ、何年も業務を担当して考えてきたカウンターパートの方が前提知識は多く、優れた問題意識と仮説を持っていて良い進め方ができるものなのではなかろうか? とも思うことが自分は少なくない。自分たちが何をモデルにしたくて、現象に対するどういった側面に注目するべきなのか、主体的に仮説を出して議論を進めてくれるカウンターパートならばとてもありがたい。それらを確かなやり方で検証して構造化していくのは当然にデータサイエンティストのやるべきことだ。
また時には、モデルに加える変数を作るために新しいデータを取りに行く必要があるかもしれない。SQL をはじめとするデータ処理のためのプログラミングスキルに習熟していることをデータサイエンティストに期待すること自体は間違いではないと思う。けれども、もしもデータマートが整っていないのであれば、事業ドメインの知識や業務システムについての理解が無ければ正しい処理は書けない。それらの把握は思っているよりも難しく、時間がかかるプロセスだ。それでも、データベースにデータが入っているならばまだ幸運である。場合によっては仕様の一貫していない CSV ファイルや、人間の目で見やすいようにとても綺麗なレイアウトが施されたされた Excel ファイルの山をデータソースにしないといけないかもしれない。
ここに述べたようなことをやるのもデータサイエンティストのやることなのかとか、そういった点について議論する気はあまりないが、ただそういったプロセスの生み出す時間的なコストは往々にしてプロジェクトを期待外れにしていくものである。
それでも、データセットの中に元々の現象が持つ傾向をキチンと反映できれば、こういった作業が機能して、変数間の有益な関係性が見つかり、モデル作成の労力は報われることだろう。……しかし、これらがワークしなかった場合は? 「データセットの中に法則性が ない」ことを示そうというのは悪魔の証明のようなものになりうる。データ処理のどこかに見落としが無く、本当に十分にやり切った中で何も見つからなかったのだと言い切るのも、なかなかに度胸がいる。
一方で、ドメイン知識と事業への責任を持ってその業務に取り組んできた人間が苦戦しているからデータ分析の専門家が呼ばれているような状況で、果たして有益なインサイトの存在は自明なのだろうか?
繰り返しになってしまうが……「データ」とか「モデル」とかという言い方によく人は誤魔化されてしまう。本質的には起きている現象をキチンと観測した数字を元にして、近似する何らかの数式的な記述として捉えることだ。「データサイエンス」を使えば簡単に現象の法則性が見つかる訳ではない。可能なのはあくまで、探求のプロセスとその応用性に「バフをかける」ことである。
ここまで書いてきた、認識に齟齬の生まれがちなポイントをまとめてみよう。
- アルゴリズムに「データを食わせ」れば即座に何か役に立つモデルが出来る訳では無い
- 学習器はデータ内の変数の分布にある傾向や法則性に対する近似を試みたものとして「モデル」を生成するだけであり、データに存在していない傾向は簡単には見つけられない
- 「使える」モデルを作るためには、施策と結びつけて一定以上の効果が生じるような変数間の関係を見つける必要がある
- データサイエンティストはデータの特性に応じた変数の処理や仮説のモデルへの落とし込み、学習器の選択には長けているかもしれないが、モデル作成・改善プロセスにおける全ての局面において、データサイエンティストが最も優れているとは限らない
- 仮説の考案自体については本来的に言えばビジネス担当者に一日の長があるはず
- データマート / データセットに入っていないデータの処理が必要になった場合、元々システムを触っていたり業務フローの理解が深い人間の方が適切に処理できる
経験的に言えば、「データサイエンティストを呼んできて高度なデータサイエンスを使えば何かが出来るのだ」と期待されているような状況においては、元々のデータの見方に問題があることが多いと感じる。
- そもそもデータが見られていない
- データ分析用の DB はあるがテーブル設計がまずく、ダッシュボードはかゆいところに手が届いていない
- 分析軸の切り方に問題があり、バイアスが排除できていないデータの見方をしている
- 施策の実験群と統制群の作り方がまずく、効果を正確に測定できていない
などなど……。
データが正しく見られていない結果、ビジネスサイドの中では事象に対するメンタルモデルが形成されておらず、出てくる仮説がボヤけている。そういった状況で、何か複雑で先進的な分析技術を使えばいきなり何かあっと驚く発見がある、と期待するのは、本当に正しいことだろうか? 私にはそれは分が悪い、大穴狙いのギャンブルに思える。
データ基盤整備を行い、どのような分析軸や粒度で見ていくのか、ビジネス担当者を巻き込みながらキチンと整理をする。正しく効果を測定できる実験設計のもとに施策を打つ。そうして物事を歪みを出来るだけ減らして、事実と向き合う。地味にも見えるそういった活動を行えば、高度な手法を試すときのオッズも、より正しく見積もっていけるのではないか。ただの知的好奇心を満たす営為ではなくビジネスに適用するための活動であるならば、それは重要なことだと思う。
歪んだ歯車から正確に時を刻む時計は作れないのだ。