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)。实际应用中通常采用近似方法。以下为精确计算流程:

  1. 确定参与者集合:列出所有特征 N = {1, 2, …, n}。
  2. 枚举所有子集:生成 N 的所有子集(共 2n 个),包括空集。
  3. 计算特征函数:对每个子集 S,计算 v(S)(即仅使用 S 中特征时的模型预测值)。
  4. 计算边际贡献:对每个特征 i 和每个不包含 i 的子集 S,计算 v(S ∪ {i}) - v(S)。
  5. 加权平均:按公式计算每个特征的 Shapley值 φi。

以下 SVG 图展示了 Shapley值计算的核心流程:

Shapley值计算流程 Shapley值计算流程 输入:特征集合 N = {1,2,…,n} 枚举所有子集 S ⊆ N(共 2ⁿ 个) 计算 v(S):仅用子集 S 的模型预测值 边际贡献:v(S∪{i}) - v(S) 加权平均:φᵢ = Σ [|S|!(n-|S|-1)!/n!] × 边际贡献 输出:每个特征的 Shapley值

3.5 特征贡献的公平分配原则

将 Shapley值应用于机器学习特征归因时,其公平分配原则体现在以下三个方面:

  • 局部精度(Local Accuracy):每个样本的预测值可以分解为基线值(所有样本的平均预测)加上各特征的 Shapley值之和。这保证了分解的完整性。
  • 缺失性(Missingness):如果一个特征在样本中缺失(或取值为基线值),其 Shapley值应为 0。这确保了不存在的特征不会获得贡献。
  • 一致性(Consistency):如果某个特征在任意特征子集中的边际贡献增加(或保持不变),其 Shapley值也应增加(或保持不变)。这保证了贡献分配与模型行为一致。
关键理解: Shapley值的公平性并非指“每个特征获得相同贡献”,而是指“贡献分配方式在数学上无偏、可加、且尊重每个特征在所有可能合作场景中的实际作用”。这种公平性使得 SHAP 成为唯一同时满足局部精度、缺失性和一致性的特征归因方法。

以下 SVG 图展示了 Shapley值公平分配原则在机器学习中的映射关系:

Shapley值公平分配原则映射 Shapley值公平分配原则 → 机器学习特征归因 博弈论公理 有效性:总和 = v(N) 对称性:等价贡献 → 等价分配 虚拟性:零贡献 → 零分配 可加性:独立博弈可叠加 机器学习特征归因 局部精度:预测 = 基线 + Σ贡献 对称性:等价特征 → 相同 SHAP值 缺失性:缺失特征 → SHAP值 = 0 一致性:贡献增加 → SHAP值增加 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ⁿ) 降低到可接受范围。