6.1 反事実的説明 (Counterfactual Explanations)

反事実的説明は、「もしXが起こらなかったら、Yも起こらなかっただろう」のような因果的状況で述べられます。 「このホットコーヒーを一口飲まなければ、舌を火傷しなかっただろう」という例では、 イベント Y は舌を火傷したことであり、原因 X はホットコーヒーを飲んだこととなります。 反事実を考えることは、観察された事実と矛盾する(例えば、ホットコーヒーを飲まなかったという世界のような)仮説的な現実を想像する必要があります。それ故に、「反事実的」という名称がつけられているのです。 反事実を考える能力によって、我々人類は他の動物と比較してとても賢くなりました。

解釈可能な機械学習において、反事実的説明は個々の事象に対する予測を説明する際に使用されます。 「出来事」はあるインスタンスの予測結果であり、「原因」は、モデルに入力されたモデルに入力された予測の要因となるインスタンスのある特徴量の値です。 グラフが示すように、入力と予測の関係性はとても単純で、特徴量の値が予測の原因となっています。

機械学習モデルの入力と予測の因果関係。モデルは単にブラックボックスモデルとみなされる。入力が予測の原因となっている(ただし、データの現実の因果を反映している必要はない)

FIGURE 6.1: 機械学習モデルの入力と予測の因果関係。モデルは単にブラックボックスモデルとみなされる。入力が予測の原因となっている(ただし、データの現実の因果を反映している必要はない)

たとえ入力と予測される結果の関係性が現実には因果関係でなかったとしても、モデルの入力を予測の原因みなすことができます。

この単純なグラフが与えられたとき、機械学習モデルの予測に対して、反事実を想定する方法は簡単です。 予測をする前にインスタンスの特徴量の値を変化させ、どのように予測が変化するかを分析します。 予測されたクラスの反転 (例: クレジットカード申請の可否の反転) や、予測がある閾値に到達する (例: がんの確率が 10% に到達する) など、関連する方法で予測が変化するシナリオに関心があります。 予測の反事実的な説明は、最初に定義された出力に予測を変化させるような特徴量の最小の変更方法を示します

反事実的説明はモデルの入力と出力のみを用いるため、モデル非依存の手法です。 この手法が生み出す解釈は特徴量の違いを要約したもの(特徴量 A と特徴量 B を変更することで予測を変えることができる)とも捉えることができるため、この手法はモデル非依存の手法(model-agnostic methods)の章で取り上げることもできたでしょう。 しかし、反事実的説明はそれ自体が新しいインスタンスであるため、この章で取り上げています(インスタンス X から始め、A と B を変更することで反事実的説明を得る)。 プロトタイプ(prototypes)とは異なり、反事実は学習データに実際に含まれるインスタンスである必要はありませんが、特徴量の新しい組み合わせである可能性はあります。

反事実の作成方法を紹介する前に、いくつかの反事実の使用例と良い反事実的説明がどのようなものなのかということについて説明します。

まず最初の例では、ある男性が、申請した融資を(機械学習を利用している)銀行のソフトウェアに却下された、という状況を考えます。 彼はなぜ自分の申請が却下され、またどのようにしたら融資を得られる見込みが高くなるかということについて不思議に思いました。 この「なぜ」という疑問は、反事実を用いることによって明確にできます。 予測を却下から承認に変えるための特徴量(収入、クレジットカードの枚数、年齢など)の最小の変化はなんでしょうか。 この問いに対する答えには例えば次のようなものが考えられます。 この男性が年間 10,000 ユーロ以上を稼ぐならば、彼は融資を受けられたでしょう。 もしくは、この男性の持つクレジットカードがより少なく、5年前に不履行に陥っていなかったならば、融資を受けられたでしょう。 この銀行は透明性に関して全く関心を持っていなかったため男性が融資を断られた理由を知ることはありませんでしたが、それはまた別の話です。

