一、背景目前我们能看到因果推断相关的资料更多的聚焦在逻辑方法本身,公式非常繁杂导致较难理解与应用。有的时候虽然看似理解了一些,但是真正应用的时候还是不太清楚什么场景应该选择什么方法。 基于此种背景,笔者梳理一些目前业界的通用业务问题场景,按照不同分析场景类型分为四大类,分别对应不同的适用因果推断解决方法,并辅以通俗易懂的语言去解释其原理与案例。当遇到某类问题的时候,我们能快速明确的知道用什么方法可解此类问题。 二、四类分析场景与对应解决方法概览三、分析场景与适用方法场景一:非实验场景策略效果评估策略、功能以及活动的效果评估,几乎是每个产品、运营、分析师日常工作的一大重点。大到重要功能上线,小到一个文案修改,都可以去衡量这个策略的效果,比之前提升了多少,对整体数据贡献了多少。不仅衡量了工作产出,也为之后的优化方向提供沉淀与依据。AB实验是回答这个问题的最优解,但是当无法做实验时,研究如何利用历史数据进行因果分析评估也变的非常重要。 非实验场景的策略评估方式的核心思想就是:人为创造一个虚拟对照组与策略上线数据做比较估计策略真实效果。 效果回归本质上属于统计学中的因果推断问题。在统计科学中,因果推断要解决的问题本质是剥离我们所不关心的外部变量对结果的影响,从而精准估计到我们所关心的策略因素对结果的单一影响。在不能做AB实验的场景下,通常有两种完成这件事情的思路:
PSMPSM的思路是对策略命中的每一个用户,都在策略未命中用户中找到和他近似的一个用户。通过这种方式,策略命中用户和近似找到的对照用户就有了可比性。PSM 作为一种 matching 方法,最大的目的就是控制实验组和控制组的观测变量。举个简单例子,我们想对比吸烟的人和不吸烟的人的健康状况,我们观察了两组人群作为样本,可能会出现以下两种情况:
这两种结论都是不够科学的,因此用 matching 的思路可以缓解上面的情况,而 PSM是 matching 最常用的方法。具体应用可以分为以下几个步骤:
举个🌰,业务在上线'主播连麦PK功能’后,发现使用连麦PK功能的用户比未使用此功能的用户开播率高4.3%,于是认为该功能提高了主播开播率。这个场景该如何做效果评估?特征选取:
按照1:1的匹配比例,最终匹配上26w对用户数据。其中策略组用户开播率13.1%,对照组为11.2%,两组diff为1.9%,假设检验通过。因此从数据角度证明该功能确实能提高开播率,但提升效果为1.9%而不是4.3%。 SCM(合成控制法)当treatment施加到一个群体或者地区上时,很难找到单一的对照组,这时可以采用合成控制方法构造虚拟对照组进行比较。原理是构造虚拟对照组,通过treatment前的数据上学习的权重,拟合实验组在实验开始前的数据,模拟实验组用户在没有接受实验情况下的结果,构造合成控制组,实验开始后,评估实验组和合成控制组之间的差异。 假设我们想要衡量疫情对于上北京某类商品的GMV的影响。若按照传统的matching方法,我们需要选择一个和北京疫情前的dau、gmv等最相似的非疫情城市作对比。但用合成控制法的话,我们需要从全国所有的非疫情城市中进行筛选,用同样的疫情前一段时间的各类维度数据与北京进行拟合匹配,使得合成后的「虚拟北京」在各个维度上尽可能真的接近「真北京」。最终选取拟合效果好的:北京=0.1城市A+0.2城市B+0.3城市C+P ; 概括的说,我们要找到策略干预单元在不被策略干预情况下的反事实时间序列曲线: 在合成控制中,我们没有很多样本但是我们有很多时间点信息。所以我们可以做回归拟合,将每个数据点翻转输入矩阵,然后样本会成为变量,我们将结果表示为样本的加权平均值,就像下面的矩阵乘法:北京=0.1上海+0.2天津+0.3广州 我们尝试评估疫情对北京的某品类GMV影响,我们为其找了其他30个非疫情城市。现在,我们可以将因变量定义为北京GMV,将自变量定义为其他城市GMV进行回归。 注意几个点,首先策略干预后,合成控制的虚拟北京GMV超过了真实北京GMV,这表明疫情降低了北京的销售数据。其次,疫情前的时期是完美拟合的,这表明我们的合成控制可能发生过拟合。因为我们的对照组用了30个城市,所以我们的线性回归模型有30个参数可以使用,这给模型提供了过多灵活性,产生过拟合风险。此时可以使用Ridge或者Lasso回归来解决此问题,这里不过多赘述。 有了合成控制的虚拟北京后,我们就可以将策略效果估计为策略结果与合成控制结果之间的差距,即 真北京-虚拟北京: 由于合成控制法的样本量通常较小,因此在确定我们的结果是否具有统计学意义时,可以使用cross validation交叉检验方法。每次我们置换我们的策略组和对照组,由于我们只要一个策略城市,这意味着对于每个城市,我们要假装它是被疫情影响过的,其他则是对照。 通过对所有城市应用合成控制,我们可以估计所有城市的合成状态和真实状态之间的差距。对于北京来说,这就是策略效果。对于其他非疫情城市,这就像安慰剂效应。如果将所有安慰剂效应与北京的疫情干预效果一起绘制,根据所有城市策略干预效果的分布,我们可以计算北京效应量的p值。在我们估算的所有其他30种安慰剂效应中,没有一个高于北京的效应量,所以p值为非常接近于0,具有统计显著意义。 场景二:实验场景下的正向用户下探在做策略时,我们需要探究策略对于不同用户的异质性影响(HTE),哪些用户对策略更敏感更容易被影响以及影响有多少,更好的归因和理解不同的用户群。通常情况下,我们结合实验来做分析。比如在实验中,我们需要挑选出来那些实验效果显著的用户,去分析他们的特征,以及找到敏感用户,帮助我们了解策略的影响,作出下一步迭代。 针对这类问题,之前常用的方法是去针对用户做维度下钻,但是效率极低且并不自动化很难遍历所有特征组合去分析。 Causal Tree基本原理这时我们可以结合机器学习的方法去解决此类问题,这里选择因果决策树(Causal Tree)方法。Causal Tree是一种直接对目标进行建模的方式,它改进了传统决策树的优化目标和指标分桶方式,以达到最大化分桶的异质性因果效应,同时调整误差的效果。 首先,它会把数据分成训练集和估计集,一部分训练集去构造树,另一部分估计集去估计因果效应和方差。其次,在树的分区方式上,使用各个节点的方差对目标函数加以修正。给定训练集Str= {(Xi,Di,Yi)},其中Di=1代表实验组,Di=0代表对照组,目标是预测E( (Yi(1) - Yi(0)) | Xi)。其中 本种方法须满足条件独立假设(CIA)即给定特征,用户是否在处理组和我们关心的结果是互相独立的。本模型的结果易于理解,可以得到某一个叶子(用户群)的因果效应结果,但是如果需要处理高维变量的话能力相对较差,最终分桶效果可能相对较,且无法检验,所需要模型使用者真正了解问题和数据的产生过程。在实际应用时,ab实验分析通常是满足CIA的,且一般不需要处理过于高维变量,所以本方法在实验异质性因果效应探究问题应用较为广泛。 Causal Tree🌰某业务做了产品优化实验,但实验各项消费数据表现较差,以APP平均使用时长为例,我们能否用Casual Tree找出一些群体的消费者,使得我们在这些消费者身上有正向实验收益? 特征选取:
通过建模,我们发现Causal Tree的第一个分裂点是用户是否是创作者,说明创作者受到了更大的实验负向影响。最终树将用户分为了10个节点(10个桶),负向因果效应最大的组为第10组(非创作者+未安装竞品+0-23岁),APP平均时长降低了16%。负向因果效应最小的组为第4组(创作者+未安装竞品+0-12岁),APP平均时长上涨了7%; 我们将每个组的分群因果效应均画出,没有找到正向收益置信的用户组。但是有些用户群体,实验没有对他们造成很大的负向影响。 场景三:策略敏感人群探究目前业界流量竞争已经进入白热化,个性化策略已经渗透到了生活中的方方面面,不论是识别营销敏感人群去推送刺激其消费的优惠券,还是为某类视频爱好者针对性推送其所爱的垂类内容。而如何找到真正的策略敏感人群,将更多的预算/资源投入到可以带来'增量’的用户上,以提升整体roi,成为了后时代精细化运营的关键,Uplift Model可以尝试解决这一类问题。 Uplift Model基本原理用简单的例子来介绍此模型,假设我们是个电商平台,一件标价300元的商品,用户的购买率为6%。现有一批预算可以给用户发放10元的优惠券以提升用户购买率,那么这批优惠券应该发送给平台的哪些用户呢? 此时我们脑海中有四类用户:
左上的Persuadables(说服型)类用户被发券干预后购买率得以提升,是我们真正想要进行干预的营销敏感用户。Uplift模型要解决的问题就是通过建模预测的方法精准的去对这四类用户进行分群。 对于单个用户来说,无法同时观测到在有干预和没有干预两种情况下的表现,这也是因果推断中的反事实的问题。这时可以从用户的角度来对平均因果效应做估计,假如我们有两组同质用户,对其中一组用户发券另外一组不发券。之后统计这两群人在购买转化率上的差值就可以被近似认为是平均因果效应。 Uplift建模需要服从CIA条件独立假设,因为样本在特征上分布需要较为一致,因此AB实验是Uplift Model建模过程中非常重要的前置条件。
假设有N个用户,用户i在没有优惠券的购买结果为Yi(0),在有优惠券时购买结果为Yi(1),此时发送优惠券对该用户的增益就是uplift score (i)=Yi(1)-Yi(0)。当uplift score为正值时,说明干预项对用户有正向增益作用,也就是上文所提到的Persuadables(说服型)用户。 此外,Uplift模型通常有几种建模方式:S-Learner、T-Learner、Class Transformation等等。模型评估方法有Uplift柱状图、QINI曲线等方式。针对几种建模及评估方式可详细参考该把优惠券发送给哪些用户?一文读懂Uplift模型。 最后,我们总结一下Uplift模型可能的应用场景:
Uplift Model🌰例如我们做了短剧类视频屏蔽Holdout实验,整体大盘DAU下降-0.5%,但大盘用户结构却未看清哪些用户是短剧核心用户,哪些用户的短剧类视频推荐分发的提升空间比较大,我们需要对大盘用户进行分层。 特征选取:
训练好模型后我们对大盘所有用户进行短剧增益预测,得出了每个用户的基于短剧分发的策略增益分数Uplift Score,然后对其进行分桶观测: 场景四:因果影响指标分析很多时候因果推断会遇到混淆变量的问题,比如我们想要去分析直播推荐多样性(指标D)对用户活跃度(指标Y)的影响,但此时存在很多变量X既与D相关又与Y相关。 解决这类问题传统的方法是用X对Y做线性回归,X的参数就是影响效应,或者是上XGboost看Shap值等。但传统的方法会依赖很多强假设例如不能多重共线性等,强假设下得到的估计不一定合理。所以这种场景下传统的指标影响分析方法将不满足业务需求,双重机器学习(Double Machine Learning)为这个问题提供了解决的思路。 Double Machine Learning基本原理在介绍DML之前我们先用最简单的例子来讲讲它所解决的问题:我们要估计冰淇淋价格与其销量间的因果效应。我们的数据集中特征X包括温度、成本和一周中的周几三个变量,Treatment T为价格,outcome Y为销售量。其中,T影响Y,X影响T和Y,即存在混淆。通过可视化,我们可以很明显看到,在周末(weekday=1和7)的时候,价格比平常要高很多,即星期几这个特征就是价格与销量之间的混淆变量。 一种简单的去偏方法就是线性回归,我们拟合一个线性回归模型,然后固定其他变量不变,去估计平均因果效应(ATE): 但特征X与Y的关系可能是非线性的,如温度temp,当温度升高时,人们可能都去沙滩玩耍,买冰淇淋吃,销量Y升高,但当温度过高时,人们可能只想呆在家,这时销量Y就下降了。因此,我们不可以直接做线性回归,而需要用残差建模的方式去建立因果模型,残差的思想就是DML的理论基础。 DML是一种处理基于观测数据进行因果建模的方法,它可以去除偏差。根据Frisch-Waugh-Lovell定理,假设我们要估计Y = β·X+ θ·D+ E 中D的系数θ项:
虽然DML可以去混淆,让我们可以只关注T对Y的影响。但是在T和Y残差化后,我们仍然使用的是线性模型。当价格只需在小范围内变化时,这种方法可能还适用。然而通常情况是,在价格较低的时候,价格增加1元,需求量可能减少2个,而在价格较高的时候,价格增加1元,需求量可能只减少1个,边际效应会逐渐递减。
双重机器学习假设所有混淆变量(既影响D又影响Y的变量)都可以被观测,所以在做特征选择时要格外注意尽量将这些特征加入模型。同时,机器学习自带的正则化可以达到高维变量选择的效果,我们可以通过拆分训练集和测试集的方式来解决过拟合带来的偏差,提高估计准确性。 Double Machine Learning🌰用户APP消费时长一直是优化视频推荐的主要目标,但随着消费需求的多样化,优化用户时长对用户活跃度的边际效应逐渐递减。 目标:
由于用户活跃度和非常多指标都存在相关性(混淆变量较多),因此不能直接回归,需要用DML来计算潜在抓手指标对用户活跃度的因果效应,比较因果效应大小来判断优先级; 特征选取:
建模步骤:
剔除不显著的特征,整体来看按照提升用户活跃情况的边际效应大小的逻辑来确认优化手段的优先级,优化内容的分发垂类结构>提升用户的内容互动量>优化内容生产者结构。 觉得文章好看不要忘记点赞、在看、转发支持一下博主 End |
|