當城市數據和社會關系被可視化,每個人都可能是福爾摩斯
現代城市是由人、機、物等組成的繁復的生活系統,其間產生的數據可用巨量來形容。要對這些宏大的數據進行收集、梳理并作分析,難度有之。在日前舉辦的杭州云棲大會上,浙江大學陳為教授為我們分享了其團隊近幾年在城市大數據可視化方面的部分科研成果,并探討了機器學習等在城市數據研究中的重要性。本文為其演講實錄,并略經編輯、刪減。
可視分析研究的興起
今天我向各位分享的是我們浙江大學可視化與可視分析小組最近兩年的研究工作。
首先簡單給大家兩個定義。
- ***個,可視化是什么?可視化實際上是把數據信息轉化為人眼能識別的可視符號,通過眼睛來增強人類大腦認知的一種方法。可視化其實是人機交互、虛擬現實應用里面的關鍵技術。
- 第二個,可視分析是什么?2004年美國在對反恐情報的分析中,出現了一些核心問題(DT君注:美國國土安全局之后成立國家可視化與分析中心),后來就演化出了一個新的學科,叫做可視分析學。這門學科是把可視化、人機交互、數據挖掘結合起來,形成的一種新的解決問題的綜合性的思維方式。
我從2004年開始就轉向了可視化分析方面的研究。尤其最近幾年,人工智能的興起使得我們能夠更好地考慮去做智能可視化,來分析一些問題。
今天要向大家展示的,是圍繞最近幾年我們拿到的一些真實、少量的數據,以及我們所做的部分研究工作。
對人群位置和手機通話關系做可視化
***項研究,是基于手機基站數據。簡單來講,每一個手機用戶,他每分鐘在什么位置,這個位置是不精確的,而是一個基站的ID。
用戶在某些基站可能會停留,也可能會移動,這其實反映了城市人群的流動。同時我們也獲得了這些用戶互相之間的通話數據。有了這些數據后,我們自然而然想:這個城市的人群到底是怎么流動的呢?當然這是基于基站的流動,不是基于車輛,也不是基于GPS。
- 上圖是我們設計的4個視圖。左上角是以手機基站為中心的人群流動的規模分析,以及隨著時間演變,它的變化趨勢。
- 左下角是一個熱力圖,它展現了在不同的區域,人群的密度、分布情況。
- 右上角是一個傳統的統計可視化,通過統計的報表來分析。
- 右下角是結合了聚類,用數據挖掘的傳統方法,來研究社交關系和人群流動之間有沒有一些沒法用統計方法來表現的規律。
在整個界面上,我們分成了幾個視圖,視圖本身是用WebGL進行加速,它的背后是整個城市數百萬人的手機每分鐘的位置數據,以及不定時的發短信和電話的記錄等數據的支撐。
在我們看來,可視化一個非常重要的功能是給人一個提示、給人一個直覺、給人一個恍然大悟的感覺。
需要注意的是,我們今天給大家提供的例子,都是以二維為背景的,因為我們覺得雖然三維的背景在某些應急指揮或者城市規劃中應用很廣泛,但在一些非結構化、時空和非時空的信息分析當中,二維和高維的空間數據分析更加適合。
在這個視圖中,我們使用了開源的OpenStreetMap作為底圖,在此基礎上做了疊加和WebGL加速,從而能夠做到實時呈現。
基于手機信令數據做人群流動的可視化
接著我們來看看,我們在對手機信令數據的進一步挖掘中,如何觀察人群的流動。
如何來衡量人群流動呢?我們發現,20世紀80年代,國內已經有人在研究張量場和流場這樣的理論,我們認為,在城市人口密集區域研究人群流動,也可以通過流場來表達和刻畫,然后再采取一些擴散對流的方法,來進行表達。
獲得了手機信令相關的原始數據后,要進行梳理和清洗,再轉化為向量場。什么是向量場呢?就比如風朝某個方向吹,其實就是一種向量場。
將向量場應用到人群流動分析中,可以用來刻畫人群在大范圍內的宏觀的流動。下面這張圖是我們和阿里合作的人群實時流動的可視化分析的截圖:
在圖中,人群的流動是發生在道路上的。在早晚高峰,它具有某種大范圍的宏觀流場特征。通過可視化的方法,我們能讓用戶看到人群移動的方向,以及分叉和融合、聚集和擴散的情況。
我們目前的數據可能還不是那么精確,因為我們是將某個區域劃分為若干個小方格來進行計算、統計人群的流動,如果我們有GPS之類數據的話,可以更好地采取類似的計算機視覺的技術,來監測人群中可能發生的踩踏情況。
理論上來說,如果我們的數據匯聚得比較好,是可以提前預防踩踏事件的。
從出租車軌跡來對路況進行可視化查詢
第三個例子是基于出租車軌跡的相關數據對路況進行可視化查詢。
2012年時,杭州市有8300多輛出租車,這些出租車的車流占整個城市車流的7%左右,因此出租車的軌跡能夠反映城市交通的某種狀態。
要通過出租車的數據來查詢哪個地方堵車,哪個路口的人群往哪里走等等,我們需要有一個能夠即時反饋的查詢工具。
雖然我們也可以寫一個程序,用Excel打開進行查詢,但是要做到隨時隨地查詢、對不同區域進行對比等,這樣我們就需要一個可視化分析的界面,因為這才是一個即時的分析工具。
我們的課題組主要做的就是將空間的數據轉化為可視化的交互界面查詢,向用戶提供一個更簡單、敏捷地的數據工具。這背后當然需要一些數據挖掘算法。
這里來看下一我們的原始數據的情況:
我們拿到的原始數據,打開一個文件需要10分鐘,但在我們對數據進行處理和建立索引后,用戶的查詢同樣也做到了實時。
基于這些數據,我們能做到什么呢?
我們可以做雙向車道、潮汐車道的對比,還可以分析交叉路口、堵車等各種交通方面的問題。
比如,下圖展示的是杭州天目山路和曙光路的情況。這是兩條平行道路,但是由于曙光路施行了潮汐車道,所以,從圖中可以看出,曙光路的擁塞情況較輕,從右側的散點圖能看出曙光路的車流量要比天目山路(主干道)更大。
下面的視頻,展示了杭州8300輛出租車的軌跡的情況,以及我們基于這些數據對車流和交通狀況的一些分析:
將機器學習引入城市空間位置的可視表達與分析
在對數據實現可視查詢后,我們認為,要對深層次的信息進行刻畫,我們還可以采用一些機器學習的方法來進行表達。
比如說,我們最近就進行了一個簡單的嘗試。大家知道,最近有一種***的word2vec方法,它實際是一種深度學習的數據表達。我們也把這個方法擴展到了非結構化數據的處理上。用于對時空、人群和出租車軌跡的數據分析。從而能夠幫助我們更好地來觀察人群位置移動等。
通過把粗糙的信息進行過濾后,用戶還能夠從中找到一些很有趣的信息。
下面是我們的一些可視化界面截圖:
通過引入機器學習,我們可以探索手機基站的相似性關系、城市道路的相似性、手機基站各向異性屬性與道路的相關性分析等等。可以更好的探索人群和城市地點之間的交互過程。
我們認為,對這些信息進行可視化不僅是為了讓用戶看,更重要的是了解在三元空間中的人、機、物之間發生了什么事。
人的社會關系的可視推理和異構數據的關聯分析
***再來談談我們如何對個人的社會關系進行可視推理,以及不同結構類型的數據如何進行關聯分析。
我們希望基于三元空間里的諸如微博數據、手機的基站相關的位置數據、出租車數據,來推測某一個不明身份者的社會關系。
先來舉個例子。有一個孕婦,在生小孩前后通過手機在車上連續發了7條帶有位置的微博,但是微博里面的地理信息位置不夠精確,而我們恰好有這個時間段里的手機基站和出租車軌跡的相關數據,通過簡單的方法,我們可以在1-2分鐘內,快速把這個孕婦住在哪、她的丈夫是誰、她的手機是哪一個ID等等,都能找出來。
對于這類關系的分析,我們需要借助于人和機器的智能融合,來讓用戶通過時間線的表達,通過地理、時間,來快速迭代地把四元空間中可能會發生信息碰撞(公安相關領域一個術語)的人物關系找出來。
另外,通過此類分析,我們還可以找到交班的出租車位置信息,人群的通勤規律等等。
做這樣的分析,我們當然不是為了破壞隱私,反過來理解,我們其實也在做關于隱私保護的可視化分析。我們希望能給我們的用戶一種一針見血、快速而敏捷地找到某個人的社會關系的一種方法。注意這些目前還不是自動做到,而是需要把人的常識,經驗融入到機器,通過可視化的交互方式去迭代地融入,這樣才能找到一些蛛絲馬跡。
接著再來看看如何對異構數據進行關聯分析。
通過把不同的線索快速匯聚在一起,能讓大家快速成為福爾摩斯。通過對不同線索的匯聚,對數據進行關聯推理分析,這里我還是舉兩個例子。
***個例子,某個人在微博中稱其在某個時間打車時丟了一部手機,半小時后用電話打過去發現手機關機。誰會拿走他的手機呢?我們通過數據,兩分鐘之內能夠查出來。可以從幾千條出租車軌跡中,快速匹配出來。***還原出來整個事件:原來是出租車司機把這個手機拿走了。
下面這張圖展示了從某條微博,到最終定位到某位出租車司機的推理過程:
(圖片說明:城市數據的多樣化導致了多源異構的數據,它們在帶來信息量的同時帶來了很大的數據學習成本和數據查詢成本。本文作者團隊建立的一套模型,可以提高數據查詢效率,利用可視化的方法,用戶能夠簡捷直觀地自定義數據查詢目標,并利用不同視圖展示查詢結果,有效提高了城市數據的分析效率。這個圖展示了某個事件的分析推理過程。)
第二個例子,是關于某一起車禍。車禍發生前,所有的天氣情況、道路情況以及它引起的交通擁堵等情況,都可以快速進行分析。此外,我們的平臺上還匯集了手機信令、出租車軌跡、微博數據、谷歌視頻、地圖、街道等各種網上信息。可以將不同的數據關聯起來。
我們認為,對于大數據,***步是要“存”(存儲),第二步是“通”(關聯),第三步是能做一些分析。
再進一步,可能還需要進行更多的數據挖掘,引入機器學習、人工智能等算法,才能夠讓我們智慧城市建設走得更遠,形成一個以數據為中心的城市大腦。