次の例では、連続的な結果を予測するモデルを反事実を用いて説明しようと思います。 ある女性が所有するアパートを貸し出したいと考えているが、家賃をどの程度にすればわからないため、家賃を予測するために機械学習モデルを学習することにした、という状況を考えます。 もちろん、この女性はデータサイエンティストであるため、これこそが彼女が問題を解決する手段です。 家の大きさ、立地、ペット可かどうかなどの詳細を全て入力すると、モデルは家賃を 900 ユーロと予測しました。 彼女は家賃は 1000 ユーロ以上になると考えていましたが、自分のモデルを信頼し、アパートの価値をどのようにしたら高めることができるかを見るために特徴量を変化させてみることにしました。 そして彼女は部屋が 15m2 よりも大きかった場合、1000 ユーロ以上で貸し出せる可能性があることを見つけました。 興味深い結果ですが、アパートを大きくできないため、これは実現不可能な知識です。 最終的には、彼女は自分でも改善できる特徴量の値(ビルトインキッチンがあるか、ペット可かどうか、床のタイプなど)を微調整することによって、ペットを許可し、より良い断熱窓を設置すれば家賃を1000ユーロ以上にできることを突き止めます。 彼女は直感的に反事実を利用することにより結果を変えたのです。

反事実は現在のインスタンスとは対照的であり、また選択的である、すなわち通常は少ない特徴量の変化に焦点をあてるため、人間に優しい説明です。 しかし反事実は「羅生門効果」の影響を大きく受けます。 羅生門とは侍の殺人事件が複数人の視点から語られる日本の映画のことです。 それぞれの話は結果を等しく説明しますが、それらは互いには全く異なっているのです。 たいていは、複数の異なった反事実的説明が存在するため、同じことが反事実的説明にも言えます。 それぞれの反事実は、どのように特定の結果に到達するかの異なる「ストーリー」を語っています。 ある反事実は特徴量 A を変化させると言い、一方で、他の反事実は特徴量 A はそのままで、特徴量 B を変化させると言うかもしれませんが、これは矛盾しています。 この複数の真実が存在する問題は、全ての反事実を報告するか、反事実を評価する基準を持ち最良のものを選ぶかによって解決できます。

では、反事実的説明の良し悪しはどのように定めれば良いのでしょうか。 まず、反事実的説明ではユーザーがインスタンス(現実の代替)の予測の変化を定義することから、第一に反事実的なインスタンスの予測が、事前に定義された予測を可能な限り忠実に再現していることが必要です。 定義通りの予測を正確に出力することは常に可能であるとは限りません。 滅多に発生しないクラスと発生する頻度の高いクラスを持つような分類問題では、モデルは常にインスタンスを頻繁に起こるクラスに分類してしまうかもしれません。 このような場合、特徴量を変更することで予測されるラベルを普遍的なクラスから希少なクラスに変えることは不可能かもしれません。 このため、反事実に対する予測は定義された結果に正確に一致していなければならないという条件をもう少し緩めてみましょう。 先の分類問題を例に取ると、希少なクラスが予測される確率を現在の 2% から 10% に増加するような反事実をあげることができます。 このときの質問は、予測される確率を 2% から 10% (もしくは 10% に近い値)に変えるような特徴量に対する最小限の変更は何か、となります。 もう1つの品質に対する基準は反事実は元のインスタンスの特徴量と可能な限り似ている必要があるということです。 これには2つのインスタンス間の距離を測る必要があります。 また、反事実には元のインスタンスに近いだけでなく、変更された特徴量の数が少ないことも必要です。 これはマンハッタン距離などの適切な尺度を選ぶことにより実現できます。 最後の条件は、反事実的インスタンスはもっともらしい特徴量の値を持つことが必要である、ということです。 アパートのサイズが負の値であったり、部屋の数が200もあるようなアパートの家賃に対しては、反事実的説明は意味をなさないでしょう。 反事実がデータの同時分布に従っていると、より良いです。例えば、20m2 のサイズの部屋が 10 部屋あるアパートは、反事実的説明に用いるべきではありません。

6.1.1 反事実的説明の生成

