1. 程式人生 > >美團外賣騎手背後的AI技術

美團外賣騎手背後的AI技術

背景

隨著數字化時代的到來,外賣市場近年來發展非常迅猛。對外賣物流系統而言,配送效率和使用者體驗至關重要。而實際配送過程是由配送員(騎手)最終完成的,因此,想要真正提升配送效率,不但要在智慧排程系統(訂單指派、路徑規劃、ETA)上下功夫,還要不斷提升配送員的“附加”能力,讓他們越送越“熟”,越送越“順”,越送越“快”。以此為出發點,美團點評研發團隊設計了騎手智慧助手,全面提升騎手的各方面能力。

在 1月份的AICon全球人工智慧與機器學習技術大會上,美團點評配送人工智慧方向負責人何仁清分享了《美團騎手智慧助手的技術與實踐》。講解如何在使用環境複雜、使用者群體多元化的情況下,以智慧耳機和語音互動為載體,並通過大資料探勘、機器學習、自然語言處理等技術,讓智慧助手具備複雜場景精準識別、服務智慧推送,智慧引導、全語音操作等能力。最終在智慧、安全、便捷、精準等多個維度上,全面提升騎手配送能力,從而提升整個配送效率和使用者體驗。以下系演講內容整理:

AI技術對同城配送的業務價值

總體而言,物流業務是一個比較傳統的行業,但是隨著整個電商、移動網際網路和移動支付的興起,近些年整個物流行業實現了持續和高速的發展。

物流行業

上圖系中國物流與採購聯合會在 2016年釋出的一個報告,調研資料表明,全國物流件數環比增長超過 50%,達到 300多億件。

同時整個物流的費用佔比也很高,從圖中可以看到,物流成本已經佔據 GDP的 15%。而在歐美國家以及日本,這個比例大概只有 8%~9%左右,所以中國的物流行業還有很大的優化空間。這也是很多公司大力投入去做物流行業的一個很重要的原因:行業正處於高速發展階段,而且體驗、效率和成本方面都有巨大的優化空間,大有可為。

下圖主要介紹了美團外賣現在的發展情況:

02美團外賣發展情況

美團外賣從2013年啟動,目前大概能夠服務 2.5億使用者,已經覆蓋1300多個城市,能夠為 200多萬商戶提供服務,日峰值訂單超過 1800萬。美團外賣智慧配送排程系統每天匹配50多萬外賣小哥,基於海量資料和人工智慧演算法,確保平均配送時長不超過 28分鐘。這也是目前世界上規模最大、複雜度最高的多人、多點實時智慧配送排程系統。

我們對美團配送的定位是:做成最大的即時配送平臺

03美團配送定位

相比傳統物流,即時配送包括以下幾個優勢:

  • 第一點,非常快。從商家發單,比如說一個外賣訂單,從下單到使用者收到,平均要在 30分鐘內能完成,最慢的也應該在一小時左右。快,是最重要的一個特點,快,也能夠使整個服務的要求和服務質量得到巨大提升。

  • 第二點,能夠直接聯絡使用者和商戶。之前的物流基本是從商家接單,要經過很多環節,包括倉儲、運輸排程、人員配送等等,最後再送到使用者,中間幾經轉手,甚至由不同的公司配送,或者有不同的加盟商。但是即時配送直接將使用者和商戶聯絡起來,進而直接影響目標人群,這是很大的一項價值。

  • 第三點,能夠承擔多種配送場景,不僅僅可以送外賣,還可以送商超、生鮮等等,基本上所有的同城快件,都可以納入其配送服務範圍。

總體來說,配送是一個非常複雜的業務,為了能夠便於大家理解,我把這個業務模型進一些抽象和簡化,可以用下面這張圖來進行說明。

04配送ai問題

從本質上來講,配送主要是把使用者的配送需求和線下的各種運力(比如說騎手或車輛之類)進行匹配的過程。匹配分為線下匹配和線上匹配,線下主要靠運營,線上就是我們技術部門所構建一些系統。從這個層面而言,我們要解決的主要是在這個需求和運力之間,如何實現最優匹配的問題。

