近年來,隨著感知技術和計算環境的成熟,各種大數據在城市中悄然而生。城市計算就是用城市中的大數據來解決城市本身所面臨的挑戰,通過對多種異構數據的整合、分析和挖掘,來提取知識和智能,并用智能來創造“人—環境—城市”三贏的結果。微軟亞洲研究院主管研究員鄭宇從城市計算的基本框架及核心問題、典型應用、主要技術等方面對城市計算研究進行了全面而詳細的分析,讓我們一睹為快!
城市計算的基本框架及核心問題
基本框架
城市計算的基本框架包括城市感知及數據捕獲、數據管理、城市數據分析和服務提供(如圖1)。與自然語言分析和圖像處理等“單數據單任務”系統相比,城市計算是一個“多數據多任務”系統。城市計算中的任務包括改進城市規劃、緩解交通擁堵、保護自然環境、減少能源消耗等。而一個任務又需要同時用到多種數據。例如,在城市規劃的設計過程中,需要同時參考道路結構、興趣點分布、交通流等多種數據源。
核心問題
城市計算是一門新興的交叉領域,涵蓋面較廣。從計算機科學的角度來看,其核心的研究問題主要包括以下4 個方面:
城市感知
如何利用城市現有的資源(如手機、傳感器、車輛和人等),在不干擾人們生活的前提下自動感知城市的韻律,是一個重要的研究課題。如何從大量的傳感器和設備中高效而可靠地收集、傳送數據將給現有的傳感器網絡技術帶來挑戰。此外,人作為傳感器參與到城市感知過程是一個新概念。例如,當一場災難發生后,有些用戶會在社交網絡上發布消息或上傳照片。這些用戶其實就是在感知發生在他們身邊的事情。用戶在出入地鐵站時的刷卡行為也間接幫助我們感知了地鐵系統的擁擠和人們的出行。人賦予了傳統傳感器強大的感知能力和前所未有的靈活性,但產生的數據更加隨機、無序(如微博上的文字),數據的產生時間也變得難以預測、不可控,這給數據的收集和解析帶來了挑戰。
海量異構數據的管理
城市產生的數據五花八門,屬性差別很大。例如:氣象是時序數據,興趣點是空間點數據,道路是空間圖數據,人的移動是軌跡數據(時間+ 空間),交通流量是流數據,社交網上用戶發布的信息是文本或圖像數據。如何管理和整合大規模的異構數據是一個新的挑戰。尤其是在一個應用中使用多種數據時,只有提前建立起不同數據之間的關聯,才能使后面的分析和挖掘過程變得高效、可行。
異構數據的協同計算
這部分包括三個方面:(1) 如何從不同的數據源中獲取相互增強的知識是一個新的課題。傳統的機器學習往往基于單一數據,如自然語言處理主要分析文本數據,圖像視覺主要基于圖像數據。在城市計算的很多應用中,對不同性質的數據一視同仁,其效果并不理想。(2) 在保證知識提取深度的同時,如何提高對大數據的分析效率,從而滿足城市計算中眾多實時性要求較高的應用(如空氣質量預測、異常事件監測等),也是一個難題。(3) 數據維度的增加也容易導致數據稀疏性問題。當數據規模達到一定程度,簡單的矩陣分解算法都變得難以執行。
虛實結合的混合式系統
城市計算常常催生混合系統,如云加端模式,即信息產生在物理世界,通過終端設備被收集到云端(虛擬世界)分析和處理,最后云再將提取的知識作為服務提供給物理世界的終端用戶。數據在物理和虛擬世界中來回穿行,從分散到集中,再到分散。這對系統的設計和搭建提出了更高的要求。基于浮動車數據的快速行車路線設計以及城市異常事件的監測都是典型的混合式系統。
城市計算的典型應用
城市規劃
城市擁堵在一定程度上突顯了現有道路網的設計已經不能滿足不斷發展的城市交通流的需求。如圖2(a) 所示,利用高速和環路等主干道將城市分割成區域,然后分析大規模車流軌跡數據在不同區域之間行駛的一些特征,便可找到連通性較差的區域對,從而發掘現有城市道路網的不足之處。圖2(b) 給出了基于北京市3 萬多輛出租車3 個月軌跡數據的分析結果。這些結果可以作為制定下一版交通規劃的參考。同時,通過對比連續兩年的檢測結果,可以驗證一些已經實施的規劃(如新建道路和地鐵)是否合理。
城市的不斷發展催生了不同的功能區域,如文教、商業和住宅區等。準確掌握這些區域的分布對制定合理的城市規劃有著極其重要的意義。但是一個區域的功能并不是單一的,例如在科學文教區里仍然有飯店和商業設施的存在。因此,一個區域需要由一個功能的分布來表達(如70%的功能為商業,20% 的功能為住宅,剩余的為教育)。由于一個區域雜糅了很多不同類別的興趣點,而且每個興趣點的作用大小和被訪問頻度都很難預知,這給城市規劃提出了很大的挑戰。例如,同樣都是餐館,一個小區里的小店和全聚德之類的大店所反映的區域功能是完全不一樣的。
結合興趣點數據和人們的移動模式,Discovering regions of different functions in a city using human mobility and POIs分析了城市中不同的功能區域。如圖3(a) 所示,相同顏色的區域具有相同的功能分布(如紅色區域主要為科學文教區)。圖中所采用的人的移動性數據是從出租車的軌跡數據中提取出來的,該軌跡數據包含乘客上車和下車地點的信息。人的移動性數據可以很好地區分相同類別的興趣點的熱度,也可以揭示一個區域的功能。例如有一個區域,大部分人都是上午8 點左右離開,晚上7 點返回,則這個區域很可能是住宅區。一個區域的主要功能是文教,但也不代表該區域的任何一個地點都服務于文教。因此,給定一種功能,我們希望知道它的核心區域所在。圖3(b) 顯示了成熟商業區的核心區域,顏色越深表示該區域是成熟商業區的概率越大。
智能交通
T-Drive 系統利用裝有GPS 傳感器的出租車來感知交通流量,并為普通用戶設計出真正意義上的最快駕車線路。如圖4 所示,T-Drive 提出了一個基于地標圖的路由算法,其中一個紅點表示出租車司機走過最頻繁的路段之一(稱為一個地標),紅點之間的連線表示連接兩個地標點的一條虛擬邊,代表連續經過這兩個地標點的出租車軌跡的聚合。根據出租車軌跡數據,可以學習出任何一條虛擬邊的通行時間。T-Drive 的改進版進一步考慮了天氣及個人駕車習慣、技能和道路熟悉程度等因素,提出了針對個人的個性化最快線路設計。這個系統不僅可以為每30 分鐘的駕車路程節約5分鐘時間,還可以通過讓不同用戶選擇不同的道路來緩解可能出現的擁堵。
打車難是很多大城市面臨的一個問題。通過分析出租車乘客的上下車記錄,T-Finder提供了一個面向司機和乘客的雙向推薦服務。一方面,這個系統向出租車司機建議一些“趴活”地點。只要向這些地點行駛,司機將在最短的時間內(在路上或者推薦地點)拉到乘客,并且使收入最大化。另一方面,如圖5(a) 所示,該系統向乘客推薦一些周邊的路段,在這些路段上尋找到空車的概率更高(不同顏色表示不同概率,藍色最高,紅色最低)。同時,T-Finder 還可以預測周邊的一些出租車停靠站在未來半小時內將駛入的空車數目。T-Finder通過推薦能夠緩解非高峰時段的打車難問題,但該系統并不能真正解決高峰時段的問題。T-Share則通過出租車實時動態拼車的方案來解決這一難題。在T-Share系統里,用戶通過手機提交打車請求,表明上下車地點、乘客人數和期望到達目的地的時間。后臺系統實時維護所有出租車的狀態,在接收到一個用戶請求后,搜索出滿足新用戶條件和車上已有乘客條件的最優的車。這里的最優是指出租車去接一個新的用戶所增加的里程最小。如圖5(b)所示,該出租車被規劃為先后接 u1 和 u2,放下 u1 接 u3,再放 u2 ,然后放 u3(+ 表示上車,- 表示下車)。根據仿真結果顯示,TShare系統一年可以為北京市節約8 億升汽油(可供100 萬輛車開10 個月,價值10 億元人民幣,并減排二氧化碳 16 億千克),乘客能打到車的概率提高3 倍,但費用降低7%,出租車司機的收入增加10%。
圖5 城市計算中的出租車解決方案
還有一些研究工作,利用乘客在地鐵系統中的刷卡數據來估計單個地鐵站點內的擁擠程度和不同站點間的通行時間,從而優化人們的出行線路、時間和購票方式的選擇。還有人通過分析出租車的軌跡數據來建議開通公交線路。如果有大量的人通過打出租車從一個地點到另一個地點,則說明這兩個地點需要公交線路來連通。
環境
空氣質量信息對控制污染和保護人們身體健康有著重要的意義。很多城市都開始通過建設地面空氣監測站來實時感知地面的空氣質量。但是由于監測站的建設成本高昂,一個城市的站點有限,并不能完全覆蓋整個城市。如圖6(a) 所示,北京城區僅有22 個空氣監測站點(平均約100平方公里設一個站點)。然而空氣質量受多方面因素影響(如地表植被、交通流量、樓房密度等),而且隨地域不均勻變化。如果一個區域沒有監測站,我們并不知道該地區空氣質量的好壞,更不能用一個籠統的數據來概括整個城市的空氣狀況。
利用群體感知是解決這個問題的一種方式。例如,“哥本哈根車輪”項目在自行車車輪里安裝一些傳感器,通過用戶手機將收集的數據發送至后臺服務器。依靠群體的力量,我們就可以感知整個城市不同角落的溫度、濕度和二氧化碳濃度。由于受傳感器大小和感知時間的限制,這種方式只適用于部分氣體,如一氧化碳和二氧化碳。由于傳感器體積較大,不便于攜帶,對于細顆粒物(PM2.5) 這樣的懸浮物則需要2~4 小時的測量時間才能產生較為精確的數據。
U-Air 利用地面監測站有限的空氣質量數據,結合交通流、道路結構、興趣點分布、氣象條件和人們流動規律等大數據,基于機器學習算法建立數據和空氣質量的映射關系,從而推斷出整個城市細粒度的空氣質量。圖6(b) 顯示了北京某時刻的細粒度空氣質量(其中不同顏色表示不同污染指數,綠色為優)。
社交和娛樂
社交網絡的盛行,尤其是基于位置的社交網絡的風靡,帶來了豐富的媒體數據,如用戶關系圖、位置信息(簽到和軌跡)、照片和視頻等。這些數據不僅表現了個人的喜好和習慣,也反映了整個城市人們的生活方式和移動規律。基于這些數據,產生了很多推薦系統,包括朋友推薦、社區推薦、地點推薦、旅行線路推薦和行為活動推薦。文獻A survey on recommendations in location-based social networks 綜述了基于位置的社交網絡中的各種推薦系統。
城市計算中的社交應用更加強調從大量用戶的社交媒體數據中提煉出群體智慧。人作為一個重要的感知和計算單元參與到計算的過程中是城市的重要特點之一。例如,一個用戶的簽到或者帶有地標的照片數據都可被看成是不確定的軌跡,原因在于用戶不會不停地簽到或拍照。在得到這樣一條軌跡數據時,我們無法判斷出該用戶選擇的具體線路,如圖7(a)。但是,當我們把很多個用戶的不確定線路疊加到一起,就能猜測出最有可能的線路,如圖7(b),即“不確定+ 不確定→確定”。這樣的應用可以幫助人們規劃旅行線路。例如,一個用戶想在一條線路中去后海、天壇和頤和園3 個地方,把這3 個點輸入到系統里,可以根據大眾的簽到數據計算出一條最熱門的游玩路線。
社交媒體數據同時也向城市計算的其他方面貢獻著力量。例如,通過網民在社交網絡中發布的信息來預測總統選舉結果、疾病蔓延和房價走勢,發現異常事件和災難,分析交通流量,設計廣告推送和商業選址。通過社交媒體還能分析一個城市的風格以及不同城市之間的相似性。
能源消耗
文獻Sensing the pulse of urban refueling behavior利用裝有GPS 的出租車在加油站的等待時間來估計加油站的排隊長度,估算出此時加油站內的車輛數目及加油量。通過將全城的加油站數據匯總,便可計算出任意時刻消耗掉(加入到汽車油箱里)的燃油數。這些數據能實現三方面的應用:第一,給需要加油的用戶提供推薦信息,尋找排隊時間最短的加油站;第二,可讓加油站運營商知道各個地區的加油需求,從而考慮增加新的站點或動態調整某些加油站的工作時間;第三,政府可以實時掌握整個城市的油耗,制定更為合理的能源戰略,如圖8 所示。
文獻Coordinated clustering algorithms to support charging infrastructure design for electric vehicles通過分析人口數據、車輛的軌跡數據、各地區能源消耗情況和興趣點的分布來研究未來新能源汽車的充電站建在何處最優。也有不少工作通過分析汽車內部的傳感器數據(如踩油門、剎車的時間和次數等)來建議經濟省油的開車方式。
經濟
城市經濟是一個相對成熟的研究領域。例如,分析決定土地價格的因素、土地使用限制對經濟的影響,公司選址和人們選擇住宅的位置對周邊未來經濟的影響等。
文獻Geo-spotting: mining online location-based services for optimal retail store placement通過分析大量用戶的簽到數據為商業選址提供位置建議。比如,要開設一個新的麥當勞餐廳,什么地方是最理想的位置。結合道路結構、興趣點分布、人口流動等諸多因素來對屋的價值排序。即在市場向好時,哪些小區的房價將會漲得更多;市場下行時,哪些小區的房價比較抗跌。與使用傳統經濟學模型不同,以上這兩個例子采用了機器學習算法和數據驅動的方法。
城市安全和應急響應
城市中總是會有一些突發事件,如自然災害(地震和洪水等)、大型賽事和商業促銷、交通事故和臨時管制、群體性事件等。如果能及時感知、甚至預警這些事情,將能極大地改善城市管理,提高政府對突發事件的應對能力,保障城市安全,減少損失和悲劇的發生。
Discovering spatio-temporal causal interactions in traffic data streams、On mining anomalous patterns in road traffic streams、On detection of emerging anomalous traffic patterns using GPS data通過分析北京3 萬多輛出租車的軌跡來發現城市中的異常事件。其主要思想是當異常事件發生時,附近的交通流將出現一定程度的紊亂。文獻Inferring the root cause in road traffic anomalies 試圖用具體的交通線路來進一步解釋異常出現的原因。如圖9所示,L1 連通的兩個區域之間出現了交通流異常,但問題本身可能并不在這兩個區域。其原因在于天安門附近因馬拉松比賽而導致了交通管制,之前通過紫色虛線出行的車流就不得不繞道到綠色分段線的線路。所以綠色的線路才是產生這次異常的原因。根據司機選擇路線的改變來捕捉交通異常,并進一步從相關的微博中提取關鍵詞來解釋異常的原因,如婚博會、道路坍塌等。
圖9 分析交通異常
Modelingand probabilistic reasoning of population evacuation during large-scale disaster通過分析160 萬日本人一年的GPS 移動軌跡數據庫來對日本大地震和福島核事故發生后的災民移動、避難行為進行建模、預測和模擬。這樣日后再有類似事件發生時,便可從之前的災難中吸取經驗,提前做好準備。例如,為人們推薦合理的撤退線路。
城市計算的主要技術
傳感器技術
傳感器網絡
實現現有專業傳感器(如溫度傳感器、位置傳感器、交通流線圈、空氣質量監測儀等)之間的互聯互通,完成數據的快速收集。
主動參與式感知
用戶通過主動分享自己獲取的數據來共同完成一個復雜的任務。例如,每個用戶都利用手機上的傳感器來分享自己周邊的氣溫和濕度,從而構建出全城細粒度的氣象信息。
被動群體感知
城市里各種信息基礎設施(如蜂窩移動通信系統和公交卡系統)為城市計算提供了良好的感知平臺。這些基礎設施可能并不是專門為城市計算設立的,但當用戶在使用這些基礎設施時會產生大量的數據,將這些數據融合到一起能很好地反映城市的韻律。例如,通過分析大量用戶的地鐵刷卡數據就能掌握城市的人口流動規律。通過分析大規模的出租車軌跡數據就能感知城市路面的交通流。與主動參與式感知技術不同,被動式群體感知中的用戶并不知道自己的數據將作何使用,甚至不知道自己在產生數據。
數據管理技術
流數據管理
由于大量的傳感器數據都以流的形式輸入,高效的流數據庫技術是城市計算數據管理層的基石。
軌跡管理
交通流、人的移動以及帶位置標簽的社交媒體都可以表示為軌跡數據(即帶有時間戳并按時間排序的點序列)。在城市計算中經常會用到軌跡處理技術,如地圖匹配算法、軌跡壓縮、軌跡搜索、軌跡頻繁模式挖掘等。
圖數據管理
社交網絡中人的關系、不同地區之間的人口流動、道路上的交通流等等都可表達為圖模型。因此,圖數據的管理和模式發現技術尤為重要。城市計算的應用中更多會用到帶有時空屬性的圖模型,即每個節點都有空間坐標信息,圖中邊和點的屬性(甚至圖結構)會隨時間而變化。前文提到的最快行車路線設計、查找路網中不合理規劃、發現城市不同的功能區域以及交通流異常檢測都是以帶有時空屬性的圖為研究模型。
時空索引
有效的索引可以大大提高數據提取的效率。由于空間和時間是城市計算中最常用的兩個數據維度,各種空間索引和時空索引都是常用技術。更重要的是利用時空索引技術將不同種類的數據(如文本、車流等)關聯和組織起來,為之后的高效數據挖掘和分析做好準備。
數據挖掘技術
用于城市計算的數據挖掘和機器學習算法比較多。各種模式發現、統計學習和人工智能方法都可以應用到該領域。但在挑選這些技術時需要考慮以下兩個因素:
能從異構數據中學習到相互增強的知識
通常有3 種方法來實現這個目標:(1) 分別從不同數據中提取特征,然后簡單地將這些特征直接拼接并歸一化到一個特征向量里,輸入到機器學習的模型中。由于不區分不同數據的特性,因此這種方法并不是最有效的。(2) 在計算模型的不同階段先后使用不同數據。例如,文獻Urban computing with taxicabs先用道路數據將城市分割成很多區域,然后再將軌跡數據映射到這些區域上構建圖,最后通過分析圖模型來找出不合理的道路規劃。(3) 將不同的數據分別輸入到同一個計算模型的不同部分。如文獻Discovering regions of different functions in a city using human mobility and POIs將人的移動性數據和興趣點數據分別輸入到一個主題模型的兩個不同部分來分析城市的不同功能區域。文獻U-Air: when urban air quality inference meets big data將交通流、人的移動性和氣象數據等時變信息輸入到一個隨機條件場conditional random fields, CRF) 來模擬一個地點空氣的時序相關性,將道路結構、興趣點分布等空間(非時變)信息輸入到神經網絡中來模擬不同區域間空氣質量的相關性。然后,這兩個模型在半監督學習的框架里相互迭代、增強,共同推斷出一個地點的空氣質量。如果只是簡單將所有數據輸入到一個分類器中,由于那些空間數據不隨時間變化,會被忽略,因此預測效果并不好。
應對數據的稀疏性
大數據與數據的稀疏性并不矛盾。以預測城市的細粒度空氣為例,我們能觀測到的交通流、人流、道路和興趣點數據都是大數據,由于只有有限的監測站能產生空氣質量的讀數,因此,訓練數據很稀疏。另外一個例子是利用出租車來估計城市的燃油消耗。出租車的GPS 軌跡數據巨大,但某些時刻有相當一部分加油站并沒有出租車出入。如何估計這些站點的油耗,也是一個應對數據稀疏性的問題。解決這一問題通常可采用以下3 種方法:(1) 使用半監督學習算法或轉移學習算法。如文獻使用半監督學習算法來彌補因空氣監測站少而帶來的訓練樣本稀疏性問題。(2)采用矩陣分解算法和協同過濾。城市油耗估計就是利用這種方法來解決數據稀疏性問題的。(3) 基于相似性的聚類算法。假設我們需要根據埋在地面的線圈傳感器來估計行駛在道路上的車輛數,但由于不是所有路面都埋有線圈,所以很多道路上的流量無法估計。根據道路的拓撲結果、周邊的興趣點分布等信息,我們可以計算不同道路之間的相似性,從而對道路進行聚類。這樣被分在同一個類里的道路很可能具有相同的車流模式。于是,在一個類中,我們可以將有傳感器道路的讀數賦給那些沒有傳感器的道路。
優化技術
城市計算中也經常用到各種優化技術。比如文獻T-Share: a large scale dynamic taxi ridesharing service就是通過將時空搜索技術和路徑優化相結合來尋找能夠接送乘客的最佳出租車。文獻Inferring the root cause in road traffic anomalies通過線性規劃來分析最有可能造成交通異常的車流。文獻Where to Find My Next Passenger? 向出租車司機推薦最優的乘客尋找路線。
混合數據的可視化技術
可視化以直觀的方式幫助我們理解獲取的知識和模式。圖10 是每個工作日 12~14 點之間乘坐出租車到達各個區域的人數的熱度圖(顏色越深,人越多)。將不同時間段的此類熱度圖連續播放,便可以動態反映整個城市的人口流動規律。相對而言,北京東部的中央商業區具有更高的人氣。與單一數據可視化不同,城市計算中的可視化技術需要同時考慮多個維度,其中空間和時間是兩個至關重要的維度。
城市計算是一個新興的交叉領域,是計算機學科與傳統城市規劃、交通、能源、經濟、環境和社會學等多個領域在城市空間的交匯。它關系到人類未來的生活質量和可持續性發展。大數據時代的到來為城市計算提供了更多的機遇和更廣闊的前景。