反事実的説明を生成するためのシンプルかつ素朴な方法は試行錯誤を繰り返しながら探索することです。 この例としては、先のアパートの例で家賃を高くできるアパートの条件を見つけようとしたように、関心のあるインスタンスの特徴量の値をランダムに変え、望む結果が得られたらやめる、といった方法があります。 しかし、試行錯誤して探すよりも良い方法があります。 まず、関心のあるインスタンス、それに対する反事実、そして望む(反事実的な)結果を入力とする損失関数を定義します。 この損失関数は反事実から予測された結果が事前に定義された結果からどの程度離れているか、また反事実そのものがどの程度関心のあるインスタンスから離れているかを測ります。 この損失関数は、直接最適化アルゴリズムを用いるか、"Growing Spheres" という手法で提案されているように、インスタンスの周囲を探索することで最適化できます(詳しくはソフトウェア及びその代替手法を参照)。

ここでは、2017年、Wacherらにより提案されたアプローチを紹介します。 このアプローチでは次の損失を最小化することを提案しています。

\[L(x,x^\prime,y^\prime,\lambda)=\lambda\cdot(\hat{f}(x^\prime)-y^\prime)^2+d(x,x^\prime)\]

この式の最初の項では反事実 x' のモデルの予測と、事前にユーザが定義した望ましい結果 y' の二乗距離を計算しています。 第2項は説明されるインスタンス x と反事実 x' の距離を表します。 この項についての詳細は後ほどします。 パラメータ \(\lambda\) は第1項目の予測に対する距離と第2項目の特徴量に対する距離のバランスを決定します。 この損失関数は、与えられた \(\lambda\) の値に対して、反事実 x' を求めます。 \(\lambda\) の値が大きいとき、得られる反事実が求めたい結果 y' により近くなる結果が得られ、\(\lambda\) の値が小さいとき、得られる反事実の特徴量が x と近い結果が得られます。 \(\lambda\) が非常に大きい値である場合、x からの距離に関わらず y' に最も近い予測をもつインスタンスが選択されます。 最終的には、ユーザは反事実の予測が、どの程度求める結果と一致するかという点と、反事実がどの程度 x と一致するかという点に関して、バランスを決定する必要があります。 この手法の著者は、\(\lambda\) の値を決定する代わりに、どれだけ反事実インスタンスの予測が y' と離れていても良いかを表す許容量 \(\epsilon\) を決定することを提案しています。 この条件は以下のように記述できます。

\[|\hat{f}(x^\prime)-y^\prime|\leq\epsilon\]

この損失関数を最小化するには、Nelder-Mead法といった多くの最適化アルゴリズムを用いることができます。 もし機械学習モデルの勾配にアクセスできる場合、ADAM などの勾配ベースの手法を用いることもできます。 説明されるインスタンス x 、求めたい結果 y' 、許容量 \(\epsilon\) は事前に定めておく必要があります。 \(\lambda\) の値を増加させながら(許容パラメータ内において)十分に近い解を探索することで、損失関数は x' について最小化され、(局所的に)最適な反事実 x' が返されます。

\[\arg\min_{x^\prime}\max_{\lambda}L(x,x^\prime,y^\prime,\lambda)\]

インスタンス x と反事実 x' の距離を測る関数 d は、中央絶対偏差(median absolute deviation, MAD)の逆数によって特徴量ごとにスケーリングされたマンハッタン距離で表されます。

\[d(x,x^\prime)=\sum_{j=1}^p\frac{|x_j-x^\prime_j|}{MAD_j}\]

距離の合計値は全ての p 個の特徴量間の距離の総和、すなわちインスタンス x と反事実 x' の特徴量の差の絶対値を表します。 特徴量ごとの距離は、データセット内の特徴量 j の MAD の逆数によってスケーリングされます。

\[MAD_j=\text{median}_{i\in{}\{1,\ldots,n\}}(|x_{i,j}-\text{median}_{l\in{}\{1,\ldots,n\}}(x_{l,j})|)\]

ベクトルの中央値はベクトル内の値の半分がこれより大きくなり、残りの半分がこれより小さくなる値を指します。 MAD は特徴量の分散に相当しますが、平均を中心として距離の二乗和をとる代わりに、中央値を中心として距離の絶対値の和を用います。 ユークリッド距離と比較すると、提案された距離関数はスパース性が導入されているという利点があります。 これは、異なる特徴量の数が少ないとき、2点がより近くなることを意味します。 また、外れ値に対してよりロバストになります。 MAD によりスケーリングすることは全ての特徴量を同じスケールにするためことに必要です。 アパートの大きさをメートルで測るかフィートで測るかは結果に影響すべきではありません。

