快手异质性因果效应模型构建及应用
导读: Uplift模型旨在量化干预(Treatment)对不同人群的差异影响,进而通过人群定向/数值策略的方式对人群进行差异化策略。本次分享主要介绍快手在Uplift 模型上的探索、应用及迭代,以及在业务中使用Uplift 遇到的一些难题和优化解决方案。
分享嘉宾|周小羽 快手 经济学家团队Tech Lead
编辑整理|王鑫民 同济大学
出品平台|DataFunTalk
01 介绍
首先简单介绍Uplift。
Uplift 模型要做的就是预估每一个人对实验的反应,从而圈选一部分对实验敏感性较高的人群 。举个例子,商家希望通过给客户发美妆折扣券提高客户在商家的消费。当商家对所有用户发美妆产品的折扣券时,男性用户可能无法get到这个折扣券的用处,而女性用户可能会更被这个策略吸引。如果我们计算发折扣券的平均效果——即ATE(average treatment effect)时,如果男性用户无反馈而女性是正反馈,两个群体的实验效果加起来可能是不显著的。
进一步地,我们希望发现激励效果显著的用户群体,业务上比较常见的做法是用户分层,但是传统的用户分层很难展示高维度的分层结果,这也是Uplift流行的原因——我们希望估计高维度的异质性因果效应——HTE (heterogeneous treatment effect),而并非ATE。
估计HTE的方法有很多,例如casual tree,casual forest等,我们先 从线性模型的角度讲解如何从ATE估计到HTE 。在实验变量离散的情况下(即传统做法,将用户分为实验组和对照组),ATE的计算公式为两个用户组结果变量diff的期望;在实验变量是连续的情况下(比如实验变量是药剂剂量时),ATE的计算公式就是结果变量对实验变量求导。用散点图说明:当x轴是实验变量、y轴是结果变量时,ATE为各点拟合曲线的斜率。以此类推,HTE需要我们对每个点求斜率。
一个简单的解决方法是构造实验变量和特征变量的交互项并且拟合一个线性函数 :对没有交互项的函数,求解的实验效应是常数,即所有人实验效应相同;对于有交互项的函数,求解的实验效应是一个关于特征变量X的函数。对于该种HTE的形式,我们也可以称其为CATE (conditional average treatment effect),因为它conditional on 了特征变量X。
举例: 假设用户的数据包含了性别和年龄这两个画像变量,且均被 one-hot编码——性别等于 1 为男性,性别等于 0 为女性,年龄1为大于 30 岁、0为小于30岁。在这两个维度下,用户可以被分成四个人群,我们希望估计每个人群的异质性因果效应。线性模型求解结果如表中公式所示。该方法的优点在于:
①易于理解: HTE等同于用户分层之后对各群体求ATE。
②可以进行统计检验: 通过 delta method 快速计算标准误差。
02 难点
快手在应用Uplift模型中遇到了如下一些问题。
第一个问题:业务场景下实验变量经常是连续的。 当第一单位和第二单位的边际影响不同时,我们应如何捕捉并且量化这个现象?
比如push 消息:我们希望通过 push 让增加用户的 App时长。每天push 一两条一般人可以接受,但是用户收到第五条时,他们会就很厌烦甚至会关掉 push提醒功能,这样平台以后就再也没有拉起该用户的机会了。我们希望有一个不仅能给出HTE、还能计算每个用户在不同实验剂量下的边际效应的模型。这样就可以知道应该给哪些用户多push 几条。
再举个例子:当一个作者粉丝数增加的时候,我们希望他能更多地在平台上进行生产。我们发现作者增加的第一个 1000 单位粉丝和第二个 1000 单位粉丝带来的作品发布数的增量是不一样,因为大 V主播和小主播对同等量级的粉丝增量的体感不同。如何 capture 这个规模效应也是业务经常遇到的问题。
第二个问题:非线性模型如何做统计检验?
线性模型由于假设太强,模型效果经常表现很差。换成更复杂的机器学习模型之后, delta method不再适用于求标准误差。并且特别对于一些波动特别大的指标,即使用delta method效果也不好。因此我们需要知道如何判断指标的显著性。
对于上述两个问题,我们简单地介绍在快手的解决方法。
首先是估计规模效应。 以作者和作者生产数为例,经济学中有一个理论叫边际效应递减法则:即作者粉丝数增加时,单纯通过涨粉对于作者生产数产生的激励存在一个上限。如上图所示,我们期望看到增加单位粉丝带来的生产数实际是逐渐递减的。如果能预估该作者的涨粉能力上限和生产数上限,对平台资源的分配是有极大帮助。
一个比较粗暴的解题思路是构建一个函数形式,使HTE为一个关于实验变量的函数。
以之前提到过的线性函数为例(左框中的公式),我们对干预变量和特征变量进行交互,求解得到的HTE是一个关于X的函数。但该形式下第一单位的treatment effect和第二单位的treatment effect是等价,因此并不能达到我们之前预期的边际效益递减的目的。如果我们拟合一个非线性函数,如上图中的多项式函数形式,一阶导后CATE是关于X 和 T的函数形式,这意味着第一单位的 treatment effect 和第二单位的 treatment effect 不等价,CATE随着 treatment的变化而变化的。这种粗暴求解的思路缺点在于:对 CATE的函数形式的假设会非常强。
为了解决上述问题, 我们基于Farrell在2020年的论文,构造了神经网络的优化模型,并称其为“双重神经网络”模型 。input layer由特征变量构成 (如用户画像),经过第一个神经网络的feature hidden layer构建交互特征;interaction layer包括关于特征变量的函数a(X)以及函数和treatment的交互项b(X),经过parameter hidden layer进行交互得到非线性关系,最后output layer输出得到HTE。
我们在这里展示某个真实的业务分析中双重神经网络模型的表现。该分析中,我们首先用双重机器学习模型对估计目标进行纠偏(实验变量并非纯随机试验,而双重机器学习模型可以帮助我们生成类随机实验)。同时我们也对量化模型表现进行了优化,生成了基于连续实验变量的uplift curve。上图可以看出双重神经网络模型的表现远远优于其余模型。
此外我们也 解决了关于非线性模型如何做统计检验的问题 。在得到HTE之后,常常还需要回答:①哪些人HTE是显著的?②模型有多个treatment,各自HTE差异很小,哪个treatment更好更科学?
基于Victor的论文,我们使用data splitting的方法近似significance level :通过不停地对数据进行拆分,main sample用于模型训练,auxiliary sample用于预测HTE,求得HTE的empirical distribution。
该方法用关键的三个指标来衡量HTE的表现:
- BLP (best linear predictors of the effects on machine learning proxies)
越靠近0说明估计的HTE等于噪音,越大说明异质性越强。另外,该指标越靠近1说明选择的ML估计方法能对CATE有较好的预测。
- GATES (average effects sorted by impact groups)
近似估计HTE是否显著:将每次预测的HTE排序分段,并检验每段的均值是否显著。
- CLAN (average characteristics of most and least impacted units)
估计X对HTE的影响是否显著,是一种衡量feature importance的方法。
03 应用
下面介绍一个基于双重神经网络的Uplift模型在快手的应用。
1. 应用—:涨粉和生产
平台希望圈一些作者,并了解他们生产数的最大空间--知道作者的生产数空间可以便于业务request相应活动流量和预算。我们通过优化的模型可以实现对每一个作者估算一个边际效益曲线。模型也可以做到按照作者类型去分类,得到各类作者生成力的边际。除了估计预算,通过预测每个作者的生产力天花板,运营同学可以针对大V作者做相应的策略调整。模型结果如上右图所示:基于过去一段时间的勤劳程度和其他特征,作者1涨粉到4.5万就不再可能通过涨粉增加收益、而作者2涨粉到1.7万就到头了。
2. 应用二:push消息
平台规定每个用户每天最多可以收到 10 条 push ,第一条 push 对用户的 app 时长影响和第二条 push 的影响肯定是不同的:从逻辑上来说,第二条 push 带来的影响会弱一点。如何用模型去 capture 这个影响?通过双重神经网络的模型,我们可以对每一个设备预测它在不同 push 条数下的反应。
结果如上图所示,我们从所有的样本中选择 7 个设备,并且画出了收益衰减图:横坐标是设备收到的push数量,纵坐标是模型预测的边际效益。蓝线代表该随机抽取的设备当被 push 第一条消息HTE就已经到 0,因此该设备并不适合做push策略;粉线代表另外一个随机抽取的设备被push第7条消息时HTE仍然没有到0,因此可以多push一些消息。
04 总结
DNN+HTE可以应用在探索 收益天花板的问题中 :
①帮助业务规划资源 。比如想申请一部分预算助推给作者分发助推流量,DNN+HTE模型可以帮助探索收益的天花板,预估合理的预算申请金额。
②帮助调整定价策略 。比如给商家进行涨粉,应该在什么地方多收钱,什么地方少收钱,可以探索公域和私域的收益天花板,通过这两个天花板去调价。
post analysis让结果更稳健:
①对DML可以跨模型比较模型表现,适合复杂的模型结构。
②可以探索一个模型估计的HTE的variation是否够大;variation比较小的时候可能圈人效果不准。
③可以探究特征变量对HTE的影响是否显著,帮助业务缩小决策圈,只对显著的人群做策略。
05 问答环节
Q1:是基于离线数据的分析吗?
A1:是离线数据分析。但不是基于实验AB实验的结果:关于涨粉和生产两个案例,我们直接用大盘数据训练,并用模型进行纠偏。
Q2:应用中研究的Uplift 模型中,什么情况下 meta learner 间接建模会比 casual tree 直接建模对 Uplift 效果更好?
A2:meta learner 在离线分析中的使用可能较少,多使用于线上分析,因为它最大的优点是速度快,在线训练模型可能有一定优势。但是缺点是它不灵活,大部分 meta learner 只能对离散的实验变量去做建模。我们在对连续实验变量建模时,做了大量 research ,最后设计了一种可以拉通比较离散实验变量和连续实验变量模型的表现的方法,从而使得我们在模型选择上更加灵活。
Q3:模型是怎么评估的,如何判定模型是否准确?
A3:将数据分为训练集和测试集,在测试集上拟合,使用root mean square error评定模型表现。
Q4:如何选择混淆因素,实际发现X选择对 DML 影响很大,如何判断结果的置信度?
A4:使用非实验数据的情况下,对X一般建议应选尽选。在双重机器学习模型的应用中,我们会对Model Y 和 Model T 的残差去做检验,看其是否显著相关,且它们的均值是否有显著区别。因为这是 DML 的假设,如果连这个基本的假设都不能满足,那必然是有一个比较大的混淆因素被 left over ,需要重新再去筛查。
周小羽
快手 经济学家团队Tech Lead
2018-2021年在SAS Institute担任统计软件开发,主要负责研发面板数据相关的功能(PROC PANEL, PROC CPANEL, etc)。2020年加入快手经济学家团队并担任Tech Lead,负责研发迭代快手自研因果分析工具,探索学术界前沿因果分析方法。