天天看點

Uber優步打車:想你所想,知你所達

Uber優步打車:想你所想,知你所達

在衆多打車軟體中,相較外來的uber,嘀嘀、快的可能更加被國人所熟知。究竟uber在國内的打車體驗如何?到底挖掘機技術哪家強?更多相關問題,請移步最下方“閱讀原文”。我們這裡不寫軟文,隻做資訊的傳遞者~

以下翻譯自uber官方部落格,獨家放送喔~ 原文連結見http://blog.uber.com/passenger-destinations

翻譯:袁晶/校對:夏雅薇(轉載請保留)

在最近這一期的#uberdata部分,我們将向您展示資料科學細節,用來解釋我們是如何運用經典的貝葉斯統計來解決一個獨特的uber問題的。

#uberdata團隊在今天春夏時所從事的項目之一便是确定uber的乘客喜歡光顧哪些商家。哪種飯店?哪些機場?旅館?乍一看,這似乎足夠簡單:将送客下車時的坐标逆向編碼,或者利用一個公開可得,含有大量與附近商業相比對的城市位址的資料庫。

但是我們很快便意識到“臨近商鋪”部分恰恰為問題所在。在三藩市的某些地區,還有其他像是紐約市的一些密集城區,商鋪鱗次栉比,随意揮動下你的手提包便可能觸到一家飯店。而且僅僅因為你在一家店鋪門前下車并不意味着你就是要到那裡去。交通高峰期或是處于繁忙的交叉路口,如果能夠避開交通堵塞或是多餘的紅燈,我們常常更樂于步行幾個街區到達我們的最終目的地。

由于我們引入了uberpool(uber應用程式的拼車選項),這裡司機可以設定多個接送點,這些事件的發生僅會伴随着不斷增長的頻率,這意味着每個uber乘客目的地的人氣分析都會易受噪聲影響而變得不夠精準。

我們所需要的正是人們最終想要去哪裡的資訊,而不是他們想要達到那裡而指定的放客下車地點。給定一段行程其下客點的經緯度坐标,我們建立一個機率模型來預測乘客最終目的地的位址。

在這篇博文中,我們将向您展示uber是如何運用貝葉斯統計及您下車的地點,來預測您十有八九會去向何處。

我們uber的資料

我們選取了2014年早些時候三藩市3000多名單獨乘客的乘坐模式(将資料匿名化以求保護隐私)。每段行程均已被所屬乘客所“标記”:當向uber發出用車請求時,乘客已經填寫了目的地。我們假設這代表了該名乘客想要前往的真正目的地,這一位址産生一個黃金标準,使得我們可以拿來比較我們模型的預測。

機率預測

每個位址都是一個離散的帶有索引的單元 i=1,…,n。我們模型的目标是,給定行程中先前的一個點(下客點)、行程的時間以及乘客的其他特征和景觀,精确地預測出行程結束的位址i。因為模型是機率性的,這涉及計算每個位址i作為最終目的地的機率p(d=i|x=x),這裡d為代表最終目的地的随機變量,x為代表該行程中所觀測到特性的随機變量。将這一機率拆分成一個似然部分和一個先驗部分,運用貝葉斯定理可得:

Uber優步打車:想你所想,知你所達

這裡p(d=i)指最終目的地為i的先驗機率,計算時被作為假設的一個權重和,我們将在下個部分對此作以展示。p(d=i|x=x)指已知觀測到的特性x的情況下,最終目的地為i的似然(可能性)。這一機率由下客點與最終目的地之間距離的分布和行程時間的影響計算得到。

建立先驗

乘客先驗

Uber優步打車:想你所想,知你所達

将有關乘客個人目的地的有用資訊并入模型當中。直覺認為,個别乘客很可能去某些其他人不太可能去的地方(諸如他們的寓所,工作地點等等)。

于是

Uber優步打車:想你所想,知你所達

實際上是指p(d=i|c=c),這裡c為表示該名乘客身份識别的随機變量。這一分布能夠被可視化為一個直方圖:每個條狀對應了乘客c到達位址i的歸一化次數。c到達位址i的歸一化次數。

注意乘客先驗假設了一個封閉的全局模型:僅有乘客之前曾經到過的位址被賦予了機率(所有其他位址則被賦予了零機率)。

這個被廣泛應用于定位相關算法的假設極大地簡化了問題,但是明顯太過天真。在現實生活中,人們有時會去之前從來未曾到過的地方。更令人擔憂的是,當乘客為一個新使用者時,乘客先驗便會失效。位置必須是不僅曾經被到訪過的;并且它們也必須曾經被觀測到。(是以在這一樸素的假設下,一個新乘客無論去哪裡都是零機率事件!)

為了解決這一難題,我們為先驗添加了兩個額外的組成:uber先驗和熱門地點先驗。

uber先驗

Uber優步打車:想你所想,知你所達

采取了更寬的視角,同時探尋uber乘客同時可能前往某處的真相。

Uber優步打車:想你所想,知你所達

為資料庫中uber乘客曾經到訪位址i的歸一化次數。

Uber優步打車:想你所想,知你所達

圖1:uber先驗和乘客先驗的一個樣例被繪制在地圖上。圓圈半徑越大,意味着訓練資料中有更多的行程被帶入那個位置。

Uber優步打車:想你所想,知你所達

熱門地點先驗

除了乘客先驗和uber先驗,我們假設在資料集中隻有三藩市的位址才是被乘客常去的。這很顯然不夠準确。熱門地點先驗是我們的“無所不包”先驗,由涵蓋1000家商鋪的資料構成,能夠很好的适用于下面所列出的三藩市内每個垂直行業:

