传动系统的方法:建立数据产品四部曲—设计伟大的数据产品

起点学院产品经理365成长计划,2天线下闭门集训+1年在线学习,全面掌握BAT产品经理体系。了解详情

在过去的几年中,我们已经看到了许多基于建立预测模型的数据产品。这些产品包括从气象预报到推荐引擎,再到航班起降时刻预测服务,它的预测甚至比航空公司本身更准确 。 但是,这些产品还只是进行预测,而不是告知对此预测结果该采取怎样的行动。预测技术可以是有趣的,而且具有数学上的优雅性,但我们需要更进一步。这项技术可以帮助我们建立彻底改变整个行业的数据产品,有什么理由不去创建呢?
作为介绍这个过程的开始,我们已经改变了保险业的四部曲方法。 我们把它称为传动系统方法,灵感源于新兴领域的自驾驶车辆。工程师先是定义一个明确的目标 :他们想要汽车在无人干预地情况下,安全地从A点行驶到B点。成功的预测建模是这一解决方案极为重要的部分;但随着产品复杂度的提高,它将不再是一个独立的部分,而是融入到产品衔接中了。一些使用谷歌的自动驾驶汽车的人并不知道,使它它工作的是其背后上百成千种的数据模型和PB级的数据。数据科学家构建的产品日益复杂,他们需要一个系统的设计方法。传动系统方法不一定是最好或唯一的方法;我们的目的是在数据科学和商业社区之间建立起对话,以推动我们共同的目标。

基于目标的数据产品

还是算法搜索世界的王者。虽然它们的模型善于寻找具有相关性的网站,但是用户最感兴趣的结果往往出现在搜索结果中的百页以后,用户几乎不可能访问到。之后,谷歌来了,以一个简单的问题改变的在线搜索:用户搜索的主要目的是什么?
传动系统方法的四部曲

谷歌认识到,搜索目的是为了找到最相关的搜索结果;对于其他公司,目的可能是增加利润、改善客户体验、找到机器人的最佳路线,或是对数据中心进行负载平衡。一旦我们定义了目标之后,第二个步骤是找出系统中可控的输入 ,即那些可以调整并影响最终的结果的杠杆因素。对于谷歌,他们可以控制搜索结果中的排名。第三步是思考产生这样的排名需要什么样新数据;他们意识到,网页被链接到哪些其它网页这一隐含的信息可以被用于此目的。只有这前三个步骤后,我们开始思考建立预测模型 。我们的目标、可用的杠杆因素、已有的数据加上所需收集的额外数据,决定了我们能建立何种模型。可控杠杆因素和所有不可控因素都将作为该模型的输入;模型的所有输出结果将被结合起来预测我们目标的最终情况。

谷歌所用的传动系统方法中的第四步现在已是高科技历史的一部分了:拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)发明了图的遍历算法PageRank,并由此建立了革命性的搜索引擎。但是,你也不是非得发明下一个PageRank才能建立一个了不起的数据产品。我们将介绍一个系统化的步骤四方法,没有计算机博士学位也照样能用。

模型装配线:最优决策祖的案例研究

从合适的预测模型优化出下一步该如何行动,这可能是公司最重要的战略决策。对于保险公司,价格政策就是他们的产品,所以一个最优的定价模型之于它们就像是制造装配生产线之于汽车生产商。保险业有几百年的预测经验,但在近十年,保险公司往往对于每名新客户该收取多少费用无法做出一个商业上最优的判断。他们的精算师可以建立模型来预测客户发生事故的可能性和相关索赔的预期值,但是这些模型并不能解决定价问题,所以保险公司只能在结合市场研究的基础上猜测一个定价。这种情况在1999年因为一家名为最优决策小组而得到了改变。