反事実を生成する手順はシンプルです。

  1. 説明したいインスタンス x、望ましい結果 y'、許容量 \(\epsilon\)\(\lambda\) の初期値(小さな値)を選択する。
  2. 最初に用いる反事実としてランダムにインスタンスをサンプリングする。
  3. 最初に選んだ反事実を出発点として損失関数を最適化する。
  4. \(|\hat{f}(x^\prime)-y^\prime|>\epsilon\) を満たす間、
    • \(\lambda\) の値を増加させる。
    • 現在の反事実を出発点として損失を最適化する。
    • 損失を最小化する反事実を返す。
  5. ステップ 2-4 を繰り返し、反事実のリストもしくは損失を最小化するものを返す。

6.1.2

どちらの例も Wachter らの論文 (2017)より引用しています。

最初の例では、著者は3層の全結合型ニューラルネットを学習し、法科大学入学前の成績(GPA)、人種、入学試験の得点から、入学1年目の学生の成績を予測しようとしています。 目標は次の問いを満たす反事実的説明を各学生に対して求めることです。 予測スコアが 0 となるにはどのように入力特徴量を変更する必要があるでしょうか。 スコアは事前に標準化されているため、スコアが 0 というのはその学生が平均的であることを意味します。 また、スコアが負であることは平均以下、スコアが正であることは平均以上であることを意味します。

次の表は学習された反事実を表しています。

点数 GPA 入学試験の点数 人種 GPA x' 入学試験の点数 x' 人種 x'
0.17 3.1 39.0 0 3.1 34.0 0
0.54 3.7 48.0 0 3.7 32.4 0
-0.77 3.3 28.0 1 3.3 33.5 0
-0.83 2.4 28.5 1 2.4 35.8 0
-0.57 2.7 18.3 0 2.7 34.9 0

最初の列は予測した点数、次の3列は特徴量の元々の値、そして最後の3列が点数が0に近い値となるような反事実の特徴量の値を表しています。 また、最初の2行は平均以上の予測となった学生、残りの3行は平均以下となった学生を表しています。 ここで、最初の2行の反事実は、予測値が下がるには各生徒の特徴量がどのように変更される必要があるのか、残りの3行では予測値が上がるためには各生徒の特徴量がどのように変更される必要があるのかを示しています。 点数が上がる反事実では常に人種が黒人(1の値)から白人(0の値)となっており、モデルが人種に対するバイアスを持っていることがわかります。 この時、GPAは変化していませんが、入学試験の点数が変化していることがわかります。

2つ目の例では糖尿病のリスクの予測に対する反事実的説明を表しています。 3層全結合ニューラルネットを訓練し、年齢、BMI、妊娠の回数などからピマ族の血を引く女性が糖尿病にかかるリスクを予測しています。 反事実を次の問いとして、糖尿病リスクのスコアを0.5に増加させる、もしくは減少させるにはどの特徴量が変更される必要があるかを考えます。

  • 1人目:2時間の血中インスリン測定の結果が 154.3 ならば、スコアが0.51となる
  • 2人目:2時間の血中インスリン測定の結果が 169.5 ならば、スコアが0.51となる
  • 3人目:血糖値が 158.3 かつ2時間の血中インスリン測定の結果が 160.5 ならば、スコアが0.51となる

6.1.3 長所

反事実的説明は単純明快です。 反事実に従ってあるインスタンスの特徴量を改変すると、予測結果が予め設定した値に変わります。 背景には他の仮定も魔法もありません。 従って、LIMEのように局所的なモデルをどれだけ外挿していいか不明な手法と比べると、危険性が低いです。

反事実的説明は新たなインスタンスを生成しますが、反事実がどの特徴量を変更したものか要約できます。 結果をまとめるにあたって2つの選択肢が生じます。 反事実インスタンスを報告するか、説明したいインスタンスとその反事実インスタンスとの間でどの特徴量が異なるかを示すか選べます。

