作者|易恋1.前言唯一不变的就是变化。在拥抱它之前,请提前检测、归因,做好充分的准备。在指标体系建设较为完善的背景下,我们需要通过对指标的解读和指标波动来描述、跟踪和推动业务。当一个指标出现波动时,我们首先要从业务角度判断波动是否异常,即交易检测,其次判断异常背后的原因是什么,即交易归因。归因的方法有很多种。本文重点介绍索引拆解,这也是我们做业务分析时最常用的方法。我们的目的是解放人力,实现指标拆解自动化。一方面可以加快业务迭代,快速定位问题;另一方面,它可以全局量化可能引起变化的维度,增强可比性,明确下一步的业务行为。点优先。自动化变异归因的目的是尽快判断和抓住机会,寻求以数据驱动为灯塔,指引业务方向。2.目的目标指标定义为,波动为,其中为当月数据,为上月数据(同比/环比)。文章的目的是研究组合集对的贡献:其中,索引(或维度)对的贡献。另外,根据不同的组合方式来确定贡献的拆解算法,组的方式包括:加法(例如各通道的uv之和)。乘法(比如rpm=cpc*ctr,计算cpc和ctr各自对rpm的贡献)。比率型指标(例如,每个广告计划的cpf,或每个渠道的cpuv等)。三、贡献率拆解方法1.加法拆解已知目标波动贡献度相等,证明见附录。比如绝对值指标的维度拆解,都是加法拆解。绝对数量指标的同比/环比变化为各分项指标变化的加权和。例如,访问uvs的总和等于所有渠道uvs的总和,总uv变化的下钻贡献率等于每个渠道各自的变化除以上个月的总uvs。2.已知目标波动贡献的乘法拆解等于证明,见附录。其中有当月数据,上月数据(同比/环比),平均对数权重:比如漏斗模型,借助用户移动线,分解指标。以全站商品详情页的浏览量(ipv)为例,变化涉及流量、收货页到商品详情页的转化(uv-d转化)、人均浏览量产品详情页(人均pv),分别对应用户增长、搜索和推送场景接受度、私域用户活跃度等业务域或用户行为指标。这样就对全站ipv的组成环节进行了静态乘法拆解:同时可以计算出各个乘法因子对目标指标变化的贡献率,衡量三个指标的重要性:平均对数权重,3.比率类型指标拆解已知,,,分析比率指标下钻时,分项对整体的贡献受两个因素影响。分项相对指数波动贡献,即当期分项规模与基期相同时分项指数带来的变化:分项指数波动贡献项目=指数同比变动值*上期基数比。分项结构变化,即分项规模变化指标本期与基期的变化:分项结构变化=同比比重变化*(分项本期指标——前期总体指标),是当月的数据,是上个月的数据(同比/环比)。,证明见附件。例如,以收货页面到商品详情页面的转化率(uv-d转化率)为例。流量渠道可分为付费、免费、自然、其他。每个通道的uv-d转换率不同。业务页面的访问人数比例(duv)用每个渠道的人数比例(uv)来表示。如果uv-d转化率同比下降,我们要定位问题出在哪个渠道;如何计算各通道的贡献度For:4.示例应用根据上述不同指标的计算方式,支持对各类指标进行下钻求贡献的场景。可以根据之前的业务输入构建多层归因逻辑模型,逐层下钻。最后,定位指标波动。图2:计算贡献率后的数据结果模式。以2011年某日ipv同比下降分析为例:第一层拆解,借助用户动线,对链接变化的指标ipv进行乘法拆解,如下:这有助于我们定位到可能引起索引变化的关键节点,从而帮助我们定位到具体业务领域的问题,比如uv的问题,转换的问题,或者人均ipv的问题?第二层拆解,在关键节点多维度下钻,在一定维度的一定层次上定位问题,避免像辛普森悖论这样的陷阱,帮助我们形成具体的业务领域。比如如果是转换的问题。哪个渠道转化率降低了?下图“交易分析拆解流程图”是基于先验业务输入构建的归因模型,可以根据其框架进行贡献率拆解和问题定位:图3:指标逐层拆解和归因。以红色表示的链接指标或维度代表对总值下降的贡献较大。层层拆解后,App端自然流量的转化减少,导致总转化率下降。.基于流量跨终端调控和流量预算缩减的业务背景,我们现在将对ipv贡献最大的uv/duv的贡献率按照终端类型、流量通道类型、流量通道四个维度进行拆解,和国家。本例中,本文对贡献率的拆解方法与人工读取业务数据得到的问题定位基本一致。这种方法可以达到量化交易贡献率,提高效率的目的。具体核心结论如下:结论一(一级拆解)影响ipv下降的主要因素是uv-d转换率的波动。结论2(二层拆解)uv-d比值的波动主要是APP端和WAP端造成的,两种端类型的贡献相当。结论3(三/四层拆解)APP端自然流量和WAP端付费流量是uv-d总比值波动的主要贡献维度。结论四(第五层拆解)美国APP自访uv-d比值波动很大。通过建立多层归因下钻维度模型,可以自动化逐层分析,使得对某一维度尽可能完善和正确,从而节省人力,提高准确性和科学性。4.多层下钻归因方案——决策树本节重点介绍拆解计算贡献率后如何检测异常变化。我们计算了不同维度下每个维度值的贡献率。接下来就是寻找贡献最大(有变化)的维度值组合,测试三种拆解方案,包括逐层向下钻取(同上3.4中的向下钻取方法)、多层同步drill-down,决策树模型,发现决策树模型效果最好。这里决策树的输入是不同维度值的组合,输出是贡献率,做回归预测。主要方法是求贡献率的熵,找到信息增益最高的切割方式。很自然的想到这里的决策树模型,通过贪心算法,对数据空间进行切割,找到贡献率绝对值最高的维度组合空间。图4中的矩形表示整个数据空间,表示二维,下标表示维度下的维度值。下图是通过不同维度值的组合,将数据空间划分为不同的块,用不同的颜色表示。图4:决策树切割数据空间可视化1.剪枝决策树存在过拟合问题。为了解决这个问题,我们决定了一种剪枝方式,采用后剪枝。后剪枝是先构建整棵决策树,然后自底向上检查非叶子节点。如果将该节点对应的子树替换为叶节点,可以提高总体性能,则将子树替换为叶节点。后剪枝方法包括:REP-errorratereductionpruning、PEP-pessimisticpruning、CCP-costcomplexitypruning、MEP-minimumerrorpruning。我们借用了CCP—CostComplexity的方法。选择表面错误率增益值较大的层级的非叶子节点,删除该非叶子节点的左右子节点。如果存在多个具有相同小表面错误率增益值的非叶子节点,则选择非叶子节点中子节点数量最多的非叶子节点进行剪枝。本算法的参数为,表示算法的复杂度:其中,表示节点的方差(近似加权熵的概念:impurity,以下统称熵,计算公式),其中是节点的子树的熵之和,是决策树节点的个数。高,说明该节点的信息增益高。图5为交易维度个数与决策树层节点平均熵的关系:以黄线为例,当交易维度为2时,第2层决策树的熵最高。层后,熵越低,信息增益越少,过拟合明显。从虚线可以明显看出熵的拐点在第二层,决策树的最大深度等于2。图5:交易维数与节点方差(熵)的关系Inspired通过图5的例子,根据CPP的方法,找到跳层增益较大的“拐点”,找到合适的进行剪枝。五、模型性能1.模拟数据我们模拟的维度和维度值如下,共4个维度(两个独立的),共涉及40个维度值,4个维度值的组合(笛卡尔坐标)乘积31*2*3*4=744)一共744个。模拟时间对比为月环比,模拟指标为广告消费。Dimensionfieldcountry_cn_nameis_freeterminal_type_cdimps_cnt_binsDimensioncountrychannelendtypeexposuregeardimensionvalue31234ExampleMalaysiafreeWAP(-1.0,0.0]无变化数据:使用白噪声模拟无变化的维度组合的时间序列,见图6:图6:无的异常变化的时间序列有异常数据:通过随机游走的累积和来模拟异常变化的通道、终端类型、曝光齿轮),指定特定维度和维度值在3月份有变化,测试是否通过决策树模型找到正确的变化点。仿真案例主要考虑可能发生变化的真实情况:某个PID数据录入异常会影响单维变化(仅影响该PID的数据)。某一渠道、某一类终端的投资减少,会影响到多个维度的变化。由于指标变化涉及的业务复杂,不同团队不同方向的优化会影响维度值的不同组合。示例1:异常尺寸变化的尺寸值组合在两个地方:a.Country=Iraq,channel=free,terminaltype='WAP',exposuregear=[5:100]b.Country=France,Channel=Free,EndType='PC',ExposureLevel=[0:5]计算贡献度,将数据输入决策树模型,结果如图8,决策树即可看到准确找到交易数据(准确找到7个维度值,共8个),这两组红色数据对交易的贡献绝对值最大。我们自定义在树结构中寻找父节点的方法,自动剪掉多余的剩余分支,只截取关键分支呈现。图8:决策树结果呈现的特征重要性也符合预期:例2:改变维度在一个地方,只改变一个维度。在支付中,改变维值组合:a.Channel=payment通过剪枝,模型成功找到一维信息,避免提供过多的噪声混淆用户。表1包含更多维度值组合示例,以及模型性能,包括F1-score、模型输出结果和特征重要性。探索了11个案例,平均F1分数为91.9%。下面的数量是交易的维度值个数:|积极预测|NegativePredictionPositive类|真阳性(TP)34|假阴性(FN)6阴性类|误报(FP)0|TrueNegative(TN)0最终结果:Precision=34/(34+0)=100%Recall=34/(34+6)=85%F-1ScoreOverall=91.9%改变维度值组合(label/y_true)F1-Score模型结果1:模型输出(结果可视化展示,自动剪掉多余的分支,只截取高贡献的分支进行展示)模型结果2:特征重要性1APP100%APP->贡献率0.58APP:0.7902France100%France->贡献率0.84France:0.542;3Pay100%Pay->贡献率0.43Pay:0.570;4France&Pay100%France->Pay->贡献率0.81France:1.988;Pay:1.019;5France&APP100%France->APP->贡献率0.84France:1.895;APP:1.3606APP&Pay100%APP->付费->贡献率0.41APP:1.591Pay:1.203;7APP&Pay&France100%法国->APP->付费->贡献率0.88France:1.944;APP:1.374;Paid:1.047;8APP&Paid&France&(5.0,100.0]100%France->(5.0,100.0]->APP->Paid->ContributionrateFor0.90France:1.836;APP:1.469;(5.0,100.0]:1.369;Paid:1.302;9APP&Paid&French&(5.0,100.0]orPC&Free&Iraq83%non-Iraq->France->;(5.0,100.0]->贡献0.14伊拉克->PC->非付费->贡献0.87伊拉克:1.610;PC:1.027;付费:0.772;法国:0.062;(5.0,100.0]:0.052;10APP&Paid&FrenchorPC&Free&Iraq&(5.0,100.0]83%非法国->伊拉克->(5.0,100.0]->贡献率0.14法国->APP->非自由->贡献率0.87法国:1.559;APP:1.101;自由:0.839;伊拉克:0.064;(5.0,100.0]:0.058;PC:0.00011APP&Paid&FrenchorPC&Free&Iraq&(5.0,100.0]orUS&Free&APP88%Non-US->NonFrance->Iraq->(5.0,100.0]->Contribution0.14Non-US->France->APP->付费->贡献0.84美国->APP->非付费->贡献0.84APP:1.218美国:0.936支付:0.907法国:0.863伊拉克:0.035(5.0,100.0]:0.033土耳其:0.0006.局限性但是这种方法论还是有局限性的,主要是归因变量(drill-downdimensions)有限,而且大多数情况下,都是根据业务理解和之前的经验来判断的,这种方法只能识别di业务认可的尺寸和链接定位。拆解后的指标或维度是已知业务系统中的指标,如工程问题、宏观政策等因素难以识别,需要定性分析。具体来说,我们看到pv下降,下意识的就想从渠道往下钻。主要原因是我们把channel作为一个变量,它和pv数是正相关(或者因果)关系。举个极端的例子,可能是服务器故障导致整个平台的pv下降。这样一个潜在的变量,如果它独立于常用的向下钻取变量,则无法通过该方法探索获得。我们的后续工作将着重于从独立指标和相关事件的角度进行更深入、更全面的因果推理算法研究。7.技术产品化我们月报、周报中常用的分析方法与此类似。不同的是,由于人力有限,数据复杂,下钻维度和层数往往有限,比率型指标不知道如何下钻等等,难以保持科学性和严谨性。这套方法实现了自动化,保证了计算的准确性,节省了人日。我们已将这项技术沉积在内部数据产品“闲书”上。相数中心是ICBU数据驱动的基石产品,是集数据资产定义与管理、A/B实验、洞察分析为一体的数据平台。它提供的核心价值在于易找、敢用、保鲜的数据资产,大规模、可信的端到端实验能力,以及因果、变化等智能分析工具。8.附录证明加法贡献算法已知等于贡献,证明是乘法贡献算法已知,贡献等于,目标波动证明比值贡献算法已知,其中当月数据为上月数据(同比/环比)。贡献等于算法得到的贡献率仍然是相互独立的,符合MECE原则,通过单独观察帮助我们避免辛普森悖论带来的陷阱。备注:符合mece原则的证明:相互独立:和的计算公式不涉及其他项的完全耗尽。参见Ang、BengW.、F.Q.Zhang和Ki-HongChoi。“通过分解分解能源和环境指标的变化。”能源23.6(1998):489-495。昂BW.分解分析的LMDI方法:实用指南[J].能源政策,2005年,33(7):867-871。《波动解读—指标拆解的加减乘除双因素》https://zhuanlan.zhihu.com/p/412117828
