前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AB实验的高端玩法系列4- 实验渗透低?用户未被触达?CACE/LATE

AB实验的高端玩法系列4- 实验渗透低?用户未被触达?CACE/LATE

作者头像
风雨中的小七
修改2020-05-17 15:42:54
2.2K0
修改2020-05-17 15:42:54
举报
文章被收录于专栏:小七的各种胡思乱想

CACE全称Compiler Average Casual Effect或者Local Average Treatment Effect。在观测数据中的应用需要和Instrument Variable结合来看,这里我们只讨论CACE的框架给随机AB实验提供的一些learning。你碰到过以下低实验渗透低的情况么?

  • 新功能入口很深,多数进组用户并未真正使用新功能,在只能在用户层随机分流的条件下,如何计算新功能的收益
  • 触达策略,在发送触达时进行随机分组,但触达过程存在损失,真正触达的用户占比很小,如何计算触达收益

背景

当然如果你的新策略渗透非常低,可能你的策略本身就需要调整。但就一些本身旨在提高少数用户体验的策略,或者策略初期试水的情况,CACE可能会比AB组的整体差异(ATE)更合适作为你实验的衡量指标。因为它可能会告诉你策略对少部分用户产生了显著受益,你要做的只是去继续迭代扩大用户渗透而已。

ATE关注的是整个实验组-对照组的收益,当然也会是策略全量上线后预估能拿到的对全用户的收益。CACE估计的则是实验对真正触达的用户预估产生的收益。注意这部分用户的收益并不能泛化到全用户,其一实验对不同用户的影响不同,其二策略的渗透率天然有限。往往渗透率越低对用户的选择性越强,触达的用户和整体用户的差异更大,计算出的CACE更难泛化到全用户上

CACE框架

让我们回忆下ATE的计算, T是treatment,例如app增加的新功能, Y是outcome,比如用户app使用时长,实验效果一般通过ATE估计,因为这会最贴近实验全量后在全用户上拿到的最终受益

ATE = E(Y|T =1) - E(Y|T=0)

CACE额外加入了变量W实验渗透,也就是用户是否真正使用过新功能,CACE估计的是实验对真正触达的用户产生的收益。如果你的实验渗透100%那CACE=ATE,随着实验渗透的降低,理论上CACE会比ATE越来越高,因为部分用户的收益被全体用户稀释。

说了这么多CACE咋算嘞?别急先来展示2种错误却经常被使用的方法

  1. Per-protocol Analysis = 实验组渗透用户 - 对照组全用户
E(Y|Z=1, W(z=1)=1) - E(Y|Z=0)
  1. As-treated Analysis = 实验组渗透用户 - 实验组未渗透用户
E(Y|Z=1, W(z=1)=1) - E(Y|Z=1, W(z=1)=0)

上面两种方法都同时踩中了一个叫做Selection Bias的坑,也就是功能渗透本身是受到用户行为/主观意愿影响,因此会存在用户选择。从而导致渗透用户既不能代表全用户,也会和未渗透用户存在差异。真要在错的里面找个对的出来,Per-protocol一般更好一点。

CACE计算

用户定义

CACE把用户分为4类, compiler, never-taker, always-taker, defier,简单说compiler是给药就吃不给就不吃,never-taker是打死也不吃,always-taker是没事就吃药,defier是不给我药我偏要吃。这四类人群可以通过W和Z进行定义如下

假设

要想CACE的计算成立,还需要满足3条假设

1. Independence

这个在随机AB实验中一定成立,但在观测数据中需要额外寻找Instrument variable这里不予讨论

Z_i \perp (Y_i(0),Y_i(1),W_i(0),Y_i(1))

2. Exclusion Restriction

这个假设即便在随机AB实验中也不一定成立,因此需要基于策略本身进行判断,基本原则就是Treatment分组本身对用户没有影响,只有确实被Treatment渗透的用户才受到影响。假设2保证了never-taker,always-taker在实验组和对照组中的表现一致。

Y(z,w) = Y(z',w) \,\,\, \text{for all z, $z'$,w}

