送外賣也要“黑科技”?阿里移動感知技術應用揭秘

阿里技术發表於2020-08-20

送外賣也要“黑科技”?阿里移動感知技術應用揭秘

阿里妹導讀:送餐路上外賣騎手們所處的位置不僅牽動著大家的心,在本地生活的場景下,也是訂單配送和排程系統的重要一環。其中騎手是否已到店取餐看似簡單卻難以準確觀測。針對這一問題,阿里本地生活科技中心建立了基於移動感知的aBeacon系統來準確地觀測騎手到店和離店行為。這一工作成果也發表在了網路系統領域的頂級會議NSDI’21上。本文將從實現原理為大家做一個簡單介紹。

一  背景

作為本地生活的一個重要組成部分,外賣已經進入千千萬萬的家庭。相信很多小夥伴已經注意到,餓了麼的每一個訂單,我們都會及時向使用者通知這一單現在所處的狀態,比如“商戶接單”,“騎手到店”,“騎手送達”等。這個實時狀態的更新,不僅能讓使用者及時瞭解自己外賣到了哪裡,對於整個平臺的騎手排程和時間預估都有著重要意義。

而在所有的節點中,騎手到店前後的兩個節點“騎手到店”和“騎手取餐”對於整個平臺的價值就更為重要,主要體現在以下三個方面:

時間預估

騎手到店的時間是騎手從接單位置到商戶位置的終止時間,而騎手離店的時間則是騎手從商戶位置到使用者位置的起始時間。掌握這些準確的時間,能給時間預估模型提供準確的標籤用於模型訓練。我們在APP裡看到的“預估配送時間”就是這樣計算出來的。同時,知道騎手在商戶位置等了多長時間,我們就可以知道商戶準備這一單需要多長時間,也就是商戶的“出餐時間”。而掌握了準確的出餐時間,我們在給某一單找合適騎手的時候就能更加地遊刃有餘了。

騎手排程

當使用者在外賣平臺下單後,平臺就會開始為這一單尋找合適的騎手來配送,這個過程就叫騎手排程。騎手排程是一個複雜的過程,需要考慮同時考慮商戶,騎手和使用者的位置,還要考慮騎手身上已有的單和商戶正在準備的單。一個總的原則是,讓更近的,更順路的騎手去取單。如果我們知道了騎手到店的準確時間,我們就可以知道騎手在當前時刻的具體位置,並且能夠預估出騎手在未來一段時間的大概位置。這就給我們的騎手排程提供了準確可靠的資料來源。

超時單判責

雖然排程系統會盡力保證每一單都儘快送達,但還是會有一些情況導致少部分運單會超時,給使用者帶來不好的體驗。為了提升排程系統的效能,減少超時單。我們首先需要知道超時的原因,從而在未來的排程中作出改進。超時的兩個主要原因是“商戶已出餐但騎手未到店”和“騎手已到店但商戶未出餐”。在沒有明確資料的情況下,這兩個對立的原因往往會出現“公說公有理,婆說婆有理”的情況。如果我們能夠準確獲得騎手到店的時間,這一困境就會迎刃而解。

二  挑戰

既然獲取準確的騎手到店時間是如此重要的問題,為什麼現有的方法還是無法很好的解決這個問題呢?這是因為考慮到本地生活的場景,要獲得準確的騎手到店時間,面臨著以下幾方面的挑戰:

GPS在室內的漂移

現在手機定位最常用的方法就是GPS定位。但無論是GPS,還是我們最近剛組網成功的北斗系統,其本質上都需要手機裡的晶片來接收地球上方的衛星訊號。但商戶的位置往往是在室內,當我們在室內環境時,GPS訊號會受到建築物的遮擋,導致GPS訊號微弱甚至完全失去訊號。這個時候GPS的精確度就會從幾米擴大到幾百米甚至幾公里,導致GPS訊號出現漂移。因為這一漂移現象的存在,我們需要劃定一個範圍來判斷騎手是否到達了商戶。當我們用一個較小的範圍時,可能會出現“騎手已到店但我們認為沒到”,如果我們用一個較大的範圍,那麼騎手到店時間的準確性則會大打折扣。

商戶在不同樓層的垂直分佈

