Instacart一小时使命必达的背后:数据科学的力量
原创:MarTechApe
Instacart是目前全美提供生鲜和生活用品送货上门服务的最大公司之一。在美国,近乎一半的家庭可以足不出户的通过Instacart从Costco、Wegman’s,、Whole Foods、Petco 等超市购买所需的生活用品及食物。尤其是在新冠肺炎肆虐大家都宅在家里这段时间,Instacart为大家的生活提供了无限便利。它独一无二的商业模式使它成为业界中最善于利用数据科学解决棘手商业问题的典范。
作为数据科学家,你已经掌握了足够的算法和技术。但在真实的业务中要如何更好的应用?怎样利用这些技术为企业带来盈利?在这篇文章中,我们将向你展示Instacart采用了哪些方法来解决复杂的商业问题。
Instacart的商业模型
首先,我们来看看Instacart是如何运作的。
Instacart为了给顾客们提供流畅的购物体验,设计了一套简单实用的流程,如果你想要通过Instacart购物,请看下面的方法:
1. 下载Instacart的APP
2. 选择你喜欢的超市,这里Instacart提供了很多常见的超市:Whole Food, Costco, Petco, Wegman’s等
3. 从超市提供的库存列表中选择你要买的东西,加入购物车
4. 选择想要派送的时间段,通常可选择的时间间隔为1个小时
只需要一个小时,你要的东西就会出现在家门口!Instacart的顾客体验极其的快速简单。
不过,代购人员的操作流程会稍微复杂一点:
1. 在Instacart的系统中,代购人员是轮班制,当有订单产生时,他们的个人系统会被分配不同的订单
2. 接到订单后他们将赶到订单指定的超市,并拿到订单明细
3. 根据订单明细,代购人员将严格按照明细挑选商品,并扫描付款
4. 最后他们会将所有物品送到订单上提供的地址
以上是marketplace中的两个主体:代购人员以及下单的顾客。
但是,Instacart其实是一个涉及4方参与者的交易平台,你能够想到还有哪两个方吗?
Instacart平台还需要将品牌广告主以及超市商店参与进来。每一个参与者都与其他三方有特定的业务模式,数据科学家将有机会在每一个箭头所指的业务模式上提高业务的效果:
Instacart通过配送费盈利。举个例子,用户只需要支付几美元的配送费,或者购买会员:通过支付150美元,享受一年内无限次配送服务。用户所支付的小费和服务费将作为人工费支付给派送人员。除此之外,Instacart还通过与像保洁或者其品牌广告主合作而盈利:大约30%的销售额将分配给品牌广告主。
Instacart通过与超市合作也可以获得可观的收入:如果Instacart能够为超市带来大量店铺流量,那么超市将会为此支付一笔费用。
但是,Instacart的成本也不小,比如信用卡交易,以及保险。不过,最大一部分的成本其实是时间成本:代购人员需要花费一定时间进行采购和配送。所以Instacart最重要的目标是保证系统能够高效以及快速运作,提升运作能力,获得更多的订单,增加收入。
据Instacart数据显示,在优化了后台系统后,现有系统比之前提升了40%的效率。
会员用户平均每个月将在Instacart消费500美元,说明Instacart已成为这些用户日常使用的APP。
90%的用户都为老用户。
通过Instacart独一无二的商业模式,数据科学家能够清晰的知道如何提升公司的利润。接下来,让我们看看他们面临的问题和挑战都有哪些:
1. 不可控因素导致无法精准的预测
Instacart的派送员们总是奔波在不同的街道上,所以当在一些大城市,比如San Francisco或者NY出现道路封锁或者拥堵时,订单将会被延迟,客户满意度将受到影响。
天气因素很不可控:当天气很冷时,大部分人都不愿意外出采购,所以他们将更需要依赖Instacart购物(订单需求更高)。但是,对于派送人员来说,他们也同样不想花很多时间在户外,所以能够进行派送的派送员在这样的天气时会更少(供给量更少)。相反的情况也出现在好天气:更多的人想要外出采购(低需求,高供给)。
Instacart 以及将近50%的商店都面临着天气的问题,更惨的是他们束手无策。
不光是天气,一些特别的时间或者是庆祝游行也会使道路拥堵,从而降低了Instacart的运作效率。这些情况并不能被视作例外(或者是异常值),因为这些都时有发生,并且在未来也不可能避免。所以这些因素都需要被Instacart考虑进去。但是,这将会给整体数据带来很大的方差,增加数据预测的难度。
结账时队伍的长度,以及某个派送地点可用的停车位数量也是另外两个需要考虑的变量,经常需要结合其他的因素一起考虑,比如:工作日,气温,或者是某个超市的库存量,等等。
在很多数据科学应用中,平均值是最重要的参考值,但是,对于Instacart来说,方差与平均值同等重要。方差很大程度影响着预测结果,这也使预测时间变得更加困难。
如果你是Instacart, 你会怎么解决这个问题呢?
这样来看,Instacart面临两个主要的挑战。
首先是如何平衡供需问题?我们之前描述的天气因素会带来供需不平衡的问题,使得Instacart很难找到最佳的供需平衡的方案。过剩的订单需求和不足的配送供给会大大的降低顾客的满意度和留存率,而过剩的配送供给和不足的订单量意味着低效的商业运作,从而降低盈利效率。
第二个挑战是在供需平衡的状态下,代购人员如何规划配送路线使配送效率最大化?如何根据不同位置进行订单分配,确保代购人员能够将订单按时送达?
2. 难以衡量的需求
对于任何一个公司来说,最基本的分析是评估需求,这意味着要预估如何开展后续运营工作。放在Instacart身上,要完全做到有一定的难度。
当用户在浏览Instacart时,他们可以看到不同超市列出的不同配送时间段。通常在某些时间段中,订单数量较为集中,所以会有大量的订单聚集在某些特定的时间,但对于代购人员来说,他们很难在这些时间处理所有的订单。基于这种情况,Instacart实行了“繁忙时间段定价“,在繁忙时段收取比平时要高的费用。
为了实施特殊的时间定价,在高峰时间段产生订单之前,Instacart使用机器模型预测什么时间点将会产生大量的订单。当某个时间段的订单被填满,Instacart将会取消这个时间段的配送。相应的,Instacart在一些闲置的时间段使用了折扣价格策略:
Instacart的用户基本可以被分为以下3种情况:
直接买单结账
想要买单结账,但是发现想要选择配送的时间段已经不可选了
只是想随便看看,还没有使用过Instacart, 可能以后再来买
在以上这三种情况中,这些用户都会浏览网页,你要如何去区分有真实的购物需求的用户和只是看看并没有购买的用户呢?
需要注意:上图的Counted Demand指的是已知的需求。这些用户已经在Instacart上进行过购买并留有购买记录。但是对于那些想要购买的用户(存在需求)但是并没有任何购买记录的(没有购买)被认为是Uncounted Demand。
Instacart建立了一个概率模型用来预测一个用户在特定情况下进行购买的可能性。这个模型考虑了市场情况以及用户个人的多种特性,同时也考虑进去很多其他的可能遇见的情况:比如可配送的时间段?可能的折扣时间段或者溢价时间段?诸如此类。
假设配送窗口是充足的,对于每一个用户是否下单进行预测,这个模型可以估计出需求量:如果每个人都被100%考虑在内,那么一共会产生多少次派送?这个模型同时考虑了可计入和未计入的需求,但并不包括假性需求:
通过这个方法,Instacart能够进行需求预测,同时也可以估算出“丢失的订单”(预测需求订单数- 成功的订单数),如以下橙色部分所表示:
如果Instacart需要进行任何的计划安排、人员管理,或者是预测,他们需要进行正确的需求量数据。现在,他们不仅可以计算出来,还能够知道失去了多少订单。
3. 预测配所需要的时间
Instacart的一项任务是在一个小时之内完成指定订单的配送,不然的话,将会影响顾客满意度。事实上,比设定好的时间稍微早一点点完成配送会使用户更满意:
众所周知,顾客满意度对于这样的生意来说十分重要,是否能够预估代购人员的配送完成时间,并且给出最有效的配送路线方案,对Instacart来说是必须要解决的事情。
你也许会想到使用谷歌地图的路线时间,但是Instacart创建了一个比谷歌地图更有效的模型。因为Instacart需要预估的行驶对象并不是普通的电子地图使用者,它需要预估的是派送人员经常往返某一个超市商店的行驶时间,需要考虑停车,进入商店的时间等等。然而谷歌地图不会考虑这些情况,但是Instacart的模型可以。
另一个不适合使用谷歌API的原因是Instacart需要为配送人员预测所有可能的路线组合,需要对很多备选路线在系统内部进行优化设计。对于谷歌的API来说并不可行,当你有一万亿条路线需要预估时,你无法等待那么久:
Instacart使用分位数回归模型做预测。不同于去确定平均时间,Instacart确定的是第95分位数的时间可能是多少?或者第5分位数的时间?Instacart考虑了所有路线方差之间的相关系数去预测未来的方差。
对于模型,Instacart使用了梯度提升决策树:数据存在过度拟合的倾向性。这非常适合解决Instacart数据高度方差的问题。
Instacart给出了一个很好预测完成订单时间的方法,现在我们来看看如何为代购人员定制配送路线?
4. 设计配送路线
假设你需要为300个订单和100个代购人员进行订单匹配,即使按照每个人分配3个订单,仍有445000种可能的配送组合。Instacart每一分钟都在解决这类问题,而这也只是一个很小的假设。
当然,你也许会猜到Instacart并不会将这445000种组合都计算一遍然后再选出最合适的。Instacart的目标是最大化可配送的产品数量。
在许多大城市,同一家超市会在不同地方有连锁店,如果同样的商品在这些连锁店里都有货,那么代购人员将会选择最近的一家完成订单:
但有些时候超市的库存并不是实时更新,这意味着在根据顾客订单预估备选商品地点时,Instacart会为了保证客户满意度舍近求远选择最有可能有充足货品的门店。
然后,如果说Costco#1确实有货,Instacart也会考虑到这点而选择最近的,保证订单能够准时的配送。
对于Instacart,第二点考虑的是钱,即订单。
实际上,Instacart首要的算法十分简单,这个算法主要基于以下这一个问题:
什么样的配送方案会导致下一个订单延迟?
无论如何,算法将会给代购人员分配第一个订单,如果系统接到另一条订单并把这条订单加在第一个订单之后,第二条订单的配送预估时间并不会延迟的话,系统就会确定将这个订单加上去,类似的操作将会继续。
这样,Instacart的运作通过有效的机器学习算法取得了巨大的提升:延迟的订单减少了20%,丢失的订单并没有再继续增加,代购人员的配送速度提升,以及繁忙的时间段增加了20%。
不容易的是,Instacart每秒钟都在进行大量的模拟运算,找到最优化的路线组合,并不断的持续这一过程。
总结
APP的后台系统有许多看不见的运作,然而用户的体验永远是最简单直接的,如果用户熟悉你的产品,他们总是可以在一分钟之内完成下单。在这便捷的客户体验的背后是一个庞大复杂的机器学习以及数据科学构成的系统,这个系统保证了每一位平台参与者,使用者都能够获得满意的体验。希望这篇文章能够帮明白数据科学以及机器学习的方法是如何应用在真实的商业问题中的。
如果你也想用数据科学的分析方法解决实际的商业问题,用百万量级的原始数据为企业级商业问题搭建系统化数据分析解决流程,那么千万不要错过MarTechApe携手美国第一大家具电商Wayfair的高级商业分析专家共同开设的《A/B测试企业级实战项目》!利用疫情期间,系统地掌握企业级别的A/B测试,搭建真实的A/B测试分析,掌握A/B测试在企业落地的完整流程,全方位提高数据科学技能与商业意识!
在《A/B测试企业级实战训练营》中,你将获得:
真枪实弹的A/B测试项目实操,真实数据+五大应用案例,从零学会A/B测试的里里外外!
为你建立一个完整的、专业的、深度还原大公司的的A/B测试项目,让你在面试时可以自信展示自己亲自做的案例,成功拿下offer!
从0到100真实操作A/B测试项目的全套流程:数据清洗、数据自动化处理、实验设计、实验执行、结果分析、报告展示。
经历真实工作场景中的、各大互联网科技公司里使用的A/B测试流程,以及适应不同商业场景的各类实验/准实验方法。学会工作中最重要的分析方法!
深度学习A/B测试实战中常见的测试陷阱及避免方法。
牢固掌握公司里A/B测试项目中的实际SQL应用,为A/B测试搭建数据库、清理数据、创建数据集。
学会用Python自动化实现A/B测试,为你的老板提高100%的工作效率!
接受系统的统计训练,打下坚实牢固的统计基础,彻底明白A/B测试的统计原理、分析方法、实验设计方法、抽样准则。
对互联网科技公司的深度剖析和指标介绍,让你自如面对各类面试考验!
各大互联网、科技公司A/B testing面试题解题步骤示范与详细解析。
点击下方图片跳转至课程页面,了解更多项目详情: