1

美团配送2021KDD论文:A Deep Learning Method for Route and Time Prediction in Food Delivery Service

背景

配送系统存在一些关键预测环节。

  • ETA:用户下单前,系统会给用户一个承诺的预计送达时间(ETA);
  • ETR:订单(A)分配到具体的骑手之后,在用户侧APP端可以看到骑手位置,以及更加准确、实时变化的预计送达时间(ETR);
  • 预计配送顺序:在后续的订单分配时,需要预测订单(B)分配到骑手之后,骑手新的配送顺序(预估顺序)以及新的到达各用户的时间(ETR)。(需要注意的是,由于骑手受到ETA的约束,并不会随意选择配送顺序)

    • 评估指标1:参考排序指标,LSD(location square deviation)、kendall系数
    • 评估指标2:顺序一致率,即,两个顺序的公共前缀长度占比
    • 评估指标3:时间指标,ME、MAE、N分钟置信度
  • 建议配送顺序:在骑手端,系统会基于时效、路程、交通规则等给出建议配送顺序(建议顺序),对骑手没有强制力。建议顺序为分单之后的动作,对分单策略不具有参考意义。

本文要解决的是外卖配送领域的骑手路径预测和时间预测任务,简称FD-RTP (Food Delivery Route and Time Prediction) 。FD-RTP问题较为复杂,主要体现在3个方面:

  • 骑手通常同时对多个订单进行取餐和配送(在高峰时段,甚至可以达到同时取送10单),对应的路径求解空间巨大,针对高峰期10单的情况,可以达到2.376*10^15个解。此外,路径预测需要考虑骑行距离以及每个订单的准时性。
  • 整个路径的时间预测涉及到骑行时间、取餐配送阶段的步行时间、骑手在餐厅的等餐时间3部分。时间预测过程中存在比较大的不确定性,而且随着路径长度的增长,这种不确定性也随之增加。
  • 作为一种线上算法,FD-RTP任务会被其他应用频繁调用,因此,FD-RTP任务需要在毫秒粒度返回结果。

之前(外卖配送路径规划算法:两阶段快速启发式算法)将FD-RTP任务看做一个PDPTW (pickup and delivery problem with time windows) 问题,重点通过优化搜索算法最小化启发式cost(heuristic cost,由time delay、delivery distance两部分组成),鲜少提升时间预测的准确度,而时间预测作为PDPTW中计算time delay的关键参数,其准确性下降也会导致搜索出的路径结果准确性下降。当前的算法结构下,针对单个FD-RTP任务,启发式搜索算法在返回结果之前需要求解上千个轮次,每个轮次都需要调用时间预测算法。正是因为这种算法结构,需要时间预测算法快速返回结果,所以,模型选型、特征选择总要做一些取舍,e.g.时间序列模型,骑手的历史行为习惯特征、时空关系特征、骑手所在位置的环境特征。

相关工作

RR (Route Recommendation)

RR问题指的是,在给定OD的前提下,基于历史轨迹为用户推荐出合适的routes。在之前的工作中,将该问题看做是一个在图(graphs)上的路径规划问题(pathfinding problem ),研究重点主要在设计启发式搜索算法,降低搜索空间。启发式搜索算法需要大量的迭代轮次,同时,设计合适的cost函数成为了算法的关键点。

然而,大量的研究将cost function设计成启发式的,导致算法应用性受限,不便于大范围推广。同时,启发式搜索算法在搜索过程中难以充分利用各种各样的环境特征,这基本上也是整个运筹优化方向类算法所面临的共同缺陷

针对以上问题,大量的研究放在了利用机器学习方法引入更多的特征参与推断。

  • Chen et al. propose a Maximum Probability Product algorithm based on the Absorbing Markov Chain to discover the most popular route between two locations [4]
  • In [22], the authors adopt probabilistic models incorporating both temporal dynamics and spatial dynamics and address the data sparsity challenge for route recovery.
  • The development of deep learning sheds light on the RR problem using neural networks, especially the promising effectiveness of RNN for modeling sequential trajectory data.

    • In [1], the authors propose Space Time Features-based RNN to predict people next movement by discovering the mobility patterns.
    • Wu et al. design two RNN based models to capture variable length sequence of trajectory data and address the constraints of topological structure on trajectory modeling [21]

由于引入了订单准时率、骑手骑行成本,FD-RTP任务比RR问题更加复杂。

ETA

ETA预测有两个流派:OD-based、route-based。

