谷歌地圖:機器學習說您的公交將延遲三分鐘到達

机器之心發表於2019-07-12

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

公共交通支撐著全球數億人的日常通勤,其中一半以上都跟公共汽車有關。隨著全球範圍內城市的不斷髮展,通勤者們開始希望知道公共交通的延誤情況,尤其是極易因堵車而晚點的公交車。儘管已經有很多交通機構在向谷歌地圖提供實時資料,但由於技術和資源的限制,很多機構是沒辦法提供這些資訊的。

最近,谷歌地圖引入了公交車實時交通延遲提示系統,這個系統可以預測全球包括亞特蘭大、薩格勒布、伊斯坦布林及馬尼拉等數百個城市的公交車延遲,它讓六千多萬人能更準確地預估自己的通勤時間。

透過這個系統,使用者可以知道自己的公交是否會晚點,晚點多長時間。系統還能根據沿途的實時交通狀況更準確地預測出行時間。此外,使用者還可以在地圖上精確地看到延誤的位置。

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

這個系統上個月初開始在印度試點,它將實時交通情況預測和路線、站點資料結合起來,組成了一個機器學習模型,可以更好地預測出乘坐公交到達目的地需要多長時間。

模型的由來

在許多沒有交通運輸機構實時預測的城市,谷歌從被調查的使用者那裡瞭解到,他們將谷歌地圖規劃的行車路線作為參考,巧妙地預估了公交的延誤情況。但是公共汽車不只是一個加大號汽車,它們到站要停;加速、減速和轉彎會需要更長的時間;有時還有特殊的道路特權,比如公共汽車專用道。

以週三下午的悉尼公交車為例,可以看到公共汽車的實際執行時間(藍色)比公佈的時間表(黑色)晚幾分鐘。汽車交通(car traffic)速度(紅色)確實與公交車的速度有一定關係,如公交車在 2000 米時的減速,以及在 800 米標誌處的長時間停靠,都使得公交車的速度明顯慢於汽車。

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

為了開發模型,研究人員從公交機構提供的一段時間內公交車的位置序列中(來自公交機構的實時反饋)提取訓練資料,並將它們與公交行駛路線上的車輛行駛速度進行比對。他們根據公交時刻表中街區和站點的到達情況將模型劃分為一系列時間軸單元,每個單元對應預測的一段時間。由於報告頻率低、公交車移速快,以及街區及站點過短的情況,一對相鄰觀測點常常會跨越許多單元。

這種結構與最近在語音處理機器翻譯等方面都有良好表現的神經序列模型不謀而合。但谷歌的模型更簡單,每個單元獨立完成其對應的任務,最終的輸出是每個單元預測時間的總和。與其他的序列模型不同,該模型不需要學習組合單元輸出,也不需要透過單元序列傳遞狀態。但是序列結構讓我們可以同時(1)訓練單個單元持續時間的模型,(2)最佳化「線性系統」,其中每個觀察到的軌跡都將總持續時間的值作為它所跨越的單元的時間總和。

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

為了對從藍點出發的公交車程(a)進行建模,模型(b)將對藍色站點、三個路段、白色站點的時間軸單元預測延遲時間相加。

對位置建模

訓練模型時,除了道路交通帶來的延誤,研究者還考慮了公交路線細節以及行程位置和時間。即使是在一個小社群內,該模型也需要將汽車速度預測轉化為不同街道上的公交車速度。在下面的左邊皮膚中,研究者用顏色編碼了模型在一段車程中汽車速度和巴士速度之間的預測比率。較紅、較慢的部分可能對應於公交車在車站附近的減速。至於高亮框中代表快速的綠色帶,研究者從 StreetView(右圖)中瞭解到,他們的模型發現了一條只允許公共汽車轉彎的車道。順便說一下,這條路線是在澳大利亞,在那裡右轉彎比左轉慢,如果模型不考慮地理位置特殊性就會忽略這個方面。

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

為了獲取具體街道、社群和城市的特點,研究者讓模型學習一種梯度式表示區域大小的方式,模型中時間單元的地理資訊(公路或站點的精確位置)由不同尺度上的位置嵌入的總和表示。他們在訓練時對特定情況下的精確位置的懲罰會逐漸加重,並將結果用於特徵選擇。這樣就可以確保考慮到百米內複雜區域中影響公交行為的細節特徵,而開放的鄉村中這種細粒度特徵很少。

