设计出色的数据产品

勿忘初心2018-12-19 10:17

翻译 :孙文学

欢迎访问网易云社区,了解更多网易技术产品运营经验。 


在过去几年中,许多基于预测模型的数据产品孕育而生。这些产品既包括天气预报,同时还有提供预测航班时刻的推荐引擎,该引擎预测的准确率比航空公司自身的预测率还要高。但这些产品仍然只是做出预测,并没有考虑到预测的结果能为人们带来什么。预测技术可以是非常有趣的同时也有非常美的数学造诣,但我们仍需要采取进一步地研究它们。该技术旨在构建可以彻底改变整个行业的数据产品。既然这样,我们为什么不去设计研究它?

为了开启这一过程,我们推荐使用一种在保险行业中成功运用的四步法。我们将其称为动力传动系统方法,其灵感来自新兴的自动驾驶领域。 工程师首先要确定一个明确的目标:他们希望汽车在没有人为干预的情况下能够从A点安全驾驶到B点。有效的预测模型是解决这个问题的重要因素,但它并不孤立存在; 随着产品变得越来越复杂,它的作用也在逐渐减弱。使用谷歌自动驾驶汽车的人完全没有意识到正是数百种(如果不是数千种的话)模型和数PB的数据使其运转起来。但随着数据科学家构建越来越复杂的产品,系统化的设计方法越来越被科学家们所需要。我们并未声称动力传动系统方法是最佳或唯一的方法;我们的目标是搭建数据科学和商业领域的桥梁从而实现我们的愿景。


基于目标的数据产品

我们正在进入数据作为驱动动力的时代,我们不但使用数据来生成更多数据(以预测的形式),而且使用数据来达到我们想要的结果。这是动力传动系统方法的目标。我们可以通过一个非常熟悉的数据产品-搜索引擎来说明一下这个过程。早在1997年,AltaVista就是算法搜索领域的佼佼者。虽然他们的模型擅长查找相关网站,但用户最感兴趣的答案通常隐藏在搜索结果的第100页。随后,谷歌的出现改变了在线搜索,谷歌的诞生是伴随着一个简单的问题:用户输入搜索查询的主要目的是什么?


谷歌意识到人们搜索的目的是展示最相关的搜索结果;对于其他公司而言,他们的目的可能是增加利润,改善客户体验,找到最佳路径,或平衡数据中心的负载。一旦我们确定了目标,第二步就是确定什么是我们可以控制的系统输入,什么是我们可以用来影响最终的结果。以谷歌为例,他们可以控制搜索结果的排名。第三步是考虑什么样的新数据可以产生这种排名;他们意识到页面之间的链接所隐含的信息可用于此目的。只有在前三个步骤之后,我们才开始考虑构建预测模型。我们的目标和可调因素,我们已经拥有的数据以及我们需要收集的其他数据,这些决定了我们可以构建的模型。模型将可调因素和任何不可控制的变量作为输入;模型的输出可以组合起来预测我们目标的最终状态。

对谷歌而言,动力传动系统方法的第4步是科技历史的一部分:Larry Page和Sergey Brin发明了图遍历算法PageRank,并在其上搭建了一个搜索引擎,该引擎给搜索带来了革命性的改变。但是您不必发明下一个PageRank算法来构建伟大的数据产品。我们将展示第4步的系统方法,该方法并不需要您拥有计算机科学博士学位。


模型的装配:最优决策组的一个实际案例

优化正确预测模型的可操作结果对公司而言是最重要的战略决策。对于一家保险公司来说,政策价格就是产品,因此最优的定价模式是如何自动化的将这些产品装配起来。保险公司拥有数百年的预测经验,但就在最近十年间,保险公司就经常就每个新客户应该收取的价格方面不能做出最佳商业决策。他们的精算师可以建立模型来预测客户发生事故的可能性以及索赔的预期价值。但这些模型并没有解决定价问题,因此保险公司结合猜测和市场研究来设定价格。

这种状态的改变是由1999年一家名为最优决策组(ODG)的公司造成的。 ODG利用早期的动力传动系统方法和能够应用于一系列问题的第4步操作来解决这个问题。他们首先确定了保险公司试图实现的目标:从长远来看,设定一个能够最大化新客户的利润净现值的价格,但要受到某些限制,例如维持市场份额。从那时开始,他们制定了一个优化的定价流程,这为保险公司带来了数亿美元的利润。[注:共同作者Jeremy Howard创立了ODG]

