专栏名称: 刘言飞语
好的产品总是充满善意。好的文章亦然。
分享
今天看啥  ›  专栏  ›  刘言飞语

如何设计线下交易匹配产品

刘言飞语  · 公众号  · 产品  · 2020-01-17 19:00


潘一鸣是我在滴滴的老同事,曾经负责过豪华车产品。他对策略产品有许多思考,也给我不少启发。他在 19 年出版了一本《产品逻辑之美》,对策略产品的多个课题进行了阐释。


以下就是其中一个章节,有 1.5w 字,内容较多,可以收藏再看。


希望能够帮到你。如果觉得内容不错,可以考虑买一本:



刘飞





如果机器也像我们这样相互了解,那么机器生态就是不可征服的。

——《失控:全人类的最终命运和结局》



随着互联网服务的发展及移动互联网的兴起,越来越多的产品不再局限于线上场景,而是开始连接线下服务。这样的线下服务往往有三个阶段:第一个阶段以地推为主,拼的是线下增长速度;第二个阶段拼的是线上运营能力;第三个阶段拼的是技术对业务的优化能力,拼的是精细化运营。外卖、打车、O2O服务、共享单车、分时租赁、快递配送等业务都有着类似的发展轨迹。


为了让交易能更好地匹配,传统的线上交易类产品通常会用分类、搜索、推荐等成熟系统作为核心方法。相对于线上交易匹配,线下交易匹配系统有更多新的特点,有更大的发展空间。本章会介绍线下交易匹配系统的构建方法,同时也会探讨线下交易匹配系统未来的发展方向。


1 线下交易的特点


在介绍线下交易匹配系统之前,先明确下什么是线下交易。线下交易是相对于电商的线上交易模式而言的,在本书写作之前,我未在其他出版物中看到过类似提法,过去O2O创业潮中的大部分项目都可以被归为线下交易。本书的线下交易约定为用户通过在线产品购买线下服务,这些线下服务的提供者具有流动性,且需要与用户在线下接触才能完成服务。在这个约定下,线下交易包含非常多的场景,比如外卖服务、网约车服务、搬家公司、保洁服务、共享单车、分时租赁等。随着互联网对于传统行业的渗透和改造,线下交易所包含的行业将越来越广泛。线下交易有很多特点,这些特点影响着线下交易匹配系统的构建。


1.1  资源排他性


服务和内容的根本不同就是服务具有排他性,主要体现在两个方面。


第一,内容没有边际成本,服务有边际成本,这就导致服务资源是稀缺的。内容没有库存,文章被一个人读和一万个人读是没有区别的,但是服务不可以。系统在一个区域一个时段所能提供的服务量一定是有限的,比如每时每刻,用户周围可服务的共享单车就是有限的,不可能凭空多出来。每多一次服务就会多一定的成本,对于共享单车而言,这个成本是资产的贬值,而对于网约车软件而言,还有额外的人力成本。而这些非数字化的资源也不可能像数字化资源一样无限扩张。


第二,人和内容是一对多关系,人和服务是一对一关系。文章可以被好多人同时读,商品可以同时被好多人一起下单,但是周围的一辆车一个时刻只能服务一个用户。这种关系也意味着不能给所有人最优的选项。推荐算法计算出某篇文章适合多个用户,就可以把这篇文章推送给这些用户。但是系统如果发现某辆出租车适合周围多位乘客,却只能把这辆出租车分配给其中一位乘客。


服务资源的排他性使得线下交易匹配系统和内容匹配有着本质的区别。以提高服务效率为目的的线下交易匹配系统需要处理这种排他性,而大多数内容匹配算法是基于内容非稀缺性设计的,这就导致线下交易匹配系统算法难以借鉴已有的内容匹配算法。


1.2  时空不匹配


线下服务的另一个特点就是服务能力在时空上是分散的。比如铁路系统每时每刻能服务的乘客量理论上基本上保持不变,但是用户的铁路出行需求变化非常大。春运时出行需求会爆发式上升,这意味着需求和服务供给在时间层面难以匹配。


春运初期,乘客大多从大城市往中小城市迁移,春运后期则反之。这意味着需求和服务供给也难以在空间层面匹配。几乎所有线下服务都有需求时空分布不均的问题,比如共享单车,早高峰时段,需求方向往往是从小区到地铁站,晚高峰时段则反之。要解决这个问题,只能以匹配高峰时段的需求量为目标在基础设施上投入资源,而这会造成资源的大量浪费,在商业上是不合理的。


因为时空层面的供需难以匹配,所以在构建线下交易匹配系统时往往要考虑很多问题,比如:调控需求让高峰期需求尽可能变小;在供需不匹配的情况下,提供系统效率最高的解决方案。


1.3  系统公平性


线下交易匹配系统要考虑公平性,这里的公平性涉及用户和服务者两个方面,以打车为例来展开讨论线下交易匹配系统的公平性问题。


当运力供给小于打车需求时,可采取以下三种方式分配服务资源:


  • 排队,按照先来后到,依次服务。

  • 竞拍,给愿意出更高议价的人优先提供服务。

  • 以系统效率最高为目标。


