简介ETA(EstimatedtimeofArrival,预计配送时间)是外卖场景中最重要的变量之一(如图1所示)。我们ETA预估的准确性和合理性,将对亿万外卖用户的订单体验产生深远的影响,关系到用户后续的行为和留存,是用户后续订单意愿的压舱石。ETA在配送业务结构中也起着重要作用,是配送运单实时调度系统的关键参数。准确预估ETA可以提高调度系统的效率,实现有限运力下运单的合理分配。在保证用户体验的同时,精准预估ETA还可以帮助线下运营建立有效可行的配送考核指标,保障骑手体验和收益。图1ETA的商业价值近年来,ETA在互联网行业的应用取得了长足的进步,其中外卖和打车行业最为受关注。不过,与打车行业相比,ETA在外卖行业的业务场景更为复杂。如图2所示,从业务要素来看,打车涉及乘客和司机两方,而外卖行业涉及骑手、商家和用户三方,这使得处理问题成为一个数量级更加困难。从业务环节来看,网约车分为派单、取车、派送三个环节。取餐、送餐四个环节是用户、骑手、商家来回交叉的场景。业务环节的增加带来了更多的复杂性和不确定性。比如骑手运营的各个环节都有很多不可控因素,商家送餐可能比较慢。此外,产能规划和天气因素也存在不确定性。这直接导致外卖ETA采用了端到端(order-to-order)的预估方式,比拆分成四个环节分别预估更容错。无论是业务涉及的要素还是业务环节,外卖业务的复杂度远高于打车业务,估计ETA的难度也更大。图2.ETA架构图ETA中比较常用的模型有基于GBDT(GradientBoostDecisionTree,梯度提升决策树)、RF(RandomForest,随机森林)和线性回归的回归预测模型。GBDT利用DTBoosting的思想,通过梯度求解来跟踪残差,最终达到利用弱分类器(回归器)构建强分类器(回归器)的目的。RF在DTBagging的基础上,通过加入样本随机性和特征随机性,引入了更多的随机性,解决了决策树泛化能力弱的问题。线性回归作为一种线性模型,易于并行化,处理数亿训练样本不成问题。但是,线性模型的学习能力是有限的,需要大量的特征工程来提前分析出有效的特征和特征组合,从而间接增强线性回归的线性学习能力。在回归模型中,特征组合非常重要,但仅仅依靠业务理解和人的经验不一定能提高效果,从而导致在实际应用中存在特征缺失的问题。因此,如何发现、构造、组合有效的特征,弥补人工经验的不足成为ETA的重要内容。GBDT构建特征的现状Facebook2014年的文章介绍了使用GBDT解决LR的特征组合问题。[1]GBDT的思想对于发现多种区分特征和组合特征具有天然的优势,可以用来构造新的组合特征。Facebook的文章中会根据样本在GBDT中的输出节点索引位置构造0-1特征,实现特征丰富。在新构建的0-1特征中,每一个特征都对应着样本在每棵树中可能的输出位置,它们代表着某些特征的某种逻辑组合。例如,一棵树有n个叶节点。当样本在第k个叶子节点输出时,第k个特征输出1,其余n-1个特征输出0,如图3所示。图3.GBDT(GradientBoostDecisionTree)特征构建方法至于尺度构建新特征,需要根据具体的业务规模来确定。当GBDT中树的数量较多或树深度较深时,构造特征的规模也会显着增加;当业务使用的数据规模较小时,大规模构建新特征会导致后续训练模型过拟合。可能的。所以构建特征的尺度需要足够合理。GBDT构建特征在ETA场景中的应用方案在ETA场景中,由于业务场景的复杂性,特征的丰富程度决定了ETA最终效果的上限。目前的特征中,在特征工程的基础阶段,我们依靠业务理解、人工分析和经验总结来构建特征。但是,在功能层面仍然存在不足。需要丰富特征,??挖掘特征之间的潜在价值。基本特征构造图4.基本特征构成特征作为ETA的重要组成部分,决定了ETA的上限。我们基于人类经验和业务理解构建不同的离线特征和在线特征。(1)离线功能商户画像:商户平均配送时间、到货时间、取餐时间、配送状态、订单量、品类偏好、客单价、平均配送距离。b.配送区域画像:区域运力平均水平、骑手规模、订单规模、平均配送距离。(2)在线功能商户实时特征:商户挤单状态、近N分钟订单量、近N分钟订单量。b.区域实时特征:实时值班骑手规模、区域挤(未接)订单、运力负荷状态。C。订单特征:交货距离、价格、类型、时间段。d.天气数据:温度、气压、降水量。其中,地域和商户的实时性特点与配送能力密切相关,是决定配送时效和用户体验的重要因素。GBDT模型训练和特征构建利用基本特征训练GBDT模型构建新特征。在GBDT中,我们每次训练一棵CART(ClassificationAndRegressionTrees)回归树,根据本轮CART树的损失函数的反梯度,拟合下一棵CART树,直到满足要求。(1)超参数选择首先,对于节点分裂的质量和随机性,分裂时使用的最大特征数为√n。b.GBDT迭代次数(树数)。树的数量决定了后续构造特征的尺度,对应学习率。通常学习率设置得较小,但如果设置得太小,会导致迭代次数大幅增加,使得新构建的特征尺度过大。通过GridSearch+CrossValidation,找到最合适的迭代次数和学习率的组合。C。GBDT树的深度需要足够合理,通常4~6比较合适。虽然增加树的数量和深度可以增加新构造的特征尺度。但是如果树的深度太大,模型会过拟合,新构造的特征会过于稀疏。(2)训练程序随机抽取50%的训练数据,一分为二。前50%用于训练GBDT模型,后50%的数据通过GBDT输出样本在每棵树中输出的叶子节点的索引位置,记录和存储用于后续构建和编码新功能,以及后续模型。火车。例如样本x通过GBDT输出后,得到的形式为:x→[25,20,22,....,30,28],列表表示样本的叶子节点索引位置GBDT的每棵树中的输出。OneHotEncoder(newfeaturehotencoder)图5.OneHotEncoder(newfeaturehotencoding)使用方法样本通过GBDT输出后得到的x→[25,20,22,....,30,28]是一组newfeatures,但是由于这组新特征是叶子节点的ID,其值不能直接表达任何信息,所以不能直接用于ETA场景的预估。为了解决上述问题,避免训练过程中无用信息对模型造成负面影响,需要通过OneHotEncoder编码对新特征进行处理,将新特征转化为可用的0-1特征。以图5中的第一棵树和第二棵树为例。第一棵树有三个叶子节点,样本将在三个叶子节点中的一个输出。因此,样本在树中可能输出三种不同的分类值,需要3个比特值来表达样本输出在树中的含义。图中,样本在第一棵树的第一个叶子节点输出,one-hot代码表示为{100};而第二棵树有四个叶节点,样本在第三个叶节点输出,即{0010}。将每棵树中样本的one-hot编码拼接在一起,表示为{1000010},即通过两棵CART树构建7个特征,构建特征的规模与叶节点规模直接相关GBDT中的CART树。新特征基于one-hotencoding编码后,加上原有的基础特征,特征规模达到1000+以上,实现了特征丰富。评价指标与实际效果评价指标不同于传统的回归问题。ETA与实际业务深度耦合,因此需要根据业务因素考虑更多的评估指标,以满足各端(C端、R端)用户的利益。①N分钟准确率:订单实际送达时间与预估时间绝对误差在N分钟以内的概率。1.业务含义:在N分钟的准确率中,N的确定方法来自于绝对误差与用户满意度的关系曲线。通常绝对误差在一定范围内,用户满意度不会有明显波动。如果发现当误差大于K分钟时,用户满意度明显下降,那么可以将K作为N分钟准确率中N取值的依据。预估时长相当于C端用户对平台提供的配送速度的心理预期。如果N分钟的准确率越高,证明预估时长越接近用户的心理预期,说明C端用户体验越好。2、计算方法:Xi:样品i的绝对误差=abs(实际交货时间-预计时间)。计算每个样本的误差是否在N分钟以内,统计概率P(Xi<=N),如图6和图7所示。图6图6.判断订单估计是否准确的计算方法图7图7N分钟准确率计算方法②N分钟业务准时率:实际送达时间与预估时间相差在N分钟以内的概率。1、业务含义:N分钟业务准点率中N的确定方法与N分钟准确率类似。N分钟业务准时率是合理评价骑手、保障骑手业绩效益的指标。与其他回归情景相比,ETA情景不仅估算准确,而且估算合理。N分钟准确率虽然可以有效量化C端用户体验指标,但无法衡量R端骑手体验。因此,N分钟业务准点率是一个很好的补充指标。2、计算方法:Xi,样品i的偏差值=(实际交货时间-预计时间)。如果xi<0,则表示骑手提前送货,相当于商家准时。如果0
