如果大家在一线做算法或者分析,我猜你们的工作时间基本上都花在具体的项目推进和优化上面。我之前也是这样的状态:作为某公司算法策略 manager,投入到公司内部的一些重要的机器学习项目里面,每天的讨论都在围绕着具体项目的预测精度,特征工程,线上部署与监控这些问题。也写了一篇文章 《机器学习模型优化不得不思考的几个问题》,介绍了模型项目推进的三个要素:最大可能的贴近业务目标;完备的特征、数据体系;最恰当而不是最复杂的技术选型。

不过慢慢的,有一些更上层的问题问题让我感到头疼:做的这些事情,我清楚业务和老板定下来的目标是什么。不过,目标是否可能错了?目标应该是什么?又给企业带来了多少价值?当时我并没有一套行之有效的方法论可以帮助我去想清楚一个项目的目标,并去量化一个项目的价值。于是,这一年多以来,我从管理回到一线,在参谋部重点做两件事情:和这个领域内的教授、专家学习一些可以解决这些问题的分析框架和计量经济学的方法(特别感谢 万智玺 老师的栽培),用这些方法去评估公司一些重要的项目与产品的边际价值、潜力,去指导运营做更高效的规划。

今天我具体来聊的,就是如何清晰的思考和科学的量化项目的价值,如何优化项目目标从而更高效的完成业务的 KPI,而且我讲的不是管理学的经验,而是科学的、数据驱动的方法论。比如,在海外,对标竞争对手的司乘体验水平,如果要达到 x% 的 market share 最少需要多少在线司机和发单?这是一类偏战略分析、运营规划的问题,解决这类问题不仅仅需要技术能力,也需要对商业模式清晰的思考、以及一个项目在商业模式下的位置以及价值. 这构成了本次内容要涵盖的三个主体:

  • 分析框架:多边平台的经济学框架;

  • 项目定位:模型的两类应用、价值、风险;

  • 技术选型:因果推断与机器学习。

多边平台的分析框架

滴滴参谋部资深数据专家胡淏:数据驱动运营决策-框架与方法

随着技术的发展,互联网+催生了大量的平台类商业模式。这些平台的运营、产品可能相差很远,但是背后的理论模型却极为相近。绝大多数的互联网公司——无论是 BATJ、独角兽、还是那些风口浪尖的企业,都可以类比成或大或小、或纷乱或简单的市场。在这个市场上都有卖家和买家双方,而平台的作用就是去撮合买家和卖家之间的交易。

举例说,滴滴的卖家是司机,买家是乘客,平台分配合适的司机去满足乘客的出行需求;饿了么、美团则是用户、餐饮店、骑手端组成的三边平台,这是个在线上将有外卖需求的用户和餐饮店之间进行匹配交易,并通过配送完成外卖交易闭环的运营模式;携程呢,则是许多或大或小市场的组合,酒店板块、旅游板块、机票等板块分别管理着不同市场上买卖家的分配和交易过程中可能产生的任何问题(e.g. 呼叫中心)。

滴滴参谋部资深数据专家胡淏:数据驱动运营决策-框架与方法

平台之所以可以兴盛,因为它解决了传统行业交易成本过高的难题。经济学家根据交易的三个阶段,把交易成本划分为匹配、谈判、缔约、执行成本。比如你出门打出租车,匹配成本发生在你寻找潜在交易机会的阶段,你从出门扬招到找到一个可能载你的空车这个过程所产生的成本就是匹配成本;谈判、缔约成本发生在买卖双方针对交易细节进行协商的过程,就是你和司机商量要去哪里,是否接受拼车,是否愿意加价的过程中产生的成本;而执行成本呢,则在于交易发生之后,司机是否会绕路,是否会中途让你下车,这些你们所承担的风险就是执行成本的一种。滴滴的优势在于利用互联网大数据、精细化运营的手段极大程度上降低了交易成本:把司机和乘客从线下搬到了线上,通过秒级的分单调度匹配司机与乘客,通过平台统一定价节省了司机与乘客之间议价的成本,并通过司机服务分、乘客信用分来反向约束司机和乘客的行为。就是因为滴滴解决了高昂的出行交易成本,滴滴出行目前是全球最大的一站式出行平台,每天 3000 万订单的规模。

滴滴参谋部资深数据专家胡淏:数据驱动运营决策-框架与方法