ODG明确了保险公司可以控制哪些变量:每个客户收取什么价格,要涵盖哪些类型的事故,要在营销和客户服务上投入多少钱,以及如何应对竞争对手的定价决策。他们还考虑了除上述控制因素之外的其他因素,如竞争对手的战略,宏观经济条件,自然灾害和客户的特性。他们考虑到需要什么样的额外数据来预测客户对价格变化的反应。他们认为在数月内随机更改数十万条条例的价格来构建此数据集是非常必要的。虽然保险公司不愿意对真实客户进行这些实验,因为他们肯定会失去一些客户,但他们考虑到优化定价可能带来的巨大收益,他们还是接受了。最后,ODG开始设计可用于优化保险公司利润的模型。


ODG模型的第一部分是可用于新政策和续约的弹性模型(客户接受给定价格的概率)。价格弹性模型是一条曲线,它是一条价格与客户接受该价格规定的概率曲线。这条曲线从极低的价格几乎肯定接受到几乎不可能接受高价。

ODG模型的第二部分与保险公司的利润相关,条件是客户接受此价格。非常低价格的利润被标红,由第一年的预期索赔价值加上获得和服务新客户的任何开销。将这两条曲线相乘可以创建一条最终曲线,显示价格与预期利润(参见下面的预期利润图)的关系。最终曲线具有明确可识别的局部最大值,表示第一年向客户收取的最佳价格。

ODG还建立了客户保留模型。这些模型预测客户是否会在一年内更新其条例,是否允许价格变化,是否会跳转到竞争对手。这些额外的模型允许将年度模型结合起来,以预测未来五年内新客户的利润。



这套新模型不是最终答案,因为它只能对给定的输入集给出结果。模型中另一个要素是模拟器,它让ODG询问“假设性”问题,以了解可调因素如何影响最终结果的分布。预期的利润曲线只是可能结果的一部分。为了得到准确的结果,模拟器在各种输入上运行模型。操作员可以调整输入以回答具体问题,例如“如果我们公司在第一年为客户提供低预告价格,然后在第二年提高保费,将会发生什么?”。他们还可以研究利润分配如何受到保险公司控制之外因素的影响:“如果经济崩溃了同时客户失业了怎么办?如果一个百年不遇的洪水淹了他的家怎么办?如果一个新的竞争对手进入市场并且我们公司没有及时做出反应,那么对我们能够接受的底线会产生什么影响?”。模型可以适用任何情况,保险公司可以查看随着时间的推移给定价格的变化、市场份额的变化以及其他指标的改变所带来的影响。

模拟器的结果被送到优化器,这其中包含了可能获得的最高点。优化器不仅可以得到最佳结果,还可以识别最差结果并展示如何避免得到最差结果。有许多不同的优化技术可供选择(参见下面的侧栏),它是一个易于理解的领域,具有强大且易于使用的解决方案。 ODG的竞争对手使用不同的技术来找到最优价格,但他们也是生产完全相同的数据产品。重要的是,将动力传动系统方法与模型相结合,弥补了预测模型与可操作结果之间的差距。 CloudPhysics的Irfan Ahmed提供了一个很好的预测分类模型,描述了整个过程:

“当处理数百或数千个单独的组件模型以了解整个系统的行为时,必须进行'搜索'。我将它想象成一个复杂的机器(全系统),你可以在受控实验下模拟机器的每个重要部分,然后模拟相互作用。这里注意不同的级别:单个组件的模型,在给定一组输入的模拟中绑定在一起,在搜索优化器中通过不同的输入集进行迭代。


动力传动系统推荐系统

下面我们看一下如何将这个过程应用到营销行业。我们首先将Drivetrain方法应用于熟悉的示例,推荐引擎,然后将其构建为一个完整的优化营销策略。

推荐引擎是我们熟悉的基于精心构建的但不能实现最佳目标的预测模型数据产品。当前的算法根据购买历史和类似客户的历史来预测客户会喜欢哪些产品。以亚马逊为例,每一次购买可以看作为一个巨型稀疏矩阵,其中客户作为行,产品作为列。一旦他们拥有这种格式的数据,数据科学家就会采用某种形式的协同过滤来“填充矩阵”。例如,如果客户A购买产品1和10,而客户B购买产品1,2,4和10,引擎会推荐A买2和4。这些型号擅长预测客户是否会喜欢某个特定产品,但他们经常推荐客户已经知道或已经决定不购买的产品。亚马逊的推荐引擎可能是最好的推荐引擎,但是它的弊端也很容易显现。下面是一张“购买此物品的客户也购买了哪些产品”的截图,这些客户搜索了Terry Pratchett的“Discworld系列”。