这三种方式的公平性是依次递减的,但是系统效率依次递增。在公共服务领域需要最大限度地考虑公平性,所以基本上采取排队的方式,比如火车票。航空公司因是半公共服务性质,就可以动态调整机票价格来分配资源。而第三种方式只有在纯商业的产品中应用,但是考虑到用户体验,一般也不会单独使用。在设计线下交易匹配系统的时候,需要根据产品的目标,综合选用最合适的方案来解决公平性问题。


当打车需求小于运力供给时,则可以用以下方式来考虑服务者的公平性。


  • 按照服务效率进行派单,比如就近分配。

  • 按照服务者的服务质量进行派单。


但是无论哪一种派单方式,都要尽可能保证服务者在情感上的公平感知,比如同样的工作时长和努力程度,不能因为系统分配的原因造成过大的收入差异。内容没有感情,服务者有感情。一个质量不太好的内容可以没有阅读量,但是服务者不能长时间没有订单,否则他们就会流失。


需要多维度地考虑公平性,同时让用户理解这种公平性,这是线下交易匹配系统的一个重要目标。


1.4  系统开放性


线下交易匹配系统面临的外部环境非常复杂,不可控因素很多,例如天气、节假日、交通状况、市政规划等。共享单车的用户需求就有明显的季节性,北方冬天几乎没有人骑车。即使是在春季和秋季,一旦下雨,选择骑车出行的用户就会减少,选择打车出行的用户就会增加。因为线下交易匹配系统是和现实世界中的服务连接的系统,这就导致系统要承担现实世界中的不确定性,要求系统需要适应各种场景。


当然,线下交易匹配系统不仅会受到客观因素的影响,还会受到社会因素的影响。因为线下交易匹配系统是近期才大规模兴起的,通过线上手段连接线下服务这种方式,必然会对社会原有的秩序造成冲击。怎么处理系统和公众的关系,怎么处理系统和政策的关系,都是线下交易匹配系统需要考虑的问题。


以共享单车为例,单车的投放就有很高的负外部性 。大量的单车造成了对公共空间的占用,同时如果单车投放公司不处理损坏车辆,就会造成城市垃圾。在共享单车发展起来之后,市政部门就对单车的投放和回收做出限制,线下交易匹配系统需要针对这些公共问题和政策做出有针对性的调整。同时有部分用户缺乏社会责任感和公德心,就会随意停放单车、公车私用、恶意损坏单车。这就要求线下交易匹配系统对车的位置有追踪和记录,同时对使用情况有所记录并评估每个用户的风险。负外部性指一些市场活动会给第三方带成不良影响,比如有的共享单车会成为城市垃圾,给社会带来了不良影响。


线下交易匹配系统的开放性就决定了系统需要持续迭代来适应不断变化的外部环境,同时也导致线下交易匹配系统比传统的线上内容匹配系统更加复杂。


1.5  服务敏感性


线下交易匹配系统大多是关于服务的系统,用户对差的服务的容忍度比差的内容更低,用户对服务更加敏感。


一般的内容产品,信息流的一个分页下发10~20个内容,只要有几个内容比较符合用户口味,用户就会满意。然而服务只要有一次是差的,就会让用户对整个平台产生极大的不信任,轻则流失,重则造成公关危机。外卖配送员和用户发生冲突可以直接威胁用户的安全,接送机服务迟到耽误时间让用户错过重要安排,类似情况对用户造成的损失可能是不可挽回的。


而这种服务的敏感性不仅体现在用户侧,也体现在服务者侧。比如Uber在某动乱地区的每一次派单,都可能让潜在的犯罪分子威胁车辆或司机生命的安全。一旦发生这样的问题,服务者对于平台的信任也会降低或者直接流失。


服务的敏感性就要求线下交易匹配系统对于用户和服务者双方都要有一定的管控措施,从而保证线下交易匹配系统的持续发展。




2  时空价值模型


线下交易匹配系统模型大致可以分为两种:用户到达服务点和服务送达用户。对于用户到达服务点,信息检索和交易匹配逻辑与线上交易匹配系统基本一致,区别是在召回和排序时要考虑用地理信息筛选和调权,比如到店团购。本章主要介绍服务送达用户的线下交易匹配系统模式。


在服务送达用户的模式中,系统需要对时空做出预测并进行有针对性的调整。时空是时间和空间的集合,如果能大概了解某个时段某个地方的需求量,系统就可以提前安排和调度服务能力,这也是系统效率提升的一个主要推动力。本节会展开讨论关于时空价值模型构建的方法。


2.1  时空价值模型的定义


服务是一种很特殊的产品,不像大多数实物商品那样,可以存储和运输。如果一个地方某类产品滞销,完全可以在另一个时间点或者运输到另一个地方进行售卖。但是服务却不是这样的,服务永远会有一定的服务范围,不可能超过时空范围进行调配。外卖配送员在2点到4点订单很少,这段时间的服务能力无法存储并在高峰期释放,这是时间的限制;一个在北五环的快递员也不能在结束一个配送任务后立刻出现在东三环,这是空间的限制。正因为这样,合理的安排和调度就显得尤为重要。


