3. 博弈论与Shapley值:合作博弈基本概念、Shapley值的数学定义、特征贡献的公平分配原则
在机器学习可解释性领域,SHAP(SHapley Additive exPlanations)值的核心思想源自博弈论中的Shapley值。理解这一理论基础,是掌握SHAP值计算逻辑与解读方式的前提。本节将系统介绍合作博弈的基本概念、Shapley值的数学定义及其公平分配原则。
3.1 合作博弈基本概念
合作博弈(Cooperative Game)研究的是多个参与者通过结成联盟(Coalition)共同行动时,如何分配合作产生的总收益。与竞争博弈不同,合作博弈关注的是联盟的收益分配公平性。
核心要素:
- 参与者集合 N:所有参与博弈的个体,记为 N = {1, 2, …, n}。
- 特征函数 v(S):定义在 N 的任意子集 S(联盟)上的实值函数,表示联盟 S 在不与外部合作时能获得的总收益。v(∅) = 0。
- 边际贡献:参与者 i 加入联盟 S 后,为联盟带来的额外收益,即 v(S ∪ {i}) - v(S)。
在机器学习场景中,参与者对应特征,联盟对应特征子集,特征函数 v(S) 对应仅使用特征子集 S 时模型的预测输出。合作博弈的目标是:将总预测值 v(N) 公平地分配给每个特征。
3.2 Shapley值的数学定义
Shapley值由 Lloyd Shapley 于1953年提出,是合作博弈中唯一满足一系列公平性公理的收益分配方案。对于参与者 i,其 Shapley值 φi 定义为:
φᵢ(v) = Σ_{S ⊆ N \ {i}} [ |S|! (n - |S| - 1)! / n! ] × [ v(S ∪ {i}) - v(S) ]
其中:
- N:所有参与者的集合,n = |N|。
- S:不包含参与者 i 的任意子集。
- |S|!:联盟 S 内部排列数。
- (n - |S| - 1)!:剩余参与者(除 i 和 S 外)的排列数。
- n!:所有参与者的总排列数。
- v(S ∪ {i}) - v(S):参与者 i 加入联盟 S 的边际贡献。
该公式的直观含义是:参与者 i 的 Shapley值等于其在所有可能的加入顺序下,边际贡献的加权平均值。权重由联盟大小决定,确保每种联盟出现的概率均等。
计算示例: 假设三个特征 A、B、C,模型预测值 v({A,B,C}) = 100。若 v({A}) = 20,v({A,B}) = 60,则特征 C 加入联盟 {A,B} 的边际贡献为 100 - 60 = 40。Shapley值会遍历所有 3! = 6 种加入顺序,计算每个特征的边际贡献并取平均。
3.3 公平分配的四条公理
Shapley值的独特之处在于,它是唯一同时满足以下四条公理的分配方案:
| 公理 | 名称 | 含义 | 机器学习对应 |
|---|---|---|---|
| 1 | 有效性 | 所有参与者 Shapley值之和等于总收益 v(N) | 所有特征贡献之和 = 模型预测值 - 基线预测值 |
| 2 | 对称性 | 若两个参与者对所有不包含它们的联盟贡献相同,则分配相同 | 两个特征在所有子集中贡献相同,则 Shapley值相等 |
| 3 | 虚拟性 | 若参与者对任何联盟的边际贡献均为 0,则其 Shapley值为 0 | 特征对任何特征组合的预测均无影响,则贡献为 0 |
| 4 | 可加性 | 若两个独立博弈合并,参与者的 Shapley值等于两个博弈中 Shapley值之和 | 两个模型的预测值相加时,特征贡献也对应相加 |
注意: 有效性公理是 SHAP 值可加性解释的基础。在 SHAP 中,每个特征的贡献值之和等于模型预测值与所有特征平均预测值(基线)的差值,这使得 SHAP 值能够提供局部加性解释。
3.4 Shapley值计算流程
计算 Shapley值需要枚举所有可能的特征子集,其计算复杂度为 O(2n)。实际应用中通常采用近似方法。以下为精确计算流程:
- 确定参与者集合:列出所有特征 N = {1, 2, …, n}。
- 枚举所有子集:生成 N 的所有子集(共 2n 个),包括空集。
- 计算特征函数:对每个子集 S,计算 v(S)(即仅使用 S 中特征时的模型预测值)。
- 计算边际贡献:对每个特征 i 和每个不包含 i 的子集 S,计算 v(S ∪ {i}) - v(S)。
- 加权平均:按公式计算每个特征的 Shapley值 φi。
以下 SVG 图展示了 Shapley值计算的核心流程:
3.5 特征贡献的公平分配原则
将 Shapley值应用于机器学习特征归因时,其公平分配原则体现在以下三个方面:
- 局部精度(Local Accuracy):每个样本的预测值可以分解为基线值(所有样本的平均预测)加上各特征的 Shapley值之和。这保证了分解的完整性。
- 缺失性(Missingness):如果一个特征在样本中缺失(或取值为基线值),其 Shapley值应为 0。这确保了不存在的特征不会获得贡献。
- 一致性(Consistency):如果某个特征在任意特征子集中的边际贡献增加(或保持不变),其 Shapley值也应增加(或保持不变)。这保证了贡献分配与模型行为一致。
关键理解: Shapley值的公平性并非指“每个特征获得相同贡献”,而是指“贡献分配方式在数学上无偏、可加、且尊重每个特征在所有可能合作场景中的实际作用”。这种公平性使得 SHAP 成为唯一同时满足局部精度、缺失性和一致性的特征归因方法。
以下 SVG 图展示了 Shapley值公平分配原则在机器学习中的映射关系:
3.6 与机器学习模型的关联
在 SHAP 框架中,特征函数 v(S) 的具体定义取决于模型类型和解释目标。常见定义方式包括:
| 方法 | 特征函数 v(S) 定义 | 适用场景 |
|---|---|---|
| 边际期望 | v(S) = E[f(x) | xS] | 特征独立假设成立时 |
| 条件期望 | v(S) = E[f(x) | xS] | 考虑特征相关性时 |
| 插值法 | v(S) = f(xS, x¬Sref) | 使用参考样本填充缺失特征 |
实践要点: 在后续课程中,我们将看到 SHAP 库通过 KernelSHAP(基于采样近似)和 TreeSHAP(针对树模型的高效算法)来近似计算 Shapley值,从而在保持理论公平性的同时,将计算复杂度从 O(2ⁿ) 降低到可接受范围。