文章目录
1 Uplift Modeling与reponse model模型的差异
- persuadables不发券就不购买、发券才会购买的人群,即优惠券敏感人群
- sure thing:无论是否发券,都会购买,自然转化
- lost causes:无论是否发券都不会购买,这类用户实在难以触达到,直接放弃 sleeping
- dogs:与persuadables相反,对营销活动比较反感,不发券的时候会有购买行为,但发券后不会再购买。
- 不管是否看广告都会买什么的人(Sure Things)
- 仅在有广告的情况下才购买的人(Persuadables)
- 无论如何都不买的人(Lost Causes)
- 本来买,但是看了广告后不买的人(Sleeping Dogs)
1.1 增益模型与响应模型的差异
在【智能营销增益模型(Uplift Modeling)的原理与实践】一文中提到:
1.2 增益模型与响应模型的混淆
这个预测模型的AB实验中,实验组转化率是2.69%,对照组转化率是2.28%,两组的转化率远高于以往运营随机筛选或根据条件筛选用户的转化率。但是,注意到这个预测模型的uplift score只有0.0041(2.69%-2.28%)。说明预测模型筛选出来的用户本身就有下单意愿,并不一定是因为发放优惠券而下单,所以实验组中的用户persuadable的比例应该不是很高。
在一个预测模型上再做uplift modeling相当于是在下单意愿高的用户中再筛选persuadable用户,其实实践上没有太大必要。
1.3 业务疑问与需求
1.3.1 多维度建模
在【智能营销增益模型(Uplift Modeling)的原理与实践】与 阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践都提及了多维度建模的情况:
干预策略只有一种,对于发券,相当于一个treatment只有一种折扣,对于广告push,一个treatment也只能有一种内容。而treatment可以用多种维度,如不同渠道发放不同折扣的优惠券,不同场景推送不同内容的push。
传统的response model以转化为多分类问题解决,但uplift modeling难以简单转化为多分类问题。
此外,个性化广告推送也依赖长期和短期的用户行为特征构建。不同营销场景下的用户特征可以共用,可以构建统一的线上线下特征平台。
同时维度的剧增会对样本的量级要求越来越高,样本的稀疏性问题会更加严重,针对这个问题阿里文娱团队有两个可能的解法:
- ❶ 可以采用多任务学习的方式,联合其他场景一起建模缓解单场景样本的压力,同时也可以通过人为构造无偏样本的方式增加整体的样本量。当然除了技术侧,整个营销上面还有非常多很有意思的研究方向,比如之前更多考虑的是单个营销场景,但其实多个场景下怎么去建模和刻画他们之间的相互影响也是非常有意思的课题;
- ❷ 我们之前uplift model建模更多考虑的是单次或者短期用户行为的增益,但实际上的营销往往是常态化或持续化的,用户的心智可能会不断发生变化,如何去建模长期的uplift也值得进一步去探讨。
1.3.2 一些使用场景
- 政治运动:
提升模型已被用来识别那些政治立场摇摆不定的选民(Stedman 2013)。通过利用提升模型,政治营销可以避免推送给对立方的支持者,而只专注于Persuadables部分。
- 新的治疗方案:
Uplift Model不仅能评估整个治疗组和对照组的结果,还可以了解治疗对不同组的不同影响,及影响的具体差异。
- 交叉销售:
因为预算有限,有些人可能不需要或想要其他产品。并且假设他们不希望对整个客户群进行交叉销售。这时公司可以使用Uplift 模型精确的筛选用户群,进行更精准的交叉销售广告活动。
- 留存:
公司希望与将要流失并保存他们的客户接触,但他们不希望在与的活跃期发送营销内容骚扰客户,只专注于高流失风险的客户群,这时就可以使用Uplift模型
- 用户体验测试:
公司想了解网站或应用程序的更改是否导致了预期的结果。
1.3.3 实验室组和对照组 数据不均匀
- 一是如果数据量本身不大,再加上实验室组和对照组数据分布不均,则其中一组数据必然很少,这样再将每组进行十等份,每组的数据就更少,计算比例是会有很强的随机性,使整个评估指标失效。
- 二是如果数据量本身很大,即使分布不均,两个组的数据量分别还是很大,由于都是计算比例,所以计算结果还是可靠的。
2 uplift model的模型
2.0 Uplift 经典模型介绍
参考:Uplift 经典模型介绍
2.0.1 元学习:双模型(Two Model, T-Learner)
- 针对单Treatment而言,双模型的做法具体而言,将实验组和对照组分别建模,最后两个模型预测结果做差即为lift
- 针对多Treatment而言,对各个实验组和对照组分别建模,然后每个实验组依次和对照组的预测结果做差,得到每个实验组对应的lift
优缺点:
双模型优点是简单直观,可以复用常见的机器学习模型(LR、Tree Model、NN)。
缺点是数据利用不充分,没有很好地拟合两个群体之间的差异(也即lift信号)且对模型误差容易被放大。假设单个模型准确率都是90%,那么最后预测lift的精度只有81%.
2.0.2 元学习:单模型(Single Model, S-Learner)
单模型相比双模型的方式有以下几个优势:
- 模型训练时数据利用更充分.
- 建模更加简单,只需要一个简单的逻辑回归或树模型(随机森林、Xgboost、Lightgbm).
- 能对处理变量或者其他变量进行强制的单调约束,双模型无法做到这一点.
2.0.3 元学习: X-Learner模型
X-Learner是对T-Learner和S-Learner进行了融合
2.0.4 树模型:
随机森林的Uplift模型与普通的随机森林的主要的区别就是分裂指标的不同。
以下是几种常见的分裂指标:
- 一些特殊的方法