在服务有时间和空间的限制下提升交易匹配的效率,是时空价值模型需要解决的核心目标。


时空价值模型是为了评估某个时间某个地点服务价值,模型的入参是时间和坐标,模型的结果代表着对于服务价值的判断。服务价值取决于业务的导向,以打车为例,两个小时的时间应该服务一个高价值长订单还是服务三个短订单,只有一辆车应该服务老用户还是服务新用户,这就是业务判断。当然,这些业务判断需要基于对不同时空的需求预估。


根据需求预测的结果调整供给,在传统商业模型中非常常见,根据需求调整生产节奏、安排合理库存、规划物流网络都属于这个范畴。线下交易匹配系统也是类似,只是因为在线下交易匹配系统中,需求预测需要涉及时间和空间两个方面,从时间的一维变量变成关于时间和经纬度的多维变量。如何构建预测模型,并根据预测结果来进行优化匹配,将是我们接下来讨论的重点。


2.2  时空理想划分


时空是时间和空间的集合,时间是连续值,空间也是连续变化的,需求却只是有限个点。连续的模型难以刻画这个问题,因为有限个需求点散布在三维空间中,任意一个空间点中出现需求点的概率都是0。为了解决这个问题,我们需要将时空划分为有限多个时空域,这样就可以对每个时空域内的需求进行预测。


那么怎么对时空进行划分呢?如果忽略交通、地形、城市规划因素,可以假设所有的区域都相同。这个问题就可以简化为一个简单的几何问题:“如何把一个连续的二维平面划分为多个区域”。


为了完全覆盖地图且区域之间不重叠,使用正多边形来划分城市。为了覆盖满二维平面,则多边形的多个内角可以拼合到360°。假设正N边形可以覆盖一个二维平面,则存在整数x使得公式(11-1)成立:



公式(11-1)的方程有三组解:




因为边数越多,多边形越接近圆形,则可以取正六边形作为划分图形。这也是常用的空间划分方法。在《文明》系列经典游戏中,世界地图也是使用正六边形进行划分的。


对空间划分之后,时间就直接按照固定间隔划分,比如每20分钟作为固定间隔。通过这样的划分,整个时空就被划分成了多个时空域,从而为后续的计算和统计打下基础。


所有的理想化模型都会做一些假设,这样的时空域划分方法也不例外。每一个假设都意味着和实际情况有一定的出入,反复思考这些出入可能通过哪些新的假设来弥补,是系统优化的一个重要思路。上述的划分方法显著的问题就是对空间的划分过于粗暴,完全忽略了地理和交通的影响。如果一个时空域被河流穿过,就意味着这个时空域很难作为一个整体。而很多统一的区域也可能被划分开,比如按照这样的划分方法,清华大学就很可能被划分为多个时空域,但是显然一个校园内的需求更适合作为一个整体处理。为了解决这些问题,也可以探索其他的时空划分方法。


2.3  时空聚类方法


除了六边形时空域的理想划分方法之外,时空聚类方法可能更贴合实际。用时空聚类方法分割的边界一定不是完全规则的多边形,有更强的适应性;一些典型的完整区域,比如学校、酒店、医院等,也会在一个时空域里面。


需求散落在时空中,需求分布结果包含了大量的信息,如果一个区域内的需求比较统一,意味着这个区域内部有很强的一致性,则需要将这些区域划分在一个时空域里面。利用机器学习的聚类方法可以很大程度地利用这些用户行为数据,减少划分的误差,提高时空价值模型的准确性。


当然,机器学习的聚类算法也会有明显的问题,那就是需要大量的用户需求数据。这就意味着很多创业公司在起步阶段无法使用这样的方法,同时有一定的开发成本。但是这并不意味着只能使用六边形时空域的方法,大部分策略都可以用人工标注进行兜底。线下交易匹配系统需要处理的是地图,地图是客观存在的,而且在一定时间内稳定不变,标注后的地图维护成本不高且可以长时间使用。在人工标注的地图中,学校、酒店、医院当然就可以被划分在一个空间域里。


这些方法也可以有机结合,比如可以使用机器学习或者六边形时空域模型进行初步划分,再利用人工标注的方法覆盖重点区域。一旦将时空划分为多个时空域之后,就可以在这些时空域内做进一步的需求预测。


2.4  仿真模型构建


时空模型除了上述的将时空划分为时空域之外,其实还可以尽可能逼近真实环境去构建虚拟场景。大学时我有一段时间被《刺客信条》这一游戏深深吸引,游戏的背景设定是现代人可以通过虚拟系统回到古代场景中,通过在古代场景的战斗训练,提升自己的刺客技能。中世纪城市在这个游戏中被构建得栩栩如生,人物在这个虚拟的城市里完成各种任务。


其实在构建线下交易匹配系统时,我们也希望有一个和真实世界尽可能一致的时空模型,里面有交通枢纽、道路,也有堵车,可以对各种匹配策略进行测试,并且利用这些测试的结果,进一步迭代匹配策略。通过仿真来进行系统迭代的方法在各个领域都有所应用,比如所有的航空航天器都需要在风洞中做空气动力学实验来调整设计,才能最终升空。