所有的建议都是针对同一系列中的其他书籍,但是一个很好的假设,搜索“Terry Pratchett”的客户已经知道这些书。在Feed的第2页到第14页可能会有一些意想不到的建议,但有多少用户会去看呢?

相反,让我们使用驱动系统方法来设计一个改进的推荐引擎,首先要重新考虑我们的目标。推荐引擎的目标是通过给客户带来惊喜让他们去购买在没有推荐的情况下不会购买的书籍。我们真正想做的是模仿Zite首席执行官Mark Johnson的经历,他在最近的TOC演讲中给出了一个客户推荐体验应该是什么样子的完美例子。他去过一个位于纽约市的斯特兰德书店,要了一本类似于托尼莫里森的书,书名为“亲爱的”。书柜后面的那个女孩推荐他威廉福克纳的“Absolom Absolom”。在亚马逊上,类似查询的最高结果为托妮莫里森的另一本书和几本着名女作家的着作。斯特兰德书商做出了一个聪明但却牵强附会的建议,该建议可能更多地基于莫里森的写作特征,而不是莫里森和其他作者之间的表面相似之处。她建议客户带回一本新书,并在下一次光顾斯特兰德书店时将书带回来。

这并不是说亚马逊的推荐引擎无法达到相同的效果;这个问题在于这个有用的建议将深埋在推荐信息中。我们的目标是摒弃推荐不好的东西,这个术语最初由Eli Pariser提出,被用来描述个性化新闻推送的趋势,用来展示广受欢迎的文章或进一步确认读者现有的偏见。

与AltaVista-Google示例一样,书商可以控制的变量是推荐的排名。此外他们还必须收集新数据以生成促进新销售的建议。这将需要进行许多随机实验,以便为广泛的客户收集各种相关建议的数据。

动力传动系统过程的最后一步是构建模型装配线。避开推荐泡沫的一种方法是构建一个包含两个购买概率模型的模型器。这两个概率之间的差异是针对客户的给定建议的效用函数(参见下面的推荐引擎图)。算法推荐客户最近拒绝的书籍(两个组件都很小)或者即使没有推荐也会购买的书籍(两个组件都很大并相互抵消)的概率会很低。我们可以构建一个模拟器来测试我们库存中的每一本书的效用,或者可能只是测试类似客户购买的协作过滤模型的所有输出,然后构建一个简单的优化器来排序并显示推荐的基于模拟效用的书籍。一般来说,在选择目标函数进行优化时,我们较少强调“功能”,而更多地强调“目标”。使用我们数据产品的人他们的目标是什么?我们实际上帮助他或她做出了什么选择?


优化终身客户价值

这种相同的系统方法可用于优化整个营销策略。这包括零售商在实际买卖交易之外与其客户进行的所有互动,无论是进行产品推荐,鼓励客户查看在线商店的新功能,还是发送促销活动。做出了错误的选择,其代价就是零售商要降低利润(无法带来额外销售),房地产商在其主页上利用一定的篇幅给那些如果不推荐用户就不会购买或者失去客源(发送这么多无用的电子邮件促销信息,客户将以后所有的通信邮件统统过滤为垃圾邮件)。我们将展示如何构建优化的营销策略,以减轻这些不良策略造成的影响。

正如与前面的每个例子一样,我们首先要问:“营销策略试图达到什么目标?”。简单来说:我们希望优化每个客户的生命周期价值。 第二个问题:“我们有什么可调因素来实现这一目标?”。有一些,如下面所示:

1.我们可以给出可以造成惊喜和喜悦的产品推荐(使用上一节中提到的优化建议)。

2.我们可以为客户提供量身定制的折扣或特别优惠,这些产品并非随时可供购买或在其他地方可以买到。

3.我们甚至可以打电话给客户以了解用户使用我们的网站的感受并让他们感受到他们的反馈是有价值的。