OD-based类型的方法主要使用起始点特征,不考虑route及segment粒度的特征。相关研究如下:

  • Jindal et al. propose ST-NN (Spatio-Temporal Neural Network), predicting the travel distance between OD and further predict the travel time combined with other time information [9]
  • In [14], Wang et al. propose TEMP+R, which estimates the time duration as the weighted average travel times of similar historical trips.

route-based类型的方法主要放在对组成route的多条路段的预测,最终对预测结果进行聚合。

  • BusTr infers bus delays combining real-time road traffic forecasts and contextual information [2]. Using a restricted fea- ture set, BusTr can be generated to cities without training data. Besides, formulating ETA as a pure regression problem, Wang et al.
  • formulating ETA as a pure regression problem, Wang et al. propose a Wide Deep Recurrent learning model to capture global spatiotemporal and route segment information in [17]
  • Hong et al. further employ an Attention based GNN (Graph Neural Network) to embed road network data, and model temporal heterogeneous information, beyond the state-of-the-art methods [8].

与传统ETA相比,除了考虑骑行时间,FD-RTP还需要考虑取餐、交付阶段的步行时间。

问题定义

image.png

FD-RTP任务的目标是准确预测骑手的location集合的访问顺序,即,l_0、P、D中元素的排列组合。可行route需要满足3项约束:
1)route必须以l_0为起点;
2)一个订单的pickup location应该在delivery location之前;
3)订单o的取餐时间必须晚于PT_o(商家备餐完成时间)。

Data Set

原始数据为最近两周的业务数据,涉及4.3亿订单、160万骑手。由于骑手配送过程中会持续有新订单加入,所以,原始数据并不能直接用于模型建模。因此,我们按照骑手分配新订单的时间点拆分骑手实际配送路径。以下图为例,我们将订单4分配给骑手为分界时间,将配送路径分为两段。
image.png

经过一些其他预处理(e.g.剔除速度过高的异常骑手)之后,剩余1.35亿条样本。下图罗列了每条样本所用到的特征信息。
image.png

需要特别说明的是,交付时长(drop off duration)、出餐时间(earliest pickup time)由其他模型产出,这里看作是已知信息。在RP模块和TP模块中,使用的信息存在差异,具体查看table2,这里不再赘述。

模型细节

image.png

如上图所示,本文提出了一种基于深度学习解决FD-RTP的方法,简称FDNET (Food Delivery Route and Time Prediction Deep Network)。FDNET通过对大量历史配送数据的挖掘,预测未来骑手访问location的概率,相比于启发式搜索算法,该方法能够较大的缩小路径规划求解空间,同时降低时间预测的调用频次。该方法仅生成少量高概率可行解,并预测其配送时长。计算量下降之后,便可以考虑将更多的特征加入到模型中,又进一步提高了模型预测的准确性。

FDNET由两部分组成:RP (route prediction) 模块和TP (time prediction) module模块。

RP模块用于预测骑手下一步的访问节点(location)的概率,进而预测出整个route。我们分析影响骑手行为的因素后,基于RNN和Attention设计出时间序列模型,借此更加详尽的描绘出骑手的决策过程。

TP模块用于预测route上两相邻节点之间的通行时间(离开O,到达D),并在考虑出餐时间、交付时长的情况下,生成每个订单的履约完成时间。我们将TP模块看作是ETA (Estimated Time of Arrival) 问题的变种。

RP模块和TP模块在FDNET中巧妙地结合在一起。TP模块的route 特征来自于RP模块,而TP模块的输出结果会作为骑手的未来特征加入到RP模块下一轮的预测中。

RP模块

RP模块可以形式化描述为如下形式:
image.png

其中,X表示代表在l_i地点所能获取到的所有信息。

特征

特征方面,主要考虑影响骑手决策的因素并借此设计特征,分析结果如下图所示。

image.png

从图上可以看出,
1)准时率的考虑,骑手优先取送剩余时间短的订单;
2)骑手倾向于先访问较近的location
3)相同情况下,骑手倾向于已经完成备餐的订单,完成时间点越早越好
4)倾向于优先配送交付时间长的订单,避免出现超时

模型

1.预处理阶段,对稠密特征进行离散化处理,并embedding化。主要基于两方面考虑:

  • 稠密特征的微弱变化,并不会影响骑手的行为,同时,离散化可以提高模型稳定性;
  • 我们希望模型可以学到微妙的表征,而不是直接用numerical values 。

2.使用deepFM模型,充分利用一阶特征、二阶交叉特征、高阶特征;
3.最终得到长度为m的向量,表征环境特征v_c,骑手特征v_u,订单o的取餐特征v^p_o,订单o的配送特征v^d_o;
4.利用LSTM处理时序数据,利用Attention计算倾向性
5.确保「问题定义」章节中的前两项约束。