对于线下交易匹配系统而言,一个成熟的仿真系统的好处是多方面的。线下交易匹配系统不能像线上内容匹配系统那样切分流量做A/B 测试。在线下交易匹配系统中,每一次交易都会对系统产生一定的影响。切分流量本身就意味着系统条件和最终上线的系统条件不同,部分流量条件下有提升的策略,不代表在所有流量下有效。但是线上内容匹配则没有这个问题,每个用户在浏览内容的时候几乎不会对其他人的阅读产生影响,小规模的测试结果和全量的基本一样,就可以按照用户切分流量进行测试。不能做A/B测试的直接后果就是在匹配系统中,一个策略是否有效的验证周期会变长,系统的效果基本上需要上线较长时间才能观察。一个成熟的仿真系统就能很好地解决这个问题。


成熟的仿真系统可以固化一段时间的用户需求对新的匹配算法进行测试,并且这种测试可在非常短的时间内完成,也能直接对比不同策略的优劣。因此,仿真系统还可以提升算法迭代的效率。


成熟的仿真系统还可以快速将大量的参数调整到最优值。高阶策略往往包含很多参数,这些参数大小一开始可以按照经验和统计数据设定,但是后期还是需要用数据反馈来迭代,如果在真实环境中调试这些参数,时间成本之大不可想象。


成熟的仿真系统还可以使得用强化学习实现算法迭代成为可能,不断迭代算法的评估函数,把匹配算法效率迭代到极致。虽然思路是可行的,但是落地执行还有很多问题,即使这样,这仍旧是未来线下交易匹配系统的一种可能。




3  时空价值


时空划分是为了方便评估不同时空域的价值。 时空价值的计算分为两步:第一步,需求预估;第二步,利用预估结果分析每个时空域的价值。无论在传统行业还是基于互联网的线下交易匹配系统,需求预估都是商业模式能够运行的基础。这里以外卖为例,具体的问题是:如何预估晚上8点到8点半东直门附近写字楼里外卖的需求,即预估晚上8点到8点半的东直门这样一个时空域里的需求量。


3.1  时空需求预估


在传统的供应链需求预测中,需要挖掘两个核心因素:趋势和周期性。


关于趋势的算法有移动平均和指数平滑这两种基本思路。在移动平均中,下一个阶段的需求值等于前一段时间的需求平均值。在指数平滑中,历史的数据也对当前的需求量预估产生影响,但是时间越远,权重越低。在指数平滑的基础上,再考虑需求的周期性,即比较著名的Holt-Winters法,也被广泛应用在传统的供应链管理中。


具体到线下交易匹配系统中,也可以用类似的方法来拟合8点到8点半东直门附件写字楼的需求。需要考虑周一到周日,为整个预估算法添加周期性。在具体的外卖预测中,可以将周期性变为两类:一类是工作日,一类是非工作日。具体的预测公式可以设计如下:



其中k_x表示当天是工作日或非工作日的权重,工作日和非工作日分别使用不同的值,这个具体数值可以用一段历史实际数据来计算得到。x_i表示距离现在第i天的需求值,k_i表示距离现在第i天是否是工作日的权重。这个函数的时间衰减系数权重和刚好为1,如果采用别的衰减系数,则需要进行归一化。


基于需求预测方法的优势是方法简单、容易理解,但也有一定局限,那就是需要大量的历史数据。尤其是当时空域切割到比较小的时候,每个时空域内累计的数据有限,难以做出有效预测。类似北京这样的超级城市,一天可以切分为上万个时空域。每个时空域内需要累计大量的需求才能预估这个时间段的外卖需求,即使如美团和饿了么这种量级公司的数据也难以做到。这个时候就需要用更高级的算法进行需求预测。


一个很容易理解的事实是,不同时空之前是有相互关联的,相似的地方外卖的需求是类似的,比如写字楼和写字楼,小区和小区,这也意味着相似地方的数据可以相互补充。虽然行为数据是稀疏的,但是挖掘不同时空域之间的关联性可以提高每个时空域预测的准确性。这个问题就变成了如何利用稀疏矩阵去预测全矩阵的问题,这也是所有推荐系统问题的元问题。将大量的特征数据作为入参,使用SVD、决策树等机器学习算法都可以求解,进一步降低对原始数据的需求。


3.2  基于转移概率的时空价值预估


无论是基于趋势和周期性的规则预测方法,还是基于的机器学习算法的预测方法,都得利用历史数据对未来需要进行拟合。但是时空域内的需求并不等价于时空域的价值。外卖因为限定了配送范围,外卖配送员只能在一定的区域内活动,时空域内的需求基本可以认为是时空价值。但是在服务没有范围的行业则不是这样,比如网约车行业,假设有两个时空域:某个时空域出发的订单很多,但是大部分需求都是赶往郊区的,而郊区订单较少,司机只能自己空驶回到城区;另一个时空域,虽然出发的订单相对少一些,但是需求基本上都是赶到别的热区。对比这两个时空域,第一个时空域的时空价值就可能低于后者。类似打车这样的线下交易匹配系统,时空价值的计算需要更多策略。


