滴滴研究院:解讀滴滴調(diào)度系統(tǒng)中的人工智能
一文讀懂滴滴背后的人工智能。
作者了解到,去年滴滴成立了機(jī)器學(xué)習(xí)研究院,之后改名為滴滴研究院。
滴滴研究院做的事情是結(jié)合大數(shù)據(jù)與機(jī)器學(xué)習(xí),搭建滴滴交通大腦。滴滴交通大腦需要收集每個城市、每一時刻的所有交通出行相關(guān)數(shù)據(jù),然后做出最優(yōu)的決策(匹配、導(dǎo)航等),從而提高出行效率。接下來我來分享一下滴滴過去一年在大數(shù)據(jù)和人工智能方面的探索。
App 首頁中的人工智能
打開滴滴出行 App,首頁中就包含很多人工智能:
預(yù)測目的地
我們先會精確定位用戶的位置,下方是用戶所要去的目的地。很多情況下我們能夠預(yù)測到用戶去哪里:因?yàn)楹芏喑鲂惺潜容^有規(guī)律的:早上上班、晚上回家。我們利用用戶的出行數(shù)據(jù)從時間和地點(diǎn)中預(yù)測用戶去的目的地,這是人工智能的一種體現(xiàn)。
估價
我們常見的價格預(yù)估背后其實(shí)也有著非常復(fù)雜的計算過程,涉及到路徑規(guī)劃和時間預(yù)估(ETA)。其中從起點(diǎn)到終點(diǎn)的路徑規(guī)劃是非常核心的一部分,找到最佳路徑后,我們需要計算出 A 到 B 的距離。隨后著手解決行程所需的時間估算:起點(diǎn)到終點(diǎn)需要 20 分鐘還是 30 分鐘。結(jié)合路徑和時間,我們給出一個預(yù)估價。
拼車
拼車選項(xiàng)也是非常復(fù)雜的機(jī)器學(xué)習(xí)問題,我們需要計算用戶點(diǎn)擊拼車后從起點(diǎn)到終點(diǎn)過程中找到一個拼友的概率。如果概率不大,這名乘客就很可能得一個人從頭坐到尾,而滴滴給出的折扣也會低一些,如九折等。如果這條是熱門路線,路途中很可能會有其他乘客與你在同一時間去同一個或附近的地方。這種情況下,我們可以打一次力度稍微較大的折扣。
叫車后的人工智能應(yīng)用
乘客與司機(jī)匹配
當(dāng)用戶確認(rèn)叫車后,滴滴需要做訂單匹配,找到最適合接該用戶的司機(jī)。這一流程也是一系列的機(jī)器學(xué)習(xí)問題。
那么如何權(quán)衡訂單合不合適,可以有多種辦法解決:比如距離和時間上離你最近的司機(jī)。當(dāng)然,權(quán)衡訂單問題背后也包含個性化搜索,如個別用戶可能只喜歡某一類車型、某一種類型的司機(jī)。尤其是女性用戶在深夜十一二點(diǎn),可能對車型和司機(jī)的要求比較高,這需要進(jìn)行個性化匹配。
如果用戶選擇拼車,系統(tǒng)如何找到最適合的一輛車:這輛車有可能是空車,也有可能是載人車,與此同時,算出 A 到 B 的時間。
熱力圖
這里會遇到一種情況,新司機(jī)希望空駛時間越少越好,但往往不知道去哪接單,這時候滴滴會給到一個熱力圖,告訴司機(jī)哪些區(qū)域未來的半個小時,有可能有很多訂單需求。
滴滴人工智能的核心:訂單分配
滴滴研究院目前做的最核心的事情是訂單分配。在某個時刻有成千上萬的乘客,同時也有成千上萬的空閑車輛,我們要完成司機(jī)和乘客的最優(yōu)匹配,權(quán)衡標(biāo)準(zhǔn)是匹配度。計算匹配度最簡單的方法是用距離進(jìn)行評估,滴滴在前幾年均是用距離進(jìn)行匹配。但路面距離計算仍存在很多不合理的地方,因?yàn)楦鱾€路段的狀況不同,有些地方特別堵,有些則相反,同樣是一公里但行駛所耗時間可能完全不同。這里就急需增加時間這一維度。而計算時間又是一大難題,比預(yù)估距離還要難。
所以滴滴實(shí)現(xiàn)訂單最優(yōu)匹配需要遵循這兩大核心:做出最優(yōu)路徑規(guī)劃,預(yù)估時間。
大規(guī)模匹配
計算出某個訂單的時間和距離后,會遇到一個問題:由于滴滴數(shù)據(jù)量特別大,每一個乘客不只是讓一個司機(jī)去匹配,而是需要跟周圍上百個司機(jī)匹配。在任何一個時刻,滴滴的匹配量高達(dá)千萬次以上,在一兩秒鐘完成上千萬次的路徑規(guī)劃,這是一項(xiàng)非常大的挑戰(zhàn)。
這項(xiàng)決策與搜索不同,用 Google 搜索出結(jié)果后,再過 10 分鐘結(jié)果依舊與之前相同。而滴滴在匹配時,哪怕滯后兩秒鐘這個司機(jī)就可能過了某個十字路口,使得路徑規(guī)劃狀況完全不同。我們現(xiàn)在建立起一個機(jī)器學(xué)習(xí)系統(tǒng),該系統(tǒng)包含歷史數(shù)據(jù)和實(shí)時數(shù)據(jù),只要在有滴滴的地方,我們就知道車輛行駛的速度和路況。然后找特征,建立系統(tǒng),也可用深度學(xué)習(xí)做路徑規(guī)劃和時間預(yù)估。
滴滴研究院最近建立了一套深度學(xué)習(xí)系統(tǒng),然后加上路況和其他信息去進(jìn)行預(yù)測,這是滴滴在深度學(xué)習(xí)領(lǐng)域的一次嶄新嘗試。簡單對比下結(jié)果,去年開始用機(jī)器學(xué)習(xí)再到最近的深度學(xué)習(xí)使誤差大概降低了70%左右。
接下來需要做最優(yōu)匹配,這里有很多不同的方法。滴滴有出租車、快車、專車、豪華車等等多條業(yè)務(wù)線,滴滴能否把各個業(yè)務(wù)線打通?比如用戶叫了快車,但周圍可能沒有快車司機(jī)來接用戶,那有沒有可能利用算法去做決策,在這個時刻讓專車或出租車司機(jī)來接這位用戶,該調(diào)度方案要做一個全局的最優(yōu)匹配,充分發(fā)揮滴滴優(yōu)勢。
在北京,高峰期大家打車?yán)щy可能會認(rèn)為是由于運(yùn)力不夠?qū)е?,但?jīng)過分析發(fā)現(xiàn),在高峰期滴滴的運(yùn)力其實(shí)是足夠的,主要是因?yàn)檐囕v分布不合理。
此我們開發(fā)了一套系統(tǒng),把整個地球分割成無數(shù)個六邊形。每一時刻都在檢測每一個六邊形,然后在某個六邊形里面計算訂單數(shù)和空車數(shù),計算供需是否平衡。
運(yùn)力問題解決
司機(jī)沒有在他應(yīng)該在地方是我們需要解決的一大問題,如果有一個平臺可掌握所有信息,這樣使其能做出最優(yōu)決策、最優(yōu)調(diào)度以及導(dǎo)航?jīng)Q策。解決這個問題的第一種方法就是動態(tài)調(diào)價。我們也在探索另外兩種解決方式:
供需預(yù)測、運(yùn)力調(diào)度:如何完成預(yù)測,我們先來還原一個場景,比如說某個大會大致在晚上 6 點(diǎn)結(jié)束后,很多人會有打車需求,這就是預(yù)測的一種體現(xiàn)。此外,我們之前也提到人們出行普遍是有規(guī)律的,所以能預(yù)測某一時刻、某一區(qū)域可能缺多少輛車,這樣我們就提前 15 分鐘或半小時做調(diào)度,把過剩的運(yùn)力從周圍調(diào)過去,緩解供需問題。這里牽涉到供需預(yù)測,供需預(yù)測本質(zhì)上就是一個時間序列的預(yù)測問題。
拼車:如果兩個乘客的行程和出行時間類似,就無需兩個司機(jī)去接,而是把兩個訂單整合為一個組合訂單,用一個司機(jī)來接。拼車中涉及到一項(xiàng)非常重要的問題就是用戶體驗(yàn):用戶體驗(yàn)體現(xiàn)在兩個維度,一是價格便宜,二是在接另外一個人時繞的路程和時間不要太多。我們希望把兩個訂單整合起來后,這個行程路徑是相似的。為此,我們建立了幾個機(jī)器學(xué)習(xí)模型估計路徑匹配度的高低。
預(yù)測乘客體驗(yàn)
行程結(jié)束后,我們也需要去預(yù)測乘客的體驗(yàn)是好是壞。由于歷史訂單中有些乘客會進(jìn)行投訴,比如說拼車匹配欠佳、繞路。而有些用戶則會給出好評。我們從大量歷史數(shù)據(jù)學(xué)習(xí)出來哪些特征是導(dǎo)致乘客抱怨的原因,哪些特征會導(dǎo)致好評。
拼車最核心的一點(diǎn)是定價,里面用的也是機(jī)器學(xué)習(xí)優(yōu)化算法。核心想法非常簡單,如果乘客發(fā)了拼車單,我們會預(yù)測這個乘客起點(diǎn)到終點(diǎn)系統(tǒng)為它找到拼友的概率大不大,匹配度如何?如果預(yù)測出他很大概率自己一個人會從頭到尾走到底的話,折扣相對就會更低,反之則會高一些。
除此之外,我們也做了很多圖像方面的工作。比如駕照圖像檢測,識別證件號碼等,讓司機(jī)的很多手續(xù)無需要到滴滴辦公室即可解決。
評分系統(tǒng)
我們可以把滴滴看做是一種搜索引擎,即乘客搜索司機(jī)。與百度搜索信息不同,在百度搜索結(jié)束后,就沒有其他后續(xù)問題。但乘客在滴滴中搜索好司機(jī)后,滴滴需要保證安全和出行體驗(yàn)。于是我們在近期引入一套機(jī)器學(xué)習(xí)系統(tǒng),預(yù)測司機(jī)的服務(wù)質(zhì)量和服務(wù)態(tài)度,衡量服務(wù)好還是壞需要通過分析大量乘客的打分、評語數(shù)據(jù)。
以往 滴滴和 Uber 都采用星級打分制,后來我們發(fā)現(xiàn)該功能并不完美?,F(xiàn)實(shí)情況是用戶要么不打分,要么給較高的五分或四分,使得星級評分功能不夠有效。
這本質(zhì)上是用戶習(xí)慣問題,為了讓評分系統(tǒng)更加全面,平臺把乘客留下的所有痕跡都整合起來,然后給出一個分?jǐn)?shù)評判。比如乘客打出星級后,又進(jìn)行文字評價態(tài)度很差、繞路等,針對乘客給出的兩個維度信息,我們再根據(jù)軌跡等多項(xiàng)數(shù)據(jù),然后給出綜合的分?jǐn)?shù)。分?jǐn)?shù)越高,滴滴也會保證司機(jī)的收入越高,推動司機(jī)主動提高服務(wù)質(zhì)量。
這里存在另外一個問題,就是乘客惡意給司機(jī)寫差評。針對這一情況我們建立了一個判責(zé)機(jī)器學(xué)習(xí)系統(tǒng),該模型能夠判差評的背后是司機(jī)的責(zé)任,還是乘客的責(zé)任。如果責(zé)任不在司機(jī),我們就不會降低它的分?jǐn)?shù)。判責(zé)系統(tǒng)上線后滴滴平臺司機(jī)滿意度有了顯著提高。
系統(tǒng)可視化
最后我們提一下非常重要的系統(tǒng)可視化性,這套系統(tǒng)能夠看到歷史訂單行程中發(fā)生了什么事情,如哪些區(qū)域是我們比較感興趣的、成交率高的,訂單多的。其次是區(qū)域變化情況,如早高峰時訂單量漲了,晚高峰訂單量跌了,應(yīng)答率可能在早晚高峰非常低,平時可能非常高,我們可以迅速知道每個區(qū)域、每個時刻的情況。
上述為區(qū)域,我們也可以有一個城市的維度,比如這個城市大概有多少訂單?大概有多少司機(jī)?乘客發(fā)出訂單需求成交率大概有多少?我們也能掌握過去和現(xiàn)在的情況,司機(jī)實(shí)時看到熱區(qū)所處的位置,引導(dǎo)司機(jī)沿著熱區(qū)去走,減少空駛時間、提高平臺效率。
除此之外,我們也能實(shí)時看到跨城情況,尤其是春節(jié)之前等節(jié)假日,因?yàn)橛泻芏嗳藭窜嚮丶?。為此,我們也會找到一些比較特殊的區(qū)域,單獨(dú)去分析它發(fā)生了什么事。
可視化系統(tǒng)也能讓大家看到全城各個時刻供需不平衡情況:哪些區(qū)域供大于求,哪些區(qū)域求大于供,哪些區(qū)域供需平衡,以及現(xiàn)在和過去發(fā)生了什么事。針對這些現(xiàn)象,我們需找到應(yīng)答率低、成交率低的原因。
本文來自騰訊大數(shù)據(jù)峰會暨 KDD China 技術(shù)峰會,滴滴研究院副院長、密歇根大學(xué)終身教授葉杰平博士現(xiàn)場演講。
葉杰平:滴滴研究院副院長,美國密歇根大學(xué)的終身教授。葉杰平是機(jī)器學(xué)習(xí)領(lǐng)域國際領(lǐng)軍人物,其主要從事機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘和大數(shù)據(jù)分析領(lǐng)域的研究,尤其在大規(guī)模稀疏模型學(xué)習(xí)中處于國際領(lǐng)先地位。
作者:亞峰
來源:http://www.leiphone.com/news/201612/jKMwo56PIXS0f4Ea.html
本文來源于人人都是產(chǎn)品經(jīng)理合作媒體@雷鋒網(wǎng),作者@亞峰
把這個排隊(duì)派單問題想明白、描述清楚,已經(jīng)很不容易了
MARK