【译文】驱动系统方法:四步设计出好的数据产品
翻译:克迪
欢迎访问网易云社区,了解更多网易技术产品运营经验。
在过去几年中, 我们看到了许多基于预测建模的数据产品。这些产品的范围从天气预报到推荐引擎, 再到比航空公司本身更准确地预测航空公司航班时间的服务。但这些产品仍然只是在做预测, 而不是问他们基于预测后下一步需要采取什么行动。人们对预测技术可以是有趣很感兴趣,从基础数学的角度这种技术很有深度。但我们最终还是需要采取下一步行动继续前行。这项技术的存在是为了构建能够彻底改变整个行业的数据产品。既然如此, 我们为何不继续构建下去呢?
为了启动这一进程, 我们建议采取四步走的方法, 这种方法已经变革了保险业。我们称之为驱动系统法, 灵感来自于新兴的自驾汽车领域。工程师们首先确定了一个明确的目标: 他们希望汽车在没有人为干预的情况下安全地从 a 点行驶到 b 点。伟大的预测建模是整个解决方案中的一个重要部分。伟大的预测建模是解决方案的重要组成部分, 但它不再独立存在;随着产品变得更加复杂, 它就会融合到每一个组成部分,貌似消失得无影踪。有人使用谷歌的自驾汽车, 完全意识不到之所以车辆开行都是上百个 (如果不是上千种的话) 的模型和 PB级的数据发挥作用的结果。但随着数据科学家不断构建日益复杂的产品, 他们需要一种系统的设计方法。我们并不是说驱动系统方法是最好的或唯一的方法;我们的目标是在数据科学和事业领域之间展开对话, 以推进我们的集体愿景。
基于目标对象的数据产品
我们正在进入作为驱动系统的数据时代, 在这个系统中我们使用数据不仅是为了生成更多的数据 (以预测的形式), 还是利用数据产生可操作的结果。这是驱动系统方法的目标。阐述这个过程的最好方法是用一个熟悉的数据产品: 搜索引擎。早在 1997年, AltaVista就是算法搜索世界的王者。虽然他们的模型善于寻找相关网站, 但用户最感兴趣的答案往往被埋在搜索结果的第100页。随后, 谷歌出现了, 并通过一个简单的问题开始改变在线搜索: 用户在搜索查询中输入内容的主要目标是什么?
谷歌意识到,其实目标是显示最相关的搜索结果;对于其他公司来说, 这可能是在增加利润、改善客户体验、为机器人找到最佳路径, 或者平衡数据中心的负载。一旦我们确定了目标, 第二步就是指定我们可以控制的系统输入, 确定我们可以拉动的杠杆来影响最终的结果。就谷歌而言, 他们可以控制搜索结果的排名。第三步是考虑他们需要哪些新的数据来产生这样的排名;他们发现可以使用链接到某些其他页面的隐含信息数据来达到这个效果。只有在这前三个步骤之后, 我们才开始考虑建立预测模型。我们的目标和可用的杠杆, 已经拥有哪些数据, 还需要收集哪些额外的数据, 所有这些决定了我们可以建立的模型。模型将以杠杆和不可控变量作为它们的输入;模型的输出可以结合在一起来预测我们目标的最终状态。
谷歌的驱动系统方法的第4步现在是科技历史的一部分: 拉里·佩奇和谢尔盖·布林发明了图形遍历算法网页排名, 并在其之上构建了一个引擎, 使搜索发生了革命性的变化。但你不必发明下一个网页排名来构建一个庞大的数据产品。我们将展示一个不需要计算机科学博士就可实现的第4步系统方法。
模型装配线: 最优决策组的案例研究
通过正确的预测模型优化可操作的结果可能是公司最重要的战略决策。对于保险公司来说, 保单价格就是产品, 所以最优定价模式对他们来说就像汽车制造的装配线一样。保险公司在预测方面有几个世纪的经验, 但在过去大概有10年的时间, 保险公司往往未能就每个新客户的收费价格做出最佳的商业决定。他们的精算师可以建立模型, 预测客户发生事故的可能性和索赔的预期价值。但这些模型并没有解决定价问题, 因此保险公司会在猜测和市场研究相结合的基础上制定价格。
这种情况在1999年被一家名为 "最优决策组" (ODG) 的公司彻底改变。ODG通过以往使用的驱动系统方法和采取可适用于广泛问题的步骤4解决了这一难题。他们首先确定了保险公司要达到的目标: 制定一个价格,这个价格会一个很长的时间段最大限度地提高新客户利润的净现值,问题是会受到某些限制, 如维持市场份额。从那里, 他们开发了一个优化的定价流程, 为保险公司的底线增加了数亿美元。[注: 合著者杰里米·霍华德创立了ODG]
ODG确定了保险公司可以控制的杠杆: 向每个客户收取什么价格, 要涵盖哪些类型的事故, 在营销和客户服务上花费多少钱, 以及如何对竞争对手的定价决定做出反应。他们还考虑了超出他们控制范围的投入, 如竞争对手的战略、宏观经济条件、自然灾害和客户的 "依附度"。他们考虑了预测客户对价格变化的反应所需的额外数据。有必要通过在数月内随机更改几十万项政策的价格来构建此数据集。虽然保险公司不愿意在真正的客户上进行这些实验, 这样做法会使他们因此失去一些客户, 但实际上他们被优化的政策定价可能带来的巨大收益所吸引。最后, ODG开始设计可用于优化保险公司利润的模型。
ODG建模器的第一个组件是新策略和续订的价格弹性模型 (客户接受给定价格的概率)。价格弹性模型是价格曲线与客户接受以该价格为条件的政策条件的概率。这条曲线路线是从几乎肯定接受的低价到几乎永远不涨价。
ODG建模器的第二个组成部分与保险公司的利润有关, 条件是客户接受这个价格。低价产品的利润将是红色的,主要是因为第一年预期索赔的价值, 再加上收购新客户并为其提供服务的任何间接费用造成。将这两条曲线相乘将创建显示价格与预期利润的最终曲线 (参见下面的预期利润数字)。最终曲线有一个可明确识别的本地最大值, 代表第一年向客户收取的最佳价格。
ODG还构建了客户保留模型。这些模型预测客户是否会在一年内更新保单, 允许价格变化, 愿意跳槽到竞争对手手中。这些额外的模型可以结合年度模型来预测未来五年新客户的利润。
这套新的模型并不是最终的答案, 因为它只标定一组给定输入的结果。装配线上的下一台机器是模拟器, 它让ODG问 "如果" 问题, 看看杠杆如何影响最终结果的分布。预期的利润曲线只是可能结果表面的一部分。为了构建整个曲面, 模拟器在广泛的输入范围内运行模型。运营商可以调整输入杠杆来回答具体的问题, 比如: "如果我们公司在第一年向客户提供较低的噱头价格, 但在第二年提高保费, 会发生什么?"他们还可以探讨保险公司控制之外的投入是如何决定利润分配的: "如果经济崩溃, 客户失业怎么办?如果100年的洪水袭击了他的家呢?如果一个新的竞争对手进入市场, 而我们的公司没有反应, 会对我们的底线产生什么影响? "由于模拟是在每个保单级别进行的, 因此保险公司可以查看一组给定的价格变化对收入、市场份额和其他指标随时间变化的影响。
模拟器的结果被输入到优化器, 优化器获取可能表象结果, 并确定最高点。优化器不仅可以找到最好的结果, 还可以识别灾难性的结果, 并显示如何避免出现这样的结果。有许多不同的优化技术可供选择 (请参见下面的边栏), 但它是一个很好理解的领域, 具有可靠且可访问的解决方案。ODG的竞争对手使用不同的技术来寻找最佳价格, 但他们传输的是相同的全数据产品。重要的是, 使用驱动系统方法与模型装配线相结合, 可以弥合预测模型和可操作结果之间的差距。Irfan Ahmed的云物理提供了一个很好的预测建模分类, 描述了整个装配线过程:
"在处理数百或数千个个别组件模型以了解全系统的行为时, 必须进行 ' 搜索 '。我认为这是一个复杂的机器 (全系统), 在那里撤出了遮幕,你可以在控制实验下对机器的每个重要部分进行建模, 然后模拟相互作用。此处请注意不同级别: 各个组件的模型, 在给定一组输入的模拟中绑定在一起, 在搜索优化器中的不同输入集中迭代。
推荐系统的驱动系统方法
让我们看看如何将这一过程应用到另一个行业: 营销。我们首先将驱动系统方法应用于熟悉的示例, 推荐引擎, 然后将其构建为整个优化的营销策略。
推荐引擎是基于构建良好的预测模型数据产品的一个成熟案例, 这些模型没有达到最佳目标。目前的算法根据购买历史和类似客户的历史数据, 预测客户会喜欢什么产品。像亚马逊这样的公司代表了曾经作为一个巨大的稀疏矩阵进行的每一次收购, 客户是以行显示和产品为列显示。一旦他们有了这种格式的数据, 数据科学家就会应用某种形式的协同过滤来 "填写矩阵"。例如, 如果客户 a 购买产品1和 10, 而客户 b 购买产品1、2、4和 10, 则引擎会建议 a 购买2和4。这些模型善于预测客户是否会喜欢给定的产品, 但它们往往会推荐客户已经知道或已经决定不购买的产品。亚马逊的推荐引擎可能是最好的, 但很容易让它显示出它的累赘缺陷。以下是在亚马逊上搜索特里·普拉特切特的《迪斯科世界系列》中的最新一本书的截图:所有的建议都是针对同一系列的其他书的, 但一个很好的假设是, 搜索 "特里·普拉特切特" 的客户已经知道这些书了。在提要的第2页到第14页上可能有一些意想不到的建议, 但是有多少客户会费心点击?相反, 让我们使用传动系统方法设计一个改进的推荐引擎, 首先要重新考虑我们的目标。推荐引擎的目的是通过给用户意想不到的惊喜把因为没有推荐他/她没有购买的书籍来推动额外的销售。我们真正想做的是模仿Zite首席执行官马克·约翰逊的经验, 他在最近的TOC演讲中给出了客户推荐体验应该是什么样子的完美例子。他走进纽约市的斯特兰德书店, 要了一本类似托尼·莫里森的《宠儿》的书。柜台后面的女孩推荐了威廉·福克纳的《奥索洛姆·阿布索伦》。在亚马逊上, 类似查询的最高结果导致了托尼·莫里森的另一本书和著名的有色女作家的几本书。斯特兰德书商提出了一个精彩而牵强的建议, 可能更多的是基于莫里森写作的特点, 而不是表面上的相似之处她切入了显而易见的部分, 提出了一个建议, 将客户送回家的新书, 并在未来一次又一次地返回斯特兰德。这并不是说亚马逊的推荐引擎不可能建立同样的联系;问题是, 这个有益的推荐将被埋在推荐源的深处, 与 "亲爱的信徒" 有更明显相似之处的书下面。其目的是为了逃避推荐过滤气泡, 这个词最初是由 Eli Pariser 创造的, 用来描述个性化新闻源只显示温和流行的文章或进一步证实读者现有的偏见的趋势。
正如Altavista-google 示例一样, 书商可以控制的杠杆是建议的排名。还必须收集新数据, 以生成将导致新销售的建议。这将需要进行许多随机实验, 以便收集关于为广泛的客户提出的广泛建议的数据。
驱动系统过程的最后一步是构建模型装配线。摆脱推荐泡沫的一种方法是构建一个建模器, 其中包含两个购买概率模型, 条件是看到或看不到推荐。这两种概率之间的差异是向客户提供的特定建议的实用程序函数 (请参阅下面的推荐引擎图)。如果算法推荐了一本熟悉的书, 客户已经拒绝了 (两个组件都是小的) 或一本书, 他或她会买, 即使没有建议 (两个组件都很大, 互相取消), 这款案例发生率较低。我们可以构建一个模拟器来测试我们库存的许多可能书籍中每一本的效用, 或者可能只是在类似客户购买的协作过滤模型的所有输出上, 然后构建一个简单的优化器, 对那些在推荐书籍基础上他们的模拟效用。一般来说, 在选择目标函数进行优化时, 我们需要少强调 "函数", 多强调 "目标"。使用我们数据产品的人的目标是什么?我们到底在帮助他或她做出什么选择?
优化终身客户价值
同样的系统方法可以用来优化整个营销策略。这包括零售商在实际买卖交易之外与客户的所有互动, 无论是做产品推荐、鼓励客户查看网上商店的新功能, 还是发送促销活动。对零售商来说, 做出错误的选择是有代价的, 其结果形式是利润率降低 (不影响额外销售的折扣)、其主页上稀缺的不动产机会成本减少 (在推荐源中占用客户产品的空间)不喜欢或将在没有推荐的情况下购买) 或客户调出产品) (发送如此多无帮助电子邮件促销活动, 以至于客户将所有未来通信过滤为垃圾邮件)。我们将展示如何构建优化的营销策略, 以减轻这些影响。
正如前面的每一个例子中, 我们首先问: "营销策略试图达到什么目标?"第二个问题: "我们有什么杠杆可以用来实现这个目标?"例如:
1 我们可以让产品的建议令人惊喜和开心(使用上一节中概述的优化建议)。
2 我们可以为客户还没有完全准备好购买或本来会在其他地方购买的产品提供量身定制的折扣或特别优惠。
3 我们甚至可以拨打客户贴心联系电话, 只是为了了解用户是如何享受我们的网站, 让他们觉得他们的反馈是有价值的。我们需要收集哪些新数据?这可能因情况而异, 但少数在线零售商正在采取创造性的方法来采取这一步骤。在线时尚零售商Zafu展示了如何鼓励客户参与这一数据收集过程。很多网站都卖名牌牛仔, 但对很多女性来说, 高端牛仔裤是她们从未在网上购买过项目, 因为不试穿就很难找到合适的牛仔裤。Zafu的做法不是直接送顾客去穿上衣服, 而是首先问一系列简单的问题, 比如顾客的身体类型、其他牛仔裤的合身程度以及他们的时尚偏好。只有这样, 客户才能浏览到 Zafu 的推荐库存选择。数据收集和建议步骤不是附加步骤;它们是Zafu的整个商业模式--女式牛仔裤现在是一个数据产品。Zafu可以调整他们的建议, 以适应他们的牛仔裤, 因为他们的系统正在问正确的问题 从目标开始, 数据科学家就会考虑他们需要为建模器构建哪些其他模型。我们可以保留我们已经建立的 "类似" 模型以及建议和不建议购买的因果关系模型, 然后采取分阶段的方法添加更多的模型, 我们认为这将提高营销效率。我们可以添加一个价格弹性模型来测试提供折扣如何改变客户购买商品的概率。我们可以构建一个耐心模型, 让客户能够容忍目标不明确的通信: 他们何时将其排除在外, 并将我们的邮件直接过滤到垃圾邮件?("如果 hulu 再给我看一次同样的狗食广告, 我就不再看了!")采购序列因果关系模型可用于识别关键的 "进入产品"。例如, 一条牛仔裤, 往往搭配一个特定的顶部, 或一系列小说的第一部分, 往往导致整套系列的销售。
一旦我们有了这些模型, 我们就构建了一个模拟器和一个优化器, 并在组合模型上运行它们, 以找出哪些建议将实现我们的目标: 推动销售和改善客户体验。
物理数据产品的最佳实践
人们很容易误以为, 由于数据存在于抽象的某个地方, 在电子表格或云中, 数据产品只是抽象的算法。因此, 我们想通过向您展示基于目标的数据产品如何已经是有形世界的一部分。这些例子最重要的是, 设计这些数据产品的工程师并不是从制造一个 neato 机器人开始, 然后寻找与之有关的东西。他们从一个目标开始,诸如 "我希望我的车开车送我要去的地方", 然后设计了一个隐蔽的数据产品来完成这个任务。工程师们常常安静地走在算法应用程序的前沿, 因为他们长期以来一直在以基于对象的方式思考自己的建模挑战。工业工程师是最早开始使用神经网络的工程师之一, 他们将神经网络应用于装配线优化设计和质量控制等问题。布莱恩·里普利关于识别的开创性著作, 为上世纪 7 0年代基本被遗忘的工程论文提供了许多想法和技术的功劳。
在设计产品或制造工艺时, 驱动系统类似工艺过程, 然后是模型集成、模拟和优化, 是系统工程师工具包中常见的一部分。在工程中, 通常需要将许多组件模型链接在一起, 以便能够同时对它们进行模拟和优化。这些公司在构建最终产品中的每个组件和系统模型方面都有丰富的经验, 无论他们是在建造服务器工场还是战斗机机型。机械系统可能有一个详细的模型, 热力系统可能有一个单独的模型, 电气系统可能有另一个模型, 等等。所有这些系统都有关键的相互作用。例如, 电气系统中的电阻会产生热量, 需要将其纳入热扩散和冷却模型的输入。过热可能会导致机械部件翘曲, 产生的应力应该应输入到机械模型中。
下面的屏幕截图取自凤凰集成设计的模型集成工具。虽然它来自一个完全不同的工程学科, 但这张图表与我们为数据产品推荐的驱动系统方法非常相似。目标明确: 建造飞机机翼。翼箱包括跨度、锥度比和扫描等设计杠杆。数据是在机翼材料的物理性质;成本列在应用程序的另一个选项卡中。有一个模型的空气动力学和机械结构, 然后可以给到模拟器, 以产生成本, 重量, 升力系数和诱导阻力的关键翼输出。这些结果可以提供给优化器, 以建立一个功能良好且具有成本效益的飞机机翼。
由于预测建模和优化对各种活动变得更加重要, 请注意工程师会对那些似乎不会立即出现在数据业务中的行业造成困扰。例如, "传动系统方法" 一词的灵感已经出现在山景的街道上。我们现在可以让数据驱动我们, 而不是数据被驱动。假设我们想从旧金山到2012年圣克拉拉的斯特拉塔会议。我们可以建立一个简单的距离/限速模型, 用一把尺子和一张路线图来预测到达时间。如果我们想要一个更复杂的系统, 我们可以建立另一个交通拥堵模型, 另一个模型来预测天气状况及其对最安全最高速度的影响。在构建这些模型时, 有很多很酷的挑战, 但它们本身并不把我们带到目的地。如今, 使用某种类型的启发式搜索算法来预测沿各种路线 (模拟器) 的行驶时间, 然后选择最短的路线 (优化器), 受到避免桥梁通行费或最大限度地增加油耗等限制, 这是很微不足道的。但为什么不把它想得更大呢?而不是卫星导航系统女性机器人的声音告诉我们走哪条路, 往哪里转, 需要什么来制造一辆自己做出这些决定的汽车呢?为什么不把模拟和优化引擎与物理引擎捆绑在一起, 都在汽车的黑匣子里呢?让我们来看看这是如何应用传动系统方法的。我们已经确定了我们的目标: 制造一辆自己驾驶的汽车。杠杆是我们都熟悉的车辆控制: 方向盘、加速器、刹车等。接下来, 我们考虑汽车需要收集哪些数据;它需要收集道路数据的传感器, 以及能够检测路标、红色或绿灯以及意外障碍 (包括行人) 的摄像头。我们需要定义我们需要的模型, 例如预测转向、制动和加速效果的物理模型, 以及解释路标数据的模式识别算法。正如谷歌汽车自动驾驶项目的一位工程师在最近的一篇连线文章中所说, "我们每秒钟分析和预测世界 2 0次"。报价中失去的是该预测的结果。车辆需要使用模拟器来检查它可能采取的行动的结果。如果现在左转, 会不会撞上那个行人?如果在这样的天气条件下, 它以每小时55英里的速度右转, 会不会滑出道路?仅仅预测会发生什么还不够好。自动驾驶需要采取下一步: 模拟所有的可能性后, 它必须优化模拟的结果, 以选择加速和制动, 转向和信号的最佳组合, 让我们安全到达圣克拉拉。预测只告诉我们会有意外。一个优化者告诉我们如何避免事故的发生。
改进数据收集和预测模型非常重要, 但我们要强调的重要性, 首先是用产生可操作结果的杠杆来确定一个明确的目标。数据科学开始渗透, 即使是我们生活中最根本的元素。随着科学家和工程师越来越善于将预测和优化应用于日常问题, 他们正在扩展可能的艺术, 优化从我们的个人健康到我们居住的房屋和城市的一切。以出口和人群控制屏障的位置为杠杆, 将模拟流体动力学和湍流的模型应用于改善交通和人流。这改善了地铁站的紧急疏散程序, 减少了体育赛事期间人群踩踏危险。Nest正在设计智能恒温器, 了解房主的温度偏好, 然后优化他们的能耗。在机动车交通方面, IBM 与斯德哥尔摩市实施了一个项目, 优化交通流量, 将交通拥堵减少了近四分之一, 并将市中心的空气质量提高了 2 5%。特别有趣的是, 没有必要建立一个复杂的新数据收集系统。任何有按流量计费的城市都已经掌握了所有必要的信息;他们只是还没有找到一种方法从中萃取有价值的信息。
在另一个基于目标的数据产品有能力改变生活的领域, 硅谷的 CUM 扩展项目是建立数据产品的一个积极项目, 以帮助自然灾害或人为灾害发生后的急救人员。硅谷卡内基梅隆大学 的珍妮·斯坦伯格向我们解释了预测算法在灾害响应中的许多可能应用, 从文本挖掘和对推特的情绪分析 (以确定损害的程度) 到成群结队的用于侦察和救援的自主机器人, 用于物流优化工具, 帮助多个司法管辖区协调其响应。这些灾难应用程序是一个特别好的例子, 说明了为什么数据产品需要简单、设计良好的接口来产生具体的建议。在紧急情况下, 只产生更多数据的数据产品没有什么用处。数据科学家现在拥有构建增加共同利益的产品的预测工具, 但他们需要意识到, 如果不同时产生优化、可实现的结果, 构建模型是不够的。
数据产品的未来
我们引入了驱动系统方法, 为设计下一代伟大的数据产品提供了一个框架, 并描述了本质上如何依赖于优化。今后, 我们希望看到在商学院以及统计部门教授优化。我们希望看到数据科学家推送的产品, 旨在产生理想的业务成绩。这仍然是数据科学的曙光。我们不知道未来会开发什么设计方法, 但现在, 数据科学界需要围绕一个共享的词汇和产品设计过程进行联合, 这些词汇和产品设计过程可以用来教育其他人如何从它们的价值中获得更大的价值。预测模型。如果我们不这样做, 我们会发现我们的模型只使用数据来创建更多的数据, 而不是使用数据来创建行动、扰乱行业和改变生活。
我们究竟是想要提供数据的产品, 还是想要基于数据交付结果的产品?杰里米·霍华德在他的斯特拉塔 CA 12 会议上研究了这些问题, "从预测模型到优化: 下一个前沿"。
原文:https://www.oreilly.com/ideas/drivetrain-approach-data-products
免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 windows系统下npm升级的正确姿势以及原理
【推荐】 [置顶]非对称加密与证书(下篇)