守護城市安全:時空資料與深度學習

微軟研究院AI頭條發表於2017-04-27

上週,在舊金山召開的人工智慧國際頂級會議AAAI 2017上,來自微軟亞洲研究院的鄭宇博士及其團隊的論文Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction首創性的將時空資料與深度學習結合起來,利用時空深度殘差網路用於預測城市人流問題。


提及這項研究,鄭宇博士介紹到:“這個系統背後的模型研究,其目標是預測整個城市裡每個區域在未來時刻有多少人進、有多少人出,從而使得管理者能迅速瞭解每個區域的公共安全狀況,及時採取預警措施。”他補充,“例如在上海市兩年前跨年夜的踩踏事件之前,如果有這樣的系統,就可以提前給民眾發資訊,告知他們這裡未來會有多少人進來,提醒民眾注意,並建議是否需要提前離開。我們這項研究的想法也正是起源於這次事件。”


守護城市安全:時空資料與深度學習

微軟亞洲研究院主管研究員 鄭宇


可擴充套件的整體預測模型

今天,在貴陽的“塊資料”實驗室裡的一塊大螢幕上,貴陽市被分為若干個1KM*1KM的小格子,它實時地輸入新資料,以熱度圖(heat map)的形式不間斷的預測每個區域會有多少輛計程車的進和出。這是一個以貴陽計程車實時上傳的資料作為樣本,基於雲端計算和大資料的系統。

 

守護城市安全:時空資料與深度學習


該系統具有極強的擴充套件性,任何可以用於人流資料預測的來源,無論是正在採用的計程車資料,還是手機訊號、地鐵刷卡記錄等,都可以透過論文Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction中提出的這套系統模型進行運算,得到相應的某地將有多少人進和出的結果,並預測未來十幾個小時的城市人流情況。

 

傳統的人流預測方法一般是預測個人行為。理想狀態下,只要統計某個區域裡的每個人從哪來去哪裡就能測算出該區域有多少人進、多少人出。但這樣的統計本身有很大的障礙,準確性很難保證,並且涉及隱私問題。除此之外,傳統方法還有一些基於物理學模型、交通動力學模型或是土木工程的經典模型等,但這些始終難以應對大規模的人流預測。

 

鄭宇博士及其團隊提出的這套方法是一種整體預測,不涉及個人隱私。該系統將整個城市劃分成若干個相同大小的格子,進行同時預測。整體性預測的必要性在於區域和區域之間具有相關性,不能單獨預測,在預測 A 區域的時候,其實A區域的變化對B區域和C區域同樣可能產生影響,反之亦然。因此,把深度學習的思想引入進來進行整體預測,與傳統方法相比具有諸多優勢。


基於對時空資料的深度理解


這項工作其實面臨著諸多難點,其中一個重要原因是:影響人流量的因素非常之多。可能包括:與區域裡面前一個小時有多少人進和出有關係;與周邊區域有多少人進和出也有關係;甚至很遠的地方有多少人進和出等等……但是這些區域之間的關係又是相互影響的。

 

另一個難點是,人流的變化還受很多外部因素的影響,例如天氣和事件等等。

 

第三點,人流量的預測是一種時空資料,它包括時間屬性和空間屬性。不同於影像資料和文字資料等,這種特別的屬性就意味著傳統的深度學習方法不能直接應用。

 

為什麼傳統的深度學習方法不能直接拿來用?這包括以下四點原因。

 

第一,空間屬性。空間有距離,空間有層次。根據地理學第一定律,地理事物或屬性在空間分佈上互為相關,一個空間單元內的資訊與其周圍單元資訊有相似性。即在地圖上,兩個點的距離越遠,可以認為該兩點的如空氣質量、溫度等屬性可能差異越大。

 

第二,城市的天然層次性。一個城市它有很多區,每個區又由很多街道社群組成,它有天然的層次。不像影像資料中的畫素,畫素和畫素之間並不存在層次感。城市的區域、街道等這些地理資訊裡都蘊藏著明確的多層次的語義資訊。

 

以上兩點是空間上的不同。