印象中有看到过假设2不成立应该如何计算CACE的paper,不过还没碰到过类似情况,以后有用到再加上吧。

3. Monotonicity/No-Defier

单调假设在绝大多数情况下都成立,也就是T对W是正效应,不存在Defier。 这时W和Z对应的人群会被简化为以下,never-taker指向人群就是实验组未渗透人群因此可以直接估计

W_i(1)>W_i(0)

计算

随机实验的假设保证了compiler, always-taker, 和never-taker在对照组和实验组中的占比是相同的,因此我们可以直接计算出compiler, always-taker, never-taker在人群中的占比,如下

`$\begin{align}

\pi_a &= p(W(0)=W(1)=1) = E(W|Z=0)\

\pi_c &= p(W(0)=0,W(1)=1) = E(W|Z=1) - E(W|Z=0)\

\pi_n &= P(W(0)=W(1)=0) = 1- E(W|Z=1) \

\end{align}$`

因为实验组中未渗透用户一定是never-taker, 对照组中渗透用户一定是always-taker(在一些功能型随机实验中并不存在always-taker),因此这部分用户的表现可以直接拿到

`$\begin{align}

E(Y|W=1,Z=0) &= E(Y(1)|always)\

E(Y|W=0,Z=1) &= E(Y(0)|never)\

\end{align}$`

我们以此为突破口就可以计算得到compiler的CACE,先把对照组和实验组的人群进行分解如下

`$\begin{align}

E(Y|Z=0) &= \pi_a E(Y(1)|always) + \pi_n E(Y(0)|never) +

\pi_c * E(Y(0)|compiler) \

E(Y|Z=1) &= \pi_a E(Y(1)|always) + \pi_n E(Y(0)|never) +

\pi_c * E(Y(1)|compiler) \

\end{align}$`

很显然AB组的差异只来源于compiler的差异,其实在没有always taker的情况下, CACE只是按实验组渗透等比的放大了组间收益而已

`$\begin{align}

CACE &= E(Y(1)|compiler) - E(Y(0)|compiler)\

&= \frac{E(Y|Z=1)-E(Y|Z=0)}{\pi_c}\

&= \frac{E(Y|Z=1)-E(Y|Z=0)}{E(W|Z=1) - E(W|Z=0)}

\end{align}$`

对于显著性的计算,我个人更偏向于只把CACE应用在原始ATE已经显著的情况下,以避免针对一些没有意义的波动数据进行分析,CACE只是用于估计渗透用户的绝对收益。当然如果想要计算CACE的显著性,可以用Bootstrap来拿到SE。当然因为CACE本身是ratio,也可以用更科学的方法来计算SE,具体细节可以参照Ref4。

用这个方法难免会被问到这部分用户的收益能否泛化到全体用户,理论上是不能的,但也不能一锤子打死。一个比较简单直观的方法是去比较

(E(Y(0)|compiler))

,

(E(Y(0)|always))

,

(E(Y(0)|never))

之间是否存在显著差异,差异越大,能泛化的可能一般是越小的。

对AB实验的高端玩法感兴趣??这里

AB实验的高端玩法系列1 - AB实验人群定向/个体效果差异/HTE 论文github收藏

AB实验的高端玩法系列2 - 更敏感的AB实验, CUPED!

AB实验的高端玩法系列3 - AB组不随机?观测试验?Propensity Score

欢迎留言或评论~


Ref

  1. Imbens G. Methods for Estimating Treatment Effects IV: Instrumental Variables and Local Average Treatment Effects. Technical report, Lecture Notes 2, Local Average Treatment Effects, Impact Evaluation Network, Miami; 2010
  2. Complier average causal effect? Exploring what we learn from an RCT with participants who don't do what they are told. 2017
  3. http://ec2-184-72-107-21.compute-1.amazonaws.com/_assets/files/events/slides_late
  4. Schochet, Peter Z. and Hanley Chiang (2009). Estimation and Identification of the Complier Average Causal Effect Parameter in Education RCTs (NCEE 2009-4040).
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • CACE框架
  • CACE计算
    • 用户定义
      • 假设
        • 计算
        • Ref
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档