LSTM Layer

image.png
在当前问题中,可以表示为如下形式:
image.png
其中,h_i-1、c_i-1 分别表示i-1阶段计算所得的两个状态。
计算细节如下:
image.png

其中:

  • σ为sigmoid函数,σ(x)=1/(1+e^{-x})
  • v_{l_{i-1}}表示地点l_{i-1}的向量表示,包括环境特征、骑手特征、取餐或配送特征(根据l_{i-1}的实际取送情况而定)。需要特别说明的是,在l_0时,因为不是具体的取送点,此时向量只包含环境特征和骑手特征。
  • 每一步计算,更新环境特征和骑手特征
  • h_t包含了前几个step的所有信息,作为后续预测的主要特征
  • step之间增加dropout,避免过拟合
Attention Layer

image.png

在每一个location,骑手都会从所有pickup、delivery任务(用C _i表示)中选择一个作为接下来的访问地点。这里利用Attention机制描述骑手的决策过程。在第i轮次,我们首先获取骑手的全局信息(global view ),然后,计算骑手在i+1时访问location l的概率P(l),其中l属于C_i。

为了表示全局信息,
image.png
image.png

其中,h_i表示LSTM单元第i轮次的输出表示,v_l_j表示第j个location的特征。h_i与v_l_j的乘积越大,a_ij 就越大,对应的,g_i就更侧重于v_l_j向量(g_i是v_l_j向量的加权向量)。实际上,就是根据隐藏层与特征的相关性,决定关注点(attention)应该放在哪个location上。需要注意的是,这里并没有额外增加待训练参数,个人认为,可以看作是attention的简化。我们将g_i看作是骑手的全局信息(global view ),对应下一个访问点的概率如下:
image.png

到此,RP模块基本就讲述完了。

后续训练和预测过程有两种不同的策略,greedy strategy 和Beam Search strategy,前者每个轮次贪婪的选择一个最佳位置,并持续到所有轮次结束;后者每个轮次选择n个最佳位置,在下一个轮次中基于n*m个候选结果中选择n个最佳位置,直到所有轮次结束。

简单来讲,LSTM用i-1轮的信息得到h_i,用候选location(C_i)及h_i计算成为下一个访问节点的概率。
Attention的作用在于权重向量g_i,它由1)h_i与location向量v_l_j的相关性 2)location向量v_l_j 两部分决定;P由权重向量g_i和location向量v_l_j决定,所以,最重要的是h_i与v_l_j乘积的大小。

TP模块

TP模块用于预测到达各location的时间,即,从离开上一个location开始到到达当前location的时间差。问题定义阶段提出了3个约束,TP模块解决第三个约束问题,即,订单o的取餐时间必须晚于PT_o(商家备餐完成时间)。通过组合各时间差及备餐时间,我们可以得到各location的预计达到时间。如果骑手提前达到餐厅,他需要等待外卖准备完成;否则,骑手可以立即取餐。

我们将TP模块看做是一个纯粹的回归问题,形式化描述为如下形式:
image.png

其中,X^t_i表示在i轮次可以利用到的信息。

特征

  • 环境特征
  • 骑手特征
  • 地理特征:我们利用了GPS经纬度的embedding信息
    image.png

其中,dist指网格之间球面距离,本文采用300m的网格。

  • 地理特征:交付时长
  • OD特征:导航距离,不同时间粒度(昨天、前七天、上周同日)的导航时间统计特征,考虑到数据的稀疏性,我们利用geohash编码计算以上特征

模型

image.png

采用wide&deep模型:

  • deep部分擅长抽取与location相关的潜在特征
  • wide部分与RP模块有所不同,使用数值类型的稠密特征(因为预测目标与这类特征的变化非常敏感,e.g.导航距离)

针对预测OD类型的差异性,将OD分为6个部分。主要基于两个原因:

  • 不同类型之间特征差异较大
  • 不同类型之间的消耗时间分布差异较大
    image.png

模型训练与预测

训练

采用 teacher forcing strategy 策略,即,涉及时间序列时训练采用真实数据,预测采用前几个轮次的预测结果序列。在我们这个问题上,RP模块、TP模块均使用骑手的真实骑行序列作为输入;在RP模块中,当需要计算l_i的时间特征时,均采用骑手离开l_i-1的真实时间作为输入。

在RP模块,我们使用交叉熵损失函数:
image.png
其中,D表示训练集,i表示样本中包含的轮次。

在TP模块中,我们使用MAE作为损失函数:
image.png

我们使用独立的adam优化器和学习率训练RP和TP模块,即,两部分是独立训练的。

预测

