作者 | 刘昱明
一、背景
在游戏场景内,通常有着各种各样的玩法数值设计。由于不同用户在偏好、游戏阅历等方面存在差异,因此同一数值并不实用于一切用户。例如一个闯关游戏,关于新手来说,设置关卡的难度系数可以比有丰盛阅历的老玩家低一些。为了让用户能够有更好的游戏体验,咱们可以基于算法对用户启动共性化的数值调控,从而优化用户在游戏内的时长、留存等。
传统的监视学习方式聚焦于照应结果 Y 的预估,而咱们场景更关注于变量的变动关于结果 Y 的影响。在业界,这类疑问通常会放在因果推断(CausalInference)的框架下启动探讨,咱们通常将变量称为 T(treatment),蜕变变动带来结果 Y 的变动称为 TE(treatmenteffect),用来预估 TE 的模型称为因果模型(Uplift Model)。
目前业界中比拟罕用的因果模型有meta-learner、dml、因果森林等,然而不同因果模型的优劣势及实践表现还没有做过很片面的对比。因此在咱们场景中,咱们对上述这些疑问启动了具体的探求。
本文将从通常及通常两方面,对比及剖析不同因果模型的优缺陷及实用场景,宿愿能够为大家在后续处置相似疑问时,提供启示及协助。
二、经常出现模型引见
2.1 Meta-learner
meta-learner 是目前干流的因果建模方式之一,其做法是经常使用基础的机器学习模型去预估不同 treatment 的 conditionalaverage treatment effect(CATE),经常出现的方法有:s-learner、t-learner。meta-learner的思绪比拟便捷,实质上都是经常使用 base-learner 去学习用户在不同 treatment 组中的 Y,再相减获取 te。区别在于在 s-learner中,一切 treatment 的数据都是在一个模型中训练,treatment 通常会作为模型的一个输入特色。而 t-learner 会针对每个treatment 组都训练一个模型。
2.2 Double machine learning
在 meta-learner 中,两边变量的预测误差造成咱们在启动 uplift 预估时天生活在 bias。为了处置该疑问,DML引入了残差拟合、cross fitting 等方式启动消偏处置,最终获取了无偏预计。
DML 的**理想就是经过拟合残差,来消弭两边变量的 bias 的影响。论文中证明了误差的收敛速度快于n^(-1/4),确保了最终预估结果的收敛性。下图展现了论文中不经常使用 DML、经常使用 DML 但不经常使用 cross fitting、经常使用 DML-crossfitting 的成果对比:
2.3 Generalized Random Forests
GRF 是一种狭义的随机森林算法,和传统的随机森林算法的不同点在于,传统的随机森林算法在做 split 时,是找 loss 降低最大的方向启动划分,而GRF 的思维是找到一种划分方式,能够最大化两个子节点关于干预成果之间的差异。和随机森林相反,GRF也须要构建多棵树。在每次建树时,也须要随机无放回的启动抽样,抽取进去的样本一半用来建树、一半用来评价。
GRF 算法延续了 DML 的思维,在第一阶段时,经常使用恣意的机器模型去拟合残差。第二阶段时,GRF 算法引入了得分函数 Ψ(Oi)、目的函数θ(x)和辅佐函数 v(x),其中得分函数的计算公式为:
很容易看出,得分函数 Ψ(Oi)其实就是残差,由公式 Y = θ(x)T + v(x)获取的。算法寻求满足部分预计等式的 θ(x):关于一切x,满足:
其实实质上也是学习 θ(x),使得试验组和对照组数据的预估结果与实在值之差最小。
三、评价方式
目前因果模型经常出现的评价方式有两种:uplift bins 及 uplift curve
3.1 Uplift bins
将训练好的模型区分预测试验组和对照组的测试集数据,可以区分获取两组人群的 uplift score。依照 uplift score的降序启动陈列,区分截取 top10%、top20% ....top100%的用户,计算每一分位下两组人群分值的差异,这个差异可以近似以为是该分位下对应人群的实在 uplift 值。uplift bins的缺陷在于,只能做一个定性的剖析,无法比拟不同模型成果好坏。
3.2 Qini curve
在 uplift bins 的基础上,咱们可以绘制一条曲线,用相似于 AUC 的方式来评价模型的表现,这条曲线称为 upliftcurve;咱们将数据组的数据一直细分,准确到样本维度时,每次计算截止前 t 个样本的增量时,获取对应的 uplift curve。
计算公式为:
其中 Y_t^T 代表前 t 个样本增量时,试验组样本转化量,N_t^T 代表试验组的累计到 t 时,试验组样本总量,对照组同理。
如上图,蓝线代表的 uplift curve,实黑线代表 random的成果,两者之间的面积作为模型的评价目的,其面积越大越好,示意模型的成果比随机选用的结果好的更多。与 AUC 相似,这个目的咱们称为 AUUC(AreaUnder Uplift Curve)。
四、业务运行
4.1 样本预备
因果建模关于样本的要求比拟高,须要样本听从 CIA(conditional independence assumption)条件独立假定,即样本特色 X与 T 相互独立。因此在启动因果建模前,须要启动随机试验启动样本搜集,通常是经过 A/B 的方式将用户随机的调配至不同的 treatment 中,观测用户在不同treatment 下的表现。
4.2 样本结构
样本结构与惯例机器学习的样本结构步骤基本分歧,然而须要特意关注以下方面:
特色关联: 用户特色 X 必定严厉经常使用进入随机试验组前的特色,例如:用户 T 日进入试验组,那么用户的特色必定经常使用 T-1日及以前的特色。这样做的要素是用户进入 treatment 后,部分特色或许曾经遭到 treatment的影响出现了扭转,经常使用受影响后的特色启动模型训练有几率形成信息暴露,对模型的成果形成比拟大的影响甚至起反向的作用。
目的选用: 在某些场景中,treatment的影响须要一段期间才干够发生作用,例如道具数量的调整对用户留存的影响或许须要过一段期间才干表现。因此在选用目的时,可以选用更长周期的目的,例如相比于次日留存,选用7 日留存或 14日留存会更优。不过也不是越长周期越好,由于越长周期的目的有或许造成模型的学习老本参与从而成果降低,这种情景在小样本的场景更为突出。选用一个适合的目的能够很大水平上优化模型的线上表现。
4.3 模型训练
在咱们的场景中,用户每次成功义务发放的道具数量为 treatment,用户留存以及用户生动时长变动为咱们关注的 uplift。试验环节中,咱们先后对比了s-learner、t-learner 以及 dml 的成果,三种模型选用的 base-learner 都为 lightgbm。
在试验的环节中,咱们发现,当经常使用 s-learner 对生动时长启动建模时,无论如何调试模型,获取的 treatment effect 都为0,即用户在不同 treatment 下的生动时长预测结果相反。然而当咱们将模型换成 t-learner 或 dml 时,treatment effect数据复原反常。输入 s-learner 的特色关键度,咱们发现 treatment 特色的关键度为 0。咱们对用户在不同 treatment下生动数据启动剖析,发现不同组的生动数据弹性很小,即用户在不同 treatment 下的生动扭转很小。
而 s-learner 关于这种强劲的改动敏感度很低,因此成果不佳。而 t-learner 在启动训练时,会针对每个 treatment都训练一个模型,相当于显性的将 treatment 的特色关键度放大,而 dml 在训练环节中关键关注训练的残差,因此这两类模型的成果都要好于s-learner。这也反映了 s-learner 在数据弹性无余时的成果缺陷,因此在后续的训练中,咱们丢弃了 s-learner,关键关注在t-learner 以及 dml 上。
后续在不同目的的离线评价上,dml 模型的成果都要清楚优于 t-learner。这也与通常相互印证:t-learner由于引入两边变量,两边变量的误差使得关于最终 uplift 的预估有偏,而 dml 经过拟合残差,最终成功了无偏预计。
4.4 人群调配
依据训练成果,咱们选用 dml 作为最终的预估模型,并获取了用户在不同 treatment 下的 uplift 值。咱们会依据用户在不同treatment 下的 uplift 值,对用户做人群调配。调配打算基于实践状况关键分为两种:有无解放条件下的人群调配及有解放条件下的人群调配。
无解放条件下的人群调配: 只关心优化目的,不关心其余目的的变动。那么咱们可以基于贪心的思维,选用每个用户 uplift 值最高的战略启动人群调配。
有解放条件下的人群调配:关注优化目的的同时,关于其余目的的变动也有必定的解放。咱们可以经过解放求解的方式对该类疑问启动求解。
在咱们的业务场景下,咱们同时对用户留存、生动时长、流水等目的都有限度,因此启动了有解放条件下的人群调配打算。
4.5 试验成果
基于训练好的 dml 模型及解放调配后的结果,咱们开启了线上 A/B试验。在经过多周的测试后,相较于基准战略,咱们的战略在流水、生动等目的不降的状况,取得了置信的10%+留存收益。目前咱们基于因果模型的战略曾经全量上线。
五、总结及后续展望
因果模型目前在互联网各大场景都获取了通常及运行,并取得了不错的收益。随着营销优惠越来越多,营销手腕越来越复杂,treatment的维度也由经常出现的多 treatment 逐突变为延续treatment,这关于样本、模型学习才干等方面的要求也越来越严厉。在后续上班展开,可以思考从多目的建模、场景联动、无偏预计、强化学习等方面继续启动优化,为各个业务场景发生更大价值。