這其實也是一個相對比較傳統的問題,像做廣告或者推薦,都會面臨這個問題,需求是要推薦的產品,供給是廣告位置,但位置並不是無限多,如何在需求和供給之間達到最好的匹配,這本身就是效率優化問題,只不過廣告和推薦使用的 CTR預估,而物流中使用的方法更加複雜一些。

配送中的複雜性,具體來說有幾點:

  • 這是一個NP-Hard問題,計算複雜度隨著規模呈指數級增加。比如是騎手身上 N個訂單的路徑規劃問題,或者是 M個訂單與 K個騎手的訂單分配問題,這兩個都是指數級複雜度,而且相互關聯。

  • 這不但是一個多點取多點送問題,而且隨時有新訂單增加,具有非常強的實時計算要求,當一個新訂單生成後,需要在幾十毫秒內別完成排程運算,相比傳統物流中有幾十分鐘以上的計算時間,即時配送系統設計的難度要大得多。

  • 配送場景非常複雜,涉及天氣、路況、騎手熟練程度、商家出餐速度等多達幾十個因素,極大增加了解空間的隨機性和複雜度,對配送演算法的穩定性和適應力挑戰極大。

對美團配送來說,要完成這個任務,需要分為大概三個層次,如上圖最右側所示。

  • 第一層,物流基礎結構建設。包括在城市裡如何建設站點,如何配備人力,如何配備商家的供給情況。這些基礎結構不但深刻影響配送的規模、成本、效率,而且是物流管理和運營的基礎,比如加盟商管理、騎手運營等都需基於這個結構進行展開,因此這些基礎結構的作用非常重要,而且它們較難進行即時調整,非常考驗技術的長期預測和規劃能力。

  • 第二層,供需匹配的動態均衡,通過定價機制進行市場調節,包括幾個方面:一個是基礎定價,比如一個定單來了,到底向用戶收多少錢,向商家收多少錢,給騎手多少補貼,這需要考慮很多因素,保證定價的合理、公平。另一個是供需平衡,當遇到惡劣天氣等突發情況,通過動態調價方式,實時調節使用者需求和運力供給,保證整個系統的穩定與使用者體驗。

  • 第三層,訂單和騎手的實時匹配,也就是派單,在訂單出現後在幾十毫秒內分配到一個最合適騎手,並完成多個訂單的路徑規劃。這是一個NP-Hard問題,而且由於不斷有新訂單生成,需要實時計算,對平行計算引擎的要求很高。派單的優化目標是:提升整體配送的效率,並保證使用者體驗,是整個配送系統的核心模組之一。

以上,主要是我們對整個配送的理解,接下來講述如何使用技術手段來進行落地和實踐。

對於 AI問題來說,整個配送在AI問題中的分類應該是什麼樣?下圖給出了一個解釋。

05ai位置

我們可以從兩個維度來看AI問題。一個維度,是看機器與人工的對比,速度上是不是比人工更快,是不是比人工的效果更好。

另一個維度是AI所發揮的作用。首先是不是能夠感知世界,比如說現在做得影象識別、語音識別以及OCR,都是像人一樣能夠感知這個世界。其次是不是能做到認知,比如說了一句話,“今天天氣怎麼樣”,不但要把語音翻譯成文字,這裡講的是“天氣”這個實體,還有“今天”這些限定因素。第三就是要做決策,現在比較火的人工智慧應用都在“如何做決策”這個層面,而且要做比人做更好的決策。一些代表性應用,比如智慧助手,特別是輔助人進決策權的(聊天機器人會差一些),可以幫你完成更好的任務;比如無人駕駛;比如在物流領域,如何分配訂單,並通過無人車或別的方式交付訂單;還有在遊戲和醫療裡面,AI輔助醫生做決策,在遊戲裡面,當用戶掉線時,遊戲AI可以幫助使用者打怪升級。

可以看到在配送層面,我們會涉及智慧助手、智慧物流、無人駕駛等多個維度,而為了提升配送的整體智慧化程度,我們構建了自己的“美團配送 AI”,具體來說分為兩大部分:

