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