- 求左右节点的差异

- 基于信息论的分裂指标

几种模型: - CTS算法,直接建模最大化预期相应
- 因果森林
- 广义随机森林(GRF)
- 正交随机森林(ORF)
2.1 差分响应模型(Two-Model Approach)
分别对AB实验的实验组和对照组数据独立建模,预测时分别实验组模型和对照组模型预测用户的分数,两个模型预测分数相减就得到了uplift score。
实验组是使用干预策略的用户(treatment),对照组是未使用干预策略的用户(control),正样本都是下单用户。
模型优缺点
优点:
- 这种建模方法的优点是比较简单容易理解,同时它可以套用我们常见的机器学习模型,如LR,GBDT,NN等,所以该模型的落地成本是比较低的
- 不过考虑到实现简单迅速,实践中可以作为baseline使用。
缺点:
- 两个独立的模型分开训练容易累积误差(两个独立模型的误差会累加传递到最终的uplift score)。
- 但是该模型最大的缺点是精度有限,这一方面是因为我们独立的构建了两个模型,这两个模型在打分上面的误差容易产生累积效应
- 第二是我们建模的目标其实是response而不是uplift,因此对uplift的识别能力比较有限。

2.2 差分响应模型升级版(One-Model Approach)
差分响应模型的训练数据和模型都是各自独立的,可以分别在训练数据层面上打通以及在模型层面上打通,得到升级版的差分响应模型。
在实验组和对照组的用户特征中,加入与Treatment有关的特征,实现数据层面的打通,即实验组和对照组合并,使用同一个模型训练。这是阿里文娱提到的一种方法,但我感觉这样无法满足用户特征样与条件策略独立的假设。
参考文章:阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践

它和上一个模型最大差别点在于,它在模型层面做了打通,同时底层的样本也是共享的,之所以能实现这种模型层面的打通,是因为我们在样本的维度上做了一个扩展,除了user feature之外,还引入了与treatment相关的变量T ( T如果是0,1的取值可以建模single treatment,T也可以扩展为0到N,建模multiple treatment,比如不同红包的面额,或者不同广告的素材 )
优点
- 训练样本的共享可以使模型学习的更加充分
- 同时通过模型的学习也可以有效的避免双模型打分误差累积的问题
- 从模型的层面可以支持multiple treatment的建模,具有比较强的实用性。
缺点 - 同时和Two Model版本类似,它的缺点依然是其在本质上还是在对response建模,因此对uplift的建模还是比较间接,有一定提升的空间。
2.3 Modeling Uplift Directly
参考文章:阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践

