笔者并没有深入了解过Game theory,只是因为有人咨询笔者是否可以使用Shapley Value做预测,才对其做了一些研究,记录在此。笔者的结论是Shapley Value并不适合做预测。
参考资料:
A Course in Game Theory
UBC的Game Theory课程
(UBC课程浅显易懂,《A Course in Game Theory》里面有详细的Shapley Value的来龙去脉,建议结合着看)


1. 期望解决的问题

n个人合作,创造了v(N)的价值,如何对所创造的价值进行分配。
notation: 全集N={x1,x2,,xn}n个元素xi,任意多个人形成的子集SN,有v(S)表示S子集中所包括的元素共同合作所产生的价值。最终分配的价值(Shapley Value)ψi(N,v)

2. 分配原则

  1. 有效性:所有价值均被分配 iNψi(N,v)=v(N)
  2. 对称性:如果xixj地位等价(可以互相替代),则两者的收益应该是一样的。
    游戏理论之Shapley Value(Shapley值)
  3. 未做贡献者收益为0
    游戏理论之Shapley Value(Shapley值)
  4. Additivity(可加性):如果同一批人完成两项任务,那么两项任务的收益一起分配应该和分开分配的结果一致。
    游戏理论之Shapley Value(Shapley值)

3. Shapley Value

公式如下所示,论文中证明了shapley value是满足上诉四个条件的唯一解。(详情参考A Course in Game Theory
游戏理论之Shapley Value(Shapley值)

4. 对Shapley Value的理解

Shapley Value其实是求累加贡献(marginal contribution)的均值。例如A单独工作产生价值v({A}),后加入B之后共同产生价值v({A,B}),那么B的累加贡献为v({A,B})v({A})。对于所有能够形成全集N的序列,求其中关于元素xi的累加贡献,然后取均值即可得到xi的Shapley Value值。

4.1. 先来一个例子:

题面如下图,求取三个元素的Shapley Value:
游戏理论之Shapley Value(Shapley值)
基本解法就是枚举每个可以产生全集的序列(N!个),然后计算其中每个元素的累加贡献(marginal contribution),最后再求均值。如下图:
游戏理论之Shapley Value(Shapley值)
观察第一行,首先加入元素1,则有元素1的累加贡献为v({1})=0;然后加入元素2,则有元素2的累加贡献为v({12})v({1})=90;最后加入元素3,则有元素3的累加贡献为v({123})v({12})=30。其他行同理,最后对每一列加和平均,得到最终的Shapley Value。

4.2. Shapley Value公式解释

如上所述,Shapley Value是累加贡献(marginal contribution)的均值。但枚举所有序列可能性的方式效率不高,注意到累加贡献的计算实际为集合相减,对于同样的集合计算次数过多是效率低下的原因。公式中S表示序列中位于xi前面的元素集合,进而NS{xi}表示的是位于xi后面的元素集合,而满足只有S集合中的元素位于xi之前的序列总共有|S|!(|N||S|1)!个,其内序列中产生的xi累加贡献都是v(S{xi})v(S);最后对所有序列求和之后再取均值。

5. 关于Shapley Value是否可以做预测

笔者的个人观点是不可以,因为Shapley Value本质上是对最终全集产生的收益做分配的问题。所以首先预测问题求解过程中就需要满足有效性的限制(iNψi(N,v)=v(N)),这就已经难以保证优解;其次考虑合作必然产生收益的特殊情况(v(S)v(S) iff. SS),则必有xiSψi(N,v)v(S),即所有的预测都是高于实际值的;最后,求取Shapley Value的过程中需要用到所有子集的收益值,使用Shapley Value实际上不是做预测,而是做压缩。

相关文章:

  • 2022-12-23
  • 2021-12-30
  • 2022-12-23
  • 2022-12-23
  • 2021-10-17
  • 2022-01-24
  • 2022-02-24
  • 2021-08-30
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-21
  • 2021-06-27
  • 2021-11-05
相关资源
相似解决方案