动态价格策略在货拉拉峰期中的提效实践
前言
近年来,货运需求不断提升,并且在特定时间段(如“国庆”、“双 11”等)会出现激增,形成所谓的货运峰期。在峰期,货运的处理效率和稳定性往往会受到极大的挑战,因此亟须开发一系列能够提高货运峰期处理效率的动态策略组合。
背景
按照供需(供给--司机,需求--用户)分布,我们把货运场景,从维度上可以划分为,四类场景:
在高峰期,由于在当前的价格背景下,供给远小于需求,会出现以下几类情况,例如:
1.价格上涨:由于供不应求,司机可能会提高运费,要求私下完单。这种情况下,用户需要支付更高的费用来完成运输任务,且缺乏安全保障。
2.排队等待:需求量大的情况下,用户可能需要排队等待司机的接单。这将导致用户的等待时间延长,影响用户体验。
3.服务质量下降:由于需要处理大量的订单,司机可能会赶时间,从而导致服务质量下降,例如货物运输过程中的防护措施不够完善、出现货物损坏的情况。
4.司机疲劳:在高峰期,司机需要连续工作以满足大量的订单需求,可能导致疲劳,影响驾驶安全。
5.纠纷处理困难:在供需失衡的情况下,可能会出现更多的纠纷,例如司机与用户之间的争执、服务质量问题等。在这种情况下,平台需要加大纠纷处理力度,以维护用户的权益。
6.货物积压:由于货拉拉司机的数量有限,无法及时完成大量的运输任务,可能会导致货物积压,影响物流效率。
7.品牌形象受损:长期的供需失衡和服务质量下降可能导致货拉拉的品牌形象受损,影响其在市场中的竞争地位。
为解决这些问题,平台需要采取措施,如通过价格杠杆、用户加价等刺激运力、优化调度效率。
业界方案综述
1.激增定价(Surge Pricing)
针对市场的高峰期,Uber采用激增定价的动态定价策略,“激增定价”的策略是当需求高于司机供应时,它会将车费乘以一个系数,该系数主要由Uber的算法决定。该定价策略存在的目的是在需求和供应之间建立平衡。
2.动态定价(Dynamic Pricing)
Lyft采用动态定价算法,动态定价算法的本质直接来讲,就是当市场上供应小于需求时,通过提高价格来匹配供需曲线,该算法与一些基本的经济原则相对应。Lyft使用动态定价算法的愿景主要是抢占Uber的市场份额,Lyft没有无限地提升价格来满足真正的市场需求,而是有一定的固定性,相对反映现有的需求。
3.分配差异化 && 佣金差异化
分配差异化方案,平台为不同类型的司机提供不同分配率的选项,即司机接受订单分配的概率不同,不同的服务水平,但是具有相同的佣金率。
佣金差异化方案,平台为不同类型的司机提供不同的佣金率选项,不同的服务水平,但是具有相同的分配率。
平台 | 策略 | 优点 | 缺点 | 货拉拉是否具备类似能力 |
Uber | 激增定价 | 1. 减少了客户的等待时间 | 1.增加了乘客的不满意度,存在价格歧视问题 | 是 |
Lyft | 动态定价 | 相较于激增定价,没有无限的提升价格 | 同激增定价 | 是 |
滴滴中国 | 分配差异化 | 最大化平台利润 | 收益转移问题 | 否 |
滴滴海外 | 佣金差异化 | 是 |
解决方案
如上所述,为缓解司机短缺的情况,在需求较多,司机在多方平台竞争的条件下,需要通过动态价格策略来吸引更多的运力来平台接单,货拉拉平台采用一揽子动态价格调整的算法策略。动态价格调整算法是一种基于供需关系调整价格的策略组合,主要通过以下几个步骤实现:
1.数据收集:收集历史的订单需求、司机数量、响应率等信息。
2.供需分析:根据收集到的数据,分析当前的供需关系和对未来进行供需预测,判断未来是否存在供不应求的情况。
3.价格调整:当供不应求时,通过算法自动调整运费价格,以平衡供需关系。例如,在需求量大的地区,可以适当提高运费价格,吸引更多的司机接单;在需求量小的地区,可以降低运费价格,以提高用户的下单意愿。
4.实时监控:动态价格调整算法需要实时监控市场变化,以便在供需关系发生变化时,及时调整价格策略。
5.平衡用户体验与商业利润:在设计动态价格调整算法时,需要平衡用户体验与商业利润之间的关系。例如,在高峰期提高运费价格以满足司机的接单需求,但同时要避免价格过高导致用户流失。
通过采用动态价格调整的算法方案,平台可以在高峰期更好地平衡供需关系,提高服务质量,降低纠纷处理难度,同时实现商业利润的最大化。
动态价格策略的完整生命周期:
智能附加费
在上述动态价格策略的生命周期中,我们采用了哪些典型技术来缓解各种场景下司机短缺带来的问题呢?下面,我们将以智能附加费为例,来介绍我们如何进行策略的最佳实践的。
背景和分析
附加费是解决短时局部的供需失衡问题的有力工具。接入算法之前,在高峰、节假日、恶劣天气等易发供需问题的时期,例如业务高峰期,需求供给实时变化幅度大、频率快,平台运营需要人工盯盘,靠经验判断调价时机和幅度,但存在调价效率低,不及时及不精准等问题。因此,需要算法接入,利用数据驱动和供需预测能力,精准定位供需失衡场景并判断调价条件和调价幅度。
策略
由于实际业务场景非常复杂,我们需要多种策略来适配场景,按照数据是否充足可靠,我们设计了以下三种策略:
1.供需策略:模拟人工,极少参考弹性进行自动化;
2.弹性策略:部分模拟人工和参考弹性数据;
3.最优化求解策略:在业务框架下,完全参考算法;
这里我们介绍其中的两种策略,弹性策略和最优化求解策略。
策略一——弹性策略
附加费作为供需调节的有力工具,在需求大于供给的场景,附加费能够抑制需求并激励供给,从而达到供需平衡。在实际业务中,我们希望能够在提高供给的同时尽可能减弱需求的降低幅度。因此,我们需要量化附加费对需求的抑制程度。
理想情况是利用因果推断模型学习场景在有Treatment(附加费)和无Treatment时的因果效应,为了避免价格歧视问题,我们预测场景(城市、灵活网格、时间片等)在不同附加费系数下的估价并下单概率(估转率)。
但在项目初期,由于场景数据量级差异和策略有偏性,模型可能学习到错误的效应。例如,当策略倾向于给估价下单概率高的场景高附加费系数时,模型可能相应学习出高附加费系数、高估价下单概率的结果。因此,初期我们考虑一元线性回归,结合动态自适应方法,拟合出各个场景估价下单概率与附加费系数的关系。附加费弹性具体定义如下:
弹性类型 | 附加费弹性 |
定义 | 单位附加费系数下估转率相对变化比例 |
公式 | 调前估转率:eo, 附加费系数△p 弹性 |
特点 | 附加费弹性越小,加价越敏感,加价效果越差 |
举例 | 上涨0%-估转率0.5, 上涨10%-估转率0.4 -> 弹性值:(0.4-0.5)/(0.1*0.5)=-2 |
我们通过弹性定量判断附加费系数对不同场景的需求抑制程度,在策略制定上,我们会优先考虑供给差、附加费弹性高(估转率降幅小)的场景。
策略二——最优化求解策略
在搜集部分数据,结合因果效应预估模型和整数规划方法,可以求解不同场景的最优附加费系数。具体方法如下:
1.对用户估价数据、订单配对数据进行分析,使用因果推断中的S-learner方法构建预测模型(基模型为LightGBM),用于预估不同附加费系数对用户下单概率和司机接单概率的因果效应
2.使用保序回归对不同附加费系数下的用户下单概率和司机接单概率进行校准,相乘,得到用户估价-下单-司机接单概率
3.基于最优化算法和业务实际需求,对每一个城市和车型构建一个整数规划问题:
目标:最大化配对单
决策变量:每个场景应当配置的附加费系数
约束条件:
a.订单平均附加费系数在一定范围内
b.相同时空范围下,响应率越低,附加费系数越高
c.配对单和无附加费时相比不负向
使用优化问题求解器求解以上问题,即可得到每个场景的最优附加费系数。当然并不是所有问题都存在最优解,可能存在小部分城市+车型无法得到最优的附加费系数,此时会用弹性策略计算得到的附加费系数进行兜底。
整数规划是指变量取值要为整数的问题,是数学规划中的一个分支。整数规划分为纯整数规划(所有变量取值均为整数)和混合整数规划(变量中有一部分取值为整数)。还有一类整数规划问题,其变量只取0或1值,称之为0-1规划。([1])
整体流程如下:
上线策略后,我们预估年收益达到亿级别,但是整个过程并不是一帆风顺的,我们遇到以下几大难题,包括供需计算、供需预测、迭代策略频率快、运营经验影响算法效果等。
难题1——供需计算
在货运领域,供需计算是一个重要的问题,它涉及到对运输资源的有效管理和分配。然而,在时空维度下,供需计算面临着几大难题:
1.空间维度上,由于各个区域本身供需不同,热区冷区不同,如何进行合理的划分。
2.供需波动:准确计算货物的供需是非常困难的,因为供需受到许多因素的影响,如季节性、经济状况、促销活动等。供需可能会在短时间内发生剧变,给供需计算带来很大的不确定性。
3.实时性:货运领域的需求和供给往往具有很高的时效性,如医疗物资、生鲜食品等。因此,供需计算需要能够快速响应市场变化,以便及时调整运输计划。这对算法的计算速度和实时性提出了很高的要求。
4.数据不完整和不准确:货运领域涉及的数据来源多样,包括需求数据、供给数据、订单数据、车辆定位数据、路况信息等。然而,这些数据往往存在不完整、不准确等问题,给供需计算带来了很大的困难。此外,数据的质量和一致性也是需要关注的问题,否则可能导致计算结果的偏差。
为了更好的描述实时供需,我们从采用了以下最佳实践来计算实时供需,从而更好的支持各个策略。
灵活网格
业内通常应用H3系统划分地理空间。H3是由Uber开源的一个六边形分层索引网格系统,可将地理空间分割为若干规则的正六边形网格,并支持16种不同的精度,最小的一级边长为0.5米,最大的一级边长可达108米。H3网格非常适合机器学习,尤其适用于供需这类具有时空流动性的预测模型。
在货拉拉业务中,我们发现任意级别下,H3网格之间都存在数据密度差异大的问题。不同业务和车型下的需求并不兼容,无法应用同一等级网格。因此,相关部门开发了H3网格的动态聚合服务,结合业务特性将若干连通的同一级h3网格进一步聚合为灵活网格,以连通性为前提,均衡网格间的订单密度。
动态自适应供需
通过灵活网格方法,我们降低了空间上的订单密度差异。然而在实际业务中,并不能解决实时的订单密度稀疏问题,因为我们也需要关注数据在不同时间片(例如30min)的分布。我们希望通过提高时空维度的数据质量,从而进一步提升模型学习效果。因此,我们提出了动态自适应的方法,支持不同时空维度输出置信度高的数据,为后续工作提效。
根据业务特性,我们首先确定策略场景的最小组成维度,如灵活网格x30min时间片,我们称之为子场景。我们经常需要计算子场景的各类指标进行数据分析或构造Baseline模型,指标的可信度对于后续的数据挖掘和策略制定都尤为重要。
在货运领域,由于订单相对稀疏,实时数据的不完整和不准确占比显著,如果这些场景进行丢弃,则大量的场景无法进行合理的附加费计算,为此我们提出了动态自适应的方法解决子场景数据统计稀疏性和量级问题。我们分析历史时期子场景样本量不同时,其订单响应率置信区间,结合置信区间带宽确定可信度阈值。当子场景样本量不达阈值时,则通过实时的维度聚合方式聚类子场景,以计算出置信的指标。
通过聚合算法,以城市为例,有些城市甚至可以将数据的丢弃比率从86%下降到15%,从而保证了更多的策略有效性。
城市 | 时期 | 响应率 | 二期数据丢弃比 | 一期数据丢弃比 |
A | 高峰 | 90.00% | 0.04% | 7.41% |
B | 高峰 | 85.00% | 0.73% | 32.13% |
C | 高峰 | 84.00% | 4.21% | 70.36% |
D | 高峰 | 75.00% | 15.17% | 85.51% |
难题2——供需预测
由于供需波动的的长期性和剧烈性,导致策略往往需要前瞻性和实效性,在货拉拉的最佳实践当中,我们包含长期/实时的供需预测来优化算法的效果。
时间序列预测
时间序列(Time series)指按照一定时间间隔排列的数据序列,是与时间有关的变量。时间间隔可以是任意的时间单位,如小时、天、周......时间序列预测则是用历史数据预测未来。
时间序列预测应用场景很广,业务通常需要预估核心指标在不同时间点的值来制定运营计划。我们既需要相对早的预测供需情况,也需要相对即时的预测线上实时供需比。因此,我们针对这两类应用场景分别构建时序模型。
长期时间序列预测
在长期时间序列预测问题中,我们需要预测未来多个时间步长的值,我们采用多步直接时间序列预测模型。
传统时序建模方法常用的有指数平滑模型和ARIMA,该类方法仅通过时间序列历史观测值对未来进行预测,对时间序列平稳性具有一定要求。指数平滑模型将历史观测值赋予不同权重,并将权重按照指数级对观测值进行衰减。在实际业务中,我们的时间序列存在趋势性和周期性规律,因此我们采用三次指数平滑模型(Holt-Winters)分别对时间序列的基本项、趋势项和周期项进行平滑拟合。ARIMA为自回归模型,主要通过历史时间序列的平稳性和差值进行预测。
ARIMA
由三部分组成:
•AR (Auto Regressive Model)
○通过自身前面部分的数据与后面部分的数据之间的相关关系(自相关)来建立回归方程,从而进行预测或者分析。服从p阶的自回归方程AR(p)为:
•I (Integrated)
○对时间序列进行了差分;因为时间序列分析要求平稳性,不平稳的序列需要通过一定手段转化为平稳序列,一般采用的手段是差分;
•MA (Moving Average Model)
○将一段时间序列中白噪声(误差)进行加权和,得到移动平均方程,主要解决噪声问题。μ为常数项,q阶移动平均过程MA(q)为:
Holt-Winters
其中lt为水平平滑,bt为趋势平滑,st为季节分量平滑项,相应的平滑参数分别为α和γ。m表示季节频率,即一年中包含的季节数。
Prophet是facebook 开源的一个时间序列预测算法,可以支持输入异常突变时间点或节假日信息。深度学习中,TFT(Temporal Fusion Transformers)是一种针对多步预测任务的Transformer模型,并且具有很好的可解释性。在该模型下,输入特征被分为静态变量(不随时间变化的变量)和时变变量(随时间变化的变量),时变变量又分为过去可知未来不可知和过去未来均可知两类。这样针对不同数据源去设计网络,会给模型带来提升。我们同时也考虑了机器学习模型,如XGB、LightGBM,为了实现多步预测,我们将未知的特征利用统计经验值填充,这样即可一次性输出多个时间步长的预测值。
Prophet
趋势项
•非线性饱和增长模型(Nonlinear, Saturating Growth)
C:容载量,上限值,k: 增长速率,m:时间偏移量
•线性增长模型
周期项
•采用傅里叶级数,将多个正弦波/余弦波相加可以得到波形近似为矩形的波形。
节假日
•节日i为节日前后时间点,用indicator function表示当前时间是否属于节假日,每个节日有一个参数Ki代表预测的变化。生成一个回归系数矩阵,,周期性模型为:
,k初始化为
.
TFT
模型整体结构如下
在实际应用中,我们发现在业务稳定期,传统时序模型表现较好。但在业务波动期,可以支持更多有效特征的模型效果会更优。如Prophet对于节假日前后预测较准,TFT综合表现更优。
| 全国历史高峰前后14天响应率预测 MAPE (含22国庆、23劳动、23端午) | |||
| Model | 节日前 | 节日中 | 节日后 |
| Sarima | 5.71% | 5.65% | 2.17% |
| Holt Winters | 5.21% | 5.29% | 1.52% |
| Prophet | 2.75% | 4.18% | 2.84% |
| XGB | 3.36% | 6.64% | 5.90% |
| TFT | 3.05% | 4.40% | 2.94% |
实时供需预测
订单响应率反映了货运服务提供者对于货物运输需求的响应速度,是在货运或出行领域衡量供需平衡程度和服务质量的重要指标。
和响应率的长期预测相比,响应率的实时预测显得更加重要。对区域的实时响应率的准确预测,可以及时识别响应较差的区域,调整该区域的附加费,改善供需不平衡的现象。
实时响应率模型
在该项目中,综合考虑模型性能和易用性,最终选用的是LightGBM模型。模型预测目标是未来30分钟内,每个灵活网格内每种车型的订单响应率。
对于模型特征的选择,此处主要考虑了和供需相关的特征,具体如下:
•时间特征,如月、日、周几、节假日等;
•历史供需特征,如历史若干个时间片的响应率、响应单量、用户下单量等;
•类别型特征,如城市、车型等。
特别说明的是,由于货拉拉的订单高峰常出现于节假日之前,因此对于节假日特征,节假日前1天、节假日前2天等日期也会进行特殊的编码。
在样本数据的处理上,为了让模型更多地关注低响应率场景,对低响应率场景的样本多采样,高响应率场景少采样。
模型训练时,目标为最小化MAPE。MAPE的计算方式为:
为什么选择MAPE作为最小化的目标函数,而不是回归模型中常用的评价指标MSE或MAE?由于我们使用模型的目的是识别出响应率低的场景,因此低响应率的场景和高响应率场景相比,在相同的绝对误差下,loss值应该越大。
下面给出绝对误差和相对误差的区别的直观对比:
真实响应率 | 预测响应率 | 绝对误差 | 相对误差 |
70% | 75% | 5% | 7% |
65% | 70% | 5% | 8% |
60% | 65% | 5% | 8% |
55% | 60% | 5% | 9% |
50% | 55% | 5% | 10% |
45% | 50% | 5% | 11% |
40% | 45% | 5% | 13% |
35% | 40% | 5% | 14% |
可以看到,在绝对误差相同时(都是5%),真实响应率越低,相对误差越大。而响应率模型的主要目的就是找出真实响应率比较低的场景,因此使用MAPE作为模型效果的评价指标之一。MAPE越小,模型预测效果越好。
模型评估
模型训练结束后,我们使用两个评价指标对模型进行评估。除了使用以上模型的目标函数MAPE进行评估,还会结合业务场景和模型的使用方式,使用策略区间命中正确率进行评估。
当前策略会根据响应率预测结果和价格模型,实时计算附加费系数,如下图所示,响应率在0%-50%、50%-70%等不同区间会有不同的附加费策略。
因此根据预测的响应率是否落在真实响应率所在的区间,对模型预测效果进行评估。命中正确率的计算方式如下:
模型效果
在国庆高峰实验中,对照组使用的响应率数据为上一个30分钟的响应率,实验组使用的是模型预测的响应率,两组使用的附加费策略相同。实时响应率模型取得较好收益。和对照组相比,实验组正确触发调价的准确率高于对照组4.5p.p.。
难题3——迭代策略频率高
货运市场是一个充满竞争和挑战的行业,其外部环境因素众多且不断变化。这些因素包括但不限于政策法规、市场需求、市场竞争等。这些外部因素的变化会对货运市场的运营模式、成本结构、客户需求等方面产生深远影响,从而使得算法业务目标需要不断调整以适应新的市场环境。例如我们的目标是最大化配对单、GTV还是保响应等,为了提升算法迭代效率,我们团队在灵活网格、动态自适应算法、实时/中长期预测模型等技术基础之上,通过设计合理的算法架构来解决应对复杂多变的业务环境,通过不断优化和调整算法架构,确保能够满足用户需求的同时提高公司的运营效率。通过及时的动态调整附加费策略,帮助业务更好地平衡供需关系,提高服务质量。
难题4——运营约束
模拟仿真
在智能附加费项目中,运营凭借其对业务的深度了解和业务规划,配置算法约束(例如系数上限/下限等)。算法利用其对数据的分析和综合运用能力,能够提供精细化策略和有效优化方法。平台运营与算法协同增效,运营根据大盘供需情况明确相关约束来把控风险,算法在约束下优化策略,这样的协作方式能够低风险且有效的提升项目收益。
然而随着业务的发展,运营把控整体目标和影响面过程中,暴露出一些痛点,比如有时候约束过于保守。为了进一步提升收益,算法会提出建议来辅助配置。我们构建了多层预测体系辅助运营决策,通过分析运营的工作内容,设计预估能力,方便运营进行运营决策,具体为:
•供需预测:如前述,利用长期时间序列预测模型辅助运营预判供需走势,提前规划运营动作。同时利用实时供需预测模型精准定位供需恶劣场景。
•影响面预估:辅助运营同学在调整动作时,把控整体影响程度,避免影响过高带来的风险,以及影响面过低带来的不起效问题。
•收益预估:通过因果推断模型预估运营动作收益,将运营动作转化为最优化求解问题,输出最优化配置建议。
总结
为了缓解供需失衡所造成的诸多问题,上述算法技术已经全面应用于多种场景中,包括疫情、恶劣天气、节假日高峰等。这些场景都具有供需关系复杂、需求波动大、资源有限等特点,对算法的准确性和实时性提出了很高的要求。
在疫情期间、节假日高峰期间,恶劣天气期间等,由于人们出行受到限制,或者物流需求增加,供需失衡问题突出。通过运用上述算法技术,我们能够更好地预测物流需求,调整资源配置,提高服务效率和质量,有效缓解供需失衡问题。
以国庆高峰为例,通过运用上述算法技术,我们在支持配对单破峰同时,实现了配对单/GTV等核心指标均取得了10%左右的收益。这表明我们的算法技术能够在高并发、高流量的情况下,有效地平衡供需关系,提高服务质量和效率。
未来,我们将继续不断探索多种高峰策略,包括抽佣管理、司机加价/用户价推荐等等。这些策略将根据不同的情况和需求进行灵活调整,以实现更高效的服务和更优的收益。通过不断优化和改进算法技术,我们相信能够更好地应对各种复杂情况,进一步提高服务质量和效率。
此外,我们还将继续加强算法模型的研究和开发工作。我们将引入更先进的算法和模型,如深度学习、强化学习等,以提高策略的准确性和实时性。同时,我们还将加强与相关领域的合作和交流,共同推动算法技术的发展和应用。
总之,通过全面应用上述算法技术并不断探索和创新高峰策略,我们将能够更好地应对各种复杂情况下的供需失衡问题,提高服务质量和效率。同时,我们也将继续加强算法模型的研究和开发工作,为公司的长期发展提供强有力的支持。
作者
曾帆、郑悦、陈康宇、黎铨祺、刘晓航
参考资料
[1] 维基百科.整数规划[EB/OL].(2023-08-08)[2023-08-08].https://zh.wikipedia.org/wiki/整数规划
[2] datarootlabs (2021).https://datarootlabs.com/blog/uber-lift-gett-surge-pricing-algorithms
[3] ridester (2023).https://www.ridester.com/surge-pricing/
[4] Harvard Business Review (2015).https://hbr.org/2015/12/everyone-hates-ubers-surge-pricing-heres-how-to-fix-it
[5]H3: Uber’s Hexagonal Hierarchical Spatial Index (2018).https://www.uber.com/en-HK/blog/h3/
[6] Wang, P., Zhang, H., & Zhang, Z. (2023). A Ridesharing Platform with an Oversupply of Drivers: Different Assigning Rates or Commission Rates for Drivers?. Available at SSRN.
[7] Garg, N., & Nazerzadeh, H. (2022). Driver surge pricing. Management Science, 68(5), 3219-3235.
[8] Hall, J., Kendrick, C., & Nosko, C. (2015). The effects of Uber’s surge pricing: A case study. The University of Chicago Booth School of Business.
[9] Chang, Y., Winston, C., & Yan, J. (2022). Does Uber Benefit Travelers by Price Discrimination?. The Journal of Law and Economics, 65(S2), S433-S459.
[10] "Meta-learners for Estimating Heterogeneous Treatment Effects using Machine Learning", Sören R. Künzel, Jasjeet S. Sekhon, Peter J. Bickel, and Bin Yu, PNAS March 5, 2019 116 (10) 4156-4165
[11] "Estimation and inference of heterogeneous treatment effects using random forests", Wager S., Athey S., Journal of the American Statistical Association.