很遗憾 , 以上所述的延迟集中分单的策略只能解决部分的问题 , 仍不是一个完全的方案 。其最大的问题 , 在于用户对系统派单的 响应时间 容忍度有限 , 很多情况下短短的几秒钟即会使用户对平台丧失信心 , 从而取消订单 。故实际线上我们只累积了几秒钟的订单和司机信息进行集中分单 , 而这在大局上来说仍可近似看做时间维度上的贪婪策略 。
若想即时的获得最优派单结果 , 唯一的方法是利用对未来的预测 , 即进行基于供需预测的分单 。这种想法说来玄妙 , 其实核心内容也很简单:如果我们预测出未来一个区域更有可能有更多的订单/司机 , 那么匹配的时候就让这个区域的司机/订单更多去等待匹配这同一个区域的订单/司机 。
▍连环派单
基于供需预测的分单有很大意义 , 但由于预测的不确定性 , 其实际效果很难得到保证 。为此 , 我们使用了一种更有确定性的预测方式来进行派单 , 即 连环派单 。
“连环派单 , 即将订单指派给 即将结束服务 的司机 , 条件为如果司机的终点与订单位置很相近”
文章插图
与预测订单的分布相反 , 连环派单预测的是下一时刻空闲司机的所在位置 。由于高峰期空闲司机多为司机完成订单后转换而来 , 预测司机的位置就变成了一个相对确定性的问题 , 即监测司机到目的地的距离和时间 。当服务中的司机距终点很近 , 且终点离乘客新产生的订单也很近时 , 便会命中连环派单逻辑 。司机在结束上一单服务后 , 会立刻进入新订单的接单过程中 , 有效地压缩了订单的应答时间、以及司机的接单距离 。
▍如何做的更好
整个派单算法核心克服的是未来供需的不确定性 , 动态的时空结构的建模 , 以及用户行为的不确定性 , 对于这些不确定性我们现在更多采用深度学习方法对我们的时空数据&用户行为进行建模预测 。
另外 , 我们的问题相对于传统推荐搜索领域 , 多了一层匹配决策 , 我们到底积攒多久的订单进行分配 , 对于每一个分配来说我们都面临着分或者不分 , 现在分还是未来分配 , 并且分给谁的问题 , 这个问题天生就可以建模为强化学习问题 , 目前在我们的系统中也引入了强化学习方法来优化更长期的收益 。
除了不断去优化之前说到的派单问题 , 整个派单系统还面临着大量其他的挑战 , 包括如何利用快车优享等多个品类的运力进行跨层的最优分配 , 如何同时对用户&司机&平台短期长期等多个目标进行优化 , 如何同时优化预约&实时订单 , 如何在具备网络效应的场景下对算法进行评估 , 如果建立一个较为精准的仿真系统等等 , 这里既是挑战 , 也是AI For Transportation中大量新的重新定义问题和创新算法的机会 。
4. 总结每天, 我们的派单系统要面对超过3000万用户的叫车需求, 高峰期每分钟接收超过6万乘车需求 , 平均每两秒就需要匹配几百到上千的乘客和司机。我们当前的派单策略相对于最初的派单策略版本 , 每天能够多满足百万以上乘客的出行需求 。为了让更多人能更快、更确定的打到车 , 我们的交易策略团队将在更好的公平感知的前提下 , 不断地优化和打磨我们的派单算法 , 为乘客&司机创造更多价值 。
当然当前的派单策略还有很多不够完善和完备的地方 , 本身也是一个相当复杂的问题和系统 , 一方面借此机会让大家对派单有更好的理解和认识 , 另一方面 , 也更欢迎大家对我们提出更多的宝贵意见 , 帮助我们进一步成长 。
作者: 王犇 刘春阳 徐哲 来自:滴滴技术欢迎关注“刀哥谈JAVA” , 了解更多互联网咨询技术
推荐阅读
- diff算法介绍
- 浅谈茶外茶的作用和功效
- 浅谈中国茶叶零售市场整体发展情况
- Python算法中的时间复杂度
- 十大数据挖掘算法及各自优势
- 了解携程个性化推荐算法原理,让旅行更实惠
- MD5算法全解析
- hash 算法原理及应用漫谈
- 浅谈被执行人“唯一房屋”的执行
- 域名价值算法是怎样的?