07智慧物流

第一部分是資訊化,也就是資料收集。舉個例子,要收集到什麼樣的資料?我們要收集到一個商圈的資料,這個商圈可能要精細到小區和樓宇級別,一個樓在什麼地方,這個小區是不是讓騎手進來,同時還要收集天氣資料,比如風速、溫度,是否有霧霾,因為所有資料會影響到配送的效率,使用者下單情況,比如今天霧霾,北京的外賣訂單量估計會上漲。

第二部分是智慧化,也就是構建一整套智慧化模組,構成一個智慧配送系統,覆蓋配送的各個環節。

為了完成這個“美團配送 AI”的具有挑戰的目標,並考慮整個行業的長期發展,我們在整個人工智慧上的佈局如下:

08技術佈局

  • 首先是廣度方面的建設。我們的目標是配送整體流程和環節進行 AI化,從使用者下單開始的每個配送步驟都要覆蓋,為此我們整體技術方向的面非常廣,不但橫跨三個大學科,而且從預測、挖掘、定價、規劃、排程和硬體等都要進行技術研究和業務落地。

  • 其次是深度方面的建設。這不單單是指技術方面,比如基礎計算框架和模型研究等,還包括技術與配送業務的深度整合,比如配送模擬平臺建設,具備進行多配送場景的模擬能力,無需上線就能夠對不同業務策略效果進行準確預估。同時還要結合行業情況,提供行業的智慧化解決方案,比如在騎手運營方面,更有效的騎手激勵和騎手留存的機制設計。

而美團外賣語音助手就屬於我們在廣度和深度結合比較好的案例。接下來就和大家分享一下我們在整個智慧助手的實踐和設計過程中,以及在整個物流業務中,如何將人工智慧技術更好的落地的一些經驗。

美團外賣智慧語音助手定位

09外賣訂單配送過程

我們為什麼要智慧語音助手?騎手到底在什麼情況下需要智慧助手服務,整個服務裡面的關鍵是什麼?先解釋一下這個問題。如上圖所示,這個是整個騎手在配送過程中遇到的一些環節,可以分為兩大部分。

第一部分是線上的決策,而且涉及的決策各式各樣。舉個例子,這個騎手有定單,要送到一個使用者那裡,他可能要做幾個決策,比如說要不要給使用者打電話,因為有些地方是不用打電話的,像住宅樓裡面,騎手有很大概率知道這個使用者應該在家裡的,不用打電話;有些必須打,比如寫字樓,因為騎手上不去,所以需要提前打電話讓使用者下來。

但需要提前多長時間呢?是提前一分鐘,兩分鐘,還是五分鐘?這個問題很關鍵,如果打電話時間比較早,使用者就會提前下來,會造成使用者等待騎手的問題,使用者體驗不好,可能會有投訴。如果這個騎手非常保守,到樓下再打,但使用者住在 10層,那麼使用者下來包括等電梯的時間可能要需要 10分鐘,效率會變得非常低。

第二個部分是騎手操作過程,因為騎手會頻繁和手機互動。他要檢視一個定單,步驟非常複雜,把手機拿出來,解鎖,開啟 App,檢視資訊,做操作(比如說點選完成),最後放回手機,大概需要五到六個過程。如果操作快,也需要 10到 20秒鐘。而且很多騎手是在騎行過程中做這些操作的,這樣會非常危險。

總結一下,配送騎手遇到的困難可以總結為三個大的層面:

10騎手三大難題

  • 第一,任務複雜,需要做很多決策,不過複雜度會隨著騎手的熟練度有所變化。

  • 第二,操作繁瑣,大概需要五到六個步驟,至少需要 10到20秒,或者更長時間。

  • 第三,騎手在騎行過程中操作手機非常危險。對於有50萬騎手的平臺,我們必須考慮騎手在整個駕駛過程中的安全。

基於這些考慮,我們做了美團外賣語音助手,它的定位主要包括以下三點:

11語言助手定位

  • 第一點就是要求安全,要做一套全流程的語音互動方案,配送過程中的各個環節都能用語音操作,不需要騎手看手機,解放雙手,讓騎手更加安全。比如在行駛過程中,有個定單過來了,系統問騎手要不要接單,只要通過指令回答,“是”或“否”,或者“OK”這種,整個過程就完成了;不需要像以前那樣的,把手機掏出來再進行操作,這個場景非常受騎手歡迎。

  • 第二個,設計極簡的步驟,所有操作能在一到兩個步驟裡完成,第一個步驟是資訊播報,第二個步驟通過語音命令完成操作,將原來的五到六個步驟,精簡到現在的一到兩個。

  • 第三個,提供很多智慧化服務。最典型的,剛才說的騎手要去一個樓,使用者可能在 5樓,可能在4樓,這個使用者下來需要多長時間,做智慧化推薦,根據使用者的地址資訊,系統智慧推薦打電話時機,當然還包括像導航之類的基礎功能。

上文的分析,基本上將我們怎麼把智慧語音助手在場景裡落地的最關鍵的點分析出來了。我們要落地,最核心的就是要幫助騎手完成配送任務,而不是“聊天”或者“問答”。這就要求語音互動整個過程要非常便捷,同時也非常智慧。

而我們遇到的第一個挑戰,就是互動模式如何設計的問題。

12零喚醒

如上圖所示,左側是一般的語音助手方案,需要喚醒、應答、請求和再應答四個步驟,但是並不符合配送場景的要求。首先,騎手所在的場景,噪音很大,比如風噪、汽車噪音以及商場噪音等等,喚醒比較難實現。其次,需要四個步驟,還要考慮騎手的工作狀態,這個操作過程太繁瑣。

那怎麼辦?我們思考,是否能做到一套不需要喚醒的解決方案呢?答案很肯定,可以做!

第一點,我們的資料非常多。包括騎手、使用者和商家,這些資料都是實時的,我們能夠了解比騎手多得多的全域性配送資訊。第二點,我們能做到精準預測,利用機器學習、智慧排程等技術,可以對騎手下一個操作場景進行識別。

舉個例子,一個騎手身上可能有幾個訂單,他正在朝一個地方前進,通過場景分析,我們知道他要給具體哪個使用者配送,而且我們能瞭解使用者在這個樓裡的幾層,下來大概需要幾分鐘,所以能夠推算出來,大概在哪個時間點提醒騎手打電話比較好。這樣我們就可以省略喚醒和應答流程,直接給騎手發提醒,騎手只要回答是或否夠可以了。這樣設計才符合騎手線下的實際配送情況,能夠真正給騎手解決實際問題,才能夠真正稱之為“智慧”。

AI核心技術

具體技術分為幾個主要的部分。第一個部分是基礎設施,包括語音識別和語義理解,現在這方面開源的東西非常多,做通用的語音識別不是很難。

13基礎設施

在我們場景中,要解決各種環境噪音的問題,可能騎手並沒有說話,但旁邊有些噪音,車的噪音或者別的噪音,甚至路上正在放一個歌,都會被識別為是騎手在說話,所以 VAD(靜音檢測)方面需要做很多工作。

另一個基本的元件是NLU,自然語言理解。舉個例子,騎手要給尾號 6551打電話,首先系統要知道,騎手的意圖是要打電話,後面要調起打電話的操作;其次要知道打電話的物件是誰,是使用者,而不是商戶,這就要找出使用者資訊;第三,要做檢測,比如騎手已經送完某個訂單,再打電話可能是錯誤操作,需要提醒騎手。

14精準場景識別

即時配送場景是一個典型的時間序列問題。從上面的圖可以看出,場景包含前後關聯,一個騎手歷史的行為和決策會影響現在,同時現在的決策和行為會影響未來,這是個典型的時間序列問題。

場景識別要解決的兩個主要目標,一個是事件預測,要知道下一時刻大概會發生什麼事情,比如騎手是不是已到商家,商家是不是已經出餐;另一個是時機預測,未來要打電話,到底什麼時候打更合適?

為了更好的說明,舉個打電話的案例。

15識別案例

