游戏个性化数值因果推断的应用实践
发布于2026-07-22 阅读(0)
# 游戏个性化数值因果推断的应用实践
游戏里的数值设计,从来都不是一刀切的事。一个新手和一个老玩家,对同一关卡的感受可能天差地别。所以,根据算法给不同用户做个性化的数值调控,就成了提升体验、拉长时长和留存的关键手段。
先说几个核心判断。传统的监督学习,通常聚焦于预测结果Y本身,但在我们的场景里,真正关心的是“变量变化”对结果Y的影响。这类问题,业界往往会放在因果推断的框架下讨论。我们把变量称为T,变量变化带来的结果变化称为TE,用来预估TE的模型就是Uplift Model。
目前,常用的因果模型有meta-learner、DML、因果森林等。但说实话,这些模型各自的优劣势和实际表现,行业内还没做过特别全面的对比。所以我们这次就针对这些问题,做了一次详细的探索。
这篇文章会从理论到实践,把不同因果模型的优缺点和适用场景掰开揉碎了讲,希望能给后续处理类似问题的朋友一些启发。
## 常见模型介绍
### Meta-learner
Meta-learner是目前主流的因果建模方式之一。它的思路很简单:用基础的机器学习模型去预估不同treatment下的CATE(条件平均干预效应)。常见的方法有s-learner和t-learner。
本质上,这两者都是用base-learner去学习用户在不同treatment组中的Y,再相减得到TE。区别在于,s-learner把所有treatment的数据放在一个模型里训练,treatment本身会作为一个输入特征;而t-learner则针对每个treatment组都单独训练一个模型。

### Double Machine Learning
Meta-learner有个天然的问题:中间变量的预测误差会导致uplift预估存在偏差。为了解决这个问题,DML引入了残差拟合和cross fitting等方法进行消偏,最终得到了无偏估计。

DML的核心思想就是通过拟合残差,来消除中间变量偏差的影响。论文中证实,误差的收敛速度快于n^(-1/4),确保了最终预估结果的收敛性。下图展示了不使用DML、使用DML但不使用cross fitting、使用DML-cross fitting的效果对比:

### Generalized Random Forests
GRF是一种广义的随机森林算法。和传统随机森林不同,传统算法在split时找的是loss下降最大的方向,而GRF的目标是找到一种划分方式,能最大化两个子节点在干预效果上的差异。和随机森林一样,GRF也需要构建多棵树,每次建树时随机无放回抽样,一半用来建树,另一半用来评估。

GRF延续了DML的思想:第一阶段用任意机器学习模型去拟合残差,第二阶段引入得分函数Ψ(Oi)、目标函数θ(x)和辅助函数v(x)。得分函数其实就是残差,由公式Y = θ(x)T + v(x)得到。算法寻求满足局部估计等式的θ(x),本质上就是学习θ(x),让实验组和对照组数据的预估结果与真实值之差最小。


## 评估方式
目前因果模型常见的评估方式有两种:Uplift bins 和 Qini curve。
### Uplift bins
将训练好的模型分别预测实验组和对照组的测试集数据,得到两组人群的uplift score。按score降序排列,截取top10%、top20%……top100%的用户,计算每个分位下两组人群分值的差异,这个差异可以近似认为是该分位下的真实uplift值。不过,Uplift bins只能做定性分析,没法直接比较不同模型的好坏。

### Qini curve
在Uplift bins的基础上,可以绘制一条类似AUC的曲线来评价模型表现,这就是Uplift curve。当数据细分到样本维度时,每次计算截止前t个样本的增量,就能得到对应的Uplift curve。
计算公式为:

其中Y_t^T代表前t个样本增量时实验组样本转化量,N_t^T代表实验组累计到t时的样本总量,对照组同理。

如上图,蓝线是Uplift curve,实黑线是random的效果,两者之间的面积就是模型的评价指标——面积越大,说明模型效果比随机选择好得越多。这个指标叫AUUC(Area Under Uplift Curve)。
## 业务应用
### 样本准备
因果建模对样本的要求比较高,需要满足CIA(条件独立假设),即样本特征X与T相互独立。所以建模前,必须通过随机实验收集样本,通常用A/B测试的方式把用户随机分配到不同treatment中,观察用户在不同treatment下的表现。
### 样本构造
样本构造的步骤和常规机器学习基本一致,但有几个地方需要特别注意:
- **特征关联**:用户特征X必须严格使用进入随机实验组前的数据。比如,用户T日进入实验组,特征就必须用T-1日及以前的。否则,用户进入treatment后,部分特征可能已经受到干预影响,用受影响后的特征训练模型,会造成信息泄露,甚至起反作用。
- **目标选择**:有些场景下,treatment的影响需要一段时间才能显现,比如调整道具数量对用户留存的影响。这时,可以选择更长周期的目标,比如7日留存或14日留存,效果会比次日留存更好。当然也不是越长越好——周期越长,模型的学习成本越高,小样本场景下效果反而可能下降。所以,选一个合适的目标,能很大程度上提升线上表现。
### 模型训练
在我们的场景里,用户每次完成任务发放的道具数量是treatment,用户留存和活跃时长的变化是关注的uplift。实验过程中,我们先后对比了s-learner、t-learner和DML的效果,base-learner都选用了lightgbm。
有意思的是,当我们用s-learner对活跃时长建模时,无论怎么调参,得到的treatment effect都是0——也就是说,用户在不同treatment下的活跃时长预测结果完全一样。但换成t-learner或DML后,数据就恢复正常了。输出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通过拟合残差,实现了无偏估计。

### 人群分配
根据训练效果,我们最终选择了DML作为预估模型,得到了用户在不同treatment下的uplift值。然后根据这些值做人群分配,方案分为两种:
- **无约束条件下的人群分配**:只关心优化指标,不关心其他指标的变化。可以基于贪心思想,直接给每个用户分配uplift值最高的策略。
- **有约束条件下的人群分配**:关注优化指标的同时,对其他指标也有约束。需要通过约束求解的方式来解决。
在我们业务场景中,用户留存、活跃时长、流水等目标都有约束,所以采用了有约束的人群分配方案。
### 实验效果
基于训练好的DML模型和约束分配结果,我们开启了线上A/B实验。经过多周测试,相比基准策略,我们的策略在流水、活跃等指标不降的情况下,取得了置信的10%+留存收益。目前,基于因果模型的策略已经全量上线。
## 总结及后续展望
因果模型在互联网各大场景已经得到了广泛实践,也取得了不错的收益。随着营销活动越来越多、营销手段越来越复杂,treatment的维度也在从常见的多treatment逐渐变为连续treatment,这对样本、模型学习能力等各方面的要求都越来越严格。
后续工作,可以考虑从多目标建模、场景联动、无偏估计、强化学习等方面继续优化,为各个业务场景创造更大的价值。
本文转载于:https://www.jb51.net/article/248433.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。