基于转移概率的时空价值是这个问题的一个直观解法。在已经预估出未来需求的基础上,这个问题可以直接转化为运筹问题。这个问题的核心是转移概率的计算。转移概率是马尔可夫链中的重要概念,若马氏链由m个状态组成,从状态i出发,经过一次转移,状态变成j的概率为转移概率P_ij。在实际背景中怎么理解这个问题呢?


比如8点到8点半的中关村是一个时空域,车辆会从这个时空域流转到其他时空域,即存在转移概率。通过对一段时间内的订单数据进行追踪,可以知道不同时空域内的转移概率和期望收益,也就计算得到了时空域的时空价值。比如A时空域期望有10个订单,其中去了B时空域的订单有5个,C时空域的订单有3个,D时空域的订单有2个,A分别到B、C、D时空域的价值转移概率就是0.5、0.3、0.2。假设A、B、C、D的时空价值分别是V_A 、V_B 、V_C 、V_D,A时空域转移到其他时空域的订单平均收益为R_AB 、R_AC 、R_AD。那么A的时空价值就是:



基于转移概率的方法从模型层面是可解释的,也可以求得比较好的解,但问题也很明显;一是要求数据量大。一个时空域内的需求本身可能就比较少,为了计算从一个时空域到另一个的时空域的概率,就可能需要把需求量分割得更小,导致计算转移概率的数据量将非常小;二是实现成本比较高,大量的转移概率计算和迭代有很大的计算开销。


3.3  基于邻域的时空价值预估


基于邻域的时空价值预估是我想到的一个比较简单的启发式方法,目前还没有实际应用,但是从理论测算来看是一个比较简单可行的时空价值预估模型。在小数据规模下,基于邻域的时空价值预估算法效果会好于基于转移概率的时空价值预估方法。同样以打车为例解释这种算法。


每个打车需求由六个变量刻画:起始地点的经度、纬度、时间,以及结束地点的经度、纬度、时间,我们可以在三维空间刻画这个问题。经纬度本来就可以用来描述空间位置,时间乘以平均车速就可以将时间也转化为距离,这样经度、纬度、时间就在一个量纲内,可以用欧式距离处理这个三维时空内的距离问题。时空价值分析不外乎分析某个具体订单的具体价值,那么一个时空域的价值就可以分解为起点的价值和终点的价值。


一个时间域作为起点价值,需要找到订单终点距离这个时空域最近的k个订单,计算到达时空域的成本,时空域成本越小,时空价值越高。


一个时空域作为终点价值,需要找到订单起点距离这个时空域最近的k个订单,计算订单价值和赶往这些地点的成本。赶往订单起始点的成本越低,则时空价值越高。订单平均价值越高,则时空价值越高。这个成本不仅包含赶过去的成本,还包含司机等候的时间成本。这个过程如图11-1所示。




图11-1  基于邻域的空间价值示意图


这一方法优势在于能够有效衡量稀疏需求下的时空价值,即不需要每个时空域里都有充足的订单也可以计算时空价值。而且算法相对比较简单,也是创业公司可以快速上线的策略模式。针对不同的业务模式,计算成本和收益的具体方法都可以变,但是核心不变,即分别用起点和终点距离某个时空域最近的k个订单去计算这个时空域的价值,保证无论一个时空域里有多少需求量,这个时空域的成本都可以被估算。



4  服务匹配方法


在线下交易匹配系统中,即使没有估计空间价值,也可以将服务和用户进行匹配,服务匹配模型是整个系统的基础。本节会详细地介绍服务匹配方法。


4.1  匹配度的构建


匹配度就是计算用户需求和服务者之间的相关度,为了构建匹配模型,需要将匹配度进行量化。


这里仍然以打车为例。乘客在叫车时,乘客关心的是:


  • 希望快速上车出发,则司机和乘客之间的距离越近就意味着司机到达越快,乘客等待时间越短;

  • 希望有好的服务,则服务评分越高的司机往往更能提供优质的服务。


而司机则期待订单价值越大越好,如果乘客的终点是热点地区就会有更高的收入。


如此看来,乘客和司机的匹配度函数就应该由接驾距离、服务质量、订单价值三个因子构成,还要对每个因子进行有效的归一化和变形,才能让结果符合预期。


需要强调的一点是,系统即便对每个乘客及其周围的司机都有相关度计算,也不意味着所有乘客都可以得到最合适的司机。这就回到了一个乘客经常抱怨的问题:“为什么不给我派最近的车?”即使核心函数中只有接驾距离一个因子,也不一定会给每个用户都匹配最近的车。


具体案例如图11-2左边所示,距离乘客A最近的车是a,在只有A打车的情况下可以给乘客A派最近的车。但是如果同时有两个乘客叫车,如图11-2右边所示,如果给乘客A分配车辆a,会导致B分配到的车都会比较远。


正确的做法是给乘客A分配车辆b,给乘客B分配车辆a,这样虽然乘客A就分配不到最近的车,但是A和B都能叫到一个不太远的车,系统结果更优。而实际在设计服务匹配方法中还需要考虑多种其他因素,比如服务、公平等,就更不可能给所有乘客都分配最近的车。

 

