zoukankan      html  css  js  c++  java
  • AB实验人群定向HTE模型2

    这篇论文是在 Recursive Partitioning for Heterogeneous Causal Effects 的基础上加入了两个新元素:

    • Trigger:对不同群体的treatment选择个性化阈值。 E.g优惠券力度,红包金额
    • 新的Node Penalty: 旨在增强模型generalization

    论文

    C. Tran and E. Zheleva, “Learning triggers for heterogeneous treatment effects,” in Proceedings of the AAAI Conference on Artificial Intelligence, 2019

    模型

    Trigger

    Trigger的计算主要用在treatment是一个潜在连续变量,例如服药的剂量,优惠券的金额等等。这时实验希望得到的不仅是优惠券是否能提升用户留存,而且是对哪些用户使用多少金额的优惠券能最大化ROI。
    作者在通过树划分用户群的同时计算能够使该用户群CATE最大化的Trigger阈值。既在遍历所有特征可能取值的同时遍历所有treatment的可能取值,取jointly的最优解。如下

    [egin{align} T = {t_i}&quad ext{treatment的所有可能取值}\ heta_l &quad ext{最优treatment阈值}\ F^t(S_l) &= max_{ heta_l}F(S_l)\ end{align} ]

    小思考
    感觉这里对最佳trigger的选择还有优化的空间。因为上述split假定了实验效果对treatment的取值是单调的,如果不单调上述split可能得到不make sense的结果。而且在一些应用场景下是希望取到有条件最优解,例如在成本不超过N的情况下收益越高越好,而不是简单的最大化实验效果,这个当前也还无法解决。

    Node Penalty

    在Athey(2016)的Causal Tree中,作者通过在Cost Functino中加入叶节点方差,以及用验证集估计CATE的方式来解决决策树过拟合的问题。这里Tran提出的新的penalty旨在衡量相同节点训练集和验证机在CATE估计上的差异。

    我们先回顾一下要用到的Notation

    [egin{align} & {(X_i, Y_i,T_i): X_i in X} \ & ext{where X是特征,Y是Response,T是AB实验分组}\ &T_i in {0,1} quad \ &Y_i = egin{cases} Y(1) & quad T_i = 0\ Y(0) & quad T_i = 1\ end{cases}\ &CATE: au(x) = E(Y_i(1)-Y_i(0)|X=x)\ end{align} ]

    以下是Athey(2016) Causal Tree的定义

    [egin{align} &S_l = {(X_i, Y_i,T_i): X_i in X_l} quad ext{叶节点-局部样本}\ &hat{mu_t}(S_l) = frac{1}{N_{l,t}}sum_{T_i=t, i in S_l}Y_i quad ext{AB组Y的均值} \ &hat{ au}(S_l) = hat{mu_1}(S_l) -hat{mu_0}(S_l) quad ext{叶节点CATE}\ &F(S_l) = N_l * hat{ au}^2(S_l)\ & ext{cost fucntion}: max sum_{i=1}^L F(S_i)\ end{align} ]

    作者先把全样本切分成train, val和test。 用训练集来建树, 用test来估计叶节点variance,penalize小的叶结点带来的高方差,然后用叶节点上train和val的差异来penalize损失函数,以下(lambda)控制penalty的大小:

    [egin{align} &penalty = N_L^{val} * |hat{ au}(S_l^{val}) -hat{ au}(S_l^{train}) | \ &cost = frac{(1-lambda)F(S_l^{train}) - lambda * penalty}{|N_l^{train} - N_l^{val}| +1}\ end{align} ]

    小思考
    各式各样解决over-fitting的方法不能说没有用,但个人认为最终通过Causal Tree得到的特征和特征取值,还是要依据业务逻辑来进行验证。以及在不同的样本集上很可能特征取值的变动要超过over-fitting的影响。所以主观判断在这里也很重要

    其他相关模型详见AB实验的高端玩法系列1-实用HTE论文GitHub收藏

    欢迎留言~

  • 相关阅读:
    『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件
    『Asp.Net 组件』Asp.Net 服务器组件 的开发优势和劣势
    『开源』简单的代码统计工具 开源啦[有图有真相]
    文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: FormMain --- 未能加载基类
    DB2:FETCH FIRST 1 ROWS ONLY
    IEnumerable的几个简单用法
    一个字符串中包含逗号个数
    字符串处理总结之一(C#String类)
    C# 中DateTime的各种使用
    C# 键值对类相关
  • 原文地址:https://www.cnblogs.com/gogoSandy/p/11718313.html
Copyright © 2011-2022 走看看