我们需要收集哪些新数据?这可能因具体情况而定,但一些在线零售商正采取创造性的方法来完成这一步骤。在线时装零售商Zafu给我们展示了它是如何鼓励客户参与到此过程的。很多网站都出售设计师的作品,但对于很多女性来说,高端牛仔裤是他们不会在线上购买的一件商品,因为如果不试穿的话,很难找到合适的牛仔裤。Zafu的方法不是直接将衣服展示给顾客,而是先询问一系列关于顾客体型、其他牛仔裤的合身程度以及时尚偏好的简单问题。只有这样,客户才能继续浏览Zafu网站。数据收集和建议步骤不是附加组件;他们是Zafu的整个商业模式 - 女式牛仔裤现在是一种数据产品。 Zafu可以根据他们的系统收集到的数据来不断改良他们的牛仔裤设计。


以目标作为出发点,这催促数据科学家思考什么样的模型是他们需要的。我们可以保留已经建立的“喜欢”模型以及有或没有建议的购买因果关系模型,然后采用分阶段方法添加我们认为可以提高营销效果的其他模型。我们可以添加价格弹性模型来测试提供折扣是如何改变客户购买商品的概率的。我们可以构建一个耐心模型测试用户对于低效沟通的忍耐力:他们什么时候会将我们的消息直接过滤到垃圾邮件?(“如果Hulu再一次向我展示同样的狗粮,我将不会再访问这个网站!”)。一个购买序列因果关系模型可用于识别关键的“入门产品”。例如,一条经常穿的牛仔裤与特定的帽子配对,或者是小说的第一部分通常会引领读者看完这部小说。

一旦我们拥有这些模型,我们就构建了一个模拟器和一个优化器,并在组合模型上运行它们,以找出哪些建议将实现我们的目标:推动销售并改善客户体验。



实际数据产品的最佳实践

很容易陷入这样的怪圈,即由于数据是抽象的,以电子表格的形式或存在于云中,因此数据产品只是抽象的算法。因此,我们最后向您展示基于客观的数据产品如何已经成为有形世界的一部分。这些例子最重要的一点是设计这些数据产品的工程师并不是从建立一个neato机器人开始,然后再寻找与之相关的东西。他们以一个目标开始,例如“我希望我的车能将我带到某个地方”,然后他们设计了一个数据产品来完成这项任务。工程师通常处于算法应用的前沿,因为他们长期以目标为导向来思考他们自己的模型。工业工程师是最先开始使用神经网络的一批人,他们将其应用于装配线和质量控制等最佳设计问题。布莱恩·里普利(Brian Ripley)关于模式识别的一本书为许多想法和技术提供了验证,这些20世纪70年代的想法和技术的之前已经被许多人遗忘。

在设计产品或模拟过程时,类似动力传动系统的过程以及模型集成,仿真和优化是系统工程师常用的几种技术。在工程中,通常需要将许多组件模型组合在一起,以便可以串联模拟和优化它们。这些公司在最终产品中构建每个组件和系统的模型方面拥有丰富的经验,无论是建造服务器集群还是战斗机。可能有一个详细的机械系统模型,一个是单独的热系统模型,另一个用于电气系统等。所有这些系统彼此相互作用。例如,电气系统中的电阻产生热量,这需要作为热扩散和冷却模型的输入。多余的热量可能导致机械部件弯曲,对于一些组件模型而言作为输入。

下面的屏幕截图取自Phoenix Integration设计的模型集成工具。虽然它来自完全不同的工程学科,但该图与我们推荐用于数据产品的动力传动系统方法非常相似。目标被明确的定义为建造飞机机翼。翼盒包括跨度,锥度比。数据是翼材料的物理特性;成本列在应用程序的另一个选项卡。有一个空气动力学和机械结构的建模器,它可以输入模拟器,以产生成本,重量,升力系数和诱导阻力等关键输出。这些结果可以输入优化器,以建立一个功能强大且具有成本效益的飞机机翼。


随着预测建模和优化对于各种各样的活动变得越来越重要,请留意工程师来破坏那些不会立即出现在数据业务中的行业。例如,“动力传动系统方法”这一短语的灵感已经出现在街道的标语中。我们现在可以让数据驱动我们,而不是被数据驱动。

