Shapley value

我们先介绍一下沙普利值。沙普利值来源于合作博弈,cooperative game (coalitional game)。区别于传统博弈认为个体之间是相互独立的并分析其纳什均衡的方法,合作博弈会考虑每个player之间的协作关系,分析合作中会出现的 1 + 1 > 2 \displaystyle 1+1 >2 1+1>2的收益等情景。合作博弈中一般包含 N \displaystyle N N个参与者,以及一个用于评估不同参与者合作收益的value function v \displaystyle v v, 且 v ( ϕ ) = 0 \displaystyle v( \phi ) =0 v(ϕ)=0。

Shapley value的目的就是根据各种不同的合作方式及其收益总结出每个人的贡献是多少?

考虑一个打工人的例子,假设资本家是 o \displaystyle o o owner,提供生成工具,没有他就不会有任何产出,然后有 m \displaystyle m m个工人,那么player一共有
N = { o , w 1 , . . . , w m } \displaystyle N=\{o,w_{1} ,...,w_{m}\} N={o,w1​,...,wm​}. 针对不同的打工的队伍,他们生成价值可以用一个value function来衡量:

v ( S ) = { m p , if  o ∈ S 0 , otherwise {\displaystyle v(S)=\begin{cases} mp, & \text{if } o\in S\\ 0, & \text{otherwise} \end{cases}} v(S)={mp,0,​if o∈Sotherwise​

这里 S ⊆ N \displaystyle {\displaystyle S\subseteq N} S⊆N, m \displaystyle m m是 S \ { o } \displaystyle S\backslash \{o\} S\{o}的工人数量。现在我们想知道,每个player对这个生产价值 m p \displaystyle mp mp的贡献。直觉上,资本家的贡献肯定是最大的,因为没了他不行,而工人的贡献则相对较少,有什么合理的方法来衡量每个人的贡献呢?

一个粗糙的想法是:每个player得到的回报(贡献)应该正比于他们的marginal contributions: v ( S ) − v ( S \ { i } ) \displaystyle v( S) -v( S\backslash \{i\}) v(S)−v(S\{i}).

换句话说,我们是在用“删除”的方法来评估一个人的贡献,但是,显然在不同的协作场景下,删除带来的差异很可能是不一样的,例如,

v ( N ) − v ( N \ { i } ) = { p if  i ≠ o m p if  i = o v( N) -v( N\backslash \{i\}){\displaystyle =\begin{cases} p & \text{if } i\neq o\\ mp & \text{if} \ i=o \end{cases}} v(N)−v(N\{i})={pmp​if i=oif i=o​

但是除了 N \displaystyle N N还有很多可能不同的协作情况 S ⊆ N \displaystyle S\subseteq N S⊆N,我们需要找到一个合理的权重分配方式,综合所有可能情况下的删除贡献,同时又让这个贡献满足一些比如对称性的性质。为此,shapley设计了几条公理,推导出了shapley value,用 ϕ i ( v ) \displaystyle \phi _{i}( v) ϕi​(v)表示第i个player的贡献。

公理1(对称性,Symmetry):如果player i , j \displaystyle i,j i,j,不管什么 情况,他们value都是一样的, v ( S ∪ { i } ) = v ( S ∪ { j } ) \displaystyle v( S\cup \{i\}) =v( S\cup \{j\}) v(S∪{i})=v(S∪{j}),对于任意的不包含 i , j \displaystyle i,j i,j的 S \displaystyle S S都成立,则他们的贡献也应该是一样的,于是 ϕ i ( N , v ) = ϕ j ( N , v ) . \displaystyle \phi _{i}( N,v) =\phi _{j}( N,v) . ϕi​(N,v)=ϕj​(N,v).

公理2(dummy players): 如果player i \displaystyle i i无论怎样的value都是0, v ( S ∪ { i } ) = v ( S ) \displaystyle v( S\cup \{i\}) =v( S) v(S∪{i})=v(S),则他的贡献也应该是0, ϕ i = 0 \displaystyle \phi _{i} =0 ϕi​=0.

公理3(Additivity): 如果这个博弈可以分解为2个,即 v = v 1 + v 2 \displaystyle v=v_{1} +v_{2} v=v1​+v2​,那么对应的贡献也应该能分解 ϕ i ( N , v 1 + v 2 ) = ϕ i ( N , v 1 ) + ϕ i ( N , v 2 ) \displaystyle \phi _{i}( N,v_{1} +v_{2}) =\phi _{i}( N,v_{1}) +\phi _{i}( N,v_{2}) ϕi​(N,v1​+v2​)=ϕi​(N,v1​)+ϕi​(N,v2​)

基于以上公理,我们可以推导出shapley value,对于coalitional game ( N , v ) \displaystyle ( N,v) (N,v)

ϕ i ( N , v ) = ∑ S ⊆ N \ { i } ∣ S ∣ ! ( ∣ N ∣ − ∣ S ∣ − 1 ) ! N ! [ v ( S ∪ { i } ) − v ( S ) ] = ∑ S ⊆ N ∖ { i } ( N 1 , ∣ S ∣ , n − ∣ S ∣ − 1 ) − 1 ( v ( S ∪ { i } ) − v ( S ) ) = 1 N ∑ S ⊆ N ∖ { i } ( N − 1 ∣ S ∣ ) − 1 ( v ( S ∪ { i } ) − v ( S ) ) = 1 number of players ∑ coalitions including  i marginal contribution of  i to coalition number of coalitions excluding  i of this size \begin{aligned} \phi _{i} (N,v) & =\sum _{S\subseteq \mathcal{N} \backslash \{i\}}\frac{|S|!(|N|-|S|-1)!}{N!}\Bigl[ v(S\cup \{i\})-v(S)\Bigr]\\ & {\displaystyle =\sum _{S\subseteq N\setminus \{i\}}\binom{N}{1,|S|,n-|S|-1}^{-1} (v(S\cup \{i\})-v(S))}\\ & ={\displaystyle \frac{1}{N}\sum _{S\subseteq N\setminus \{i\}}\binom{N-1}{|S|}^{-1} (v(S\cup \{i\})-v(S))}\\ & {\displaystyle =\frac{1}{\text{number of players}}\sum _{\text{coalitions including } i}\frac{\text{marginal contribution of } i\text{ to coalition}}{\text{number of coalitions excluding } i\text{ of this size}}} \end{aligned} ϕi​(N,v)​=S⊆N\{i}∑​N!∣S∣!(∣N∣−∣S∣−1)!​[v(S∪{i})−v(S)]=S⊆N∖{i}∑​(1,∣S∣,n−∣S∣−1N​)−1(v(S∪{i})−v(S))=N1​S⊆N∖{i}∑​(∣S∣N−1​)−1(v(S∪{i})−v(S))=number of players1​coalitions including i∑​number of coalitions excluding i of this sizemarginal contribution of i to coalition​​

可以证明这个shapley value是唯一的。他有几种不同但等价的表示方法,最直观的可能是最后一种,其核心思想是计算不同size下 S \displaystyle S S的数量,于是其倒数则可以认为这个size下每个 S \displaystyle S S所出现的概率,将其作为权重,然后又因为总权重加起来等于N所以除以N标准化一下。

我们来看下刚才资本家的例子,我们考虑 N = { o , w 1 , w 2 } \displaystyle N=\{o,w_{1} ,w_{2}\} N={o,w1​,w2​},只有两个工人,一个资本家,于是

∣ S ∣ = 1 : v ( { o } ) = 0 , v ( { w 1 } ) = 0 , v ( { w 1 } ) = 0 ∣ S ∣ = 2 : v ( { o , w 1 } ) = p , v ( { o , w 2 } ) = p , v ( { w 1 , w 2 } ) = 0 ∣ S ∣ = 3 : v ( { o , w 1 , w 2 } ) = 2 p \begin{aligned} |S|=1 & :v(\{o\}) =0,v(\{w_{1}\}) =0,v(\{w_{1}\}) =0\\ |S|=2 & :v(\{o,w_{1}\}) =p,v(\{o,w_{2}\}) =p,v(\{w_{1} ,w_{2}\}) =0\\ |S|=3 & :v(\{o,w_{1} ,w_{2}\}) =2p \end{aligned} ∣S∣=1∣S∣=2∣S∣=3​:v({o})=0,v({w1​})=0,v({w1​})=0:v({o,w1​})=p,v({o,w2​})=p,v({w1​,w2​})=0:v({o,w1​,w2​})=2p​

于是,

ϕ o = 1 3 [ v ( { ϕ } ∪ { o } ) − v ( { ϕ } ) + 1 2 ( v ( { w 1 } ∪ { o } ) − v ( { w 1 } ) ) + 1 2 ( v ( { w 2 } ∪ { o } ) − v ( { w 2 } ) ) + v ( { w 1 , w 2 } ∪ { o } ) − v ( { w 1 , w 2 } ) ] = 1 3 [ 0 − 0 + 1 2 ( p − 0 + p − 0 ) + 2 p − 0 ] = p \begin{aligned} \phi _{o} & =\frac{1}{3}[ v(\{\phi \} \cup \{o\}) -v(\{\phi \})\\ & +\frac{1}{2}( v(\{w_{1}\} \cup \{o\}) -v(\{w_{1}\})) +\frac{1}{2}( v(\{w_{2}\} \cup \{o\}) -v(\{w_{2}\}))\\ & +v(\{w_{1} ,w_{2}\} \cup \{o\}) -v(\{w_{1} ,w_{2}\})]\\ & =\frac{1}{3}\left[ 0-0+\frac{1}{2}( p-0+p-0) +2p-0\right] =p \end{aligned} ϕo​​=31​[v({ϕ}∪{o})−v({ϕ})+21​(v({w1​}∪{o})−v({w1​}))+21​(v({w2​}∪{o})−v({w2​}))+v({w1​,w2​}∪{o})−v({w1​,w2​})]=31​[0−0+21​(p−0+p−0)+2p−0]=p​

ϕ w 1 = 1 3 [ v ( { ϕ } ∪ { w 1 } ) − v ( { ϕ } ) + 1 2 ( v ( { o } ∪ { w 1 } ) − v ( { o } ) ) + 1 2 ( v ( { w 2 } ∪ { w 1 } ) − v ( { w 2 } ) ) + v ( { o , w 2 } ∪ { w 1 } ) − v ( { o , w 2 } ) ] = 1 3 [ 0 − 0 + 1 2 ( p − 0 + 0 − 0 ) + 2 p − p ] = p 2 \begin{aligned} \phi _{w_{1}} & =\frac{1}{3}[ v(\{\phi \} \cup \{w_{1}\}) -v(\{\phi \})\\ & +\frac{1}{2}( v(\{o\} \cup \{w_{1}\}) -v(\{o\})) +\frac{1}{2}( v(\{w_{2}\} \cup \{w_{1}\}) -v(\{w_{2}\}))\\ & +v(\{o,w_{2}\} \cup \{w_{1}\}) -v(\{o,w_{2}\})]\\ & =\frac{1}{3}\left[ 0-0+\frac{1}{2}( p-0+0-0) +2p-p\right] =\frac{p}{2} \end{aligned} ϕw1​​​=31​[v({ϕ}∪{w1​})−v({ϕ})+21​(v({o}∪{w1​})−v({o}))+21​(v({w2​}∪{w1​})−v({w2​}))+v({o,w2​}∪{w1​})−v({o,w2​})]=31​[0−0+21​(p−0+0−0)+2p−p]=2p​​

类似的 ϕ w 2 = p 2 \displaystyle \phi _{w_{2}} =\frac{p}{2} ϕw2​​=2p​,可以发现 ϕ o + ϕ w 1 + ϕ w 2 = v ( N ) = 2 p \displaystyle \phi _{o} +\phi _{w_{1}} +\phi _{w_{2}} =v( N) =2p ϕo​+ϕw1​​+ϕw2​​=v(N)=2p. 而且资本家的贡献比打工人要多,符合我们的直觉。

Shapley value在机器学习任务上可解释性的运用

如果我们将value function看做是机器学习模型,那么 N \displaystyle N N就是模型某个样本输入,在可解释性任务中,我们一般需要去解释某个样本各个“取值”的贡献,也就是去解释 N \displaystyle N N中每个维度的贡献。如果我们按照shapley value的计算方式,我们就需要去取 S ⊆ N \displaystyle S\subseteq N S⊆N子集,然而一个机器学习模型无法真的输入一个子集,所以我们只能对那些被“删除”的取值设置一个baseline,比如均值,零值等等,如何选baseline也是一门学问,已经有很多相关的论文[5]。

使用shapley value的好处是,它有效建模了不同取值间的交互效应,并在此基础上计算出了一个满足上述三个公理的贡献值。

参考资料

[1] interpretable-ml-book/shapley

[2] 能不能形象的介绍一下 shapley 值法?

[3] Rozemberczki B, Watson L, Bayer P, et al. The shapley value in machine learning[J]. arXiv preprint arXiv:2202.05594, 2022.

[4] Understanding The Shapley Value

[5] 可解释性:完善Shapley value理论体系,建模并学习基准值

沙普利值(Shapley value)是怎么解释机器学习模型的?相关推荐

  1. python 博弈论 库_6个Python库解释机器学习模型并建立信任

    在机器学习模型中建立信任的案例 全球道路上大约有12亿辆汽车.这是一个令人毛骨悚然的问题-您认为实际上有多少驾驶员了解车辆的内部运行情况? 正如您可能已经猜到的,答案只有少数几个人.我们不需要了解驾驶 ...

  2. 独家 | 在R中使用LIME解释机器学习模型

    作者:PURVAHUILGOL 翻译:陈丹 校对:欧阳锦 本文约3200字,建议阅读15分钟 本文为大家介绍如何在R中使用LIME来解释机器学习模型,并提供了相关代码. 关键词:机器学习模型解释.R语 ...

  3. 【赠书】金融领域可解释机器学习模型与实践

    ‍‍ 今天要给大家介绍的书是<可解释机器学习:模型.方法与实践>,涵盖了可解释机器学习前沿的研究成果及行业成功应用经验. 本书内容 本书分为三部分: 第一部分为背景,阐述黑盒模型存在的问题 ...

  4. 在自然对话中解释机器学习模型——通过建立一个对话式的XAI代理;保护峰值:关于尖峰神经网络对对抗性示例的可转移性和安全性;SUNet:用于全景分段的具有规模意识的统一网络;一种新型的可用于主体转移脑机

    可解释的机器学习 中文标题:在自然对话中解释机器学习模型--通过建立一个对话式的XAI代理 英文标题:Explaining Machine Learning Models in Natural Con ...

  5. LIME:一种解释机器学习模型的方法

    在本文中,我们将介绍一种方法,用来解释这篇论文中的任何一种分类器的预测结果,并且用开源包来实现. 动机:我们为什么要理解预测结果? 机器学习如今是非常火的一个话题.随着计算机在围棋等游戏中击败人类专家 ...

  6. 用XGBoost入门可解释机器学习!

    Datawhale干货 来源:Scott Lundberg,来源:数据派THU 本文长度为4300字,建议阅读8分钟 本文为大家介绍用XGBoost解释机器学习. 这是一个故事,关于错误地解释机器学习 ...

  7. 独家 | 用XGBoost入门可解释机器学习

    作者:Scott Lundberg 翻译:和中华 校对:张一然 本文长度为4300字,建议阅读8分钟 本文为大家介绍用XGBoost解释机器学习. 这是一个故事,关于错误地解释机器学习模型的危险以及正 ...

  8. SHAP | 机器学习模型解释库

    来源:大邓和他的Python SHAP机器学习模型解释库 想象一下,你正试图训练一个机器学习模型来预测广告是否被特定的人点击.在收到关于某人的一些信息后,模型预测某人会不会点击广告. 但是为什么模型会 ...

  9. 【机器学习】机器学习模型解释神器:Shapash

    什么是 Shapash 模型可解释性和可理解性一直是许多研究论文和开源项目的关注的重点.并且很多项目中都配备了数据专家和训练有素的专业人员.Shapash 是一个 Python 库,用于描述 AI 模 ...

最新文章

  1. 结队-结队编程项目贪吃蛇-项目进度
  2. 【Python】Listbox组件 Scrollbar组件 Scale组件
  3. Python jquery标签云
  4. 人的一生,到底在追求甚么?...
  5. python 函数的调用的时候参数的传递_Python Unittest;如何获取调用函数时传递的参数?...
  6. “桌面日历”记录的事件居然是看某某视频……
  7. 三层调用关系_你真正的了解MVC三层架构开发模式吗
  8. Python实现一键打开/关闭防火墙
  9. Java I/O系统(一)
  10. crsctl stop crs 与 crsctl stop resources的区别
  11. emqx_auth_mysql报错_EMQ插件组合实现物联网边缘平台的设备通信管理
  12. 射极跟随器实验报告数据处理_射极跟随器实验报告
  13. 计算机附件常用工具,Windows附件常用工具
  14. Guitar Pro 8win10最新版吉他学习 / 打谱 / 创作
  15. Flutter:文件与网络操作摘要
  16. PYTHON机器学习基础(初学机器学习者的福音)
  17. book mac pro怎么重装系统_macbook pro怎么重装mac系统?
  18. 关键词:MAU,DAU,DAU/MAU
  19. Microsoft Office Word 选中图片锐化 以及 所有图片锐化的宏代码
  20. 【天光学术】本科历史人物方面的论文怎么写?先从标题入手!

热门文章

  1. SCARA四轴机器人丝杆花键_SCARA机器人专用滚珠丝杆花键
  2. 自助商务智能的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  3. 电脑端微信双开的办法
  4. 如何使用风向偏移简化风速风向传感器安装
  5. 463种生活小巧门(超全)
  6. CloudManage介绍
  7. 你不得不了解的三大动态域名解析软件选型要素
  8. ATT-CNN(attention based CNN)
  9. CIIPT-国家重要信息系统保护人员培训指南
  10. 酷派春雷com.yulong.android,酷派春雷HD震撼上市 性价可匹敌大神