图11-2  车辆分配案例


从这个例子中看出,系统应该寻求的是整个系统的匹配度最优化,下面会介绍可以用什么样的方法来达到系统的最优化。


4.2  二分图匹配


二分图是图论中的一种特殊模型。通俗解释,二分图有两类点,分别在两个互不相交的子集中,同时每条边都可以连接这两个子集中的点。打车问题就是典型的二分图问题,两个子集分别代表司机和乘客,司机和乘客的匹配度就是连接两个子集的边的权重,如图11-3所示。

 

图11-3  二分图示意图


在二分图中,有一个经典问题就是如何求二分图的最大匹配。最大匹配的定义就是任意点只连接一条边,同时边的权重最大。打车问题就是要求系统让尽可能多的人叫到车,同时让乘客和司机之间的匹配度之和最大,这也正是我们希望得到的线下交易匹配系统最好的结果。


值得庆幸的是,可使用贪心算法或者KM算法来解决最大匹配问题,尤其KM算法可以求得全局最优解。只要将所有需要的因素都考虑进KM算法中,这个算法就可以每隔一段时间(比如2s或10s)执行一次,每次执行均有服务者或用户退出系统,也有新的服务者或用户加入,循环执行,不断匹配,就可以持续实现服务匹配。



5  线下交易运营


线下交易运营主要指找到线下交易匹配系统的薄弱环节,进行干预,在用户侧调控需求,在服务侧调控供给,使得收益最大化。


5.1  用户侧运营


用户侧运营是通过运营来调控用户发单的需求,通常包括两个方面:一是调节平峰时间供需关系;另一个是定向拉新、促活和召回。


时空模型会预测出规律,比如节假日和平时、高峰期和平峰期的供需关系会有明显的区别,运营可以在一定程度让供需尽可能匹配。调控需求的主要手段是价格干预:给平峰期设置更优惠的价格,尽可能让需求多出现在平峰期;在需求特别缺少,甚至影响到服务者平均收入的时候,也可以通过优惠活动促进供需匹配。


而在日常的拉新、促活和召回中,时空分析同样有效,不同的时空域代表着不同的场景,在特定场景下的用户价值也会有不同。以打车场景为例,晚上去高级消费场所的一般是高消费的高价值用户,但是在白天通勤时间前往消费场所的则可能是消费场所的工作人员。根据这个规律对特定时段的可能前往高级消费场所的用户进行留存干预会更加有效。


价格杠杆调节需求在共享单车中的实现案例就是红包骑车。通过计算发现某些车辆在冷区无人问津,通过骑车发红包的方式,让用户主动去找这些可能停放位置不显眼的车,提高资源的利用效率。


5.2  服务侧激励


在用户侧运营让需求尽可能可控和稳定的同时,还需要服务侧激励,让高峰时段的供给更多。在网约车行业中,最常见的案例就是早晚高峰和重要节假日。一方面乘客在早晚高峰时段集中出行,需求旺盛,而另一方面,早晚高峰也意味着交通拥堵,导致司机服务乘客的时间更多,还未必比其他时段挣钱更多,很多司机会倾向于早高峰或者晚高峰休息。因此,为了服务更多乘客,需要服务侧激励提高司机在早晚高峰服务的意愿。通过设置合理的高峰时段的补贴和奖励措施,让司机早晚高峰的辛苦得到更多的回报。重要节假日也一样,应该出台对司机更有利的政策,尽可能提高司机在重要节假日的出车意愿。


服务侧激励往往成本较高,付出1元成本,司机只能得到1元的收入。通过乘客激励的方式可以让司机获得更高的收入,比如给乘客10元优惠券,乘客可能会花50~100元多打一次车,司机因此就能得到多于直接激励的收入。在用户需求不饱和的时间段,要提高司机收入,应该优先考虑提升乘客的需求;在用户需求高度饱和的时间段,才应该用服务侧激励提高司机的收入。


5.3  动态调价


对打车而言:当价格提高的时候,对价格比较敏感或者出行需求不是特别迫切的用户可能会选择公共交通出行或者暂时不出行,从而把服务能力留给更迫切和必要的用户;当价格有优惠的时候,一些本来可以选择公共交通或者暂时不出行的用户,也可能因此选择打车出行。


动态调价的机制就是基于这个现象产生的,其核心就是计算调价的倍率。倍率主要是对某个空间未来一小段时间的供需关系的预估,这个预估主要包括两个方面:一方面是基于过去一段时间这个时空域的供需关系对接下来这段时间的供需关系进行预估;另一方面是通过当前的供需关系预估因突发事件对供需关系所造成的冲击,比如恶劣天气。当综合考虑历史数据和当前数据之后,如果发现接下来需求要远远大于供给时,就可以让动态调价倍率更高。动态调价也要有一定的边界,尤其是在国内大家对于市场机制并不完全接受的情况下,就一定要做好用户的沟通,并且设置兜底策略,需要对动态加价设置上限,防止算法计算出的倍率过高而引发用户的抵触情绪。


