概览:
背景:处理美团外卖无骑手接单时间过长导致乘客取消订单的问题。订单的取消对客户的复购率以及美团送餐平台的声誉都是非常不利的。专项资金鼓励骑手接受更多的订单。

核心:处理一个送餐平台的多阶段奖金分配问题。

描述:在有限的奖金预算内最大化接受订单的数量。该框架由半黑箱接受概率模型 、基于拉格朗日双基动态规划算法和在线分配算法组成。

半黑箱接受概率模型:用于预测分配给订单的奖金与其接受概率之间的关系,

基于拉格朗日对偶的动态规划算法:旨在基于历史数据集计算每个分配阶段的经验拉格朗日乘数

在线分配算法:使用在离线部分获得的结果来计算每个订单的奖金

背景:

当顾客通过美团应用点餐后,对应的订单信息立即发送到送餐平台。平台的处理逻辑为:

首先,定价系统根据订单属性,如餐厅和客户位置、客户端服务难度等确定订单的配送价格;

其次,将订单信息,包括品类、价格、 以及预计送货时间推送给附近的骑手;

第三,一个自信的骑手接受订单, 从餐厅取餐,并将其送到客户。

但是,如果送货价格不够有吸引力, 使其长期不被接受,客户可能会取消订单(这种取消订单称为NA-cancelled订单)。

NA-cancelled订单是平台差评的主要原因,以美团为例,每天约有3万条差评,NA-cancelled订单导致的差评率超过 55%。
每天大约有16.5万份NA-cancelled订单 发生,这意味着骑手的收入减少,餐馆的食物浪费增加,送餐平台的声誉下降 。每年NA-cancelled订单的约数十亿元人民币。
通过对历史数据的分析,导致NA-cancelled订单的主要原因有两个:

一方面,骑手数量充足的情况下,部分订单的配送价格对司机的吸引力不够;
另一方面,骑手的数量不足,在某些情况下,骑手数量不足以服务进来的订单,例如在暴风雨天气下缺乏司机在线 (不考虑)
针对NA-cancelled订单一般的处理方法:

按照经验法则分配奖金。十分钟内未被接受的订单分配3元,20分钟分配6元,以此类推。(易于实现,但由于在每个单一决策阶段单独为所有订单提供相同的价格,缺乏全局规划,未能取得令人满意的性能 )
多阶段决策:订单的生命周期可以分为多个决策阶段,每个阶段的订单可以是接受、不接受或取消。如果订单没有被骑手接受或在特定的阶段没有被消费者取消,它将被过渡到下一个阶段。一旦它被 一个骑手接受或在特定阶段被消费者取消,它的生命周期就停止了。如果超过50分钟没有司机接单, 送餐平台将强制取消订单。虽然大多数订单在前几个阶段会被接受,但仍然有相当数量的订单直到最后几个阶段才被接受。直观地说,一个更好的奖金分配策略应该是基于多阶段信息的全局优化。(例如,订单生命周期为50分钟,分配阶段数为10个, 奖励分配决策每5分钟确定一次)
png
模型
接单和取消模型
obj:最大限度地增加接受订单的数量。目标函数是在订单接受概率的基础上最大化接受订单数量的期望值 。使用多个分配阶段,来自前一个分配阶段的未接受且未取消的订单将过渡到下一个分配阶段。每个节点表示 一个分配阶段。设p1为第一次分配阶段的接受概率,q1为第一次分配阶段的取消概率。相应的,1-p1-q1是过渡到第二分配阶段的概率 。因此, 订单进入|T|阶段的概率
在|T|阶段接受订单概率为
即订单 被接受的概率为:

假设一:如果订单仍然在等待列表上,则阶段t的订单的接受概率仅由阶段t的订单的价格决定。其他阶段的订单价格和其他订单价格不影响本订单接受概率。

接受概率:半黑箱预测模型。

假设二:接受概率模型符合

其中,α和β由神经网络等机器学习模型得到。输入的特征分为两部分, 分配给每个订单的奖金c和订单相关特征x。订单相关特征是订单的内在属性,包括客户和餐厅的地理位置、用户下单后时长,预计到达时间(ETA)、与 骑手相关的供需影响、骑手的空间信息(如餐厅2公里内司机数量 )等。(订单相关特性包含尽可能多的信息,除非当地法律禁止)

