当前位置: 代码迷 >> 综合 >> 【论文解读】滴滴智能派单-KDD2018 Large-Scale Order Dispatch in On-Demand Ride-Hailing
  详细解决方案

【论文解读】滴滴智能派单-KDD2018 Large-Scale Order Dispatch in On-Demand Ride-Hailing

热度:44   发布时间:2024-01-09 14:44:22.0

《Large-Scale Order Dispatch in On-Demand Ride-Hailing Platforms: A Learning and Planning Approach》

一、简介

基于大量历史数据,构建一个大Q表,用于订单的评估,满足乘客的需求的同时,兼顾平台的长期价值,最终提升平台的收入。

二、背景

从司机抢单到平台派单,使得平台的收入提升了10%。

对于派单,需要对司机和订单进行高效的组合。之前大家都是基于一些在线策略(会在一定时间将司机和订单放到一个bucket里,然后进行分配),虽然有效但是并不高效。

本文的目的是期望将配对的过程更加高效,更加注意平台的长期价值,并最终提升平台的收益。

三、模型框架

3.1 一些定义

State:
简化司机的状态 s=(t, g), t-为时间戳, g-地理位置(h3no)
Action:
1)司机接单,进行服务;
2)司机空闲, 在某地长时间闲置( s=(t, g) -> s'=(t', g))
3)司机空闲, 且在游走(论文中不包含)
Reward:
1)action-1 订单的价格
2)action-2 0
Discout factor( γ \gamma γ):
将奖励基于时间段拆分成T段,基于折扣系数衰减累加
R γ = ∑ t = 0 T ? 1 γ t R T R_{\gamma}=\sum_{t=0}^{T-1}{\gamma ^ t \frac{R}{T}} Rγ?=t=0T?1?γtTR?

3.2 策略及状态更新

action-1
V ( s t ) = V ( s t ) + α [ G t ? V ( s t ) ] G t = R t + γ V ( s t + 1 ) R t = 0 V(s_t) = V(s_t) + \alpha[G_t - V(s_t)] \\ \\ G_t = R_t + \gamma V(s_{t+1}) \\ \\ R_t = 0 V(st?)=V(st?)+α[Gt??V(st?)]Gt?=Rt?+γV(st+1?)Rt?=0

action-2
V ( s t ) = V ( s t ) + α [ G t ? V ( s t ) ] G t = R t + γ Δ t V ( s t + Δ t ) R t = R γ V(s_t) = V(s_t) + \alpha[G_t - V(s_t)] \\ \\ G_t = R_t + \gamma^{\Delta t} V(s_{t+\Delta t}) \\ \\ R_t = R_{\gamma} V(st?)=V(st?)+α[Gt??V(st?)]Gt?=Rt?+γΔtV(st+Δt?)Rt?=Rγ?

关于学习率— α \alpha α

  1. 可以设定固定值
  2. 也可以设定为一个递减的值(论文用该方法)
    • 1 N ( s i ) \frac{1}{N(s_i)} N(si?)1?, N ( s i ) N(s_i) N(si?)为该状态的迭代次数

四、优化与使用

4.1 优化目标

a r g m a x a i j ∑ i = 0 m ∑ j = 0 n Q π ( i , j ) a i j argmax_{a_{ij}}\sum_{i=0}^m\sum_{j=0}^nQ_{\pi}(i, j)a_{ij} argmaxaij??i=0m?j=0n?Qπ?(i,j)aij?
注:

  • Q π ( i , j ) Q_{\pi}(i, j) Qπ?(i,j): 订单i被司机j接起的价值
  • a i j a_{ij} aij?: 订单是否被接起
  • i: 当前时间所有可接单司机
  • j: 当前时间所有订单

用KM算法去优化获取最佳组合, Q π ( i , j ) Q_{\pi}(i, j) Qπ?(i,j)作为边权重。

4.2 实际使用

Q π ( i , j ) Q_{\pi}(i, j) Qπ?(i,j)相当于评估从出发地到达目的地,给平台的带来的长期价值:
Q π ( i , j ) = A π ( i , j ) = G G = R t + γ Δ t V ( s t + 1 ) R t = R γ = ∑ t = 0 T ? 1 γ t R T Q_{\pi}(i, j)=A_{\pi}(i, j)=G \\ \\ G = R_t + \gamma^{\Delta t} V(s_{t+1}) \\ R_t = R_{\gamma} = \sum_{t=0}^{T-1}{\gamma ^ t \frac{R}{T}} Qπ?(i,j)=Aπ?(i,j)=GG=Rt?+γΔtV(st+1?)Rt?=Rγ?=t=0T?1?γtTR?
注:

  • 需要用到订单预估时长
  • 需要用到订单预估价格

五、训练与使用

结合 section-3 和 section-4

  相关解决方案