餐飲

夜生活

旅店

購物

博物館

醫療衛生

Uber優步打車:想你所想,知你所達

為網絡上為一個商業機構留言評論的歸一化數量。

聯合先驗

将3個先驗聯合使用能夠有良好的覆寫。乘客先驗大概涵蓋你經常到訪的地點。uber先驗涵蓋你朋友們常去的地點(并且反之是你可能去的地方,例如你朋友的寓所)。熱門地點先驗涵蓋其它需要注意的地點。某些地點将在多于一個先驗中被追蹤,并且當然,也有些地點會落于所有三種描述之外。(希望這些情況少之又少。)

Uber優步打車:想你所想,知你所達

我們暫時取

Uber優步打車:想你所想,知你所達

,

Uber優步打車:想你所想,知你所達

,我們希望能大緻了解每個先驗對精确度的影響。

建立似然部分

乘客往往不願意距離他們最終目的地太遠被放載(見下方圖2)。直覺上說,距卸客點越遠的位址,可能性越小。

Uber優步打車:想你所想,知你所達

圖2:卸客點與最終目的地間距離的分布。紅色豎線表示80%分位數。

我們用似然将這一直覺正式化:p(y=y|d=i).y為卸客點與最終目的地間半正矢(haversine)距離的觀測量(實質上,這一距離使用直線距離)。

現在這一似然看起來像什麼?我們利用一個高斯分布

Uber優步打車:想你所想,知你所達

對其進行模組化,将

Uber優步打車:想你所想,知你所達

Uber優步打車:想你所想,知你所達

取其極大使然估計

Uber優步打車:想你所想,知你所達
Uber優步打車:想你所想,知你所達

。一個高斯分布參數的極大似然估計mle恰好為資料的樣本均值和方差,于是

Uber優步打車:想你所想,知你所達

同時還需要考慮卸客點落入臨域的情況。在狀況并不複雜的街區,乘客或許連50米都不願意走,而在交通擁擠的市中心,下車地點便很有可能是乘客最終試圖到達地點附近的一個街角。

為了捕捉這一變化,我們為每個郵編都對獨立的變量進行拟合,即

Uber優步打車:想你所想,知你所達

于是,具有觀測到的卸客點-目的地距離差異為y的行程,在郵政編碼為z處,将具有似然

Uber優步打車:想你所想,知你所達

這一似然的第二部分可能是暫時的。根據一天中不同的時間和一周内的不同日子,某些地點相較其它可能更容易出現。通勤模式意味着人們在早上會前往位于舊金山金融區的辦公大樓,而在晚上離開;夜總會之行不大可能發生在周一早晨,但是去往餐館可能發生在晚上5點至8點。

為了對這些趨勢模組化,我們采用t表示描述行程時間的随機變量。

p(t=t|d=i)表示給定卸客時間為t,最終目的地為i的機率。我們指定p(t=t|d=i)為一個分類分布,它的事件機率由在時刻t到達地點i行程的歸一化系數計算得到(我們使用的時間增量是一個小時)。

推導後驗

在之前的章節中,我們介紹了先驗和似然部分。将這些部分相乘,我們可以得到一個正比于後驗機率p(d=i|x=x)的數值。特别注意,我們假設似然的兩個組成部分之間互相獨立:p(x=x|d=i)=p(y=y,t=t|d=i)=p(y=y|d=i)p(t=t|d=i)

這個假設是簡化的,因為确實很有可能y和t 之間存在某種互動作用。基本上,時間可能影響人們願意uber計程車到目的地走多遠(但是目前我們假設這種效應是很小的)。

Uber優步打車:想你所想,知你所達

圖3:正确預測測試執行個體的一個後驗分布示例:三藩市薩克拉門托街1348号

結論

我們采用經典的機器學習技術評估我們的模型,将資料分拆為測試集和訓練集,以確定我們的模型不是被恰好設定為我們資料集中一組特定的片段。

我們通過每一個檢驗行程進行疊代,首先輸出距卸客點方圓100米内的一個候選位址清單。然後,計算每個候選的後驗機率。我們選用最大後驗估計(maximum a posteriori,縮寫為map):也就是說,我們選擇具有最大後驗機率的位址。我們檢查這個位址是否與真實位址相吻合。

我們發現,我們的模型有74%的機率能夠準确地預測出正确的位址。

考慮一個典型的城市街道上可能存在的商業的絕對數量。4次中大約能有3次,我們可以準确地識别出哪些地方擁有乘客前往的諸多可能性——所有都不依賴于附加資訊和背景。

将我們的模型結果與2個基準進行比較:樸素基準和智能基準。樸素基線中做了一個随機選擇的候選人的位置,取得了40%的準确率。智能基準選取最近的候選位置,取得了44%的準确率。是以,我們對于如何選出最終的目的地有一些替代選擇,在這一背景下,總的來說,我們的模型在确定我們要幫助人們到達何處的問題上,算是一個良好的開端,但是還不足以好到讓我們停止思考這類問題。

我們下一步将往哪兒走?

我們的乘客目的地模型是# uberdata團隊正緻力于改進uber乘客使用者體驗的一種方法。這個項目的擴充涉及建立更複雜的先驗和似然。比如,一個直覺是,人們可能會去那些與他們頻繁造訪的地點接近的地方。(例如,他們家附近的餐館,或他們的工作場所附近的地鐵站。)我們可以用一個被指定為二維高斯分布的附加先驗來描繪。

原文釋出時間為:2014-10-10

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号