在GPS漂移之外,商戶在不同樓層的垂直分佈也會給騎手到店的準確判定帶來困難。當商戶分佈在不同樓層時,即使我們透過GPS判斷出騎手已經在水平方向上到達商戶附近,但由於沒有垂直方向的資訊,我們仍然無法準確判斷出騎手到店的具體時間。如今越來越多的商戶都分佈在商場的不同樓層,這部分訂單的騎手到店時間就很難觀測。雖然GPS會返回一個海拔資訊,但在實際的應用中我們發現這個值往往是不夠準確的。

商戶環境的動態性和騎手手機的多樣性

一些室內定位的方法透過收集特定環境的聲音指紋,光指紋或者磁場強度指紋來建立指紋庫,然後透過指紋對比來判斷手機所處的位置。理論上如果我們能夠採集商戶環境的指紋,並和騎手手機收到的訊號進行比對,就可以判斷騎手是否已經到達商戶。但由於商戶環境的動態性,比如裝修改造和人來人往帶來的實時擾動,我們很難建立一個穩定的指紋庫來進行比對。同時,由於聲光磁的指紋收集受到手機硬體的影響,騎手手機的多樣性也對指紋庫的建立帶來很大挑戰。

基於Wi-Fi的方法的侷限性

隨著越來越多的室內環境有Wi-Fi訊號的覆蓋,基於Wi-Fi訊號的室內定位也得到了充分研究。但基於Wi-Fi方法也有兩個侷限性:一是持續的Wi-Fi掃描會帶來極大的能耗負擔,這對於工作極度依賴手機的騎手很不友好;二是出於隱私保護等原因,iOS系統只支援獲取當前連線的Wi-Fi資訊,而不支援獲取Wi-Fi掃描的列表,但騎手在取餐過程中很少連線商戶的Wi-Fi。這兩個原因導致了基於Wi-Fi的定位方法無法適用於騎手到店的場景。

三  解決方案

當我們把騎手到店觀測問題抽象出來,可以發現這是移動感知(Mobile Sensing)領域經典的“室內定位(Indoor Localization)”或者“存在監測(Presence Detection)”的問題。移動感知是指利用移動裝置上的網路訊號或聲光電磁等感測器訊號對使用者的位置,行為,場景等進行感知的技術。手機上的計步功能,以及智慧手錶提供的心率監測和睡眠監測等功能,都是移動感知技術在生活中的具體應用。近些年來,隨著移動裝置的升級,研究者們也在探索移動感知的新應用,比如用Wi-Fi訊號感知鍵盤敲擊和老人摔倒,用手機話筒來檢測醉駕,用新的感測器來感知使用者的情緒和壓力狀態等。

這些研究也給我們的到店觀測問題提供了很多思路,比如基於Wi-Fi的室內定位,基於特定光訊號和聲訊號的定位方法等。但是透過上面的討論我們可以看出,這些方法都難以很好地解決騎手到店觀測問題。針對這一情況,我們設計並部署了aBeacon系統,一個基於藍芽訊號的移動感知系統,來解決騎手到店觀測的問題。其實基於藍芽的移動感知並不是一個全新的技術,蘋果公司在2013年提出基於藍芽的iBeacon協議用於移動感知[1],2016年藍芽5.0中的新特徵(更低功耗,更大範圍)真正讓藍芽感知技術得以落地。藍芽移動感知的原理就是透過在特定位置部署一些持續傳送藍芽訊號的Beacon裝置,同時手機進行持續的掃描來感知周圍的藍芽Beacon訊號,從而來判斷手機是否到達了特定位置。

送外賣也要“黑科技”?阿里移動感知技術應用揭秘

圖1  aBeacon系統原理圖



基於這樣的感知技術,我們建立了aBeacon系統,如圖1所示,系統由三部分組成:部署在商戶的藍芽Beacon硬體、騎手APP內的藍芽監聽模組和平臺伺服器上的後端模組。在騎手配送過程中,APP上的藍芽監聽模組會持續監聽周圍的藍芽Beacon訊號,當騎手到達商戶附近(比如10米範圍內)時,手機會監聽到該商戶內的藍芽Beacon訊號,並把該資料和當前時間戳上傳到伺服器,伺服器透過和預置的Beacon地圖進行比對,就可以得到該騎手到達該商戶的準確時間。在Beacon硬體方面,我們採用了自主定製的硬體,在降低成本的同時保證了藍芽廣播的質量,同時引入了加密技術來保護商戶的位置隱私。在手機監聽模組方面,我們透過設計一個動態監聽模組,在保證到店判斷能力的前提下降低了能耗。