假设我们想从旧金山到圣塔克拉拉去参加Strata2012会议。我们可以建立一个简单的距离/速度限制模型来预测到达时间,只需要一个标尺和一个路线图。如果我们想要一个更复杂的系统,我们可以建立另一个交通拥堵模型,另一个模型来预测天气状况及其对最安全的最大速度的影响。在构建这些模型时存在许多有趣的挑战,但是它们本身并没有将我们带到目的地。现在,使用某种类型的启发式搜索算法来预测沿着各种路线(模拟器)的驾驶时间,然后选择最短的一个(优化程序),例如要满足一些约束,如过桥费或最大化汽油里程。但为什么不想的广一点呢?不要再通过GPS的femme-bot语音告诉我们要走哪条路线以及在哪里转弯,取而代之的是思考建造一辆可以自行做出这些决定的汽车该需要些什么?为什么不将模拟和优化引擎与物理引擎捆绑在一起,所有的这些只需要放在汽车的黑匣子就可以?

让我们考虑一下这是动力驱动系统方法的应用。我们已经确定了我们的目标:建造一辆自行驾驶的汽车。可调因素是我们熟悉的车辆控制装置:方向盘,加速器,制动器等。接下来,我们考虑汽车需要收集哪些数据; 它需要传感器来收集有关道路的数据,以及可以检测路标,红灯或绿灯以及意外障碍物(包括行人)的摄像机。 我们需要定义我们需要的模型,例如用于预测转向,制动和加速度影响的物理模型,以及用于解释道路标志数据的模式识别算法。

正如谷歌自动驾驶汽车项目的一位工程师在最近的连线文章中所说的那样,“我们正在每秒20次分析和预测世界。”报价中丢失的是由于这种预测而发生的事情。车辆需要使用模拟器来检查可能采取的行动的结果。如果它现在左转,它会撞到那个行人吗?如果在这些天气条件下以55英里/小时的速度右转,它会在路上滑行吗?仅仅预测会发生什么并不够好。自动驾驶汽车需要采取下一步措施:在模拟所有可能性之后,必须优化模拟结果,以选择加速和制动,转向和信号的最佳组合,以便我们安全地前往圣克拉拉。预测只告诉我们可能会发生的事故。优化器则告诉我们如何避免事故。

改进数据收集和预测模型非常重要,但我们希望强调先定一个实现目标的重要性,即通过产生可操作结果的可调因素来定义明确的目标。数据科学甚至已经开始渗透到我们生活中最实际的元素中。随着科学家和工程师越来越擅长将预测和优化应用于日常问题,他们正在将其扩展生活中的方方面面,从我们的个人健康到我们居住的房屋和城市的一切。开发模拟流体动力学模型已经通过使用出口和拥挤控制障碍作为可调因素来改善交通和行人流量。这提升了地铁站的紧急疏散效率,减少了在体育赛事中人群踩踏和践踏对人的生命安全的危险。Nest正在设计智能恒温器,可以了解房主的温度偏好,然后优化他们的能耗。对于机动车交通,IBM与斯德哥尔摩市合作开展了一项项目来优化交通流量,减少了近四分之一的拥堵,并将城市的空气质量提高25%。特别有趣的是,没有必要建立一个精心设计的新数据收集系统。任何有红绿灯的城市都已经拥有了所有必要的信息;他们只是没有办法从中挖掘其价值。

在另一个基于目标的数据产品有能力改变生活的领域,硅谷的CMU扩展项目有一个积极的项目,用于构建数据产品,以帮助建立自然灾害或人为灾害后的及时响应系统。卡内基梅隆大学的Jeannie Stamberger向我们解释了预测算法在灾难响应中的许多可能应用,从文本挖掘和推文的情绪分析到确定损害的程度,以及成群的自主机器人进行侦察和救援,物流优化工具,帮助多个司法管辖区协调其响应。这些灾难应用程序是一个用来告知我们为什么数据产品要简单,为什么接口要精心设计的特别好的例子。在紧急情况下,仅产生更多数据的数据产品几乎没有用处。数据科学家现在拥有预测工具来构建可增加共同利益的产品,但他们需要意识到,如果不能产生优化的可实现的结果,那么仅仅构建模型是不够的。


数据产品的未来

我们引入了动力传动系统方法,为设计下一代优秀数据产品提供了框架,并描述了优化对于该框架的重要性。在未来,我们希望在商学院和统计部门中看到优化课程。我们希望数据科学家能够提供旨在产生理想成果的产品。这仍然是数据科学的未来发展方向。我们不知道在将来会开发出什么样的设计方法,但是现在,数据科学界需要关注共享词汇和产品设计过程,这些过程可以用来告知人们如何从中获得价值。如果我们不这样做,我们会发现我们的模型只是使用数据来创造更多数据,而不是使用数据来驱动行为,变革行业并改变生活。


免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请点击