5.4  预期可视化


无论如何调控,还是会存在供需关系无法调节的场景,对于用户而言,当周围服务资源比较紧张的时候,系统需要做的就是尽可能给用户一个确定性的预期。


给用户一个当前系统的状态,以及预期达到的时间,这在大部分系统设计中都是必要的。对于高峰期的效率降低,大部分用户都是有预期且可以理解的,但是用户不能忍受不确定性,系统设计就是要尽可能消除用户的不确定性。在打车系统中,告知用户当前的排队位置和预期时间,快递和外卖行业中,用户下单时明确告知用户预计送达时间,同时实时跟踪整个派件过程中快递的位置,都是消除用户不确定性的做法。


预期可视化不仅线下交易匹配系统需要,所有和用户进行直接交互的系统也都需要考虑,保证用户的确定性和可控制性是面向用户设计的基本原则。


5.5  高价值用户保护


当服务资源特别稀缺时,所有用户可被服务的概率都会降低,且都会受到调控手段的干扰。在这样的情况下可能就需要对高价值用户做额外的保护。


比如打车遭遇恶劣天气不能保证所有的用户都被接单时,就要优先保证高级会员的体验。而类似价格动态调整这样的策略,对高价值用户使用是不合适的。毕竟我们希望和高价值用户建立更长期的信任关系,不能用价格手段抑制这些用户的需求。


对于高价值用户的保护在服务业是非常常见的,比如银行的高级会员可以免排队,车站和机场的高级用户可以提前进站和登机。线下交易匹配系统本质上也是服务业,也需要对核心用户进行保护。



6  线下交易的挑战


线下交易是一个新的课题,在本章最后,会讨论线下交易产业所面临的挑战。


6.1  押金模式的困境

线下交易的产品中用户可能会使用系统的固定资产,而服务收取的费用一般远小于用户可能对系统的固定资产造成的伤害。以共享单车为例,用户一次骑行支付费用最低仅需要1元,但是如果用户拿走了这辆车或者对这辆车进行破坏性使用,那么一辆车带来的损失可能是使用费用的几百倍甚至上千倍。这就意味着,对于共享单车企业而言,想要盈利的话,至少得把恶意乘客使用的比例控制在千分之一以下。为了达到这个目标,共享单车企业想到的方法是使用押金,一旦有确定性证据证明用户恶意用车,可以从押金中进行抵扣。


但是押金同样也带来了另一个风险,那就是用户财产的损失。这个行业普遍存在挪用押金的情况,甚至有些恶意企业做共享单车业务的目标就是为了获取用户的押金。比如,某企业注册用户1600万,押金298元,前后投放车辆140余万辆,押金总金额远高于车辆资产成本,最终携款倒闭,大量用户的押金不了了之。用户的押金应该存放在第三方机构,并且保证押金不贬值。


虽然押金问题非常明显,但是押金现象在国内还是普遍存在的,一个很重要的原因就是征信体系的缺失。对于企业而言,无法知道一个新用户的信用如何,所以需要通过押金来保证企业资产的安全,而一个用户即便在使用服务的过程中有恶意的行为,也不会承担严重的后果。在征信体系健全的国家,一些不诚信行为会通过征信体系传递到相关行业,一个逃单可能就会造成用户申请贷款难、信用卡额度受限等严重后果,有效限制用户的恶意行为。


除了用户征信体系的缺失,押金模式普遍存在的另一个原因是国内黑产行业的发达。基层运营商释放了大量没有绑定有效身份证的手机号,使得黑产行业可以廉价地获得了大量的手机号,并利用这些手机号批量注册大量的账号,去各个产品中获取利益,比如微博的僵尸粉、互联网金融的风险用户、电商的羊毛党。在线下交易产品里,黑产也是如影随形,资产盗窃或者使用服务后造成坏账,都是行业面临的严峻问题。


目前阿里和腾讯利用自身积累的大量用户行为数据,分别推出了用户的信用分,在一定程度上能够替代押金模式。但是一旦对接阿里或者腾讯的信用分,则意味着用户的交易行为数据会暴露给这两家公司,也可能产生其他的隐患。


6.2  社会和政策的影响


线下交易行业在提供服务的同时,也在改变着社会的规则。而这样的改变一方面可以更好地服务用户,但是另一方面也会有负面影响。


当网约车软件出现之后,用户可以方便地用手机打到车,但是同时也触犯了传统出租车公司的利益。无论在海外还是在国内,网约车公司都受到了传统出租车行业的抵制。除此之外,网约车软件对一些特定人群并不友好。通过系统发单的方式,车辆减少了空驶率,但是另一方面,在路上招手叫出租车也变得几乎不可能。对于一些不会使用网约车软件的老人而言,这并不是一个好消息。这是网约车软件的负面社会影响。2016年年底,国家出台了网约车新政让网约车市场规范化运营,对于网约车公司而言,新政让规模化增加司机变得更加困难,使得运营成本进一步加大。