第三,時間變化的週期性。在相鄰兩個時間點之間,城市的交通容量和人流可能是一個平滑變化的趨勢。例如7點和8點的人流可能是平滑變化的,這很容易理解。但週期性則是一種屬性,城市的交通流量也好、人流也好,它是有一個往復的週期性。比如說今天早上8點的車流量和昨天早上8點的車流量可能很像,但是今天早上8點和今天中午12點的車流量卻大相徑庭,儘管今天中午12點鐘離今天早上8點鐘只有4個小時,而昨天早上8點鐘離今天早上8點鐘有24個小時,但反而是昨天同一時間的資料卻更為相似。不同於傳統的影片資料和影像資料,週期性是時空資料的特有屬性。

 

第四,時間變化的趨勢性。其實,週期性也不是固定的,它有一種趨勢性的上揚和下降,這就叫趨勢性。什麼叫趨勢?比如冬天天氣越來越冷了,天亮的時間越來越晚,大家出門的時間就會越來越晚,因此早高峰來的時間就會越來越晚,這種趨勢性慢慢漸變的過程,並不是一個固定的數值,不是說永遠早高峰都是8點鐘來。

 

當空間屬性和時間屬性結合在一起,人流資料作為時空資料的一種,就區別於以往的影片、影像和文字等資料,已有的深度學習方法是無法直接奏效的,這也是研究這類資料的難點所在。


時空殘差網路


說完了研究難點,那麼鄭宇博士及其團隊是如何解決這個意義非凡的研究難題的呢?

 

如上文貴陽市“塊資料”實驗室的大螢幕所顯示的,鄭宇博士及團隊創造性地把城市劃分成若干個均勻且不相交的網格。例如採用1KM*1KM的格子把城市劃分成網格,接下來把收到的人流資料,例如手機資料或者是計程車軌跡等代表人流量的資料,投射在網格里面。第三步,以網格為單位計算每個格子裡分別有多少人流量的進和出。第四步,根據這些資料生成簡單的熱度圖。例如某個方格顏色越亮,則說明這個地方人越多。


 

守護城市安全:時空資料與深度學習

 

因此,某一個時間點的資料就能生成一張二維的平面圖。多個時間點的資料生成對應的影像,就變成了一個時序。此外,研究員同時挖掘出了資料對應的事件和天氣資訊。這些就構成了資料的輸出。

 

守護城市安全:時空資料與深度學習

 

有了這些資料,是否可以直接用上深度學習了呢?答案是否定的。根據論文的描述,我們還要經過以下幾個步驟。

 

第一,把最近幾個小時的資料,即把最近這幾幀的資料,輸入到一個深度殘差網路裡面,即時空殘差網路,來模擬相鄰時刻這些時間點的人流變化的平滑過程。

 

第二,把對應時間點不同日期的對應時刻,例如週一的兩點鐘和週二的兩點鐘,以及週五的兩點鐘,這些同一時刻的資料作為輸入,來模擬週期性。

 

第三,模擬趨勢性,即從更長的時間維度進行模擬。例如將每個月的第一週,第二週和第三週週一的下午三點鐘的對應資料作為輸入,從而模擬趨勢性。

 

以上三點均透過同樣的深度殘差網路分別模擬三個屬性:平滑、週期、趨勢。透過這些關鍵幀的抽取,只要用幾十幀的關鍵幀作為輸入,就可以體現出城市幾個月時間裡所包含的週期性和趨勢性,這極大地簡化了網路結構,但同時保證了訓練的質量和效果。

 

接下來,將這三個結果進行融合,在這一階段僅考慮時間屬性和空間屬性。因為外部因素,例如事件和天氣等更多的是全域性的、更廣域的影響。因此下一步,再把外部的天氣、事件等因素做二次融合。

 

守護城市安全:時空資料與深度學習

 

那麼,空間的特性在這裡是如何模擬的呢?

 

我們都知道,深度卷積神經網路的過程是這樣的——在將城市區域劃分成若干個格子之後,把相關的區域進行卷積運算合併到一個值,你可以認為透過一次卷積之後,相關周圍地區的人流的相關性就能有所瞭解。卷積多次之後,相當於把更遠的地方屬性都卷積到一起了。如果你想研究距離很遠的兩個地方的相關性,那就對網路層次的深度提出了要求。在上海外灘的踩踏事件中,外灘觀景平臺的人流對沖被認為是事件的主要原因,但造成大規模人流對沖的原因仍不清楚。而該模型既可用於解釋人流對沖的原因和趨勢,另一方面還能對人流疏散問題提供解決方案。

 

