《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 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}
argmaxaiji=0∑mj=0∑nQπ(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=0∑T−1γtTR
注:
- 需要用到订单预估时长
- 需要用到订单预估价格
五、训练与使用
结合 section-3 和 section-4