首先,要判斷是否需要打電話,如果在不需要的場景也頻繁提醒打電話,對騎手和使用者都是騷擾。上圖列舉了不同地址型別下騎手打電話的比例,可以看到,像在企業和寫字樓裡面比例很高,但是住宅區就很低了,因為在住宅區,很大概率使用者都是在家的。

其次,要針對每一個小區和樓宇型別,給一個合適的打電話時機,即提前多久打電話,對騎手和使用者是最好的體驗。打電話太早,使用者在樓下等騎手,體驗比較差。 打電話太晚,騎手在樓下等使用者,效率太低。我們有精準的騎車軌跡資料,我們知道針對每一棟樓、每個小區,騎手在不同時刻打電話時會在樓下停留多久,所以可以畫出一個曲線。合適的區間就在兩條紅線之間。

前兩個主要是大資料分析,最後要實時決策,哪個訂單,什麼時刻需要打電話。這裡就要根據騎手的實時資料了,包括訂單狀態、軌跡狀態、環境情況等等,結合前面的大資料分析進行實時的預測騎手下一個配送地點和配送任務,並在合適的時機通過語音助手給出提醒。

具體到實現方面,場景識別需要三方面的技術:騎手軌跡挖掘、機器學習和資料探勘。

16場景識別技術支撐

先介紹一下軌跡,我們每天能有幾十億次的定位資料,進而可以基於這些資料做很多事情。

17軌跡挖掘

第一,可以精準知道 A、B兩點間最好的導航方式,相比第三方地圖,可以挖掘到 A和 B間可能有可能有更好的騎行通過方式。

第二,光有軌跡資料還不夠,我們還需要解決室內定位問題,室內 GPS定位已經不夠用了,需要新的技術體系。比如 WiFi定位,同時還需要設計硬體,比如在商家部署硬體,判斷騎手是否到店。

第三,感測器的使用,無論在室內還是在室內時候,我們不但要知道騎手的精準定位,還要知道運動方式,比如是停留、步行、騎行,是爬樓還是坐電梯,這些資訊不但判斷騎手在到底做什麼。而且能夠精細刻畫配送難度,在定價和排程上非常有價值。

我們可以通過騎行軌跡來修正導航和定位。來看兩個例子。

18修正結果

第一個例子(左側)使用者在下單時定位的分佈,因為大家在室內下單,定位偏離是非常大的。但通過騎手軌跡的修正,實際上大概只有四個點,每個點可以認為是這個這棟樓的一個門口,這大幅提升了使用者的定位精度,讓騎手配送更容易。

第二個例子(右側)通過騎手軌跡對 AB兩個點的騎行路徑進行修正,上圖中軌跡分析發現了更短路徑,穿過小區更節省時間;下圖中,原地圖導航要跨過中間過街天橋,但通過軌跡發現更多騎手是繞行通過,這才更符合真實的情況。

下面介紹一些機器學習相關技術,主要是應用在各種時間預估層面。

19精細預估

只有高精度的 ETA(預計到達時間)預估,這樣才能更加準確的預測騎手行為,我們會做三個維度的精細預估,包括平面的配送時長、上下樓時長以及商家出餐時長。這樣才能比較全面和精細的刻畫騎手的配送過程。

為此,我們做了很多基礎工作,比如實時特徵平臺,機器學習平臺,包括深度學習在內模型等各種機器學習相關工作。同時我們還會做比較精細的配送知識圖譜建設工作,比如精細化地址解析。

20精細挖掘

地址對配送來說是非常重要的資訊,通過 NLP和地圖搜尋的方法,解析成層次結構,對分析商圈、樓宇維度的畫像非常有幫助。我們把一個地址分解為四個層次,小區、樓號、單元號和樓層等。其中要解決很多實際問題,比如使用者填寫的資訊完全不標準、存在歧義等問題。

做了這些工作之後,能實際產生的效果還是很有意思的。我們通過“上下樓時間”這個具體場景來進行分析。

21上下樓分析

