智能营销模型-Uplift Model详解及Python使用

1. 背景概览

  在营销场景中,需要给不同的用户给出不同的营销动作,从而提升收益,如触达方式、广告投放或发放优惠券等。但往往我们无法同一时间观察实施不同动作下能带来的收益。Uplift Model是因果推断(Causal Inference)的一种应用,是根据A/B实验,对相似用户在不同营销动作下的增益,作为用户在不同营销动作下的增益,就如在不同的平行世界观察观察对不同营销动作的反应。

2. 方法介绍

  Uplift Model是需要基于以往AB实验的数据积累,将无营销动作(对照组)和有营销动作(实验组)构建模型,如下图所示。其中,在AB实验时实验组和对照组用户同分布。目前,Ulift Model的库CausalMLEconMLpylift等,本文后续Uplift Model使用均CausalML。后续主要介绍Uplift Model中的T-Learner、S-Learner、X-Learner和Causal Tree,除了这几种方法之外,还有R-Learner,NN中的TARNetSITEDragonNet等等
在这里插入图片描述

2.1 T-Learner

论文地址:https://arxiv.org/pdf/1706.03461.pdf
  T-Learner (Two Model)是将对照组和实验组分开建模,然后实验组模型与对照组模型响应概率的差即为提升值。以下是单Treatment场景的具体流程:

  步骤1: 使用对照组数据X和对应标签Y,训练模型
μ 0 ( x ) = E [ Y ( 0 ) ∣ X = x ] \mu _{0}(x)=\mathbb{E} [Y(0)|X=x] μ0(x)=E[Y(0)X=x]
  步骤2: 使用实验组数据X和对应标签Y,训练模型
μ 1 ( x ) = E [ Y ( 1 ) ∣ X = x ] \mu _{1}(x)=\mathbb{E} [Y(1)|X=x] μ1(x)=E[Y(1)X=x]
  步骤3: 计算样本x的动作带来的Uplift Score
τ ^ T = μ ^ 1 ( x ) − μ ^ 0 ( x ) \hat{\tau}_{T}=\hat{\mu}_{1}(x)-\hat{\mu}_{0}(x) τ^T=μ^1(x)μ^0(x)

  在多实验场景中,如优惠券金额有多种,是将不同的实验组模型与对照组模型做差,得到不同动作下的uplift socre,然后,在根据不同约束从中选择最合适的动作。
  T-Learner方法具简单直观,但同时模型对样本利用不充分,对照组和实验组模型无法利用对方样本,且双模型存在累积误差,对数据不平衡响应较大

T-Learner Python使用

from xgboost.sklearn import XGBClassifier
from causalml.inference.meta import BaseTClassifier
from causalml.dataset import make_uplift_classification
from sklearn.model_selection import train_test_split
df, x_names = make_uplift_classification(treatment_name=['control', 'treatment'])
df_train, df_test = train_test_split(df, test_size=0.2, random_state=111)
base_model = XGBClassifier()
clf = BaseTClassifier(learner=base_model,control_name='control')
clf.fit(df_train[x_names].values,
                 treatment=df_train['treatment_group_key'].values,
                 y=df_train['conversion'].values)
y_pred = clf.predict(df_test[x_names].values)

2.2 S-Learner

论文地址:https://arxiv.org/pdf/1706.03461.pdf
  S-Learner是指单一模型,把对照组和实验组放在一起建模,把营销动作作为一个特征(如将对照组),特征加入训练特征,如下图所示。在预测时,改变不同的W值计算相应率,从而与对照组相减得到uplift score。
在这里插入图片描述

模型流程如下:
  步骤1: 将样本X’和W(干预动作)合并,训练模型
μ ( x , ω ) : = E [ Y o b s ∣ X = x , W = ω ] \mu (x,\omega ) :=\mathbb{E}[Y^{obs}|X=x,W=\omega ] μ(x,ω):=E[YobsX=x,W=ω]
  步骤2: 将待计算样本x,加入不同W取值,从而计算实验组所带来的提升(不同实验组响应率-对照组响应率)
τ ^ S ( x ) = μ ^ ( x , 1 ) − μ ^ ( x , 0 ) \hat{\tau}_{S}(x)= \hat{\mu}(x,1)- \hat{\mu}(x,0) τ^S(x)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值