根据历史数据,在每个分配阶段t,为每个订单i构造训练集;同时学习α和β,但使用不同的隐藏层(见图4)。在实践中,奖金只分配给少数的订单,这样训练集的样本分布是不均匀的。因此,我们将训练集 分为两种批次ci,t>0,和正常批次ci,t0。β是由订单相关特征x决定的。因此,为了提高模型的性能 ,α和β的隐藏层使用 不同类型的批次进行更新。更具体地说,奖励批次用于更新隐藏层0和层1的参数, 正常批次用于更新隐藏层0和层2的参数。注意所得α应该小于0,奖金越多,接受概率越大。

订单接受概率模型如图 5所示。即使两个订单的交付奖金相同,它们接受概率可能不同。当奖励为0时,订单A的接受概率(超过95%)远远高于订单B(约45%)。假设奖励2RMB,订单A的接受概率增量为0.01, 而阶B是0.38。因此,动机是通过向订单B分配奖励来增加总接受概率(选择弹性高的订单发放奖金)

|T|阶段的订单取消率q|T|也影响决策,也需要预测。选取所有进入|T|阶段的订单作为完整的样本集。样本的特征是订单进入阶段的相关属性,如距离、环境、天气、 等特征。标签是现阶段取消的订单标记为1,其他订单标记为0,训练方法为经典的XGBoost模型。然后在此阶段对模型的预测值进行分解。将每一个0.05的预测值区间划分为一类,对每一类订单进行频繁采样,并统计区间内正样本的比例。这个比率被认为是一个预测的值,它是该订单在区域的实际取消概率。

整体模型

目标函数(3)使总接受概率最大化,

约束 (4)表示总配送奖金成本的期望值应在给定的预算b内,

约束(5) 将配送奖金ci,t在给定的上限内。

求解方法

离线优化:基于对偶拉格朗日的动态规划
把问题看作是两个子问题的组合。首先,我们将总预算分配到每个阶段,然后在每个阶段内,为每个订单计算最优奖金。前一个子问题可以处理动态规划问题,后一个子问题是一个标准的单阶段分配问题,用拉格朗日对偶理论解决。

如果在1~t-1阶段没有补贴,阶段的待分配订单 表示,则子问题表示为:

在动态规划的递归过程中,子问题:定义一个单阶段奖金分配问题

通过解决单阶段奖金分配问题B~ = k,

其中G’是下个阶段的最优分配函数,令为x

1)降维,动态规划中G和G’的形式不同,一个简单的方法是将向量映射到一个预定义的投影矩阵下的m维空间,例如此时G’可以表示为形式为了使计算简单,H [1, 1, … , 1],u=示接受或取消订单的平均概率。则

2)递归

3)拉格朗日对偶

(9)~(11)求解方法为对偶拉格朗日,求解方法为二分法。

在线分配算法
带入拉格朗日乘子,计算

周期控制
在月初,总预算由业务计算出来,但未来实际的月度订单规模和分布情况是未知的。幸运的是,历史数据显示送餐平台的月订单分布相对稳定,线下历史订单与线上订单偏差较小。

为了进一步满足不确定在线场景下的预算约束 ,采用了一些简单而有效的周期控制策略。

第一种策略是每天执行一次线下决策系统,选择的训练集是从当天开始的上月订单数据 。线下训练的目标预算是用这个月的剩余预算除以这个月预计未来的订单数,再乘以过去30天的总订单数。

第二种策略是对实时支出【A soft-decision based two-layered scheduling approach for uncertain steelmaking-continuous casting process.】采取一些简单的控制方法。例如,当总实时支出占总预算的比例大于110%时,我们会将奖金降低到一定的比例比例。当比例低于 90%时,我们将增加奖金。 上下调整比例与总实时支出与总预算的差额呈正相关。这两种策略 确保在线实时支出可以控制在预先设定的预算范围内。

实验
八个分配阶段,两个分配阶段之间大约有六分钟的时间间隔

相关研究

已有一些针对网约车平台的动态定价研究。一些网约车平台使用一种称为surge/prime定价的动态定价策略 ,其中当供小于需时,动调因子大于1[The effects of Uber’s surge pricing: A case study]

。[Surge pricing solves the wild goose chase]提出了一个稳态模型用于网约车应用中的动态定价,并验证了动态定价对于网约车尤其重要。[Geometric matching and spatial pricing in ride-sourcing markets]

