トム・フォーリーが語る、データサイエンスとアポフェニアの罠
シルバーエッグ・テクノロジー株式会社
代表取締役社長 & CEO
トーマス・アクイナス・フォーリー
「ピザの表面にキリストの顔が現れた!」
アメリカの新聞には、年に1度か2度、この手の記事が載っています。おっと、奇跡を信じている人は、ここから下は読まないでください!
無意味な図形の中に、人の顔のような意味のある形状を見出してしまう現象は、パレイドリア(Pareidolia)として知られています。これは規則性のない情報に何らかの関連性やパターンを見出してしまう知覚作用であるアポフェニア(Apophenia)の一種で、何もどこかの田舎の迷信というわけではありません。今を生きる私たちの心にも根付いており、困ったことに、データサイエンティストにとっても悩みの種となっているのです。
データサイエンスと占いを分けるもの
データサイエンティストは、パターンを発見したり、パターンの根拠を理解するために、多くの時間を費やしています。パレイドリアのような「無意味なものに意味を見つけてしまう」現象にとらわれてしまうのも、当然といえば当然です。そもそもパターンの発見能力に秀でているのは、発見したパターンがあってるかどうかは別として、たいてい聡明で想像力豊かな人なのですから。
それでは、聡明なデータサイエンティストと、聡明な紅茶占いのプロ、獣の内臓から未来を見る聡明なメソポタミアの卜占官との違いは、いったい何でしょうか?
パターン認識の能力そのものに、違いがあるわけではありません。データサイエンティストと占い師を分けるのは、前提条件から現れるパターンを予測する能力にあります。データサイエンティストは、まず事前に仮説を立て、実験を行い、結果が予測と一致する場合にのみ仮説を確証します(より正確には、競合する仮説に反証します)。これが、科学的手法の基礎です。
私は長年にわたり、多くの優秀で教養のある人々と一緒に仕事をしてきましたが、そのなかで実感したのは、パターンを読み解く能力や、数学の問題を解く能力と、「科学的手法で仕事をする技能」とは、関連がないということです。
科学的手法の適用というのは、先天的な能力ではなく、たとえば“靴紐を結ぶ”とか“飛行機を飛ばす”というのと同じような、鍛錬によって習得するスキルだと言えます。根本的に難しいことではありません。繰り返すことで身に着けられるものなのです。
科学的手法を一貫して適用しているのであれば、データサイエンティストはまずその役割を十分にまっとうできているといえます。一方で、たとえ数学の知識があり、パターンの発見に秀でていたとしても、科学的な方法論で仕事を遂行しないのであれば、その人物はデータまじない師と評価されても仕方がないでしょう。
愛ゆえに陥りがちな誤謬
科学のマナーを身に着けることが、データ分析において非常に重要であるのは、アルゴリズムとその実装が自分の子どもに少し似ているからです。子どもたちの振る舞いがどんなにひどくても、親は自分の子どもを愛してしまうものです。同じように、実装したアルゴリズムを評価する際に、科学的省察が第一にはたらかなければ、私たちは自らのバイアスによって誤謬に陥ります。
例を挙げると、データサイエンティストは往々にして、最新のアルゴリズムをすぐに巨大な、完全に理解しきっていないデータセットに適用しようとしがちです。自分の実装がスケーラブルで、よりよいソリューションとなっているか確かめたくなるのは、技術者の自然な衝動といっていいでしょう。
しかし、衝動に乗じて結果を求めるがゆえに、データサイエンティストはわずか数時間のランタイムで、実装の成功と過大な希望を示す成果物を探そうと躍起になってしまうのです。このような状況に陥ると、失敗を認めるのは困難です。
私自身、この誤謬に十分すぎるぐらい引っ掛かり、時間を無駄にしてきました。いまとなっては自分も、他人も、こういった仕事のしかたをする人間は誰一人として信用できません。私たちがきちんと向き合うべき仕事、それは結果の予測と、その評価です。
急がば回れ:シンセティックデータによる実験
そうはいっても、オーガニックに生成された大規模なデータセットでは、以前の結果を改善しようとしても、何が具体的に改善できるかを予測するのは困難です。どうしたらよいのでしょうか?
このような場合、私はいつも最初にシンセティック(人工的に合成した)データを使って自分のアルゴリズムをテストするようにしています。 たとえば、低ランク行列因子分解(Matrix Factorization)のための新しいアルゴリズムを試す場合、テストデータのための行列を作成します。これはランダムに生成された2つの低ランク行列の積に因数分解可能な行列です(多少のノイズも入れます)。アルゴリズムを適用して、テストデータの生成元であるグラウンドトゥルース(真値)の行列が復元できれば、アルゴリズムが機能していることがわかります。テストデータからそれが復元できない場合、このアルゴリズムをさらに大規模で複雑な問題に適用するのは無意味です。
この方法論は、高速に実行できる小さなデータセットを生成するきっかけにもなり、デバッグに役立ちます。さらに、さまざまな生成パラメータ、ハイパーパラメータ、コーナーケース、境界条件について、アルゴリズムがどのように実行されるかを調査する機会にもなります。この手順でものごとを制御できるようなってから、より大規模でオーガニックなデータセットにスケールアップするのです。
このように、人工的な問題でアルゴリズムが機能することを確かめておくことで、本来の対象である“リアル”データが、同じ性質に従うものであるかどうかが容易にわかるのです。ゴールに正しくたどり着くためのひとつの方法論として、意識してみてください。
(訳・編:シルバーエッグ・テクノロジー株式会社 渡邉サラ・梅村翔子・園田真悟)