导读:7月22日,2022年GIAC全球互联网架构大会在深圳顺利举行。哈啰高级算法专家王凡老师做了《哈啰顺风车智能交易体系建设》的主题分享。包括以下几大部分:业务背景介绍、智能应用、方法总结。
业务背景介绍
公司背景介绍
文章图片
哈啰从大家熟悉的共享单车业务起步,顺风车业务上线已有三年多的时间,在从无到有的过程中算法陪伴业务一起成长。“以技术驱动更合理的司乘匹配出行供需,为用户提供更值得信赖的拼车服务”提到的司乘匹配出行供需,实际上就体现出算法在产品当中的价值。
顺风车产品的基本流程
文章图片
上图是顺风车产品中几个主流的页面。第一个页面是乘客发单,乘客会打开他的界面发出行时间和目的地,这样就会产生一个订单,订单产生后我们的系统就会把订单推送到司机这边。司机在不同的场景下会收到不同的订单,如果司机有自己的路线,他就会收到跟路线比较匹配的订单;如果司机没有自己的路线,他就会收到自己附近的订单。司机选好单后会去接单,最后就会完单。我们主要的功能就是发单、接单和完单的过程,还有其他一些辅助的功能。实际上这个过程是一个漏斗,每一个步骤都是会有漏损的。打开APP的人肯定是数量最多的,但不是所有打开的人都会发单,不是所有发完单的人都会被接单,不是所有接单的都可以完单。这当中的漏损是非常大的,我们顺风车的产品就是要提高效率,把漏斗最上层的人尽量多完单。
文章图片
要达成这一目标是非常复杂的,它的复杂性体现在哪里呢?第一个方面体现在外部的市场环境特别复杂,顺风车业务是全国性的业务,各个城市的特点不同,还会受到天气等因素影响。第二个方面体现在它是涉及到三方的,拿两轮业务来进行对比,它只涉及到我们的用户和平台这两方,但顺风车业务里有司机、乘客、平台这三方,很大程度上增加了问题的复杂性。第三个方面体现在决策环节多,顺风车业务除了有发单、接单和完单,还有很多支线的环节,比如用户发完单之后有可能取消,司机接完单之后有可能觉得路程太远而取消,还可能会产生一些投诉而造成流失,因此这当中的决策过程很多。最后一个方面体现在目标体系非常复杂,整个过程中我们的目标是尽可能让更多人去完单,有可能我们在做司乘匹配时由于效率优先,可能会忽略一些用户的体验。
顺风车产品功能汇总
文章图片
我们把上面的这些问题汇总一下。最左边是市场环境,就是我们讲的外部环境特别复杂,顺风车产品的运营城市和竞争对手各种各样,司机群体和乘客群体的行为习惯也会不同,还会面临营销预算的限制,因此我们在不同类型的城市投入的资源也会不一样,这些都是我们顺风车交易系统的输入。然后乘客就会进行发单,发单后我们有很多的决策环节,比如订单匹配、定价营销和仲裁,接着司机会完单。最后可以看到,我们业务的结果也是复杂的,包括平台完单量、平台收入、司机接单数、司机收入、乘客的留存率和投诉率。
顺风车问题拆解
文章图片
我们对整个过程进行了拆解,首先是订单匹配的问题。市场环境主要看人口特性、司机群体、乘客群体和竞争对手。在乘客发完单后,我们需要做订单匹配,大家可以看到有一个列表,实际上它是一个推荐系统。我们需要对订单进行排序,排序之后司机从这个列表里面选出他最满意的去做完单,最后拿到的业务效果是订单的规模和交易的规模。
文章图片
拆解的第二个问题是定价和营销,市场环境看司机的密度、乘客的密度、竞争对手和营销预算。输入交易系统后,我们会在乘客发单前或发单后给到一些营销的方法,在接单的过程中会给到他一些定价。图中定价用红框标了出来,我们可以实时给出价格,还会有一些实时优惠,这是由营销算法动态生成的。最后给到我们的乘客之后,乘客用这个价格进行完单。这个场景业务结果是我们平台的完单量、平台的收入、司机的收入和乘客的留存率。
文章图片
拆解的最后一个问题是仲裁,也是我们交易系统里比较重要的一块。市场环境主要看司机群体和乘客群体,基本上我们的仲裁都发生在司机和乘客之间,当然也有单独一方的情况。通常乘客在发单到完单的过程中会出现一些问题,我们就需要对出现的问题进行判断,到底是谁的责任,也会做一些相应的处理。最终它会影响的业务结果就是用户的留存率和用户的投诉率这两个关键的指标。从短期的指标来看,我们看到的是用户的投诉率,但长期来看的话就是用户的留存率。
定义智能应用
文章图片
我们对问题进行拆解之后,会根据不同的目标产生不同算法的应用。根据交易效率和业务规模,我们推导出智能匹配的算法应用;根据收入管理,我们推导出智能定价的应用;根据营销效率,我们推导出智能营销的应用;根据用户体验,我们推导出智能判责的应用。
对于抽象的算法问题,我们也有一套方法论。首先要对价值进行分析,可以看到至少这里有四个项目去做,先做哪个后做哪个项目,我们就需要对价值进行预估。总体来看,智能匹配的价值是最大的,所以我们在上面最先进行投入,而且投入的时间最长。从顺风车上线后的短时间内,我们就开发了智能匹配的一套算法,一直迭代到今天,而且持续在给我们的业务带来增量的价值。
一旦有了价值之后,我们就需要对目标做一些量化,就是我们怎么样去衡量这样的一套指标。比方说交易效率,我们就定了发完率指标作为一个核心指标,发单的人到完单的人中转化效率越高,就代表交易效率更高。
接着我们需要做问题的定义,是指我们机器学习里面是什么样的问题,它是一个分类问题还是回归问题。最后我们再小心地进行求证,就是说逐步投入资源进行验证,我们会尽量减小操作的半径,投入最小的人力把它的效果验证出来。如果能不用算法来验证,我们会用一些策略来验证。
算法应用
订单匹配
文章图片
做智能订单匹配前,就像刚才讲的那套方法论,我们要衡量它的价值大不大。顺风车业务跟网约车不一样,它的特殊性决定了做推荐的空间很大。首先从时效性上,网约车一般我们打了车马上车就会过来,而顺风车有可能是提前一两天打的,至少也是提前几个小时打的。我们在做匹配的时候,匹配范围就发的大。其次是从司机上,一般网约车的司机约束力是比较强的,但是顺风车很多是第三方或私家车的司机,约束力就没有那么强。第三从价格上,顺风车的价格会更便宜。最后从体验上,顺风车会差一点,网约车服务的到位性会更高。
根据顺风车的特点,技术上还是存在很多挑战的。所以顺风车产品不是一个标准化的产品,它的特点就是不确定性高,司机提供的服务差异比较大,用户的期望值也参差不齐。此外它的配对范围大,不仅体现在时间上也体现在距离上。同时它存在着大量的未知因素,规则很难保证效果。
所以顺风车的技术机会就是好的匹配和不好的匹配策略产生的结果差异非常大,比如在打车里面我们会把订单派给距离最近的司机,这样一个简单的策略产生的结果也不会太差,但如果在顺风车这样的场景里,可能产生的结果跟最优的方案效果差距会非常大。另外机器学习也是善于从不确定性中去找到确定性。还有很重要的一点就是这个场景是业务的主要流程,它的潜力是非常大的,我们的订单非常多,每一个订单都需要经过匹配,匹配的好坏对结果有非常重要的影响。
文章图片
接下来我们来看一下智能订单匹配系统的架构。智能匹配实际上是一个复杂的推荐系统,需要用各种各样的数据,包括离线的数据,比如人口统计、接单偏好、聊天的记录、职业标签、历史完单目的地和轨迹信息。还有实时的一些数据,比如实时点击行为、实时轨迹、实时地块数据。这些都会被拿来用做特征,放到我们的模型里面。模型作为一个推荐系统,会有召回、排序和规则引擎这样的步骤,最后计算出一个结果并进行排序,这就是我们的智能订单匹配系统的架构。
文章图片
【哈啰顺风车智能交易体系建设(上)】顺风车的推荐系统和广告的推荐系统也会有一些差别。广告的推荐系统是一个广告库,广告库里面有各种各样的广告,它的量级达到了百万级。首先做一个召回,然后把它放入到一个粗排模型里面,从召回到粗排大概就只剩下几千条或者几万条了。粗排之后会得到一个截断的结果,这个量级大约是几千条。接着就会进入到精排模型,对数千条选中的广告进行比较精细的排序,它的耗时会比粗排模型的耗时更长。然后选中前几百个,再对他做一个截断,放到重排的策略里面去。重排会根据不同的目标,对它进行一些规则上的排序。最后会推送到用户的前端设备里面,数量在十条左右,这就是用户会看到的结果。它的特点是候选集的数量更大,可以离线计算。而顺风车的推荐系统是不一样的,我们有很多东西是要实时计算的。候选集的数量也很大,比如说一个司机现在要去接单,实际上他能够接的单是非常多的,所以召回的数量就需要我们去用一些规则进行截断,大概有几万条这样的数据。然后我们也会进行粗排,粗排之后要去对它进行一个排序,接着是重排,最后会有几十条数据显示给司机。与广告不同,顺风车的每一个订单都需要有起点、终点和路径规划,所以需要大量调用地图的服务,对性能也会有非常大的压力。
文章图片
接下来介绍一下算法的探索过程。我们的迭代路径分几个阶段,顺风车业务刚上线的时候是没有算法接入的,起初是一个规则的版本,对每一个订单是否会被完单去进行预测。在这样的基础上,我们首先做了算法化,由于需要快速上线,所以我们用的方法是比较简单的,主要用了线性模型和lightgbm这两种方式,在业务早期的时候就实现了一定的算法化,当时取得的效果还是比较明显的。第二个阶段是在2020年到2021年间,我们做了深度化的改造。随着数据越来越多,模型渐渐深度化,所以我们的模型也越来越大,深度也越来越深。在我们深度模型发展的趋势里,Wide&Deep是一个重要的里程碑,在这个阶段我们也把它应用到系统当中,训练出来新的模型,它比以前的线性模型和树模型效果更好。基于Wide&Deep,我们又去做了DeepFM和xDeepFM,都是业界比较主流的模型,我们都一个个去迭代和实现,带来了正向的效果。第三个发展阶段是定制化,现有的模型已经不能满足业务继续增长,所以我们根据业务的特点设计了新的模型。这些模型不是通用的模型,在业界也不是通用的做法。这里我们去进行了一些改造,根据数据的特性我们做了实时序列模型,根据模型的结构改造我们做了多任务模型,根据业务的策略我们做了智能化的顺路度。通过这样的一系列改造,我们累计给大盘的订单量提升了超过20%,效果非常显著。
下篇将具体介绍订单匹配的排序模型、营销定价和智能仲裁,以及过程中方法经验总结。
(本文作者:王凡)
文章图片
本文系哈啰技术团队出品,未经许可,不得进行商业性转载或者使用。非商业目的转载或使用本文内容,敬请注明“内容转载自哈啰技术团队”。