因果推論で原因と結果を特定する

マッキンゼー-カンパニー

フォローしている人

2020年2月11日•7分読み取り

ベン-ホースバーグ-JrプリンシパルMLエンジニア、QuantumBlack

12月、QuantumBlackチームは幸運にもバンクーバーで開催されたNeurIPS2019に出席し、causalを展開する方法を探るexpoワークショップを開催しました。 原因と結果を考慮したモデルを生成するための推論と強化学習。

このセッションは非常に人気があったので、参加できなかった人たちと重要な要素を共有したかったのです。 次の2つの中程度の記事では、データ科学者が因果推論と強化学習の両方を活用して、原因と結果を尊重するモデルを構築する方法を探ります。

原因の死角

高度な分析は、ターゲットに影響を与えるために介入を行う場所を決定するために展開されることがよくあります。 しかし、線形回帰から深層学習までの多くの伝統的なML方法論では、因果関係は考慮されず、代わりにデータポイント間の相関のみをモデル化します。 彼らは、この関係が何であるか、またはそれらが互いにどのように影響するかを定義せずに、変数間に関係があることを識別するかもしれません。

これは、モデルの提案された介入に劇的な影響を与え、介入の有効性を薄くしたり、完全に無関係な勧告を作成したりする可能性があります。 例えば、干ばつを緩和することを目的とした非因果モデルは、干ばつの増加とアイスクリームの販売の増加との間に関係があることを認識するかもしれませんが、アイスクリームを禁止することは干ばつを緩和すると偽って結論づけるかもしれません。

因果モデリングでは、MLを使用して初期構造を作成し、グラフィカルなネットワークとして視覚化し、特徴間の認識された関係を強調します。 この例では、灌漑の専門家は、アクセス可能な飲料水がアイスクリームを禁止するよりも干ばつを緩和するためのはるかに正確なドライバーであるこ

このプロセスは因果推論として知られており、この記事ではそれを展開するために必要な3つのフェーズのそれぞれについて説明します。

フェーズ1:構造学習

因果モデルは、特徴間の因果構造を通知する必要があります。 理想的な世界では、ドメインの専門家がこの構造を入力しますが、これはしばしば実行不可能です—わずか50の変数を持つモデルでは、2,500の因果関係を考慮して説明する必要があります。

さらに、原因と結果の連鎖は、すでに時間がかかるプロセスをさらに複雑にします-ある特徴への変更は、別の特徴に影響を与え、別の特徴に影響を与 手で構造物を構築するときにこれらの鎖を見落とすのは簡単であり、誤って周期的な鶏卵鎖を作成するのはさらに簡単であり、修正が困難である。

最近の進歩、特にNeurIPS2018でのDag with NO TEARSの出版は、これらのネットワークを構築する構造学習アルゴリズムの効率と精度を向上させました。 彼らはプロセスを合理化し、鶏卵のパラドックス構造を避ける。 重要なことに、彼らは因果関係を確認しません—彼らはそれを推定します。 非実験データでの作業では、予測を検証するために反復的で共同的なプロセスが必要であり、ドメインの専門家は構造の因果関係を見直して検証し、尊敬されているセクター固有の出版物、調査、より広い専門家の意見との相互参照関係を確認する必要があります。 それは私たちが因果解釈に向けた一歩を踏み出すことを可能にするドメインの専門家からの入力とデータと方法の強化です。

このプロセスは、データ科学者が驚くべきことを見つけることができる洞察—因果関係を知らせるのに役立ちます。

構造化データ型には、ノード(情報を保持する変数)とエッジ(情報を保持することもできるノード間の有向接続)が含まれます。 ほとんどの構造学習アルゴリズムは、データ科学者と専門家の間の会話を指示するのに便利なエッジ重みを出力します。 最も高い重みから最も低い重みへのエッジを提示することは、データ科学者がさらに効率的なレビュープロセスを推進するのに役立ちますが、重みに多 さらに、低ウェイトのエッジでさえ重要な場合がありますが、統計的なテストは困難です。

原因が何であるかを特定したら、それらがどのように行動するかを学ぶことに進むことができます。

フェーズ2: 確率学習

構造学習は、コーヒーの価格が人口密度によって何らかの形で影響されることを特定するかもしれませんが、人口の増加が価格を増減するかどうか、またはより複雑な関係があるかどうかを特定することはできません。

確率学習は、基礎となる条件付き確率分布(Cpd)を学習することによって、各原因が各効果をどのくらい駆動するかを推定します。 各CPDは、その影響の状態を考えると、原因の可能性を記述します。