- 可以直接对uplift进行建模,因此它的精度理论上是更高的
缺点:
- 在应用层面我们需要做大量的改造和优化,除了前面介绍的分裂规则之外,我们还需要改造它的loss函数,后续的剪枝等一系列的过程,所以它的实现成本是比较高的。
2.4 Class Transformation Method模型
2.5 训练样本收集
3 模型的评估指标
uplift评估最大的难点在于我们并没有单个用户uplift的ground truth,响应模型可以通过一个测试数据集来计算precision,recall和AUC,但因为增益模型中不可能同时观察到同一用户在不同干预策略下的响应,因此无法直接计算上述评价指标。
增益模型通常都是通过划分十分位数(decile)来对齐实验组和对照组数据,间接评估,而不是在一个测试集上直接评估。
解决的一个思路是通过构造镜像人群的方式来间接拿到uplift的ground truth,比如说经典的AUUC的指标就是这样去计算的,假设现在有两个满足CIA条件假设的样本组,我们可以对两群人分别预估他们的uplift score,之后将人群按照uplift score进行降序排列,通过score分数这一桥梁,可以把两组人群进行镜像人群的对齐,之后分别截取分数最高的比如10%的用户出来,计算这一部分人转化率的差异,这个差异就可以近似地认为是分数最高的这群人真实的uplift,类似地,我们可以计算前20%,40%一直到100%的点上面的值,连线就能得到uplift curve。
3.1 uplift 柱状图
3.2 Qini曲线(Qini curve)

如上图,横轴等于0.2时,对应的纵轴大概是0.0032(uplift score),表示当uplift score等于0.0032时,可以覆盖前20%的用户数量,从图上看,这部分用户就是persuadable用户。
图中虚线是随机的base曲线,Qini曲线与随机random曲线之间的面积作为评价模型的指标,面积越大越好,面积越大,表示模型结果远超过随机选择的结果,与AUC类似,这个指标称为AUUC(Area Under Uplift Curve)。
Qini系数分母是实验组和对照组的全体用户数,如果两组用户数量差别比较大,结果容易失真。另一种累积增益曲线可以避免这个问题。
3.3 Adjusted Qini
3.4 累积增益曲线(Cumulative Gain curve)
4 实践案例
4.1 优惠券发放Demo

对uplift分数排序,得到uplift bar,如下图所示。横轴是测试集中每个用户uplift的十分位数(decile),共10个bin;纵轴是每个bin的uplift均值。由于uplift排序是从低到高,因此这个uplift bar看起来是反的(正常应该是从高到底排)。

Adjusted Qini曲线如下:

累积增益曲线如下:
在Qini曲线下,差分响应模型的总体效果要好一些。而在累积增益曲线下,Class Transformation模型的总体效果要好一些。实验组和对照组数据不平衡的情况下,Qini系数可能有偏差,但本次对比的实验数据两组用户数量是接近的,这个问题还在研究中。
4.2 Uplift Model在淘票票智能票补中的应用
参考:阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践

