本次跟大家分享的是哈啰顺风车智能交易体系建设。上篇,我们介绍了哈啰顺风车的业务背景和智能应用中的订单匹配。
算法应用
订单匹配
首先介绍一下多任务模型,业务背景是我们要做发完单的预测,预测的越准,做排序的时候也就越准。但在做发完单预测的过程中,我们的数据量是相对有限的,之前讲了因为我们是一个漏斗,在发单到接单的过程当中,会产生大量的数据,这部分数据实际上是丢失的。如果能够把这部分数据用上的话,对提高我们模型的性能会有帮助。所以我们根据这个情况,设计了一个双塔结构的模型,我们把发单和接单模型训练成了单独的模型,相当于是一个辅助的任务和主任务拼接在一起进行训练。这样训练后的模型,就能够利用更多的数据,当然过程中我们也设计了一些定制化的损失函数。通过这样的方法训练下来,我们给这个模型起了个名字叫WDMM模型,它比Wide&Deep模型效率提升了2.65%。
接下来介绍一下实时序列模型,我们对司机的行为模式进行识别,司机基本可以分为职业司机和非职业司机,但实际上司机还有很多不同的状态,所以我们对司机在地图上的各种活动,把他的行为序列做了向量化。我们使用 Attention的交互去做,把它映射成了一个向量,然后把这个向量和其他的特征拼接起来,再放到模型里面去,这样就能够更好的去体现司机的行为模式。最后我们去跟Wide&Deep模型比较,可以看到效率提升了3%。
接下来介绍一下策略优化,是顺路度的改造。在我们的推荐列表上是有一些顺路度的,它直接显示在上面,会对司机的接单决策产生影响。起初的顺路度是地理上的顺路度,可以看到左边的图是某竞品APP的顺路度,顺路度显示的都是一样的,这样就不能引导点击推荐列表上最高位的那一个,而推荐列表上最高的那一位才是完单概率最高的。所以根据这个情况,我们就对物理的顺路度进行了一些改造,融入了更多与完单概率类似的一些因子,比如时间是否匹配,接驾的起点终点是否匹配,以及把共享里程与绕路度都加进去了。做完了之后,我们可以看到顺路度的逻辑基本上与推荐列表的逻辑是一致的,这样能提升司机的决策信心,大盘的增幅超过了5%。
接下来介绍一下召回,刚才也提到了跟其他广告系统去比较的话,我们召回的特点首先是实时性,就是我们需要实时计算路径等信息。第二个特点是同质性,与视频网站可以给用户推荐不同性质的视频不同的是,我们的系统推的基本上是订单,类型并不会有太大的差别。第三是平均数量适中,数量差异大。召回是推荐的底盘,所以我们会根据找到的问题,制定不同的应对方法。第一点是由于我们是实时计算的,所以不可能做向量化。第二点是我们可以按照地理分布、时间分布等策略方式进行召回。第三点是范围可以适度进行扩大,此外不同的城市会进行不同策略的召回。总体来说召回就是尽量多的把想要召回的召回,如果召回太多,性能又会受不了,所以我们需要去预判什么样的情况性能还能承受。在我们做了一些召回策略上的调试之后,大盘会有2%左右的提升。
最后是我们订单匹配的工程方案,我们要实现这样的方案还需要依赖一些工程能力。之前提到我们时间的要求非常高,这里依赖了搜索引擎的算法插件系统和高性能Rank Service系统,此外还要依赖司乘同显服务的能力。由算法和工程的一些底层能力,共同构成了这样的一套方案,能够帮助我们完成订单匹配的工作。
营销和定价
我们的定价方式有基础定价、城市差异定价、感知竞对变化,最终我们希望能够做到智能定价。现在我们基本还在第二个阶段,也就是城市差异定价。影响的因素首先是供需,可以看到价格不断提高的话,我的需求就会降低,供给就会增加。我们进行不合理的定价和最合理的定价,产生的业务量是不一样的。另外一个因素是竞争,我们的竞争对手给市场定下的价值,也会培养市场上司机和乘客的认识,对我们也是有影响的。此外时间地点对我们也是有影响的。
定价完了之后,我们把定价和营销放在一起来说,营销实际上也是做了定价的工作。我们可以看到上图,我们补贴了一些金额让需求曲线往上移动。在给乘客进行补贴的时候,我们获得了业务量的增加。具体到一次营销活动,我们可以看到算法策略的价值比运营策略的价值高一些,也就是我们营销所带来的增量的价值,这就是我们的背景。
接下来介绍一下智能定价,这里的智能定价实际上也是一种营销。我们并没有同时对两边进行调整,而会把当中的差额自己提供补贴给用户,所以它也是一种营销。实际上这是在打车业务里去做的,跟顺风车类似,我们希望在业务的场景里去保持每个区域里面的供需的比例基本一致。所以我们会去发现供需失衡的场景,然后再圈选哪些人需要进行补贴,并对他进行个性化的补贴。可以看到在这种情况下,算法是做了差异化的策略,如果没有做差异化的策略,它的钱效就会低30%,这也是我们的算法带来的增量。
接下来是智能营销的应用,其实它就是要维护我们司乘全生命周期的过程,尽量多的让更多的司机和乘客在我们的系统里,我们有拉新、促活、防流失、流失挽回这样的过程。对于新司机如何挖掘,如果新司机注册了想要激活,那就有新车主的奖励金。如果你已经变成新车主了,我们有司机多单任务,提升司机在平台的完成任务的数量。如果他要流失了,我们会进行返现,或者对他做一些流失召回。对于乘客也是类似的,在他的生命周期中进行一些触达以维护乘客。
最后是我们的智能营销方案,主要用到了response模型、uplift模型和运筹优化。我们要做的事情就是决定在什么时间,对哪些人做什么样的营销活动,并且要满足我们预算的要求。目前我们的营销效率相对于运营来说,整体提升的效率在20%左右。
智能仲裁
智能仲裁我们目前并没有大规模的使用,但模型实际上已经上线。在业务中,我们的用户会发生一些投诉的情况,当投诉产生的时候,他就会把 Request发到我们智能判责的引擎里面。智能判责引擎是根据历史情绪反馈的正负样本去进行建模的,就是以往发生了投诉之后,我们判责的案例就会作为正负样本,到底是司机有责还是乘客有责,我们会把路上的一些轨迹信息、录音的信息、用户和司机历史的情况,各种各样的行为都作为特征放到这个模型里面进行训练,构建出了这样的一套模型,会自动对一些比较明显的案例进行判罚,如果是非常不确定的话,就会给到客服那边。
接下来介绍一下智能仲裁的典型场景,比如我们判责的应用有车主催车费判责,是因为我们车主有很多已经到了终点,但是乘客没有点击界面上的已经到达终点。这个时候我们以往的做法就是要隔很长的时间,才会把款打给车主,会引发车主的情绪。这种情况发生,我们可以根据轨迹的信息进行判责,看是否他已经把乘客送到终点,已经有的话就可以把钱款尽早打给司机,这样就可以减少投诉率。类似的也有司机迟到判责等。这类问题都存在一些共性的问题,比如打标数据难以获得、效果难以验证、和主要业务目标冲突。比如说进行处罚之后,他可能就不能完单,这对业务会有负面作用。如何去平衡用户体验和业务增长的目标,需要多与业务和产品进行讨论。
方法总结
算法项目的推进方式
首先要更合理的定义问题,就是我们要预测的是什么,我们的业务目标是什么。这里有一个例子,比如我们要去提升大盘完单完单率,但如果接完率有提高,发完率有降低,这种情况下它有很多的中间指标,有可能最终的指标是没有提升的,但是中间指标有提升,我们怎么样去发现更多的有意义的价值,能够从里面提炼出来,这也是非常重要的。定义好问题之后,接下来是更合理的利用数据。这里需要domian、expert输入,就是业务同学的很多经验对我们是有用的,比如刚才提到的职业司机和非职业司机,实际上也是来源于我们业务的经验,他会对我们的司机群体的特性有一些判断,这些都能够帮助我们去构建构建一些特征和数据。第三步是选择更合适的模型和策略。基本上对于我们的模型来说,减少了偏差和方差这两种错误。我们的模型要选树模型、深度模型、多任务模型等就会相对独立一点。但是前面两步如果我们做的不好,即使后面做的再好,算法也会出现一些问题。
MLOps实践
MLOps就是我们整个训练中怎么流程化、复用、可重现,部署上怎么进行模型管理、注册、上线,运维上我们怎么样能够追踪过程中的指标,比如说用户数、延迟,以及我们怎么样能够告警,比如说线上业务有模型、数据的漂移,怎么样能够及时发现。还有自动化,指的是我们的模型怎么样能够根据不同的情况,阈值有不同的变化。这里有一篇2015年的论文,讲的是机器学习系统里面一些隐形的技术栈,机器学习的code实际上只是整个机器学习解决方案code里面很小的一块,在我们周围实际上还有大量的代码,比如说数据怎么样收集、特征怎么样提取、数据怎么校验、机器资源怎么监控,怎么样去分析、流程怎么管理、上线之后底层的服务怎么样去监管,以及整个服务的运行状态怎么样去监控,这些在以前并没有系统地去进行管理,但实际上我们整个模型上线之后,它出现了种种问题,最终都会反馈到我们这里来。所以这也迫使我们必须做好这些事情。拿告警来说,我们以前可能没有注意到会产生一些问题,比如说做营销的时候,补贴可能很快就发完了。我们也不知道出现了什么样的问题,可能就是上游的数据一个字段没有传过来,这就说明数据发生了一些漂移。后来我们就加了一些监控,就看我们模型每天数据的auc是否有大幅的波动,如果有大幅的波动就说明可能数据有了问题,或者模型有了问题。模型漂移的问题就说明我们用户的群体可能不一样了,用户的行为模式就会不一样,所以我们这个模型也需要自动地去更新,自动地去对抗市场的变化。这些基本上在我们的订单匹配系统里都做到了,我们的模型每个星期都会自动去进行训练,会和最新训练的数据去进行验证,auc进行比较,更好的模型才会自动上线。
最后总结一下,本次分享首先是对顺风车业务进行介绍,包括订单匹配、营销定价和仲裁。并且根据这几个方向做了几个应用,包括智能订单匹配、智能营销定价和智能仲裁。最后介绍了两个经验,包括项目推动的方式和MLOps实践经验。
(本文作者:王凡)
本文系哈啰技术团队出品,未经许可,不得进行商业性转载或者使用。非商业目的转载或使用本文内容,敬请注明“内容转载自哈啰技术团队”。