離散Cpdは連続Cpdよりも実用的であることがわかりました。 連続分布はガウス分布に限定されることが多いため、多くの関係を記述するのに苦労します。 離散Cpdは、精度は低いものの、分布の任意の形状を記述することができ、多くのライブラリで広くサポートされています。

ドメインの専門家を利用して選択することができます。 データサイエンティストとドメインの専門家は、最初にデータの離散化戦略に同意する必要があります。 プロジェクトの目標を考慮に入れて、どのような離散化が必要かを定義する必要があります。 たとえば、プロジェクトで比較を行う必要がある場合は、パーセンタイルの離散化が適している可能性があります。

そうは言っても、すべての確率推定値を記述する必要があり、迅速に蓄積する可能性があるため、cpdを離散化することは避けるように注意してくださ 3つの2つの原因を持つ2つの効果の場合、CPDは16の可能性のある不測の事態を推定する必要があります。 10の状態と3つの原因を持つ効果については、それぞれが独自の10の状態を持つ場合、10,000の可能性のある不測の事態を推定する必要があります。 可能性よりもサンプルが少ない小さなデータセットでは、ほとんどの不測の事態は決して観察されず、そのような事態はうまく表現されません。 しかし、大規模なデータセットであっても、過度の離散化は、Cpdには非常にありそうもない多くの不測の事態が含まれることを意味します。 これにより、モデルの検出力が薄くなり、計算時間が長くなります。

学習された確率は、データサイエンティストとドメインの専門家の両方によって評価されるべきである。 学習セットを使用してモデルの確率を学習し、テストセットを使用して任意のノードに対する確率的予測の正確さを評価します。

一方、ドメインの専門家はCPDテーブルを読み取り、値をセンスチェックすることができます。 これは、多くの場合、よりありそうもない確率を排除することができる場所です。

フェーズ3:推論

今では、データセットの因果関係構造と関係がどのように動作するかを理解しています。 これにより、私たちは推論を行うことができます—本質的に応答を測定するための行動と理論をテストします。

推論は観測と介入に分けることができます。 観測推論では、任意の変数の状態を観察し、これを変更することが他の変数の他の状態の可能性にどのように影響するかを照会することができます。 他の変数の尤度の照会は、すべての原因と結果の関係を計算することによって行われ、Cpd上の確率を疎外することによって数学的に達成されます。 これの例は、都市中心部のコーヒーショップを観察し、高価な商業賃貸料が発生する可能性が高いと結論づけることであり、その後、コーヒーの価格は高くな

介入推論では、任意の変数の状態に介入し、その状態の可能性を選択したものに変更し、効果的に”Xが異なっていた場合はどうなりますか?「たとえば、5日ではなく4日の週に働いている従業員を仮定し、これが生産性に及ぼす影響を観察することができます。

介入するのが最も適切な場所を決定することは、感度分析によって達成することができます。 観察を行うたびに、これが変更したいターゲットの状態にどのように影響するかを見ることができます。 すべての変数にわたって何千もの個別の微妙な観測を行う場合、ターゲットが最も敏感な変数を推定することができます。 これは感度分析の基礎ですが、それを達成するためのより効率的な手段があります。

感度分析は、努力を集中する場所を理解するのに役立つため、特に強力なツールです。 たとえば、最終的なモデルがそれを制御する方法がないため、顧客の住所を変更することには意味がありません。 しかし、これらのより敏感な原因は、条件付き介入の決定において役割を果たすことができる。

MLの開発は構造の作成を合理化するのに役立ったかもしれないが、因果関係を特定するために相関を超えて到達するとき、人間、特にデータ科学者とドメ

課題は因果推論に残っており、テスト段階で必要な別々のソフトウェアライブラリの数が多いため、完全なプロジェクトを完了するのは時間がかかり、困難な場合があります。 これをサポートするために、QuantumBlackは最近、最新のオープンソース製品であるCausalNexをリリースしました。 このソフトウェアライブラリは、はるかに合理化されたプロセスを提供し、モデルが偽の結論を回避し、最終的にはよりインテリジェントで影響力のある分析介入を生成するのに役立ちます。

因果関係はますます顕微鏡の下で来ており、それは我々がCausalNexとより広い研究の両方で、将来的にさらに探求することを約束しているトピックです。 例えば、6月に産総研で発表する論文では、時間内の関係に加えて、時間を越えた変数の構造を学ぶためにNO TEARSを修正しています。 その間に、今後のCausalNexの開発で更新されたままにしてください。