反事実的手法はデータやモデルへのアクセスが不要です。 モデルの予測関数にさえアクセスできればよく、web APIなどによる運用も可能です。 この性質は、サードパーティの監査を受ける企業やデータやモデルを非公開にしたままユーザーに説明性を提供したい企業にとって魅力的です。 会社は企業秘密やデータ保護の観点から、モデルやデータの秘匿に関心を寄せています。 反事実による説明は、モデルの予測を説明することと、モデルの所有者の利益を守ることのバランスを取ることができます。

反事実的手法は機械学習を用いないシステムにも応用可能です。 入出力を持つ任意のシステムに対して反事実は作れます。 アパートの賃料予測は手書きのルールによる構築も可能ですが、反事実的説明は依然として機能します。

反事実的説明は比較的簡単に実装できます。 というのも、反事実的説明は標準的な最適化ライブラリによって最適化可能な損失関数にすぎないからです。 ただし、特徴量の範囲の妥当性などいくつか追加で考慮すべき点があります(例えば 、アパートの広さは正の値しか取りません)。

6.1.4 短所

通常、各インスタンスは複数の反事実的説明を持ちます(羅生門効果)。 これは便利ではありません。多くの人は現実世界の複雑さよりも簡単な説明の方を好みます。 また、これは実用面での課題でもあります。 例として1つのインスタンスに対して23個の反事実的説明が生成されたとしましょう。 これらを全て報告すべきでしょうか、それとも最も良いものだけにするべきでしょうか。 もしそれらが全て比較的「良い」もので、中身が異なるものであったならどうでしょうか。 これらの課題はプロジェクトごとに新たに答えを出さなくてはいけません。 過去の経験に合うものを選択できるという理由から、複数の反事実的説明を持つことが有利になることもありえます。

与えられた許容量 \(\epsilon\) に対して、反事実的説明が見つかるとは限りません。 これは手法による過失ではなく、データに依存しています。

提案された手法では異なるレベルを持つカテゴリカル特徴量を上手く扱うことができません。 この手法の著者はカテゴリカル特徴量の組み合わせごとにこの方法を実行することを提案していますが、これも多くの値を持つ複数のカテゴリカル特徴量を持つ場合には組合せ爆発を起こしてしまいます。 例えば10個の固有の値を持つカテゴリカル特徴量が6個あった場合、100万回もの実行が必要となります。 カテゴリカル特徴量のみを扱う際の解決策としては、Martensらが提案した手法(2014)52 が存在します。 また、量的変数とカテゴリカル変数を両方扱い、カテゴリカル変数に対して原理的に摂動を生成する手法が Python パッケージ Alibi に実装されています。

6.1.5 ソフトウェアと代替手法

反事実的説明のPython実装は Alibi パッケージです。パッケージの作者は 単純な反事実的手法その拡張 としてプロトタイプクラスを用いて解釈しやすくし、アルゴリズムの収束性を改善したものを実装しています。

Martens らは文書の分類問題に対して同様の手法を提案しています(2014)。 彼らはある文書がどうして特定のクラスに分類されなかったのか説明することに注力しています。 本章で説明した手法と異なり、Martens らは文書の分類に注目しているので、入力は単語の出現頻度です。

他にも反事実を探す方法として、Laugel らによるGrowing Spheresアルゴリズム (2017)53があります。 この手法は、注目したい点の周囲に球を描き、その球に含まれる点を抽出し、抽出した点の予測結果が期待通りか確認しながら、(スパースな)反事実を発見し提示するまで球を拡大していきます。 彼らは論文中で反事実 (counterfactual) という用語を用いていませんが、手法としてはよく似ています。 彼らはさらに特徴量を最小限に改変して反事実を得るための損失関数を定義しています。 損失関数を直接最適化する代わりに、彼らは上述の球を用いた探索を提案しています。

Ribeiro らによるAnchor (2018)54は反事実とは対極的な存在です。 これについては、Scoped Rules (Anchors)の章をご覧下さい。


  1. Martens, David, and Foster Provost. "Explaining data-driven document classifications." (2014).

  2. Laugel, Thibault, et al. "Inverse classification for comparison-based interpretability in machine learning." arXiv preprint arXiv:1712.08443 (2017).

  3. Ribeiro, Marco Tulio, Sameer Singh, and Carlos Guestrin. "Anchors: High-precision model-agnostic explanations." AAAI Conference on Artificial Intelligence (2018).