3. SHAP核心原理(上):博弈论中的Shapley值、SHAP的数学定义、加性特征归因模型

SHAP(SHapley Additive exPlanations)是目前最主流的模型可解释性方法之一。要真正理解SHAP,必须从它的两个根基入手:博弈论中的Shapley值和加性特征归因模型。本节将拆解这两个核心概念,并给出SHAP的严格数学定义。

3.1 博弈论中的Shapley值

Shapley值由诺贝尔经济学奖得主Lloyd Shapley于1953年提出,用于解决合作博弈中的收益分配问题。其核心思想是:在一个多人合作的任务中,如何公平地分配总收益,使得每个成员的贡献得到合理体现。

3.1.1 经典场景:三个同事的奖金分配

假设三位同事(A、B、C)共同完成一个项目,获得总奖金100元。他们各自贡献不同,且可以任意组合工作。Shapley值通过计算每个成员在所有可能的加入顺序中的边际贡献的平均值,来确定其应得的份额。

关键概念:
  • 联盟(Coalition):任意一个参与者的子集,如{A, B}、{C}、{A, B, C}。
  • 特征函数(Characteristic Function)v(S):联盟S所能创造的总收益。
  • 边际贡献(Marginal Contribution):参与者i加入联盟S后,联盟收益的增加值:v(S ∪ {i}) - v(S)。

Shapley值的计算公式如下:

φ_i(v) = Σ_{S ⊆ N \ {i}} [ |S|! * (|N| - |S| - 1)! / |N|! ] * [ v(S ∪ {i}) - v(S) ]

其中:

  • N:所有参与者的集合(总人数为|N|)。
  • S:不包含参与者i的任意子集。
  • v(S ∪ {i}) - v(S):参与者i加入联盟S时的边际贡献。
  • 权重因子:|S|! * (|N| - |S| - 1)! / |N|!,表示所有可能的加入顺序中,该特定边际贡献出现的概率。

3.1.2 Shapley值的四大公理

Shapley值之所以被认为是“公平”的,是因为它唯一满足以下四条公理:

公理 含义 数学表达
有效性(Efficiency) 所有参与者的Shapley值之和等于总收益。 Σ φ_i(v) = v(N)
对称性(Symmetry) 如果两个参与者对所有不包含他们的联盟贡献相同,则他们的Shapley值相等。 若v(S∪{i}) = v(S∪{j}),则φ_i = φ_j
虚拟性(Dummy) 如果一个参与者对任何联盟都没有贡献,则其Shapley值为0。 若v(S∪{i}) = v(S),则φ_i = 0
可加性(Additivity) 对于两个独立的博弈,合并后的Shapley值等于各自Shapley值之和。 φ_i(v + w) = φ_i(v) + φ_i(w)
课程提示:这四条公理保证了Shapley值在分配问题上的唯一性和公平性。在模型解释中,“有效性”对应预测值可分解为各特征贡献之和;“虚拟性”对应无关特征的贡献应为0。

3.2 从Shapley值到SHAP:加性特征归因模型

SHAP将Shapley值的思想引入机器学习模型解释。它将每个特征视为博弈中的参与者,将模型预测值视为总收益。SHAP的核心是加性特征归因模型(Additive Feature Attribution Model),它假设模型的预测结果可以表示为每个特征贡献值的线性加和。

3.2.1 加性特征归因模型的定义

对于一个原始模型f(x),加性特征归因模型g(x')定义为:

g(x') = φ_0 + Σ_{i=1}^{M} φ_i * x'_i

其中:

  • g(x'):解释模型的预测值。
  • φ_0:基准值(base value),通常是所有样本预测值的均值(E[f(x)])。
  • M:简化输入特征的个数(通常等于原始特征数)。
  • φ_i:第i个特征的Shapley值(即特征贡献度)。
  • x'_i:简化输入变量,表示特征i是否存在(通常为0或1,或表示特征是否被观测到)。
核心等式:模型预测值 = 基准值 + 各特征贡献值之和
f(x) ≈ g(x') = φ_0 + φ_1 + φ_2 + ... + φ_M

3.2.2 SHAP的数学定义

SHAP值正是上述加性模型中的φ_i,它通过计算特征i在所有可能的特征子集(联盟)中的平均边际贡献得到。其数学定义与Shapley值完全一致,只是将“参与者”替换为“特征”:

φ_i(f, x) = Σ_{S ⊆ F \ {i}} [ |S|! * (|F| - |S| - 1)! / |F|! ] * [ f_x(S ∪ {i}) - f_x(S) ]

其中:

  • F:所有特征的集合。
  • S:不包含特征i的特征子集。
  • f_x(S):在特征子集S已知的情况下,模型对样本x的期望预测值(即对缺失特征进行边际化处理后的预测值)。
  • f_x(S ∪ {i}) - f_x(S):在已知特征子集S的基础上,加入特征i后模型预测值的变化量(边际贡献)。
计算复杂度警告:直接计算SHAP值的复杂度是O(2^M),即需要遍历所有可能的特征子集。当特征数量较多时(M > 20),计算会变得不可行。后续章节将介绍TreeSHAP、KernelSHAP等近似算法来解决这一问题。

3.3 SHAP与Shapley值的核心区别

虽然SHAP值在数学上等价于Shapley值,但两者在应用场景和实现细节上存在关键区别:

维度 Shapley值(博弈论) SHAP值(机器学习)
参与者 人、公司、实体 特征(Feature)
收益函数 联盟的总收益 v(S) 模型在特征子集下的期望预测值 f_x(S)
基准值 空联盟收益 v(∅) 所有样本的平均预测值 E[f(x)]
输出形式 单一数值(应得收益) 每个样本每个特征的贡献值(可正可负)
核心目标 公平分配总收益 解释单个样本的预测结果

3.4 SHAP加性归因模型的可视化结构

下图展示了SHAP加性特征归因模型的核心结构:模型预测值由基准值(所有样本的平均预测)和各个特征的SHAP值线性叠加而成。

SHAP加性特征归因模型结构 基准值 φ₀ = E[f(x)] + 特征1 SHAP值 φ₁ 特征2 SHAP值 φ₂ 特征3 SHAP值 φ₃ ... 特征M φ_M + ... + = 模型预测值 f(x) ≈ g(x') 说明:每个特征的SHAP值可正可负,正表示该特征对预测结果有正向贡献,负表示负向贡献。

3.5 本章小结

  • Shapley值是博弈论中公平分配收益的数学工具,满足有效性、对称性、虚拟性和可加性四大公理。
  • SHAP值将Shapley值应用于机器学习,将每个特征视为博弈参与者,将模型预测值视为总收益。
  • 加性特征归因模型是SHAP的理论框架,假设预测值 = 基准值 + 各特征SHAP值之和。
  • SHAP值的计算复杂度为O(2^M),实际应用中需要借助近似算法。