介绍
Uber Freight成立于2017年,旨在对庞大而低效的货运卡车行业的托运人和承运人的匹配业务进行革命性的改革$ 800B.年度花费在美国)。我们相信,并且已经证明,技术第一家货运经纪人和市场可以提供更好的机会载体,以及更好的结果托运人和社区一样。
我们通过技术除外的浪费流程之一是传统货币经纪商与负载价格(货运Lingo的货物)之间的冗长粗糙。这种练习源于货运价格上缺乏透明度以及承运人的愿意支付。Inspired by the role pricing innovation played in Uber’s massive growth, we decided to be the first freight broker to offer a transparent dynamic carrier pricing that “clears the market” through advanced algorithms, rather than with old school haggling that wastes hours and draws liquidity from the market.
在这篇文章中,我们描述了我们的框架,以产生每天数万负载数万负载的最佳价格。
业务问题
Uber Freight接受新的负载,始终从托运人拖运,最常没有人为干预。每个负载都有一个拾取位置和时间,下降位置和时间,但也需要额外的要求,例如额外要求重量,我们将忽略这篇文章。
一旦优步运费承诺运送这些负载,我们就会在接收时间找到一个移动负载的载体。此窗口在当前时间和负载的拾取时间之间 - 称为铅时间 - 可以低至3小时,平均为4-5天。
我们利用这个时间窗口,通过我们的运营商应用程序、门户网站和API,通过搜索、推荐和通知,将运营商与加载进行数字匹配,目的是覆盖加载——让运营商以预付的价格预定它。在该算法的指导下,定价决策对调整订舱率起着关键作用。
如果我们未能自动覆盖负载,我们有两个潜在的回归。我们可以使用主动人体外展(我们的运营团队)手动覆盖负载,或者我们可以“滚动”负载 - 重新安排它到以后的拾取日期。两者都有额外的运营成本,后者也有托运人的终身价值成本。
数据科学框架
本质上,我们的前期定价算法需要找到每个负载,即价格序列
随着时间的推移
,这最小化了所有负载的预期成本总和
(EQ1)
在运筹学术语中,我们面临的问雷竞技是骗人的题是最优定价
- 易腐货物 - 如果没有被拾取时间涵盖,我们会产生运营成本和处罚,
- 随着补充库存 - 负载不断到达系统,
- 取消取消 - 运营商和托运人有时取消负载,
- 在不确定性 - 驾驶员和负荷抵达的情况下是不确定的,所以将导致预订的价格也是如此
- 与部分可替代的商品 - 每个载体对时间和空间的类似负载的子集感兴趣,
- 由于全球范围的限制,我们的手动覆盖臂的能力被限制了。
如果我们将问题建模为Markov决策过程,则此问题与所研究的问题非常相似有限视野随机需求的库存最优动态定价(Gallego和van Ryzin, 1994)和相关文献。
要了解基本动态,请考虑单个负载的情况是有用的,并将上下文B放在一边。通过这样做,我们尤其忽略了对同一驱动程序或OPS容量竞争的负载,我们将在未来的博客文章中重新审视。雷竞技到底好不好用
单载案例
让我们注意
,涵盖特征负荷的预期成本
可在延期时间提供
。我们还注意
它将被预订的可能性
如果我们将其价格设置为
鉴于系统的状态
这明显代表了市场状况。
假设我们在这些选项之间最佳选择,我们可以采取至少两者的最低限度
。
在我们跳入建模方之前,我们说明了模型的结果。下面是2“相同”负载的价格轨迹在感恩节前夕,从迈阿密,佛罗里达州的一个,乔治达,另一个走向逆转的方式。请注意i)价格水平和ii)价格变化随时间变化的幅度。两者既源于货物拓扑结构 - 迈阿密的运营商比亚特兰大的选项较少,出境佛罗里达货运通常比相同的入境货运便宜。在这些模式的上下文中优化定价是我们求解器的关键任务。
返回到EQ2,因此有2个需要确定的键数量,以便找到最佳价格路径:
估计这些数量的共同挑战是数据是审查并受到约束生存偏见-我们只观察货物,直到他们被预订。在过去的几年中,我们开发了一些最佳实践来处理这些预测问题。
预订概率
从本质上讲,这是一个二元分类问题。然而,这个问题有一些特点值得强调:
- 衡量价格弹性。Logloss或pROC是衡量这类模型性能的自然方法。然而,
在基于价格的求解器内使用,因此价格弹性损失
由于低弹性将产生不切实际的激进的价格曲线,因此应该与精度的提高进行权衡。 - 执行价格单调性。这是显而易见的,但值得记住的是:预订的可能性应该随价格而增加。幸运的是,随着时间的推移,多种模型喜欢XGBoost已经获得了执行单调性的能力,允许复杂性和稳定性之间的新权衡。
- 增强数据集。在前前期价格之上,我们还自动或手动收到出价。这些出价提供了一个有用的反事实,如果我们改变了价格,那么只有价格,这使得它们对培训有价值。
- 对审查。包含负载价格和预订结果的数据库与求解器使用的内容不符:我们有很少的数据点
,而Bellman方程总是从
。这意味着数据可能必须加权以反映求解器中的短的交换时间的重要性。
终值
我们定价轨迹的最大决定因素之一是终端
价值马尔可夫决策过程将作为提前期缩小的方式接近。在最佳动态定量的文献中,该问题大多忽略了终端值,最常被认为是已知的。
在我们的情况下,终端值是不确定的,难以观察:
- 货运业 - 其中优步运费只有一个参与者 - 易失性,并且率可以在几天内按两位数的方式移动
- 只需一小部分Uber货运载荷被预订或滚动,大部分负载都覆盖了终端阶段
- 并且这些终端值的观察结果受到生存偏差:更低的载荷更可能达到
。
随着时间的推移,我们开发了几种技术来提高性能。
- 正确的离线培训数据,用于生存偏差。过去的交易导致非常快速的预订可以偏向训练集。基于模拟,可以计算给定的预订速度的预期偏差,并相应地校正价格。
- 捕获服务水平对船舶LTV的影响。有些托运人因缺乏表现而明确处罚,但大多数人没有。我们将滚动托运人的负担的“惩罚”估计在第二天滚动托运人的负荷,以使服务与保证金之间的权衡。
- 探索最低的市场价格。与多ARM强盗问题类似,我们不确定一个关键价值,并且对最大化负载累积寿命的结果最大化。汲取灵感“上限界限的方法,我们发现打折是有用的
基于可用的估计方差和时间。
构建一个弹性系统
上述方法的有效性取决于预测模型的准确性和马尔可夫决策过程对手头问题的拟合。当出现与历史行为相去很远的情况时,比如在2020年与COVID-19相关的事件期间,市场发生了巨大变化,这些可能会受到影响。
因此,早期,我们发现添加监控算法非常有用,以吸收我们的模型可能会错过的震动。它有效地创造了一种形式PID控制器这限制了系统中的错误漂移,并有助于强制执行求解器设置的预订速度目标。
正如您所见,我们的控制器在2020年的Q1中特别活跃,当时需求在显着减少之前短暂飙升。
最后的想法
在上面我们讨论了一个基本版本的动态环境中最佳定价的货物问题,将很多上下文放在一边并专注于单一负载,而不会影响其余系统,尤其是驾驶员的供应或运营能力。
我们非常高兴地看到,马尔科夫决策过程产生了优越的定价结果,不仅因为看到理论在实践中工作是令人兴奋的,而且因为理论基础允许我们扩展框架。例如,优步货运除了通过预付费预订外,实际上还有多种渠道投标和承诺的产能。该框架自然地推广以处理具有不同水平的摩擦和意图的渠道。
如果你在这个问题上享受思考,就伸出了。我们正在招聘!!







