人工时代
某外卖平台最早的时候,每个BD(市场经理)负责一定的区域,并且人工给这些餐厅排名。这样的方式在地推谈商家的时候,起到过一定的作用:比如BD去谈新的商家,可以承诺给到一段时间的较高排名来使老板加入平台;或者以较高的排名为条件,使得一些优质餐厅成为我们的独家餐厅,排名是BD谈判的筹码。
但这样的排名方式有很多的弊端,比如工作量较大,标准不统一,容易滋生钱权交易,转化率不高等等。所以在15年的时候,公司开始做智能排名,让统一的规则来接手这件事。
在谈具体的发展过程以前,我们来想想rank的目标是什么?
rank解决的是,合理分配流量的问题,以及信息过载时提高用户效率的问题。
在互联网下半场,像饿了么这样的o2o平台,最大的价值是提升上下游,需求方和供给方的效率:对于用户,不用收集一堆小卡片来订餐,能够方便的在平台上找到想吃的外卖;对于商家,通过将配送外包给专业的饿了么配送团队等其他方式来降低做外卖的运营成本。
如果你打开饿了么,只有三个商家,那有没有rank就不重要了,因为用户很容易看完每个商家然后做出决策。但如果你打开饿了么,附近有1000多个商家,用户不可能看完这1000个商家,这时候rank就要在合适的地点和场景,把合适的店展示给用户。即把有限的流量给到当前场景下,转化率最高的店。
rank的指标在不同背景下可能不一样,但最常见的有转化率和GMV/UV。如果以订单量为目标的话,转化率可能就是rank的指标。如果以GMV为目标的话,GMV/UV才是最终的指标。
公式时代
在外卖平台上,排序分为商家排序和菜品排序两种,今天先简单聊聊商家排序。
首先,我们要分析什么样的因子会影响用户决策,比如用户点外卖的时候,会注重看一下商家的销量,评分,送餐速度,优惠活动的力度,起送价,配送费,那这些就是rank里面很重要的因子之一。但除了这些看得见的因子,还有很多看不见的因子,比如退单率,投诉率,进店到下单的转化率等等。
然后,rank会把这些影响用户下单和最终转化的因子整理起来,给每个因子赋予不同的权重,放到A/B Test系统里去做测试,来确定最终合适的权重。然后根据每个商家计算出的分数,得到一个粗排的排名。在这个过程中,要结合外卖场景考虑到很多因素,比如商家在不同区域的服务能力不一样(比如送餐时长),以及各种容易钻的空子(刷单)。
在粗排之后,rank会根据情景,给不同的商家在不同场景有一定的提权或降权,这叫做细排。比如下午的时段,会对下午茶的商家进行提权。或者商家即将关店的时候,对其排名有一定的下沉,避免用户选餐时商家突然休息。或者部分商家短时间内拒接或取消的订单过多,说明这个商家临时有问题,不能很好的承接已有的流量,所以要进行置底甚至关店的处罚。
最后会根据用户,去做一些调整。比如对不同客单价的用户,对符合客单价的商家提权。对用户吃过好评的店,以及类似的店进行提权。(这里其实已经涉及到了简单的个性化推荐)。
到这里,rank基本上就已经完成了。但如果真的到这里就结束了,可能会遇到一些问题:比如新的商家,各项评分都很低,很可能排不到前面,导致一直无法快速成长,从而加剧马太效应,强者越强,新店永远也得不到成长。所以从长远健康的生态考虑,rank还有一个指标叫做基尼系数。rank会对新店和业务需要支持的商家,做一些提权和轮播,甚至锁定。来使这些店获得足够的流量来成长。
机器学习时代
我们先谈谈怎么买车。如果买车的时候只考虑到价格和油耗两个因素,那我们决策的成本可能还较低,选一个油耗和价格的平衡点。但如果买车的时候要考虑价格,油耗,外观,百公里加速时间,风阻,动力,安全系数等等几十项因素时,人的大脑还能理性的决策,如何买到一辆最合适的车么?
rank其实也一样,在外卖的场景下,有几百项因子在起作用。当只考虑销量和好评时,写一个公式调整其中的权重,人脑很容易实现。但当有几百项因子时,人脑怎么给每一个因子赋一个合适的值,怎么去一个因子一个因子去做A/B Test?
所以,我们把所有的因子告诉机器,让机器自动的去测试每个因子不同的权重,用大量的样本自动实验,找出最合适的权重给每个因子赋值。然后和人工设置的rank规则对比,哪个的效果更好。等到有一天,机器学习全面超越人工的时候,rank的规则就可可以交由机器学习去完成。
就像Alpha Go战胜了人脑一样,这一天已经到来。
网友评论