壹直以來,大家對於預估送達時間(Estimated Time of Arrival)的算法都非常關註。都很好奇,點外賣時,訂單顯示的配送時間是怎麽算出來的。
預估送達時間用於向顧客傳遞外賣訂單送達的預估時間,以幫助顧客進行購買決策。預估送達時間算法的目標是盡可能“準”的預估時間,通過精準刻畫訂單的客觀配送難度,使騎手能夠準時送達,用戶有準確的時間預期,兼顧兩者體驗。
在美團,我們測算的“預估送達時間”並非單壹結果,而是由四個獨立計算的時間共同構成:包括壹個“模型預估時間”和“三層保護時間”。由於擔心模型預估時間可能與現實情況存在偏差,進而增加騎手的配送壓力,我們額外從城市特性、配送過程分段累加以及實際距離這三個不同維度,分別計算出三個保護時間。出於對騎手的保護,系統會最終從這四個時間中選取最長的壹個作為配送時限。因此,大家在訂單頁面所看到的,正是經過算法選擇後、對騎手更友好的那個時間結果。
預估送達時間由多個模塊共同計算得到,保障騎手充足的配送時間,包括模型取中預估、特殊場景補時和多重保護時間等。同時通過產品優化向用戶傳遞合適的時間預期,減少對於騎手催單等行為的發生,提升騎手和用戶的體驗。
在模型取中預估方面,模型以影響配送難度的壹些重要特征作為輸入,如配送距離、實時供需狀態、預估的商家出餐時間、預估的末端交付時間、天氣情況等,秉持“算法取中”為原則,學習大多數騎手的數據,從而確保絕大多數騎手都可以在對應時長內完成任務。在特殊場景補時方面,模型基於大量數據學習訓練得到,但對於壹些尾部數據稀疏場景可能會有學習不充分的問題。因此在模型預測基礎上,對於特殊場景進壹步補時,保障時間的充足,如紅綠燈補時、惡劣天氣補時、商家卡餐補時以及交付難小區補時等,同時也支持人工基於實際情況進行靈活補時。在多重保護時間方面,在補時基礎上,系統還會計算多重的保護時間,對模型時間和多個保護時間取最大值作為最終的結果。
合理用戶預期
我們還發現,騎手在配送過程中存在壹些難度較高的特殊場景,如遠距離、單量多等場景。為降低這些共性困難場景的配送難度,我們在這些場景的訂單顯示的預估送達時間,將由之前的“時間點”變為“時間段”。“預估送達時間段”讓用戶對配送時間有了更合理的預期,也減少了騎手在特殊場景下的配送壓力。在和用戶的交互上,通過產品優化為用戶提供更合理的時間預期,從而減少用戶催單,進壹步提升騎手和用戶的體驗,包括在配送不確定性大的場景展示時間區間、展示訂單的實時配送狀態等。
預估送達時間計算的核心挑戰
預估送達時間算法的核心目標,是實現對配送時間的精準預測,從而優化騎手與用戶的整體體驗。然而,這壹目標的實現面臨著諸多客觀世界的挑戰:例如,如何將復雜的物理環境精準數字化、如何應對商家出餐時間的高度不確定性,以及如何對交通狀況或天氣變化等突發事件進行實時感知與響應。
此外,我們也建立了超時申訴機制。若配送超時系由不可控的客觀因素導致,騎手可通過該通道申訴,經核實後將免除相關責任。與此同時,我們也在持續叠代ETA算法,致力於提升其預測準確性與場景適應性,從而在不斷變化的配送環境中,為騎手和用戶提供更可靠、更合理的體驗保障。