虽然训练时独立,但预测时RP模块和TP模块的协调非常紧密。在i轮次,RP模块使用RP模块在i-1轮次所产生的location及TP模块的i-1轮次对应更新后的特征(最早取餐时间、剩余配送时间、导航距离等)作为输入。此后,TP模块利用RP模块预测的location作为输入,产生i轮次的时间预测结果。

实验效果

离线评估

RP模块

image.png

route长度对指标影响较大,这里根据业务特点拆分成short route(小于等于8个location)和long route(8个以以上location)两类数据集。在确保特征尽量一致的情况下,测试FDNET与LR、RF、XGB的效果。指标上,看做point-wise排序,采用HR@1、MMR指标。

  • HR@K:分母是所有的测试集合,分子式每个用户top-K推荐列表中属于测试集合的个数的总和
  • MRR 是一个国际上通用的对搜索算法进行评价的机制,即第一个结果匹配,分数为1,第二个匹配分数为0.5,第n个匹配分数为1/n,如果没有匹配的句子分数为0

从结果可以看出:
1)route越长,解空间和不确定性越大,指标越差
2)LR效果好于RF和XGB,有点出乎意料,推测是RF、XGB这集成学习方法擅长利用统计特征
3)FDNET在两类数据集上均好于传统方法,推测是因为FDNET利用LSTM学习行为序列、attention刻画决策过程两方面原因
4)对比剔除环境特征、骑手特征的实验发现,因为环境特征对骑手决策影响较小,对应的与原始FDNET算法差别不大;从结果也可以推测出,骑手特征对骑手决策影响更大。未来可以尝试在这方面扩展颗粒度进行优化。

image.png

除此之外,还用XGB测算了一下不同特征的重要程度,即,特征在XGB中作为分裂节点的次数。从结果可以看出,pickup特征、delivery特征更加重要。

TP模块

在确保特征尽量一致的情况下,测试FDNET与线性回归、RF、XGB的效果,(GPS的embedding除外,其无法在线性回归、RF、XGB等传统方法中使用)对比指标为MAPE。

image.png

分析结果如下:

  • 在传统方法中,XGB好于其他两类方法
  • FDNET优于传统方法
  • 与RP模块不同,骑手信息对时间预测非常有帮助。(但从table 4的特征重要性来看,骑手信息在当前利用率却不高,需要在未来做扩展)

location粒度时间准确性

将RP模块和TP模块组合,我们能够计算达到每个location的时间点,该部分将评估location粒度时间预测的准确性。table 6 是FDNET相对于传统启发式搜索方法所降低的MAPE比例,value越大代表算法效果越好。
image.png

从结果可以看出:

  • 不管是Greedy还是Beam Search(每次保留2条最高概率结果),FDNET都优于传统方法;
  • 针对short类型,pickup样本中greedy方法优于beam search方法,delivery样本中greedy方法持平beam search方法;针对long类型,beam search 均优于greedy。所以,在实际项目中,短链采用greedy方法,长链采用beam search方法。

线上AB实验

AB实验结果显示,FDNET可以获得0.08pp的订单准时率提升,订单生命周期降低20秒,骑手平均行驶距离降低60米。所以,FDNET方法同时提高了用户满意度和骑手体验。

case study

image.png
Case #1

传统方法考虑到l1剩余时间不足,存在超时风险,给出先送l1,再取l2、送l2的结果。凭经验平衡时间分、路程分,是传统方法的一个劣势。
FDNET考虑了骑手习惯及历史行为,给出先取l2、送l2、再送l1的结果,该结果与实际访问顺序相同。

Case #2
传统方法和FDNET方法在case上均预测错误。有两个原因:
1)由于l1、l2取餐位置太近,先取l1还是l2,存在非常高的随机性
2)备餐时间存在比较大的不确定性,该时间来自于另外一套ETA系统,预测结果存在偏差

个人观点:从实际业务来讲,先取1还是先取2并不影响骑手的总体路程和耗时。 这里更像是一个评价体系存在的问题。

Case #3
交付难度是影响骑手行为的重要因素,o1靠近道路,更容易交付;o2需要停车进入社区,交付更难。骑手更倾向于优先处理容易的订单,这和之前的特征分析存在矛盾。后续需要更加关注骑手的个性化信息,e.g.骑手对于配送先后顺序的偏好,骑手历史访问顺序。

未来优化方向

  • 骑手对于配送先后顺序的偏好,骑手历史访问顺序
  • 骑手对餐厅、配送位置的熟悉程度
  • 更加大量的环境信息,e.g.交通状况
  • 针对TP模块,引入route link的链接信息

喜东东
17 声望28 粉丝

不积跬步无以至千里.