数据驱动运营决策-框架与方法(下)
胡淏,毕业于哥伦比亚大学统计系,现任滴滴参谋部-资深数据专家。专注于数据驱动的解决方案,提供机器学习、因果推断、平台经济学领域专业咨询。数据森麟(ID:shujusenlin)公众号特邀作者。
本文首发于今日头条机器知心专栏:https://www.toutiao.com/i6556025054855954952,上半部分与大家分享了如何在企业内建立合理的量化项目价值的框架(链接:数据驱动运营决策-框架与方法(上)),有了框架,我们如何去更加合理的利用框架去评估项目的价值,将在本部分进行探讨,下面进入正文:
项目的定位与模型的两类应用
回到我们日常面对的工作,目前很火的 增长 这个话题,本质上就是数据驱动的市场营销方法,讨论一个公司如何通过渠道数据分析来提升获客的能力,就是一个典型的围绕 g(需求量)开展的工作。而平台的众多机器学习模型更多体现在后者,u(匹配效率):搜索、推荐、分单调度、前端产品、识别预测类、单量预测类、行为预测类,我们利用算法来做高效、个性化的匹配:在给定供给和需求规模的情况下,尽可能提升订单转化率。
不过,回到一开始我抛出来的问题:这么多项目同时在运作,每个项目带来的边际价值有多少呢?企业做大之后,会出现非常多相互间耦合、内耗、甚至冲突的项目。如果把企业的 GMV 看成一个大饼,的确有些优秀的项目会把饼做大,也有一些实际上是在争夺存量,有些项目甚至会让这张饼变小 —— 所以,能够评估一个项目对业务 KPI 边际影响的能力是很重要的。
我们应该如何去做呢?一个好消息是,互联网企业并不缺乏支撑这个评估的数据,而且,评估的框架大家会很熟悉:我们开一下脑洞,如果每个项目、产品、运营活动的目标可以量化成特征,宏观层面的 KPI 就是我们的因变量,那么评估的框架就是一个监督式学习的机器学习模型。
于是,一个项目的价值就体现在模型学习出来的特征和 y 之间的关系里面;同时,这个模型可以指导运营规划,如何宏观的协调各个项目,如何界定每个项目具体追求的目标,才会最快速的增长我们的 KPI。所以,这个模型的潜在价值是巨大的,但也对应了同等量级的挑战 -- 模型不仅仅要追求预测 y 的精度,也要追求它所反映的 y 与 x 之间的关系是无偏的。换句话讲,如果我们有一个 ground truth:
,那么我们训练出来的模型
至少应该是无偏的。对于这个无偏的要求,随便一个模型很难做到。至于原因,源自于模型的两类存在本质差别的应用:
这里我来重点讨论下监督学习,假设 y = f(x1, x2, ..., xp),监督类机器学习本质上就在寻找 y 和 x1, x2, ..., xp 的相关性关系来拟合 f(·)。当你把这个模型训练好之后,你可以拿这个模型做两件事情:
1.预测类问题:给定 x,预测 y:我们多数机器学习项目落在这个范畴。预测、识别本身就有价值,快速高精度的识别预测代表着高的效率和对人力成本的节约。而且,这类问题的另外一个「优势」就是省心,可以容忍一个黑箱模型,所以我们不需要实现过多的思考 y 与 x 之间到底应该是怎样的关系。另外一点,希望大家可以记住:即便你的模型没有过拟合,f(x_1,x_2, …,x_p ) 与 f∗ (x_1,x_2, …,x_p ) 也可以相差很远,甚至系数的符号都是相悖的,而这些看似糟糕的现象并不会影响到模型预测 y 的精度。也正因为这些「优势」,预测类模型所反映的 y 与 x 之间的关系通常是有偏而且非常 misleading,不能用来估算项目边际价值。
2.优化类问题:给定 x 的可行域,最优化 y: 可以来估算边际价值的模型落在优化类模型框架中。先讨论下特征,优化类模型中的 x 和我们通常在特征工程中讨论的特征类型不太一样:通常 x 是一个可变动的产品、策略抓手,而 y 则通常是我们追求的业务指标/KPI..... 比如,刚刚我们谈到给定 x,预测 y 的问题,这类问题在意的是模型的精度,而最优化 y 的问题在意的是精度会对平台产生的影响。
在午餐高峰期的时候,如果你在美团点了外卖,你会看到一个预计送达时间(e.g. 12:30),这个时间并不是最原始算法给出来的预测,而是适当根据你所处的场景加了一个通常一到两分钟补时——为什么我们要给一个不准确的预估时间呢?因为无论是从用户心理学角度、还是实际数据论证角度,我们都发现:用户的确在完全准时(12:30)送达的时候是最开心的,但是如果出现了误差,与其说 12:31,用户通常更接受 12:29 送达,也就是说,外卖用户群体更希望配送时间早于预期,而不是晚于预期。
如果从最优化用户体验的角度,第二类的一个形式就可以写成:用户体验 = f(算法精度,是否误差为正),而我们要做的,就不仅仅是优化精度,而是要找到精度与正向误差的 balance,已达到最优化用户体验的目的。再比如,定价。GMV = f(price) s.t. price>=cost; 实际上,我们正在调参的模型,参与的项目,服务的某个产品,所在的业务线,都可以通过特定的量化方式成为这类优化问题中的 x,而上层的宏观业务目标就是我们要去优化的 y。
设想一下,如果机器学习帮助我们学习出来这个公式真实的形式,会有多大的业务意义。但是,如果我们在模型的变量设计、技术选型上面不小心谨慎,很可能无法获取无偏的 x 与 y 之间的关系,训练出来的是一个仅仅支持预测的模型。为什么优化类问题容易做错?为什么你们平时经常会看到一些不符合 common sense 的 x 与 y 之间的量化关系?本质的原因是:模型通常在学习 相关性,而非 因果性。不过,优化类问题依赖因果关系。
因果推断与机器学习
大家应该都听说过 Google 流感预测,他们从用户搜索日志文本中提取了上亿个特征,成功预测了流感的趋势。对于一个预测类问题,无论从技术选型来讲还是从在特征工程的创新角度,Google 无疑是成功的。但是这个模型面对优化类问题来讲,就没有一丁点的效用 -- 预防流感,从用户搜索的内容着手,就是南辕北辙。
公司在制定定价策略的时候需要对用户的价格敏感度或者是价格弹性进行估计,但是我们经常在这个估算过程中犯错:我们都来设想下大家各自业务线产品面向用户端的价格,如何通过定价来提升 GMV(GMV = 总流水 = 单量*单均价)呢?于是我们拿出来历史每天的订单量和价格的信息,做变量之间的相关性分析。基于真实数据,我们得到如下关系: GMV = beta_0 + beta_1*价格。我们都清楚,价格越高,人们越不愿意购买这个产品,所以 beta_1 很可能是负向的,在这里,我们假设背后的事实是你们的产品定价已经过高了,因此真实的 GMV = f(price) 的函数里面,beta_1 就是负向的。但是,在这里和大家打个赌,通常情况下,你们从数据里面会看到一个正向的 beta_1。如果我们相信这个相关性分析,继续抬高价格,就会对平台产生负向的作用。
相关性不等于因果性。而我们又如何从数据里量化出来因果关系呢?有一种行之有效的 principle:相关性 = 因果性 + omitted variable。
什么是因果性?指的是干预(x)纯粹的(排除其他所有因素的)作用效果(y)。什么又是相关性?指的是 x 的发生通常伴随着 y 的发生,这当然意味着 x 与 y 互为因果的可能性,但是也有可能是一个隐藏在背后的推手,这个推手即会导致 x 也会导致 y,因此我们才发现了 x 与 y 之间的相关性。
回到上面那个定价的例子:为什么我们会发现价格和 GMV 的正相关关系?因为这个相关的关系是两个因果关系的叠加:第一个因果关系,是前面我提到的一个 ground truth,价格升高会负向影响 GMV;而捣乱的,是第二类因果关系,这个因果关系的核心推手是 供需关系。物以稀为贵,平台在供不应求的时候才有动机去抬高价格。因此越是供不应求的时候,价格越高。同时,平台另外一个规律就是:供不应求的时候单量更高,滴滴高峰期的时候才会触发动态调价,... 因此在这个因果关系里面 价格和 GMV 是正向的关系。所以,我们才从数据中发现了价格 和 GMV 之间的正相关性。正式因为我们忽视了供需关系,所以我们得到了错误的结论。这也引出我对因果推断的第一层归纳:因果关系 = 相关性 + omitted variable。
所以定价这个问题的解决方案是什么呢?就是引入供需关系这个变量:y=beta0+alpha1*供给+alpha2*需求+beta1*price。之前供需关系的干扰都会跑到 alpha1,2 两个系数里面,而 beta1 可以被解释为:当供需关系被控制(排除)的时候,价格对 GMV 产生的影响。
定价的问题告一段落,如何清晰的思考定价之外的优化问题?这里给出通用的三个步骤:
1.清晰的思考两个问题:x 如何导致 y?什么因素会导致 x,这些因素会不会也导致 y?如果存在即导致 x 也导致 y 的因素,设为 omitted variable(ov)。
真正的难点在于 OV 的选取上面。由于 ov 导致 x,u 只会存在 x 的上层。而平台最上层的三个核心: f(供给量)+ g(需求量)+ u(匹配效率),这个框架会是对大家最有效的指引,我们只许要弄清楚我们分析的点在哪个模块是最重要的。最优化定价,本质上是给定供需,最优化 GMV 的问题,因此要想分析定价这个模块,我们就要控制住 f(供给量)+ g(需求量)这两个因素。而如何评估满房开房项目对这个酒店平台单量的影响呢,这个框架应该是 单量 ~ f(满房开房数)+ g(需求量)+ u(匹配效率)。
2.学习关系: y = f '(x,ov):
a.linear regression & 计量经济学
b.RF、GBDT、Deep learning
c.Susan Athey: 机器学习解决异质性的问题
3.给定 x 的可行域和 f '(x,ov),优化 y :
a.look at beta1, step by step
b.optimization
我们平时都在积累自己的「弹药库」:分类、回归、无监督模型、Kaggle 上面特征变换的黑魔法、样本失衡的处理方法、缺失值填充……这些大概可以归类成模型和特征两个点。如果模型和特征这两个点都已经做得很好了,你就拥有了一张绿卡,能跨过在数据相关行业发挥模型技术价值的准入门槛。同时,AI 在普及,甚至都普及到了去替代算法工程师日常的一些重复性工作的地步 – 大公司在开发机器学习、数据分析、日常报表的平台,不久的将来运营和产品都可以深度参与到数据驱动的一线当中。这个时候,量化战略分析和最优化运营决策,也许就是未来奋斗在数据驱动一线同学的核心价值之一。
如果大家周围有对数据分析&数据挖掘感兴趣的朋友,欢迎在朋友圈分享&转发一下,让更多的朋友加入我们。有好的文章也可以联系我与大家分享,需要获取代码转载本公众号文章,可以直接在公众号或者文章下方留言。
往期文章:
爬虫告诉你, 互联网大数据行业有多赚钱【数据挖掘&机器学习篇】
R爬虫&可视化第四季-近三十年6000部国产电视剧告诉了我们些什么