在訓練時,研究者也考慮了查詢情況不在訓練庫內的可能性。在每個訓練 batch 中,他們隨機抽取一些例項,並以隨機比例捨棄部分地理資訊。最終他們有一部分例項保留精確的公交路線和街道資訊,另一部分僅保留鄰近或城市級別的位置,剩下的則根本沒有地理資訊。這樣可以使模型更好地應對後續查詢不在訓練資料中的情況。研究者使用了谷歌地圖在客流高峰期、停車困難等專案中使用的資料庫,並對使用者公交車程進行了匿名推斷,以擴充套件訓練語料庫的覆蓋範圍。然而,世界上大多數的公車路線還是不在他們資料庫中,因此模型必須能夠穩健地泛化到新的區域。

學習當地特徵

不同的城市和社群也有不同的特徵,因此研究者讓模型將其位置表示與時間訊號相結合。公交車有一個複雜的時間依賴性:例如週二下午 6:30 到下午 6:45 這個時間段,某些街區可能正在結束高峰時段,部分地區處於用餐時間,而有些安逸的小鎮可能處於完全安靜的情況。模型學習到當地時間和日期的嵌入,並與位置表示相結合,以獲得類似公交站高峰時段這樣明顯的區域性特徵,而這些特徵是透過汽車交通觀察不到的。

這種嵌入利用 4 維向量表示一天中的時間。與大多數神經網路內部結構不同,四維空間很難視覺化,所以讓我們看看模型如何透過下面的藝術渲染在其中三個維度中表示時間。該模型確實瞭解到時間是週期性的,將時間放在「迴圈」(loop)中。但這個迴圈不僅僅是類似鐘面的扁平圓圈,模型在學習中也加入了很大的彎曲度,讓其他神經元組成簡單的規則,以便輕鬆地區分「半夜」或「上午晚些時候」等概念,這些概念不會體現太多公交車行為的變化。同時,晚上的通勤模式在社群和城市之間的差異更大,模型在下午 4 點到晚上 9 點之間創造了更加「皺巴巴」的複雜模式,這樣就可以對每個城市的高峰時間做出更復雜的推斷。

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

模型的時間表示(4 維中的 3 維)形成了一個迴圈,可以再把它想象成手錶的周長。像下午 4 點到晚上 9 點和早上 7 點到 9 點這類與地理位置相關的時間窗變得更加複雜,而像凌晨 2 點到 5 點這樣的無特徵大視窗則會因規則簡單而極少彎曲。(來自威爾·卡斯拉 [Will Cassella] 的《藝術家的構想》[Artist's idea],使用了 textures.com 網站上的紋理和 hdrihaven 網站上的高動態範圍影像。)

與其他訊號一起,這個時間表示即使在車速不變的情況下也可以預測複雜的模式。例如,在乘坐 10 公里長的公共汽車穿越新澤西州時,模型注意到了午餐時間的人流量和工作日的高峰時間:

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

思想整合

完成模型的訓練後,來看看它對悉尼公交車的瞭解。如果在當天的汽車交通資料上執行模型,它會給出如綠色點所示的預測。它的預測並不是百分百正確的,例如,在 800 米處,公交至少停了 31 秒,但是預測的停留時間僅有 10 秒。不過研究者在公交車運動的 1.5 分鐘內做了短暫的停留,比單獨的時間表或汽車駕駛時間給我們帶來的資訊更多。

谷歌地圖:機器學習說您的公交將延遲三分鐘到達

提前規劃

現在模型好像還有一件事沒做,那就是公交車時刻表本身。到目前為止,在官方代理的公交時刻表實驗中,他們沒有顯著改善研究者的預測。在一些城市,巨大的交通波動可能會擾亂對時間表的預測。還有的公交時刻表可能是準確的,但這個準確是來源於公交機構對交通模式的瞭解。而谷歌希望從資料中推斷出這些情況。

原文連結:
https://ai.googleblog.com/2019/06/predicting-bus-delays-with-machine.html

相關文章