但另一方面,一旦網路的層次比較深,就會讓訓練變得非常複雜、非常困難,精度也無法保證。為了保證訓練效果好、提高訓練精度,研究員們引入了殘差網路結構來解決這個問題。這樣既保證了人流量的空間相關性,又使得訓練精度變得更好。

 

在論文Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction中,鄭宇博士及研究團隊用四年內的北京市計程車GPS軌跡資料和紐約腳踏車租賃的公開資料進行了驗證。這套模型的通用性也保證了其他類似資料同樣可以用於人流量的預測問題。

 

鄭宇博士介紹道:“這篇論文可以認為是(在國際知名學術會議上)真正把深度學習有效用在時空資料上的第一個研究成果,具有重要意義。”而深度學習在時空資料方面的應用,目前也是微軟亞洲研究院城市計算組的重點研究方向。


為城市喝彩


關於城市計算的研究已經走過了近十年的時光。從2008年初開始,透過分析和融合城市中的各種大資料,鄭宇博士和團隊實現了一系列關於智慧交通、城市規劃、環境和能源等的實際案例。相關技術不僅被應用於微軟的產品,並且還在多個城市為政府決策提供服務。

 

守護城市安全:時空資料與深度學習

 

城市計算作為一個交叉學科,包括城市感知及資料捕獲、資料管理、城市資料分析、服務提供四個環節。與自然語言分析和影像處理等“單資料單任務”系統相比,城市計算是一個“多資料多工”的系統。城市計算中的任務涵蓋改進城市規劃、緩解交通擁堵、保護自然環境、減少能源消耗等等。而在一個任務中又需要同時用到多種資料。比如,在城市規劃的設計過程中,我們需要同時參考道路結構、興趣點分佈、交通流等多種資料來源。

 

在城市計算的中文頁面介紹上,鄭宇博士寫道:“更具體的說,城市計算是一個透過不斷獲取、整合和分析城市中多種異構大資料來解決城市所面臨的挑戰(如環境惡化、交通擁堵、能耗增加、規劃落後等)的過程。城市計算將無處不在的感知技術、高效的資料管理和分析演算法,以及新穎的視覺化技術相結合,致力於提高人們的生活品質、保護環境和促進城市運轉效率。城市計算幫助我們理解各種城市現象的本質,甚至預測城市的未來。”

注:城市計算的中文頁面網址:https://www.microsoft.com/en-us/research/project/%E5%9F%8E%E5%B8%82%E8%AE%A1%E7%AE%97/  


如何成為一個幫助城市建設,為城市喝彩的資料科學家?鄭宇博士給出了以下幾點分享。

 

首先,資料科學家是區別於資料分析師的概念,後者通常都是針對明確的任務和明確的資料進行處理。而資料科學家往往需要自己找出問題,找出對應的資料。例如,如何解決城市的霧霾問題等。

 

其次,資料科學家需要會分析問題,知道這個問題和什麼因素相關,也知道用什麼樣的資料體現這樣的問題。不僅如此,他還需要知道過去解決方案的優缺點,並博採眾長,提出自己的解決思路。

 

再來,資料科學家要看懂資料,理解資料背後的洞察。例如路面上的GPS軌跡,它不光反映了路面的交通容量和速度資訊,它也反映了人們的出行規律。我們知道每個人的上車地點和下車地點,如果我們有很多人的出行規律,就可以進一步反映這個區域的經濟、功能甚至環境。進而可以用領域A的資料去解決領域B的問題,做到跨資料多元融合。

 

還有就是要了解各種模型,包括資料管理、資料探勘、機器學習、視覺化等等,以及雲端計算平臺問題。

 

鄭宇博士總結道,一個好的資料科學家應該是站在雲平臺上面看問題,想資料、關聯模型,並把這些模型有機地組合起來,部署到我們的雲平臺上面,跟它產生鮮活的知識,最終解決行業問題。

 

這,也是鄭宇博士和城市計算團隊一直追求的方向,也是他們為城市喝彩的一種含蓄的表達方式吧。

原文連結:http://mp.weixin.qq.com/s/QROhdVB1sLy5KT6LPMdeTA

相關文章