共享单车在缓解城市交通拥堵、节能减排上有非常明显的优势。但另一方面如果公司不回收废旧车辆、用户随意堆放车辆,会占用公共空间和市政资源。这是共享单车的负面社会影响。 而共享单车行业的激烈竞争造成了大量的车辆投放,实际上已经让很多共享单车变成了城市垃圾。为了控制这样的趋势,政府也出台了政策进一步限制共享单车的投放。


不仅网约车和共享单车行业,线下交易行业有着各种问题。共享汽车可能长时间占用停车位;快递造成了很多包装垃圾;外卖造成了一次性餐具的增长。对于行业发展可能造成的社会影响,作为从业者一定要有清醒的意识,否则可能就会有政府政策出台纠正,轻则管制,重则取缔。


当然,即使有着各种社会和政策问题,产品和技术本身也需要持续发展。只有让产品和社会产生碰撞,才能让问题暴露并解决,最终让社会接受新的产品和技术,这也是社会发展的客观规律。


6.3  供需时空分布不均


供需时空分布不均的问题是线下交易匹配系统要解决的核心问题。需求只要不是均匀分布,有高峰和低谷,就意味着在高峰期需求难以满足,在平峰期服务能力过剩。为了缓解这个问题,就要求用一些杠杆尽可能让供需匹配,可以通过浮动定价和高峰期排队等策略让用户尽可能避开高峰期发出需求,让需求尽可能匹配服务能力;也可以通过奖励和补贴让服务者多在高峰期提供服务,让服务能力尽可能匹配需求。但是这样的策略本质上也仅仅是缓解供需时空不匹配的问题,无法从根本上解决这些问题。


当然可能有人会问,为什么不提供即使在高峰期也能满足需求的服务能力?除非提供服务能力不需要固定成本的投入,否则这在经济学上就是不成立的,因为这样会极大地压缩利润空间,甚至导致亏损。


供需不匹配的问题会持续存在,而对供需不匹配情况下的策略优化,是线下交易产品利润率优化的一个关键点,也是未来面临的一大挑战。


6.4  无法兼顾效率和业务目标


线下交易匹配系统往往是非常复杂的系统,需要考虑的不仅仅是单纯的效率,还需要考虑多个业务目标。如何在构建线下交易匹配系统时兼顾效率和业务目标,也是一个比较大的挑战。


以打车系统为例,前面已经介绍了以效率为单一目标的策略该如何设计,但这往往不是系统最佳的状态。打车系统一个重要的业务目标就是提升司机的服务,因此线下交易匹配系统就应该提升高服务质量司机的收入。那么,在需求少、司机多的情况下,即使一个高服务质量的司机距离需求更远,也可以优先指派服务质量高的司机接单。不仅是服务,也可能有其他的业务指标,比如为了提高新手司机的留存而给他们更高的分单优先级。


效率也好,业务目标也好,最终体现在一个共同的核心函数中。这个核心函数就需要经过详细的测算,不能只考虑效率,但也不可能为了业务目标去牺牲太多效率。比如一个用户呼叫服务,服务好的司机在5公里,服务一般的司机距离乘客1公里,那么显然应该优先匹配1公里的订单。简而言之,实现业务目标一定是在满足效率目标的基础上的。


为了达成效率和其他业务指标的平衡,系统设计者需要对系统构建和业务均有很深的理解,这对系统设计者是很大的挑战。


6.5  数据挖掘和算法创新


当然,线下交易匹配系统最大的问题还是在数据和算法上。这是一个约束很多、没有成熟算法可以参考的系统。


线下交易匹配系统的时空域转移数据该如何处理?它们不是商品,不是泾渭分明的多个SKU。在地理信息中包含的用户特征信息该如何抽象出来并且被算法理解?


当一个区域内只有少量需求的时候,如何从这些少量需求中挖掘出各个时空域的需求分布?怎么将地理数据的相似性作为需求预测的入参?


即使通过仿真系统进行强化学习,构建怎样的模型架构才是合理且高效的,才能让算法在更复杂的环境中也能适用?


如何利用这些服务能力相互协同,从而构建将来的智慧城市?


这些问题都没有被很好地回答,但都是线下交易匹配系统需要克服的问题。本章讨论的内容,或许只是未来更先进系统的脚手架。


7  小结


相比于内容分发,线下交易匹配系统是互联网行业面临的新问题。因为线下服务的特点,线下交易匹配系统注定需要用不同的思路去探索解决方案。本章所讲解的线下交易运营策略,以及线下交易面临的挑战,则是对当前行业现状的介绍和探讨。


服务行业通过算法提升效率和体验,已成为基本共识。在过去的20年里,互联网回答了人们应该看到怎么样的内容,接下来的十几年里,互联网需要回答人们应该享受怎样的服务。未来我们生活在什么样的城市中,这个城市又是怎么将数据接入互联网的,而这些数据又是怎么深刻地影响了城市这一系统的运行。现在,关于线下交易匹配系统的大多数问题,无论是业界还是学界,都没能给出一个很好的答案,对于互联网从业者而言,是巨大的挑战,当然也是巨大的机遇。



- 本文作者的书 - 



今天看啥 -
本文地址:http://www.jintiankansha.me/t/Bx02nqbm7Y