美团2022KDD
背景
未解决每天数十万订单因为无人接单而被取消的问题,美团提供了一笔专项资金来提高尾部订单的用户体验。未被接起的订单将持续地曝光给骑手,因此我们需要持续地决策订单的额外奖励金额,直到订单被取消或被接单。由于订单上一时刻的激励方案会显著影响后续阶段订单的存续与取消概率,因此这一问题是复杂的多阶段时序决策问题。为了更好地提升用户体验,我们提出了一个新的框架来解决这一问题。这一框架包括三个部分:
- 半参数化(半黑盒)的订单完成概率与取消概率模型;
- 基于拉格朗日对偶的动态规划算法;
- 在线的实时分配算法。
其中半参数化的订单完成(取消)概率模型用于预测分配给订单的奖励金额与订单在这一时刻接起并最终完成(取消)的概率的关系、拉格朗日对偶动态规划算法主要通过历史订单数据计算每个分配时序的拉格朗日乘子解,在线分配算法使用离线部分获得的结果为每个订单计算出相应的激励方案。我们在真实配送场景上进行了A/B实验,实验结果表明新算法相较于基线算法的取消订单量下降了25%,显著提升了用户体验。
Intro
外卖配送流程:
· NA-orders : no-accept orders 因为骑手没有接单而被取消的订单,这部分订单造成严重的客诉问题、食物浪费问题、平台声誉问题和平台利益问题。这部分订单造成的原因主要有两个:配送费不够吸引骑手 和 骑手运力不足。本文只关注第一个问题。
· 多阶段决策:订单的生命周期可以分为多个决策阶段,每个阶段的订单可以是接受、不接受或取消。如果订单没有被骑手接受或在特定的阶段没有被消费者取消,它将被过渡到下一个阶段。一旦它被 一个骑手接受或在特定阶段被消费者取消,它的生命周期就停止了。如果超过50分钟没有司机接单, 送餐平台将强制取消订单。虽然大多数订单在前几个阶段会被接受,但仍然有相当数量的订单直到最后几个阶段才被接受。直观地说,一个更好的奖金分配策略应该是基于多阶段信息的全局优化。
建模
接受和取消模型
设订单在第i阶段被接受的概率为
p
i
p_i
pi,被取消的概率为
q
i
q_i
qi,那么订单可以进入到下一个阶段的概率就是
1
−
p
i
−
q
i
1-p_i-q_i
1−pi−qi, 进入到
T
T
T阶段的概率就是:
∏
t
0
=
1
T
−
1
(
1
−
p
t
0
−
q
t
0
)
\prod_{t_0=1}^{T-1}(1-p_{t_0}-q_{t_0})
∏t0=1T−1(1−pt0−qt0), 一个订单在所有阶段被接受的概率和就为:
我们要最大化这个接受概率和,就要找到bonus和他之间的关系。这里有一个假设:如果订单仍然在waiting list上,则阶段t的订单的接受概率仅由阶段t的订单的价格决定。其他阶段的订单价格和其他订单价格不影响本订单接受概率。
对每一个订单
i
i
i的每一个阶段
t
t
t,建模
α
\alpha
α和
β
\beta
β两个参数,
c
i
,
t
c_{i,t}
ci,t是bonus, 最终的到一个概率值表示订单被骑手接单的概率
contextual features就包括一些订单、骑手的基本信息、供需情况等等。
下图可以看出,orderA和B虽然对补贴的弹性是不一样的。
取消率模型用相同的方式,两个模型都用的classic XGBoost.
数学模型
目标函数:最大化接受率
限制:不超过预算
B
B
B, 配送的bonus
c
c
c也不超过上限
Algorithme
离线优化:基于对偶拉格朗日的动态规划
上文的最优化问题是非线性非凸优化的难解问题,我们把它分解为两个问题:
· 将全部预算分配在每一个stage上 -> 动态规划
· 在一个stage上 对每个订单求最优bonus ->单阶段分配问题, 用拉格朗日对偶问题(下图)
(tbc)
在线分配
LDDP过程会离线得到一个拉格朗日乘子
λ
\lambda
λ,代入计算即可
周期控制
在月初的时候会定下一整个月的预算,但是未来一个月的待补贴订单未知,所以要采取一些周期控制策略
· 每天更新:线下训练的目标预算 = 这个月的剩余预算/这个月预计未来的订单数*乘以过去30天的总订单数。
· 当总实时支出占总预算的比例大于110%时,我们会将奖金降低到一定的比例比例。当比例低于 90%时,我们将增加奖金
效果
bonus使用的分布情况
在一些城市的效果