深度 | 谷歌官方解讀:如何使用機(jī)器學(xué)習(xí)解決停車難問題
大部分駕駛時間要么花費(fèi)在交通擁堵中,要么是在尋找停車位。因?yàn)橛?Google Maps 和 Waze 這樣的產(chǎn)品,谷歌長期的目標(biāo)是幫助人們進(jìn)行輕松、有效的導(dǎo)航。但目前為止,還沒有一款解決再常見不過的停車難題的工具。
上周,我們?yōu)?Android 上的 Google Maps 添加了一項(xiàng)新功能——在 25 個美國城市中提供停車難度預(yù)測,從而能照此進(jìn)行規(guī)劃。提供這一功能需要解決一些重大挑戰(zhàn):
- 是否有停車位有極大的變化,涉及到時間、周幾、天氣、特殊事件、假期等因素。混合這些因素,幾乎沒有實(shí)時的停車位信息。
- 即使有的地區(qū)有聯(lián)網(wǎng)的停車計時器,能夠提供可用的信息。但這些數(shù)據(jù)不包含非法停車、許可停車、提前離開等信息。
- 道路是二維的圖像,但停車場結(jié)構(gòu)更復(fù)雜,有著不同層的車流??赡芤矔胁煌牟季?。
- 停車位的供應(yīng)與需求都是即時變動的,所以即使是***的系統(tǒng)都可能更新不及時。
為了解決這些挑戰(zhàn),我們結(jié)合了眾包與機(jī)器學(xué)習(xí)來建立能夠?yàn)槟闾峁┩\囯y度信息的系統(tǒng),而且甚至能幫助你決策采用什么出行方式。在預(yù)發(fā)布的實(shí)驗(yàn)中,我們發(fā)現(xiàn)出行模式按鈕的點(diǎn)擊量有極大的增加,這表明用戶獲得了停車難度信息之后,更傾向于考慮公共出行方式,而非開車。
建立預(yù)測停車難度算法需要 3 項(xiàng)技術(shù):來自眾包的好的真值數(shù)據(jù)(ground-truth data)、合適的機(jī)器學(xué)習(xí)模型、訓(xùn)練模型的一個穩(wěn)健的特征集。
真值數(shù)據(jù)
在任何機(jī)器學(xué)習(xí)解決方案中,收集高質(zhì)量的真值數(shù)據(jù)一直是個關(guān)鍵挑戰(zhàn)。剛開始,我們在不同時間、地點(diǎn)詢問個人停車的難度。但我們發(fā)現(xiàn)這樣一個主觀問題會產(chǎn)生不一致的答案,對同一時間段的同一地點(diǎn),有的人回答「容易」找到停車位,有的人的回答卻是「難」。換成「多久能找到停車位?」這樣的客觀問題,答案的可信度就有了很大的提高,從而能讓我們眾包高質(zhì)量的、超過 100k 個回答的真值數(shù)據(jù)集。
模型特征
有了可用數(shù)據(jù),我們開始決定訓(xùn)練模型的特征。幸運(yùn)的是,我們能夠求助于大眾的智慧,利用喜歡分享定位的用戶提供的匿名聚合信息,這些信息是評估實(shí)時交通狀況、高流通時間段、訪問時長的關(guān)鍵信息源。
我們很快發(fā)現(xiàn)即使有了這些數(shù)據(jù),仍存在一些獨(dú)特的挑戰(zhàn)。例如,如果一些人停在了門限或者私人的地方,系統(tǒng)不應(yīng)該認(rèn)為停車位還很豐富。用戶座出租車到達(dá)可能是有豐富停車位的一個信號。類似的,公共交通用戶可能停在了汽車站。存在的這些假正例都可能會誤導(dǎo)機(jī)器學(xué)習(xí)系統(tǒng)。
所以,我們需要更穩(wěn)健的聚合特征。坦白而言,其中一個特征受到了谷歌所在的山景城的啟發(fā)。如果谷歌導(dǎo)航在午餐時間觀察到許多用戶按照以下軌跡在山景城繞圈,那就表明停車位很難找:
我們團(tuán)隊在想如何識別這一停車難度「印跡(fingerprint)」作為訓(xùn)練的特征呢?在這種情況下,我們把用戶直接到達(dá)目的地時間與繞圈、停車、步行這樣實(shí)際到達(dá)目的地的時間進(jìn)行了對比,聚合了二者之間的不同。如果許多用戶在兩種方式之間的時間差距都很大,我們預(yù)期這是停車難的有助信號。
之后,我們繼續(xù)開發(fā)更多的特征:特定的目的地、散步的停車地點(diǎn)、停車的時間點(diǎn)與日期(例如,用戶在早晨會停的離目的地很近,在高峰時間會很遠(yuǎn),這怎么辦?)、歷史停車數(shù)據(jù)等等。***,我們決定了大約 20 個不同的特征。之后,就是調(diào)整模型的表現(xiàn)了。
模型的選擇和訓(xùn)練
我們決定使用一個標(biāo)準(zhǔn)的 logistic 回歸機(jī)器學(xué)習(xí)模型來實(shí)現(xiàn)這個功能。原因有幾個:
首先,logistic 回歸的行為已經(jīng)得到了很好的理解,而且其往往對訓(xùn)練數(shù)據(jù)中的噪聲有很好的彈性;當(dāng)數(shù)據(jù)來自眾包或有一個復(fù)雜的響應(yīng)變量時(比如停車難度),這是一個有用的性質(zhì)。
其次,將這些模型的輸出解讀為停車?yán)щy的概率(probability)是很自然的,然后我們可以將這個概率映射成如「車位有限」或「停車容易」等描述性詞匯。
第三,我們可以很容易理解每個特定特征的影響,這讓我們可以更輕松地驗(yàn)證該模型的行為是否合理。比如,當(dāng)我們開始訓(xùn)練過程時,我們中許多人都認(rèn)為前面所描述的「印跡」特征將會是我們解決問題的「***藥」。我們驚訝地注意到完全不是這么回事——事實(shí)證明實(shí)際上是基于車位位置分散的特征才是停車難度***大的預(yù)測因素之一。
結(jié)果
使用我們的模型,我們能夠?yàn)槿魏挝恢煤蜁r間的停車難度生成一個估計。下圖給出了我們的系統(tǒng)的輸出的幾個例子,然后其被用于為指定的目的地提供停車難度估計。比如,星期一早上對整個城市來說都停車?yán)щy,尤其是最繁忙的金融和零售區(qū)。在星期六晚上,又會再次變得繁忙,但現(xiàn)在卻主要集中在餐廳和景點(diǎn)等區(qū)域。
我們的停車難度模型在舊金山 Financial District 和 Union Square 地區(qū)上的輸出。紅色表示有更高置信度的停車?yán)щy。上排:一個典型周一的上午 8 點(diǎn)(左)和 9 點(diǎn)(右)。下排:一個典型周六的相同時間。
我們很高興能有機(jī)會基于用戶的反饋來繼續(xù)改進(jìn)這個模型的質(zhì)量。如果我們能更好地理解停車?yán)щy,我們將能開發(fā)出新的更智能的停車助理——我們很高興未來的機(jī)器學(xué)習(xí)應(yīng)用能夠幫助實(shí)現(xiàn)更讓人愉快的交通!
【本文是51CTO專欄機(jī)構(gòu)機(jī)器之心的原創(chuàng)譯文,微信公眾號“機(jī)器之心( id: almosthuman2014)”】