线性解释器(LinearExplainer)背后的数学原理,涉及相关特征扰动
当我们使用 LinearExplainer(model, prior, feature_perturbation="correlation_dependent")
时,我们不使用 \(E[f(x) \mid do(X_S = x_S)]\) 来衡量一组特征 \(S\) 的影响,而是使用 \(E[f(x) \mid X_S = x_s]\),在假设随机变量 :math:`X`(表示输入特征)遵循多元高斯分布的情况下。要以此方式计算SHAP值,我们需要计算所有特征子集在多元高斯分布下的条件期望。这将涉及大量矩阵运算,对于指数级数量的项来说,对于特征数量较多的模型来说,这是难以处理的。
本文档简要概述了我们用于预计算所有所需线性代数的数学方法,该方法使用一个只需进行一次的采样过程,然后可以应用于任意数量的样本。与暴力方法相比,这大大加快了计算速度。请注意,所有这些计算都依赖于我们正在解释一个线性模型 \(f(x) = \beta x\) 这一事实。
大多数解释器使用的干预形式中的 SHAP 值的排列定义是
但在这里我们将使用非干预条件期望形式(我们通过去掉对随机变量 \(X\) 的显式引用来简化符号)。
其中 \(f(x) = \beta x + b\) ,其中 \(\beta\) 是一个行向量,而 \(b\) 是一个标量。
如果我们用线性函数定义替换 f(x),我们得到:
\begin{align} \phi_i = \frac{1}{M!} \sum_R E[\beta x + b \mid x_{S_i^R \cup i}] - E[\beta x + b \mid x_{S_i^R}] \\
= beta frac{1}{M!} sum_R E[x mid x_{S_i^R cup i}] - E[x mid x_{S_i^R}]
end{align}`
假设输入 \(x\) 服从均值为 \(\mu\) 和协方差为 \(\Sigma\) 的多变量正态分布。记选择集合 \(S\) 的投影矩阵为 \(P_S\) ,则我们得到:
\begin{align} E[x \mid x_S] = [P_{\bar S} \mu + P_{\bar S} \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} ( P_S x - P_S \mu)] P_{\bar S} + x P_S^T P_S \\ = [P_{\bar S} \mu + P_{\bar S} \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S (x - \mu)] P_{\bar S} + x P_S^T P_S \\ = [\mu + \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S (x - \mu)] P_{\bar S}^T P_{\bar S} + x P_S^T P_S \\ = P_{\bar S}^T P_{\bar S} [\mu + \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S (x - \mu)] + P_S^T P_S x \\ = P_{\bar S}^T P_{\bar S} \mu + P_{\bar S}^T P_{\bar S} \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S x - P_{\bar S}^T P_{\bar S} \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S \mu + P_S^T P_S x \\ = [P_{\bar S}^T P_{\bar S} - P_{\bar S}^T P_{\bar S} \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S] \mu + [P_S^T P_S + P_{\bar S}^T P_{\bar S} \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S] x \end{align}
如果我们令 \(R_S = P_{\bar S}^T P_{\bar S} \Sigma P_S^T (P_S \Sigma P_S^T)^{-1} P_S\) 和 \(Q_S = P_S^T P_S\),那么我们可以写成
\begin{align} E[x \mid x_S] = [Q_{\bar S} - R_S] \mu + [Q_S + R_S] x \end{align}
或
\begin{align} E[x \mid x_{S_i^R \cup i}] = [Q_{\bar{S_i^R \cup i}} - R_{S_i^R \cup i}] \mu + [Q_{S_i^R \cup i} + R_{S_i^R \cup i}] x \end{align}
导致Shapley方程的
\begin{align} \phi_i = \beta \frac{1}{M!} \sum_R [Q_{\bar{S_i^R \cup i}} - R_{S_i^R \cup i}] \mu + [Q_{S_i^R \cup i} + R_{S_i^R \cup i}] x - [Q_{\bar{S_i^R}} - R_{S_i^R}] \mu - [Q_{S_i^R} + R_{S_i^R}] x \\ = \beta \frac{1}{M!} \sum_R ([Q_{\bar{S_i^R \cup i}} - R_{S_i^R \cup i}] - [Q_{\bar{S_i^R}} - R_{S_i^R}]) \mu + ([Q_{S_i^R \cup i} + R_{S_i^R \cup i}] - [Q_{S_i^R} + R_{S_i^R}]) x \\ = \beta \left [ \frac{1}{M!} \sum_R ([Q_{\bar{S_i^R \cup i}} - R_{S_i^R \cup i}] - [Q_{\bar{S_i^R}} - R_{S_i^R}]) \right ] \mu + \beta \left [ \frac{1}{M!} \sum_R ([Q_{S_i^R \cup i} + R_{S_i^R \cup i}] - [Q_{S_i^R} + R_{S_i^R}]) \right ] x \end{align}
这意味着我们可以通过多次绘制随机排列 \(R\) 并平均我们的结果来预计算变换矩阵 \(T\)。一旦我们计算出 \(T\),我们就可以通过简单的矩阵乘法来解释任意数量的样本(或模型)。