基于离散时间几何匹配框架构建了空间定价模型,在该模型中,客户将在给定的半径内与其最近的可用车辆进行匹配。[Dynamic pricing in spatial crowdsourcing: A matching-based approach]在打车软件平台的空间众包环境中提出了全球动态定价(GDP),提出在多个本地市场(未知的需求,有限的供应,或依赖供应)的动态定价。

网约车和送餐问题的定价上有所不同。例如,网约车的动态定价决定了在时空上呈现给乘客的价格 ,但提供给司机的外卖奖金则基于外卖的订单特征

A Framework for Multi-stage Bonus Allocation in meal delivery Platform相关推荐

  1. 游弋于太平洋,摆脱甜蜜的烦恼

    撰文:康翔 编辑:阿由 设计:紫菜 2016.2017,再加上2018年,被很多人认为具有分水岭般的意义.原因是这三年里产生的数据量,可能已经超过了人类历史此前全部数据量的总和. 数据的产生与发展,纵 ...

  2. Tensorflow: Allocation of XXXXXX exceeds 10% of system memory 可能的原因

    在使用他人的项目代码时,遇到了这个问题 W T:\src\github\tensorflow\tensorflow\core\framework\allocator.cc:108]:Allocatio ...

  3. 扒一扒.net、.net framework、mono和Unity

    zhaichao 标签: .net.net frameworkc#monounity 2017-04-23 14:39 425人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许 ...

  4. Mono,CLR,.net,Net Framework之间的关系

    先粗略看下各自的意义: .Net:以下这些技术的统称.是一个平台,而.NET平台有一个实现标准,叫做.Net Standard: .Net Framework/.Net Core/Mono:实现了这个 ...

  5. 我使用Python和Django在自己的网站上建立了一个会员专区。 这是我学到的东西。

    I decided it was time to upgrade my personal website in order to allow visitors to buy and access my ...

  6. A comparison of C# vs. java

    转发上:http://www.25hoursaday.com/CsharpVsJava.html#friends A COMPARISON OF MICROSOFT'S C# PROGRAMMING ...

  7. 开源社邀请您参加亚洲自由开源软件峰会2022 (FOSSASIA SUMMIT 2022)

    | 作者:FOSSASIA | 编辑:钱奕 | 责编:李小明 FOSSASIA SUMMIT(亚洲自由开源软件峰会)是一个致力于开源方案及专案的技术型聚会,起始于2009年,已持续举办十多年,之前活动 ...

  8. 论文:Zero-Shot Grounding of Objects from Natural Language Queries

    作者 摘要 A phrase grounding system localizes a particular object in an image referred to by a natural l ...

  9. 2018-3-31 文章(ELM-Chinese-Brief)原文

    什么是超限学习机 1 Guang‐Bin Huang School of Electrical and Electronic Engineering, Nanyang Technological Un ...

最新文章

  1. Linux中的进程之初步了解
  2. UML模型中的图-静态图【类图、对象图】
  3. 奇虎360WEB平台部招贤纳士之服务端开发
  4. android node编码,android studio中的Node.js
  5. actor对自己不可见
  6. 语言类型介绍及其Python的语言类型
  7. html5学习笔记(7)
  8. 【深度】中国半导体行业如何从芯片到生态整体突围?
  9. HP惠普打印机双面打印及常规操作
  10. 大物期末复习(知识点公式总结+错题分析)
  11. 星座 member.php,php 通过生日获取对应的星座
  12. VC中画基准线,随鼠标移动
  13. Android手机开发总结——Android核心分析
  14. 文玩第一股,微拍堂跑在了玩物得志前面?
  15. std::string int 转换
  16. 当当云阅读云书房电子书内容提取爬虫
  17. 使用pydub的坑-----Permission denied: 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\tmpmt80te3g.wav'
  18. python代码实现技术指标: 转债正股的乖离率
  19. NSGA II实例讲解
  20. 计算机主机加固方案介绍

热门文章

  1. EditPlus使用技巧集
  2. amd linux raid,RAID的详解
  3. XShell免费正版远程控制ssh客户端
  4. 打字速度单位WPM、KPM定义与计算方法
  5. 山东科技大学Problem B: 打印字母菱形图案
  6. vs2015+opencv在xp下使用的问题
  7. poky linux初探 -- 添加自己的内核食谱
  8. 四年级下册计算机有错必改教案,小学四年级下册语文《步行18里》必
  9. Activity毛玻璃背景效果
  10. QT程序图标不能显示解决