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