在该场景下,每个用户最多只能发放一个红包,同时面额有固定几个分档,因此问题就精细化到如何对用户进行个性化的面额发放上,这可以通过经典的背包问题来抽象,
如图所示,第一个公式是我们的目标,最大化的是红包撬动效率,下面的约束条件一个是ROI约束,一个是预算约束。
该问题的求解中有两个关键点:
- 一个是用户红包敏感度的建模,
- 第二是在敏感度已知的情况下怎么进行全局效用最大化的求解。
❶ 收集训练样本
训练样本的收集和我们的实验是强相关的,我们采用的是随机化的分桶实验,它有两个好处,一是可以严谨公平地进行效果的评估,二是可以为uplift model的建模提供无偏的样本。
❷ 模型的构建和训练
收集到样本之后可以进行建模,考虑到业务迭代的周期,我们使用的是前面介绍的One Model的差分响应模型,特征层面,除了user维度的基础属性,还有历史的观影行为,以及历史红包的反馈
❸ 面向业务层的模型校准和优化
理论上到模型训练完成,就可以直接把模型放到线上去应用了,但是在离线调研时,我们发现一个问题,我们绘制的用户敏感度曲线和我们的预期不太一样,并不是严格的平滑递增的走势。我们分析有两个可能的原因:
- 一是与我们整体的样本规模比较有限有关,因为这种无偏样本目前大概只有几百万的量级;
- 二是由于用户行为的稀疏性,在这种场景下我们比较难收集到用户在不同面额下的历史数据,因此也会加剧这种不平滑性。
针对该问题,我们做了校准处理,把原始曲线做了一个函数的拟合,一方面可以让结果更加符合我们先验的假设,一方面经过这种函数化之后可以在后续支持更多面额的预测,但这种做法是否是最优的还值得进一步探讨。
4.3 Uplift-Model在贝壳业务场景中的实践
我们将问题进行抽象,在进入到新房频道首页的用户中,精准识别出那些对于优惠券敏感的人群,进行优惠券发放。也就是我们需要对用户进行优惠券敏感度建模,这正是uplift model做的事情。
4.3.1 样本构造
目前新房业务场景下,已经做过很多优惠券相关的活动,但这些活动的运营对象时全部用户,也就是所有用户多会发,需要用户主动进行领取,这显然是不满足uplift model对于训练样本的要求的。
我们选择新房业务下最近的一个活动“618惠住季”来构建训练样本,为了更好的模拟随机A/B实验,按照是否浏览过活动领券页面将用户分为实验组用户和对照组用户(在这里我们认为用户没有浏览过活动领券页面,就可以认为对其没有发券)。
4.3.2 特征工程
在特征工程层面我们主要选取了用户行为特征、城市特征、偏好特征、时序特征等。
在实验组和对照组分别取80%的用户合并成训练样本,然后引入干预策略相关特征进行模型训练,在实验组和对照组各20%的用户样本上将每个用户干预策略特征分别置1和0,预测两次,然后将预测结果相减即为uplift值。
在实验中表现最好的One Model差分响应模型(无标签转化+引入T/C特征),在结果输出上解释成本也是最低的,在对于每个用户预测时,分别加入T和C干预信号特征,然后预测值相减即得到用户的uplift score。
4.4 如何选择最佳的Uplift值
参考文章:用机器学习来提升你的用户增长:第八步,Uplift模型
0 -> Control Non-Responders 1 -> Control Responders 2 -> Treatment Non-Responders 3 -> Treatment Responders
- 高Uplift分数:客户的uplift分数>3/4分位数
- 低Uplift分数:客户的uplift分数<1/2分位数
我们会对比:
- 转化的uplift
- 每个目标用户的收入uplift,看看我们的模型是不是让我们的活动更有效了
5 思考:差分响应模型升级版(One-Model Approach)
笔记
因为该方法在贝壳测试文章【Uplift-Model在贝壳业务场景中的实践】中,是效果最好的,而且可行性 + 可解释性比较强,适合多维度因素,来看一下具体实现过程,首先:
Uplift建模对样本的要求是比较高的,需要服从CIA ( Conditional Independence Assumption ) 条件独立假设,要求X与T是相互独立的。什么样的样本有这样的特征,又如何获取呢?最简单的方式就是随机化实验A/B Test,因为通过A/B Test拆分流量得到的这两组样本在特征的分布上面是一致的,也就是X和T是相互独立的。因此随机化实验是Uplift Model建模过程中非常重要的基础设施,可以为Uplift Model提供无偏的样本。

那么此时的训练集就是:80% treatment组 + 80% control组样本,同时在特征中新增一个T(干预)特征,
这里一定程度解决【1.3.1 多维度建模】,如果这里的干预只有,发/没发券,那就是0/1;
如果这里是不同红包面额,那就是0/1/2/3等。
文章阿里文娱智能营销增益模型 ( Uplift Model ) 技术实践提到的是:
之所以没有用有算法干预下的样本是因为用户的发放的面额与用户的特征是强相关的,并不满足CIA条件,因此这一部分样本虽然量较大,但是不能用于训练。
6 参考文献:
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212197.html原文链接:https://javaforall.net
