一个洗车店引发的思考:给谁发优惠券好呢?

注:本文是论文Unit Selection Based on Counterfactual Logic的一个笔记

一个洗车店的故事

从前有个洗车店,洗车能赚140,打算找到一个合适的公司对其发放40元优惠券。

为了决定选哪个公司,我们需要调查每个公司的情况来做出一个收益较高的选择。有两种调查的方法,一种是随机试验ab test,即在一个公司内部,随机选择一部分人发优惠券,另一部分不发,那么就能得到该公司关于优惠券的使用率的差异,从而可以计算出该公司选择发放优惠券的收益。

另一个方法是观察两个平行世界,在世界A发优惠券,在世界B不发,通过比较这两者的收益差异来决定到底选谁。

一个已知的事实是,公司里面总有4类人:

  1. Complier: 收到优惠券买,没收到不买 r a , r a ′ ′ r_{a} ,r'_{a'} ra,ra
  2. Always- taker: 收到优惠买,没收到优惠券也买 r a , r a ′ r_{a} ,r_{a'} ra,ra
  3. Never- taker: 收到优惠不买,没收到优惠也不买 r a ′ , r a ′ ′ r'_{a} ,r'_{a'} ra,ra
  4. Defier: 收到优惠不买,没收到优惠就买 r a ′ , r a ′ r'_{a} ,r_{a'} ra,ra

这里A=a表示收到了优惠券,A=a’表示没有收到优惠券,R=r表示使用了该优惠,R=r’表示没用该优惠,C=c表示公司c.

不妨假设这几类人在公司A的占比是(实际是观测不到的)
Complier 30%
Always- taker 10%
Never- taker 20%
Defier 40%
公司B的占比是(实际是观测不到的)
Complier 20%
Always- taker 5%
Never- taker 65%
Defier 10%

于是,通过随机试验ab test, 我们得到以下两组数据,

在这里插入图片描述

那么ab test的优化目标是:
O b j 1 = arg ⁡ max ⁡ c 100 ∗ p ( r ∣ c , d o ( a ) ) − 100 ∗ p ( r ∣ c , d o ( a ′ ) ) Obj_{1} =\arg\max_{c} 100*p( r|c,do( a)) -100*p( r|c,do( a')) Obj1=argcmax100p(rc,do(a))100p(rc,do(a))
其中 p ( r ∣ c , d o ( a ) ) \displaystyle p( r|c,do( a)) p(rc,do(a))表示给优惠券继续使用的人数,即该目标想要找到一个群体c,其发放优惠券增加的人数最多。但考虑到发了优惠券还购买的人会存在额外的成本,所以我们还可以将其权重设大一点,于是:
O b j 2 = arg ⁡ max ⁡ c 100 ∗ p ( r ∣ c , d o ( a ) ) − 140 ∗ p ( r ∣ c , d o ( a ′ ) ) Obj_{2} =\arg\max_{c} 100*p( r|c,do( a)) -140*p( r|c,do( a')) Obj2=argcmax100p(rc,do(a))140p(rc,do(a))
最后一种就是考虑平行世界的利润差异:

我们分析下
Complier: 在世界A将赚100元,在世界B将赚0元。
Always- taker: 在世界A将赚100元(假设还有20损耗成本,可能有人拿了优惠券感到真香,以后没优惠券就不买了(这只是个假设,暂且接受吧),于是赚80),在世界B赚140元。
Never- taker: 在世界A将赚0元,在世界B将赚0元。
Defier: 在世界A将赚0元,在世界B将赚140元。

根据这些差异我们可以写出以下目标函数:

O b j 3 = arg ⁡ max ⁡ c 100 p ( r a , r a ′ ′ ∣ c ) + ( − 60 ) p ( r a , r a ′ ∣ c ) + ( 0 ) p ( r a ′ , r a ′ ′ ∣ c ) + ( − 140 ) p ( r a ′ , r a ′ ∣ c ) Obj_{3} =\arg\max_{c} 100p( r_{a} ,r'_{a'} |c) +( -60) p( r_{a} ,r_{a'} |c) +( 0) p( r'_{a} ,r'_{a'} |c) +( -140) p( r'_{a} ,r_{a'} |c) Obj3=argcmax100p(ra,rac)+(60)p(ra,rac)+(0)p(ra,rac)+(140)p(ra,rac)

最后得到的目标如下:

在这里插入图片描述
可以发现目标1,2的结论跟目标3是完全相反的。

我们以 O b j 1 \displaystyle Obj_{1} Obj1为例子算一算验证一下,首先
p ( r ∣ c = g r o u p 1 , d o ( a ) ) = 262 262 + 88 p ( r ∣ c = g r o u p 1 , d o ( a ′ ) ) = 175 175 + 175 p( r|c=group_{1} ,do( a)) =\frac{262}{262+88}\\ p( r|c=group_{1} ,do( a')) =\frac{175}{175+175} p(rc=group1,do(a))=262+88262p(rc=group1,do(a))=175+175175
于是
O b j 1 = 100 ∗ 262 262 + 88 − 100 ∗ 175 175 + 175 = 24.85714 Obj_{1} =100*\frac{262}{262+88} -100*\frac{175}{175+175} =24.85714 Obj1=100262+88262100175+175175=24.85714
直觉上,平行世界的结果应该是真的,那为什么随机试验会出错呢?

某种程度上,是我们对这个随机试验做了一个分组,这个分组的操作使得公司这一个confounder没有被截断,从而出现了这种问题。而这个问题有趣的地方在于,由于问题的本身setting(判断那个公司更好),这个分组又是不可避免的,所以必然会出现这种情况。

解决方案

这篇论文提出虽然准确的反事实的结果无法得出,但可以根据试验与观测得到的数据给出一个估计区间,我们可以用这个区间的中位数来代替这一反事实估计结果。

在这里插入图片描述
这个区间的实验效果如下图所示,

在这里插入图片描述
其中 δ \delta δ是下式
argmax ⁡ c β P ( r a , r a ′ ′ ∣ c ) + γ P ( r a , r a ′ ∣ c ) + θ P ( r a ′ , r a ′ ′ ∣ c ) + δ P ( r a ′ , r a ′ ∣ c ) \operatorname{argmax}_{c} \beta P\left(r_{a}, r_{a^{\prime}}^{\prime} \mid c\right)+\gamma P\left(r_{a}, r_{a^{\prime}} \mid c\right)+ \theta P\left(r_{a}^{\prime}, r_{a^{\prime}}^{\prime} \mid c\right)+\delta P\left(r_{a}^{\prime}, r_{a^{\prime}} \mid c\right) argmaxcβP(ra,rac)+γP(ra,rac)+θP(ra,rac)+δP(ra,rac)
Defier的盈利。

参考文献

Li, Ang, and Judea Pearl. “Unit Selection Based on Counterfactual Logic.” Proceedings of the Twenty-Eighth International Joint Conference on Artificial Intelligence. 2019.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值