對比前面提到的幾個挑戰,我們可以發現,因為藍芽訊號自身的特性,Beacon訊號在室內環境的傳播僅限於幾米到幾十米的範圍(相信大家使用藍芽耳機和滑鼠都有類似的感受),因此基於藍芽的到店判斷不會出現GPS那樣幾百米的誤差,可以極大提高騎手到店觀測的準確性。同時,因為藍芽訊號的穿牆能力較差,因此只有當騎手到達商戶所在的樓層時才會接收到藍芽訊號,這樣就避免了商戶樓層帶來的影響。此外,我們透過標準化的部署流程,使得Beacon硬體部署在商戶的騎手取餐處的上方,避免了商戶內動態環境的改變對訊號的影響。藍芽協議的標準化和手機硬體的成熟化也降低了騎手手機硬體對到店觀測的影響。此外,因為藍芽監聽屬於非連線通訊,騎手使用藍芽耳機的功能也不會受到影響。最後,和Wi-Fi相比,藍芽監聽的功耗也很低,我們的實驗證明,Beacon監聽每天只會給騎手手機帶來3%的額外功耗負擔。

總體來說,aBeacon系統的主要貢獻在於將藍芽感知的技術真正應用到騎手到店觀測的問題中,並解決了一系列實際應用中的挑戰,比如能耗,可靠性,隱私保護等,並且從理論層面上對系統的成本和效用進行分析,從而指導今後大規模感知系統的落地。

在系統的設計中,我們考慮了下面的一些指標:

成本

成本是我們上線一個商業化的系統所必須考慮的因素之一。aBeacon系統的成本包括兩部分:aBeacon裝置的硬體成本,和大規模部署的成本。在硬體成本方面,我們透過對硬體的定製來降低成本。在部署成本方面,我們透過簡化硬體部署的流程,從而在業務經理的幫助下降低部署成本。

壽命

出於易用性的考慮,我們的aBeacon硬體採用了電池供電的方式。這樣電池的容量就成為了限制系統壽命的主要因素。但在兩年的執行之後,我們發現除了電池的壽命,環境變化也是影響系統壽命的重要因素。

可靠性

可靠性是指在所有的騎手到店行為中,有多大比例可以被aBeacon系統觀測到。在實際中,可靠性受到包括部署質量,商戶環境,騎手手機等諸多因素的影響。

效用

騎手到店觀測給整個系統提供了更準確的資料,它帶來的效用是基礎但難以直接衡量的,因此我們採用超時率這一衡量整個排程系統的指標來評估aBeacon的效用。

在系統的設計過程中,我們首先量化了上面的四個指標,然後建立這四個指標和我們要最佳化的終極目標——aBeacon帶來的累積收益——之間的量化關係。因此,我們可以在這個量化關係的指導下對各個因素進行權衡。

在這樣的設計思路的指導下,aBeacon系統的部署和執行主要包含了兩個主要環節:

設計與測試

基於成本和設計自由度的考慮,我們選擇自主定製aBeacon裝置,同時自主定製還能讓我們嵌入隱私保護等其他功能。在大規模的部署前,我們挑選了幾個商場進行小規模的測試。在測試中,我們將自主定製的aBeacon裝置和另一種商用的Beacon裝置同時部署在商戶裡。透過對比測試,我們發現採用自主定製的aBeacon裝置可以在壓縮成本的同時達到和商用Beacon裝置同樣的可靠性。

送外賣也要“黑科技”?阿里移動感知技術應用揭秘

圖2  aBeacon裝置在上海的部署

部署與執行

在小規模測試後,從2018年1月開始,如圖2所示,我們在上海的12000餘家商戶裡部署了aBeacon裝置。我們用一份包含“部署在哪裡”、“怎麼固定”、“如何繫結”等問題的部署手冊來指導業務經理進行部署。在執行過程中,我們透過後臺收集的資料,可以對所有裝置進行實時監控,所有裝置被分類為“健康”、“部署錯誤”、“下線”等狀態。我們針對不同的裝置還可以採取不同的維護措施,比如針對“部署錯誤”的裝置進行重新部署。

