Shapley Values的原理是基于联合博弈论(coalitional game theory)的理论。Shapley Value的计算公式表达式如下所示:
这里最终计算的值是特征i的重要程度。前面一部分分式表示的是权重, 后面一部分括号内表示的是新增特征i前后的变化值。
这里直接上例子来解释上面的公式,比如假设有3个渠道:信息流(A),开屏(B),视频(C)。他们的独自投放、两两投放和三个一起投放的效果如下图所标识。现在要求得到每个渠道的贡献比例。
下面,我们来计算,每一个渠道的夏普里值,夏普里值的定义:是在各种可能的联盟次序下,参与者对联盟的边际贡献之和除以各种可能的联盟组合。三个渠道一共有3!即6种可能联盟次序:
对于每一种合作的方式, 我们考虑他们的边际收益, 即某个渠道加入方案执行前后的收益变化。对于每个渠道的贡献度的计算过程如下所示, 我们只是改变了加入的顺序而已。
因此,信息流A的Shapley value为34.17,开屏B的Shapley value为41.67,视频前贴C的Shapley value为24.17。
上面是直接用Shapley value的原理来进行计算,下面我们直接的式子来计算某渠道i加入方案集合S后的边际贡献, 我们需要罗列出S所有的可能性。
我们说一下具体的例子, 比如说我们要计算渠道A的贡献值, 那么所有S可能的集合有:
计算A的贡献度时,S集合共有5种可能性。我们要分别计算着5种情况下的边际收益(我们需要注意到的是, 这5种情况不是等可能出现的)。|S|!为投放在A前面的渠道顺序的排列组合,(|F|-|S|-1)!为投放在A后面的渠道顺序排列组合。|F|!为所有投放顺序的排列组合,即|F|!=3!=6。
那么,当S为空集时,即最先投放A,有:
S中只有一个元素, 可以是B, 或是C,即第二投放渠道A,有:
S中有两个元素, 可以是B+C,即第三投放渠道A,有:
那么A的贡献度为34,17,和上面结论一致。
通过上面的例子,公式现在就很好解释了,首先是最先投放A,那么A的贡献度肯定等于单独投放A的效果,再计算最先投放A的概率,即1/3(因为Shapley Value假设的是随机投放每个渠道的概率相等,所以可以使用排列组合计算概率。);然后是第二顺序投放A,那么第一顺序投放B的概率为1/6,那么A的贡献度肯定等于同时投放AB的效果减去单独投放B的效果,即A的贡献度为投放AB时在B基础上的增量(C同理);最后第三顺序投放A,那么前面有BC和CB两种,那么这种情况出现的概率为1/3,那么A的贡献度肯定等于同时投放ABC的效果减去同时投放BC的效果。最后将三种情况合计起来即可得到A的贡献度。