经济学家把平台类商业模式,或者说撮合供需两(多)端交易的商业模式统称多边平台 (Multisided Platform)。多边平台有很多有趣的问题,例如低于成本的定价依然可以获得巨额的利润,又比如多边之间的网络效应带来的协同增长、萎缩;另外,平台的规模以及获取交易、用户行为数据的能力为机器学习算法提供了非常好的生态...... 不过,这里不会翻来覆去说多边平台的复杂,而是其背后是一套简单、科学的分析框架:KPI(主要是规模、体验)= f(供给量)+ g(需求量)+ u(匹配效率)。f(供给量)+ g(需求量)在讲的是边际供给、需求对平台 KPI 的影响;而 u(匹配效率)在讲的是给定一定规模的供给量和需求量之后,平台撮合供给 和 需求而实现规模、或体验的效率。一个平台要做规模或者体验的增长,只有两个抓手:要么进一步拉动供需规模;要么做匹配效率的优化。

就比如我们这个会场,云海平台就是一个市场:市场的一边,g(需求量)是在座的听众,市场的另一边,f(供给量),就是我们这些讲师,平台呢,就是会议的主办方。听众这边关注的是供给量和质量,供给量越多、质量越好,你们听众就会越来越多;我们内容供给这一边呢,更多也在看你们的需求量,需求量越大越容易激励我们更踊跃的参加、给出更好的内容;而主办方则要考虑你们和我们之间的匹配效率,听众的背景大概是怎样的?讲师的内容是否和听众的需求可以很好的匹配?所以才有了这个会议之前,我们和主办方在线下很多次围绕内容的沟通。这个匹配的效率越高,才越会吸引听众和讲师的参与,才会把云海这个会议越办越大。我描述的这个平台,正式许多学术期刊主办的学术会议的商业模式:当这个平台从听众、内容供给者的量上面突破了一定的规模,可能会议会引入另外一个边,第三方的公司和广告商会借着会议的举办机会来做宣传,而平台就有更大的获利的渠道,甚至接下来放开流量对听众免费,于是平台的规模就会越来越大。

项目的定位与模型的两类应用

滴滴参谋部资深数据专家胡淏:数据驱动运营决策-框架与方法

回到我们日常面对的工作。企业运作的所有项目,都在围绕这三者展开。比方说,我之前同样在这里讲的满房自动开房模型,通过机器学习算法去精准触达那些可以额外提供间夜量的酒店或者房型,从而缓解携程酒店在高峰期供不应求的难题;再比方说目前很火的 增长 这个话题,本质上就是数据驱动的市场营销方法,讨论一个公司如何通过渠道数据分析来提升获客的能力,就是一个典型的围绕 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

从技术层面,我从计量经济学角度阐述了大家平时在一些数据中质疑的相关性的本质,并提出 因果性 = 相关性 + omitted variable 的观点,进一步引入传统的计量、AB、以及前沿的因果 + 机器学习的算法。从应用层面,我更多在引导大家看清一个盲区 – 平时在思考机器学习算法时候的盲区:算法在优化类应用中的巨大业务价值以及正确的建模方法,以及一般机器学习算法的局限性。那么,文中介绍的平台经济学框架对于做数据驱动的同学有什么价值呢?我的忠告是,在追逐前沿技术模型的同时,要回到业务问题和商业本质才能具备高效的技术变现能力。一线的分析师、算法工程师要从更上层的商业角度,利用科学的分析框架来审视自己投入的项目所产生的价值,和应该发力的方向,也是我在写文中三个主体部分的主要动机。

我们平时都在积累自己的「弹药库」:分类、回归、无监督模型、Kaggle 上面特征变换的黑魔法、样本失衡的处理方法、缺失值填充……这些大概可以归类成模型和特征两个点。我们需要参考成熟的做法、论文,并自己实现,此外还需要多反思自己方法上是否还可以改进。如果模型和特征这两个点都已经做得很好了,你就拥有了一张绿卡,能跨过在数据相关行业发挥模型技术价值的准入门槛。同时,AI 在普及,甚至都普及到了去替代算法工程师日常的一些重复性工作的地步 – 大公司在开发机器学习、数据分析、日常报表的平台,数据驱动对 coding 的要求越来越弱,于是不久的将来运营和产品都可以深度参与到数据驱动的一线当中。这个时候,量化战略分析和最优化运营决策,也许就是未来奋斗在数据驱动一线同学的核心价值之一。

相关文章