作为传动系统方法的一个早期运用,ODG实践了其中的步骤四——它可以应用于很多广泛的问题。首先,他们定义了保险公司的目标 :最大化新顾客在一段年限内的利润净现值,但同时又要考虑到一些其它因素,例如保持市场份额。就这样,他们发展出一个优化的定价过程,为保险公司增加了数百万美元的保底利润。[ 注:本文的共同作者杰里米·霍华德(Jeremy Howard)创办了ODG。
ODG确定的那些保险公司的可控杠杆因素:向每个客户收取的价格,覆盖的事故类型,在市场营销和客户服务上花的花费,以及如何应对其竞争对手的定价方案。他们也考虑了不可控因素:如竞争对手的战略、宏观经济的情况、自然灾害以及客户的“粘性”。他们还考虑了需要什么样的额外的数据来预测客户对于价格变动的反应。为了建立这些数据集,这就有必要持续几个月地随机改变成百上千条定价策略。虽然保险公司不愿在这些真实客户身上做实验,因为他们显然会因此失去一些客户;但在优化定价政策可能带来的巨大收益面前,他们还是动摇了。最终,ODG开始设计能够最大化保险公司利润的模型 。

传动系统方法第四步:模型装配生产线。图形化的数据产品的模型装配生产线,可将原始数据转化为下一步的行动。这个建模器将原始数据转换成稍加提炼的预测数据。
ODG建模器中的第一个组件是一个关于新保单和续单的价格弹性模型(用户接受一个给定价格的概率)。价格弹性模型反映的是用户接受保单的概率和保单价格之间的关系。这条曲线从低价时的几乎肯定接受一直到高价时的几乎不可能接受。

ODG建模器第二个组件在考虑能够接受保单价格的客户的情况下,把保险公司的利润和产品价格进行关联。极低价格下的利润在考虑第一年的预期索赔加上获取及维护新客户的开销后被计算出,并被显示为红色。这两条曲线相乘将得到一个最终的曲线,显示了价格与预期收益的对应关系(见下方的预期利润图 )。最后的曲线有一个清晰可辨的局部最大值,表明了第一年应当给于用户的最佳价格。

预期利润

ODG还建立了客户忠诚度的模型。这些模型在考虑价格变化和客户转投竞争对手公司的意愿的情况下,预测客户是否会在一年内续保。这些额外的模型结合年度模型将能够预测未来五年内一个新用户所能带来的利润。
这套新的模型仍不是一个最终答案,因为它只能确定一个给定输入的结果。“装配生产线“上下一个”机器“是一个模拟器 ,通过它,ODG可以问“假如……会怎样”的问题,来观察杠杆因素是如何影响最终结果的分布的。把可能出现的结果作为一个曲面,预期利润曲线仅仅是这个曲面的一个切片。要建立整个曲面,模拟器需要在模型上运行大范围的输入。操作员可以调整输入的杠杆因素杆来回答一些特定的问题,比如“如果公司在第一年为客户提供一个诱惑性的低价,然后在第二年提高价格,将会有何結果?”他们也可以探寻那些对于保险公司来说的不可控因素是如何影响利润的分布的:“如果经济崩溃并且客户失去了他的工作,那会怎样?如果他的家遭遇了百年一遇的洪水又如何?如果一个新竞争者进入市场,我们公司又不加应对,会对我们的底线造成怎样的影响?“由于模拟是在每一个政策层面的,保险商可以看到一组给定的价格变动对收入,市场份额,随着时间的推移和其他指标的影响。
模拟器的结果将被导入优化器 ,它将确定出代表了所有可能结果的曲面中的最高点。优化器不仅找最好结果,它也可以识别那些灾难性的后果,并告知如何避免它们。我们已有很多不同的优化技术可供选择( 见下面的边栏 ),这是一个为人所熟知的领域,已有了强健和易用的解决方案。虽然ODG的竞争对手在找最佳的价格上所用的技术有所不同,但他们推出的同样是一个具有全局性的数据产品。使用动力传动系统模型和模型装配线相结合的重要价值在于,这样就可以在预测模型和可采取的行动项之间架起了一座桥梁。 CloudPhysics公司的伊尔凡·艾哈迈德(Irfan Ahmed )对预测模型进行了良好的分类,并且描述了整个装配线过程:
“在需要处理成败上千个组件模型以了解整个系统的行为的时候,‘搜索’的运用是必需的。我把它看成是一个用来揭开帷幕的复杂的机器(整个系统)通过受控的实验,我们对这个机器的每个重要部分建模,然后模拟的它们之间的相互作用。注意这里的不同层次:各个组件的独立模型;在一个给定的一组输入的模拟器重相互捆绑在一起;通过搜索优化器在不同的输入集合上进行优化迭代。”

边栏:现实世界中的优化

优化是一个经典的问题,从牛顿和高斯开始直至现今的数学家和工程师们都在对此进行研究。许多优化过程是迭代的,这就像是先走一小步,查看我们的高度,然后再向上一小步,直到我们达到一个无论向哪个方向都无法爬上更高的点。这一爬山方法的危险之处在于,如果步子太小了,我们可能会逗留在山脚下的局部最大值中,这就无法找到可控输入中的最佳集合。已有很多技术用以避免这个问题,一些是基于统计学并且把对最佳结果的猜测范围撒得更广;还有一些是基于自然界中见到系统,像是生物进化或玻璃中的原子冷却过程。

优化是一个我们在日常生活中都很熟悉的过程,即使我们从来没有使用过类如梯度下降法或是模拟退火的优化算法。一个最近的TechZing播客提供了一个现实世界中优化的非常好的写照,这篇播客来自于数据挖掘的竞赛平台Kaggle的共同创办人。本文的作者之一解释了一种迭代优化技术,然后主持人说到,“因此,在一定意义上杰里米(Jeremy),你的方法就像是在做一个创业公司——先做一些东西出来,然后反复地迭代,迭代,再迭代。”一句话,不管你是一个小型创业公司或者是一家保险巨头,当我们要决定如何去我们想去的地方的时候,我们都在不自觉地使用优化。

推荐系统中的传动系统方法

让我们来看看我们如何能够应用此过程到另一个行业:市场营销。首先,我们的传动系统方法应用到一个熟悉的例子,推荐引擎,然后由此建立一个完整的优化营销策略。
推荐引擎是为人熟知的数据产品例子,它是基于精心打造的预测模型的,但是并不牵涉寻求最佳结果。目前的算法会根据客户以及和他相似的客户和购买历史来预测客户会喜欢什么样的产品,像亚马逊这样的公司,把每一次交易表示成一个巨大的稀疏矩阵,行是客户,列是商品。一旦他们有了这种格式的数据,数据科学家就可以应用某种形式的协同过滤来“填写矩阵”。例如,如果用户A购买产品1和10,客户B购买产品1,2,4,10,推荐引擎会建议A买2和4。这些模型能够不错地预测客户是否会喜欢某个给定的产品,但他们推荐的产品往往是顾客已经知道或已决定不买的了。亚马逊的推荐引擎可能是现有中最好的一个,但很容易就能显示出它的问题。,以显示其疣。以下这张截图是关于在亚马逊上搜索泰瑞 普莱契(Terry Pratchett)的“ Discworld系列中最新图书后,“购买了此商品的用户还购买了“这一栏内显示的内容。
所有的推荐都是同一系列的其他书籍,但是一个很好的假设就是:这些书对于一个搜索了“泰瑞 普莱契(Terry Pratchett)”的客户都是早就知道了的书。一些预料之外的建议可能会出现在这一栏的第二到第十四页,但有多少客户会不厌其烦的一一看下去呢?
除了这种方法,让我们用传动系统方法来设计一个改进过的推荐引擎。我们从重新考虑我们的目标开始 。推荐引擎的目的是通过推荐一些如果没有推荐,用户可能不会购买,但是又能让用户惊喜和兴奋的书,以此来推动额外的销售。我们真正想要的是模拟马克·约翰逊(Mark Johnson Zite )的体验 ,他在最近的谈话莫里森的另一些书和其他一些写有关种族话题的知名女性作家的作品。斯特兰德书商的推荐很有才,也很难做到。这个推荐可能更多的是基于莫里森的文笔特质而非和其他作者的表面上的相似性。她透过表面直达本质的推荐将使客户带着一本新书回家,并且在今后会一而再,再而三地回到斯特兰德。
这不是说,亚马逊的推荐引擎不能做到相同关联性;可问题是有用的推荐被深深地隐匿在许多推荐项之下,远在那些和“宝贝儿”有着明显相似性的书之下。我们的目标是为了避免推荐的过滤泡沫。这一术语最早由礼·帕里泽(Eli Pariser)提出,用来描述个性化的新闻源有这样一种倾向性:趋于显示一些只有平淡无奇的大众观点的文章或者只是进一步确认读者已有偏见的文章。
相对AltaVista-Google的例子来说,一个书商可以控制杠杆因素就是推荐排名。必须收集新的数据来生成新的推荐以此带来新的销售。这将需要进行许多随机试验以收集数据,这些数据需要覆盖对于大范围客户的全方位推荐。
传动系统过程中的最后一步是建立模型装配线 。避免推荐泡沫的一种方法是建立一个包含两种购买概率模型的建模器,分别针对看见推荐和没有看见推荐的情况。这两个概率之差就是对于一个给定顾客的推荐的效用函数(见下方推荐引擎图)。函数值在两种情况下很低:该算法推荐的是一本挺常见的,已经被客户拒绝了的书(两个都是低函数值)或一本即使不推荐,他也会买的书(两个都是高函数值,亦显示不出区别) 。我们可以建立一个模拟器来测试我们库存中种种图书的效用;或者只是把协作过滤模型(有关相似客户的交易的模型)的输出结果重新处理一边,然后建立一个简单的优化器,把推荐的图书按照模拟出的效用来排名显示。通常来说,当我们选择一个目标函数来优化时,我们更多强调的是“目biao”而非“功能”。什么是我们数据产品的用户的目的?我们到底在帮助他做怎样的选择?

推荐引擎

优化顾客终身价值

相同的系统方法可以被用来优化整个营销策略。这可以包括零售商在实际买卖交易之外和其客户的所有互动:是否做产品推荐,鼓励客户了解网上商店的一个新功能,或是发送促销活动信息。选择错误的代价对于零售商意味着利润减少(打折销售并没有带动额外的营业额),损失机会成本,(例如主页上的稀缺性房地产信息,以及推荐栏位被一些用户不喜欢或者即使没有推荐也仍然会购买的东西所占据),或是导致客户的流失(发送了过多无用的电子邮件促销,导致客户把所有将来的邮件过滤成了垃圾邮件)。我们将告诉你如何去建立一个优化的营销策略,来减轻这些影响。
在之前的每个例子中,我们都首先问一个问题:“什么是营销策略试图达到的目标?”答案很简单:我们希望优化每个客户的终身价值。第二个问题:“有什么杠杆因素 是我们可以加以利用去实现这一目标的?”有不少,例如例如:

  1. 我们可以使产品推荐是令人感到惊讶和愉悦的(使用上一节中列出的优化建议)。
  2. 我们可以针对顾客并没完全准备购买或是会去其他商家购买的产品提供量身定制的折扣或特殊的优惠,
  3. 我们甚至可以同过客户关怀电话,关心用户有多喜欢我们的网站,让他们觉得他们的意见是有价值的。

我们需要收集怎样的新数据?不同情况的答案各不相同,在这一步,一些网上零售商正采取创造性的方法。在线时尚零售商的Zafu展示了如何鼓励客户参与这个收集过程。卖名牌牛仔布的网站很多,但对于很多女性来说,高档牛仔裤的服装是她们从来没有在网上买过的,因为不试穿的话难找到合适的。Zafu的做法是不让客户直接去看衣服,而是用一些简单的问题作为开始,通过询问客户的身型,以及其他牛仔裤的合身情况,和他们的时尚偏好。这些之后,客户才开始浏览Zafu从库存挑选出的推荐。数据收集和推荐不再是一个附加功能,他们已经是Zafu的整个商业模式 —— 女式牛仔裤既是数据产品。Zafu可以把他们的推荐调整得就像是他们的牛仔裤一样的合身,因为他们的系统问了正确的问题。
以目标作为开始迫使数据科学家们开始考虑他们需要为建模器建立哪些额外的模型。我们可以保留我们已有的“相似”模型,以及针对有推荐和没有推荐情况下的因果关系模型,然后采取分阶段的方式来增加我们认为将改善的营销效果的额外的模型。我们可以添加一个价格弹性模型来测试提供折扣将如何影响用户购买商品的概率。我们可以对于客户对针对性差劲的定向广告的忍耐力构造一个耐性模型:他们什么时候做出调整把我们信息直接过滤成垃圾邮件?(“如果Hulu再给我看一次这个狗粮广告,我就走人了!”)一种购买顺序因果关系模型可以用来识别关键的“引入性产品”。例如,一个条牛仔裤往往会和某件上衣搭配着买,或是某系列小说的第一部分往往会导致之后这一系列的整套出售。

有了这些模型后,我们就可以构建了一个模拟器和优化器,在上面运行组合起来的模型,以找出什么推荐将实现我们的目标:推动销售和改进客户体验。

建模器的构造

数据产品的最佳实践

人们很容易陷入这样的思维误区:因为数据往往存储在一些抽象的地方,比如在一个电子表格中或在云端的数据中,因此数据产品也就是一些抽象的算法。为此,我们希望向你展示基于目标的数据产品是如何已经成为这个有形的世界的一部分的。这些例子最重要的地方是,设计这些数据产品的工程师并不是一开始打造出一个华丽丽的机器人,然后再看看能用它做些什么。他们开始以这样的目标:“我想要我的车带我去不同的地方”,然后设计了一个鲜为人知数据产品来完成这一任务。工程师们经常悄悄地在算法应用上非常地领先,因为他们持久地一直在以基于目标的方法思考自己的建模中的种种挑战。首先开始使用神经网络的就是专业工程师们,把它们应用到例如装配生产线的优化设计和质量控制上。布赖恩·里普利(Brian Ripley’s)的有关模式识别的开创性著作为很多从20世纪70年代几乎被人遗忘的工程文件赢得了应有的赞誉,它们包含了许多想法和技术。
当设计一个产品或生产过程中,动力传动系统模型的集成,模拟和优化的过程,是系统工程师 工具包中一个很熟悉的部分。在工程中通常需要把许多的组件模型连接在一起,以便可以对它们一起进行模拟、优化。这些企业有充足的经验,为其最终产品的每一个部件和系统建造模型,无论他们要造的是一个服务器群或是喷气式战斗机。我们可能会有一个机械系统的详细模型,一个单独有关热系统的一个单独的模型,还有一个是为电气系统设计的模型,等等。所有这些系统都相互有着至关重要的作用。例如,在电气系统的电阻产生的热量会作为一部分输入导入热扩散和冷却模型。这多余的热量会造成机械部件的变形,产生需要输入机械模型的压力。

下面的截图是从由凤凰集成设计的模型集成工具中截取的。虽然这张图来自于一个完全不同的工程学科,但是却和我们推荐的用来建立数据产品的传动系统方法非常相似。目标很清晰:建立一个飞机机翼。j翼盒的设计包括诸如跨度,锥度比和掠度这些杠杆因素 。数据存在于机翼材料的物理属性之中;成本被列在了应用程序的另一个选项卡中。此外还有一个关于空气动力学性能和机械结构的建模器,它可以被输入到一个模拟器来产生关键翼的输出,包括成本,重量,升力系数和诱导阻力。这些结果可以用来输入到一个优化器以建造一个既能正常运作且成本也很划算的机翼。

凤凰集成设计的模型集成工具的截图

预测性建模和优化在广泛的活动中变得越来越至关重要,让我们拭目以待那些能够扰乱行业的工程师们,虽然这并不会立即出现在数据业务中。“动力传动系统方法”的灵感, 已经在山景城(Mountain View)的路上了,就是很好的例子 。不再是以数据驱动的,我们现在可以让数据驱动我们。

设想我们想从旧金山去圣克拉拉(Santa Clara)参加2012年的Strata会议 。就此,我们即可建立一个有关距离/限速的简单模型来预测到达时间,是需要一把尺和路线地图就可以做了。如果我们希望有一个更精致的系统,我们可以再建一个交通挤塞情况的模型,然后再来一个预测天气情况以及天气对最大安全行驶速度影响的模型。建立这些模型的过程中,你会遇到很多很酷的挑战,但仅靠它们还不能带我们到目的地。如今,用一些启发式的搜索算法来预测不同路线的驾驶时间是件微不足道的事( 模拟器 ),然后可以在考虑例如“避免过桥费”或者“最大化汽油的效用”等限制因素下选择最短的一个路径( 优化器 。但是,为什么不想得更大一些?不再只是GPS装置的女机器人声音告诉我们该走哪条路线,该在哪里转弯,如何能造出一辆自己就会做这些决定的汽车?为什么不把用一个物理引擎把仿真和优化引擎捆绑在一起,统统放入汽车的黑盒子里?

让我们想想这又是传动系统方法的一个怎样的应用。我们已经定义了我们的目标 :建立一辆能够自行驾驶的汽车。杠杆因素是我们都很熟悉的车辆的控制部件:方向盘,油门,刹车等。接下来,我们考虑汽车需要收集什么样的数据;它需要的传感器来收集道路数据,还需要摄像头来检测道路标志、红灯或者绿灯,以及意想不到的障碍(包括行人)。我们需要定义我们会用到的模型,例如预测转向、刹车和加速相应影响的物理模型,以及模式识别算法来把路标转换成数据 。

正如谷歌自动驾驶汽车项目的一名工程师在最近的一篇《连线》杂志的文章中写到,”我们每秒钟要分析和预测世界20次。”这句话中没有提到的恰恰是这次预测产生的结果。汽车需要使用一个模拟器来检查它各种可选的行动都会导致怎样的结果。如果它现在左转,会不会撞到行人呢?如果在这种天气条件下以55英里每小时的速度右转,会不会打滑呢?仅仅预测会发生什么还不够好。自行驾驶的汽车需要更进一步:在 模拟了所有的可能性后,必须优化模拟结果,挑选出加速、刹车、转向以及信号灯的最佳组合,从而让我们安全地抵达圣克拉拉。预测只告诉我们将要发生事故。优化器会告诉我们如何避免事故发生。

改善的数据收集和预测模型是非常重要的,但我们要强调以定义一个清晰的目标作为开始的重要性,而且目标要配以能够产生行动项的杠杆因素。数据科学已经开始遍及我们生活中的方方面面。由于科学家和工程师变得更善于预测和优化日常问题,他们正在扩大可能性,去优化从我们个人的健康到我们所处的房子和城市的每一样东西。用来模拟流体动力和湍流的模型被用于改善交通和行人流量 ,其中的杠杆因素就是出口的设置位置以及控制人群的障碍物。这改善了地铁站的紧急疏散程序,并降低了在有体育赛事期间发生人群踩踏的危险。Nest公司正在设计智能温控器,它能够学习房子主人对温度偏好,然后优化能源消耗。对于汽车交通,IBM和斯德哥尔摩市开展了一个项目来优化交通流量,它把拥塞程度减少了近四分之一,并把城市中心的空气质量提高了25%。尤为有意思的是,这并没有必要建立一个新的精心设计的数据采集系统。任何一个在红绿灯上带有测量装置的城市都已经拥有了所有必要的信息,他们缺少的只是从中汲取意义的方法。

在另一个领域,基于目标的数据产品有着改变生活的力量。卡内及梅隆大学(CMU)硅谷分校正进行一个项目以打造数据产品去帮助自然或人为灾害中的急救人员。卡耐基梅隆大学硅谷分校的Jeannie Stamberger向我们解释了许多预测算法在应对灾害中的应用,从通过对推特(Twitter)的文本挖掘和情绪分析来确定破坏的程度,到成群的用于侦察和救援的自主机器人,再到帮助多个司法管辖区协调他们反应的物流优化工具。这些灾难应用是很好的例子来说明为什么数据产品需要简单的、设计良好的接口来提出具体的建议。在紧急情况下,一个只是产生更多的数据的数据产品是没有多大用处的。科学家们现在有预测工具来构建产品以给大家带来好处,但他们需要意识到,光建立的模型是不够的,他们还需要提供出优化过的,可以实现的内容作为结果。

数据产品的未来

我们介绍了传动系统的方法以此为设计下一代优异的数据产品提供了一个框架,并描述了这一方法在核心层面上是如何依赖于优化。今后,我们希望看到优化出现在商学院和统计学系的教学中。我们希望看到数据科学家推出的产品在设计时考虑的是用来产生期望的商业成果的。这仍然只是数据科学的初期阶段。我们不知道未来还将发展出什么样的设计方法,但目前,数据科学界有必要围绕着一个共同的词汇和产品设计过程,以此来教育他人如何从他们的预测模型中获得价值。如果不这样的话,我们会发现,我们的模型只用数据来创建更多的数据,而不是使用数据来创建行动,重塑行业,改变生活。

来源:译言网

作者 :Jeremy Howard , Margit Zwemer 和 Mike Loukides
译者:
fengzhichun

您的赞赏,是对我创作的最大鼓励。

评论( 0

登录后参与评论
加载中