第一張圖,是不同樓宇的上下樓時長,左側兩個是廈門的兩個樓宇的時間,右側兩個廈門平均值和全國的均值。可以看到,不同樓宇的上下樓時長還是存在很大差異,無法簡單利用城市或者全國維度的均值進行替代。

第二張圖,是不同樓層的上下樓時間,從 B2開始到 8樓。有個很有意思的是,上下樓時長與高度不是線性關係,大概在二樓、三樓和四樓時,相隔的時間很長,但是到了五樓、六樓、七樓,時間差就很小了。原因很簡單,樓層較低時,騎手可能會選擇爬樓。高層則選擇乘電梯。不同樓層之間停留時間很短,越往上時間間隔越小。

第三張圖,是不同城市的上下樓時長分佈,最有意思的是黃色的線,也就是重慶的整體上下樓時長明顯偏長。因為重慶是山城,房子經常在半山腰上,與平原比起來其上下樓的難度當然更大。

整體效果

上面整體介紹了語音助手依賴的場景識別技術,現在介紹一下語音助手的整體效果。首先語音助手提供了四個核心功能,包括定製耳機、語音互動、場景識別、智慧引導等。

22四項核心

為什麼要定製耳機呢?在騎手的使用環境中,需要克服很多噪音,很難通過軟體和程式去做,而必須通過硬體去做。所以我們和廠商進行合作,定製去噪效果好的硬體。

23定製藍芽耳機

第二個功能是語音互動,它可以在派單、查詢、取餐、撥打電話等配送全流程中實現語音互動,騎手整個過程中不需要看手機,只要耳機提醒就可以完成智慧配送。

24全流程語音

第三個是智慧引導功能,包括安全駕駛提醒,資訊播報,任務地圖引導等,主要是讓騎手行駛更加安全,提供全面的資訊服務,讓騎手配送更加方便和高效。

25全場景智慧引導.

下圖是智慧語音線上下推廣中的一些實際資料。

26語音助手效果

藍色的線是使用語音助手的騎手的操作次數,綠色的線是不使用的操作次數。可以看到,操作次數明顯下降。但是還沒有降為 0,有兩個原因:騎手在靜止狀態下,不需要使用語音助手;有些騎手的藍芽耳機還沒有下發到位。再來看下一張圖:

27語音助手效果更安全

左圖是騎手接單時間時長分佈,越往右騎手接單的時間越長,使用者體驗越差。綠色的線就是之前騎手手動接單的一個分佈,長尾情況比較嚴重,通過語音接單,接單時長明顯向左側靠攏,整體接單時長明顯縮小,比較好的提升了使用者體驗。

右圖是騎手在使用者交付外賣所花費的時間的比例,橫軸是騎手在樓下等待使用者的時長,越往右,騎手在樓下等使用者的時間越長。通過語音的提醒後,可以明顯降低騎手長時間等待的情況,節省了大量騎手的時間。

寫在最後

總結一下,語音識別和語音助手在實際落地過程中面臨很多挑戰,而且大多和場景有關係,場景識別非常重要,甚至比語音識別更為重要。

因為語音識別現在已經是比較通用的技術了,而且有很多專業廠商提供服務,硬體也是如此,進行定製化相對比較容易。因此目前做一個軟硬體結合的語音助手,從基礎技術來講都不是問題,想做一個 DEMO並不會存在太大的技術障礙。

反而在具體的業務中,如何結合業務場景,把語音助手落地,才是我們需要真正考慮的。也就是說,如何將語音助手從“能用”做到“好用”,再做到讓使用者“願意用”,這些才是未來語音助手面對的真正挑戰。

語音識別和語音助手在實際落地過程中有很多挑戰,而且和場景有關係,場景識別比較重要的,甚至比語音識別更為重要,因為語音識別現在已經是比較通用的技術了,如何結合業務場景,把語音助手落地、用好,可能是未來一段時間的挑戰。

為了實現配送的全面智慧化,美團點評在其中做了大量工作和嘗試,這裡不單單是要做好機器學習,還包括如何進行更好的實時運籌優化、實時空間資料探勘以及人機互動等多個方面的技術內容。

https://tech.meituan.com/herenqing_ai_con.html