另一個很重要的問題是系統安全和隱私保護,這也是我們在aBeacon裝置的定製過程中作出的重要改進之一。因為傳統的iBeacon協議是固定ID的明文廣播,可能導致系統的安全性漏洞。比如:

  • 未授權的使用者可能透過戰爭駕駛(wardriving)[2] 的方法來反推出Beacon裝置的位置,並用於其他目的。


  • 惡意攻擊者可能透過在異地複製已有Beacon裝置的藍芽廣播,向系統中注入錯誤的位置資料。


針對這一問題,我們在自主定製的裝置中對藍芽廣播進行加密,透過一種TOTP[3]的加密演算法,讓所有aBeacon裝置廣播的ID內容定時進行變更,而ID和裝置位置的對映關係存在只有授權使用者可以訪問伺服器。這樣極大地提高了系統的安全性。

四  效果

為了評估aBeacon系統給整個配送過程帶來的效果,我們採用了“超時率”這一總體指標作為指標。我們用上海未部署aBeacon裝置的一萬多家商戶作為參照,來評估部署了aBeacon裝置的商戶在部署前後超時率的變化。透過對比我們發現,在總體上,透過一年的執行,aBeacon系統可以將超時率降低0.24%,這使得我們每年可以減少超過7餘萬超時配送訂單。

送外賣也要“黑科技”?阿里移動感知技術應用揭秘

圖3  aBeacon系統在不同樓層和不同地區的效用

同時我們還發現,aBeacon系統在不同樓層和不同的地區體現出較大的差異性。如圖3所示,部署在B2層和4/5層的裝置可以帶來更大的效用,這其實也印證了我們前面的分析,騎手在這些樓層商戶的準確到店時間更難觀測,透過部署aBeacon裝置,我們可以在這些商戶取得更大的效用。

迄今為止,aBeacon系統為上海超過10萬騎手提供準確的到店觀測分析,透過不斷最佳化騎手配送流程,每年可減少超過7餘萬超時配送訂單,為超過700萬的使用者人群提供更優質服務。

五  討論與發現

作為一篇介紹移動感知技術大規模應用的文章,我們在系統設計和部署過程中的發現希望能給後來者的工作帶來更多啟發。總的來說,我們的發現包括以下兩個方面:

(1)    系統可靠性。在移動感知領域,研究者們為我們帶來了很多新的想法。但這些想法在實際落地的過程中都會遇到可靠性的問題,我們用aBeacon系統的部署過程說明了,即使是用藍芽訊號進行存在感知這樣一個簡單的應用,系統的可靠性也會受到硬體裝置的部署和使用者手機硬體等諸多因素的影響。因此在以後的研究中,我們需要在系統設計的過程中更多地考慮這些因素,讓系統就有更強的魯棒性。

(2)    aBeacon系統的侷限之一就是我們還需要部署和維護硬體裝置,在後來的工作中,我們仍在探索採用已有的終端裝置作為虛擬的aBeacon裝置用以輔助騎手的定位。基於此,我們正在開展aBeacon+系統的研究工作,解決一些相關的問題,比如終端裝置自身定位,以及隱私保護等。

六  總結

基於aBeacon系統,阿里本地生活科技中心的論文“From Conception to Retirement : a Lifetime Story of a 3-Year-Old Operational Wireless Beacon System in the Wild” 被計算機網路系統領域的頂級會議NSDI’21收錄。作為首篇基於本地生活場景的系統論文,這也代表了阿里本地生活科技中心在移動感知方面的工作得到了來自網路系統領域頂級會議的認可。在落地應用後,透過獲取更準確的騎手到店和離店時間,該系統為全國超過10萬騎手提供準確的到店觀測分析,透過不斷最佳化騎手配送流程,每年可減少超過7餘萬超時配送訂單,為超過700萬的使用者人群提供優質服務。未來,在阿里巴巴本地生活和新零售的業務佈局下,我們還會持續加強相關領域的研究,將更多前沿技術投入到更多場景的運營分析中,發揮出更多作用,用技術服務使用者。

參考文獻

[1] Apple Inc. iBeacon. https://developer.apple.com/ibeacon/ , 2020
[2] Wikipedia, Wardriving, https://en.wikipedia.org/wiki/Wardriving, 2020
[3] Wikipedia. Time-based one-time password, https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm , 2020.

相關文章