用 AI 分摊 Shapley 贡献:两个特征都重要,为何不能各自领走全部协同收益
模型解释里常见一种做法:把某个特征拿掉,看预测分数下降多少。这个问题有用,但若两个特征必须一起出现才产生额外作用,分别删除的降幅会把同一段协同收益算两遍。Shapley值通过平均加入顺序下的边际贡献,提供另一种明确的分摊规则。
AI模型生成的概念插图:两块拼图共同形成组合,协同部分需要分摊;不是精确贡献比例图或软件截图。
先明确缺少特征时怎样计算
设一个虚构评分函数F(a,b)=2+3a+5b+8ab,只用于教学。两项特征都取0或1,当前输入为(1,1)。本文约定未加入的特征固定为0,因此空集合的值是2,只加A时为5,只加B时为7,两项都加时为18。
这里的2是基线输出,3与5是单项增量,8是只在两项同时为1时出现的交互。四个集合值必须先写清楚,再谈贡献。不能一会儿把缺失特征填0,一会儿又使用它在某批数据中的平均值,却声称在解释同一个问题。
同一个特征,先来与后来领到的增量不同
两项特征只有两种加入顺序。先A后B时,A使输出从2到5,贡献3;B随后使5到18,贡献13。先B后A时,B使2到7,贡献5;A随后使7到18,贡献11。每一种顺序的两项增量都合计16。
两种顺序等权平均,A的Shapley值为(3+11)/2=7,B为(13+5)/2=9。归因之和16,加上基线2,恢复当前输出18。也可以看作A拿自己的3加一半交互4,B拿自己的5加另一半交互4。
直接从完整输入逐个删除则不同:删除A,分数18降到7,降幅11;删除B,18降到5,降幅13。把11与13相加会得到24,超过相对基线的16,因为交互8被双方各计入一次。单独删除量本身没有算错,只是不满足这次加总分摊的目的。
校验总数,也要校验规则
本例用程序枚举全部排列并累计加入前后的集合值,再独立将交互项平均拆分,两条路线得到相同结果。可以让AI展示每条顺序的两个差值;只给最终7和9,仍不足以看出它是否理解交互来自哪里。
把交互系数8改为0,四个集合值变成2、5、7、10,两项贡献回到3与5。这个边界说明,在线性可加的设定中,先后顺序不再改变边际贡献。反过来若加入第三个完全不影响函数的特征,它在每种顺序下带来的差都为0,归因也应为0。
特征数量多时,完整排列数很快增大,实际方法会利用模型结构或近似计算。SHAP将Shapley思想用于加性模型解释,但具体工具如何定义未知特征、选背景数据、处理相关特征,仍会改变所解释的集合函数。本文是固定零基线的精确两特征游戏,不把它冒充任意SHAP接口的默认结果。
这种分摊适合审查“分数为何相对基线变化”的说明。它不是团队奖金规则,也不是特征的因果效应估计。即使贡献为正,也只能说在所定义的模型比较中抬高了该输出;现实中改动那个特征会怎样,还需要另外的因果依据和可行性检查。
资料核对日期:2026年10月2日。算例为原创教学设定,已用独立程序复核,未进行真实模型训练或效果测试。
参考资料
Lundberg与Lee:A Unified Approach to Interpreting Model Predictions


