一直以来,大家对于预估送达时间(Estimated Time of Arrival)的算法都非常关注。都很好奇,点外卖时,订单显示的配送时间是怎么算出来的。
预估送达时间用于向顾客传递外卖订单送达的预估时间,以帮助顾客进行购买决策。预估送达时间算法的目标是尽可能“准”的预估时间,通过精准刻画订单的客观配送难度,使骑手能够准时送达,用户有准确的时间预期,兼顾两者体验。
在美团,我们测算的“预估送达时间”并非单一结果,而是由四个独立计算的时间共同构成:包括一个“模型预估时间”和“三层保护时间”。由于担心模型预估时间可能与现实情况存在偏差,进而增加骑手的配送压力,我们额外从城市特性、配送过程分段累加以及实际距离这三个不同维度,分别计算出三个保护时间。出于对骑手的保护,系统会最终从这四个时间中选取最长的一个作为配送时限。因此,大家在订单页面所看到的,正是经过算法选择后、对骑手更友好的那个时间结果。
预估送达时间由多个模块共同计算得到,保障骑手充足的配送时间,包括模型取中预估、特殊场景补时和多重保护时间等。同时通过产品优化向用户传递合适的时间预期,减少对于骑手催单等行为的发生,提升骑手和用户的体验。
在模型取中预估方面,模型以影响配送难度的一些重要特征作为输入,如配送距离、实时供需状态、预估的商家出餐时间、预估的末端交付时间、天气情况等,秉持“算法取中”为原则,学习大多数骑手的数据,从而确保绝大多数骑手都可以在对应时长内完成任务。在特殊场景补时方面,模型基于大量数据学习训练得到,但对于一些尾部数据稀疏场景可能会有学习不充分的问题。因此在模型预测基础上,对于特殊场景进一步补时,保障时间的充足,如红绿灯补时、恶劣天气补时、商家卡餐补时以及交付难小区补时等,同时也支持人工基于实际情况进行灵活补时。在多重保护时间方面,在补时基础上,系统还会计算多重的保护时间,对模型时间和多个保护时间取最大值作为最终的结果。
合理用户预期
我们还发现,骑手在配送过程中存在一些难度较高的特殊场景,如远距离、单量多等场景。为降低这些共性困难场景的配送难度,我们在这些场景的订单显示的预估送达时间,将由之前的“时间点”变为“时间段”。“预估送达时间段”让用户对配送时间有了更合理的预期,也减少了骑手在特殊场景下的配送压力。在和用户的交互上,通过产品优化为用户提供更合理的时间预期,从而减少用户催单,进一步提升骑手和用户的体验,包括在配送不确定性大的场景展示时间区间、展示订单的实时配送状态等。
预估送达时间计算的核心挑战
预估送达时间算法的核心目标,是实现对配送时间的精准预测,从而优化骑手与用户的整体体验。然而,这一目标的实现面临着诸多客观世界的挑战:例如,如何将复杂的物理环境精准数字化、如何应对商家出餐时间的高度不确定性,以及如何对交通状况或天气变化等突发事件进行实时感知与响应。
此外,我们也建立了超时申诉机制。若配送超时系由不可控的客观因素导致,骑手可通过该通道申诉,经核实后将免除相关责任。与此同时,我们也在持续迭代ETA算法,致力于提升其预测准确性与场景适应性,从而在不断变化的配送环境中,为骑手和用户提供更可靠、更合理的体验保障。