楊皓斐,曹 仲,李付琛
(北京交通大學 計算機與信息技術學院 交通數據分析與挖掘北京市重點實驗室,北京 100044)
隨著我國城市化進程的不斷推進,早期的城市規劃不合理導致產業分布不均、經濟發展不平衡的問題愈加凸顯.分析區域的人口數量以及時空特性[1,2],對于城市發展政策的制定[3]、發展規劃的調整具有著重要的意義.過去幾十年間,國內外在相關方面都開展了統計分析工作,并取得了一定的成果.數據統計方式經歷了從最初依靠人力的人口普查、到依靠紅外、搖桿技術等技術測量方式,再到近幾年采用跨學科綜合地理信息系統建模[4]的方式,不斷提高數據的精準度.然而,這些方法普遍存在著測量方式復雜,數據獲取難度大、更新過程慢、時效性低等缺點.
城市人口感知最早可以追溯到上世紀30年代,沃斯在《作為一種生活方式的城市主義》中首次提到了晝夜人口數量區分[5].90年代初期,人口感知取得了迅速的發展.在國外,Tobler W 等[6]提出了地理信息柵格化的方式,將地理空間劃分為等大小的柵格,提高了人口分布的精度,但是同時也削弱了與地理空間語意的結合.Linard C等人[7]提出了一種融合人口普查數據和衛星數據的感知方法,利用非洲地區的數據得到驗證,并提高了非洲地區人口感知分辨率.在人口分辨率的基礎上,實現了人口分布中心性和可達性的分析.
Gaughan AE 等[8]在 Linard C 的基礎上,結合了土地利用率數據,將分辨率提高至100 m,但是該方法采用的遙感數據和普查數據存在數據獲取相對困難,時效性低的特點.在國內,龍瀛等[9]以北京市一周的公交刷卡數據為基礎,分析了北京的職住關系和通勤出行,識別出20萬以上的人口出行,但也只占全數據樣本比例的2.8%,不能全面反映北京的人口情況.鄭宇等[10]采用用戶歷史移動數據和POI數據發覺城市功能區、尋找城市人口火山與黑洞.總體而言,上述方法都是基于抽樣樣本數據獲取方式,存在樣本集合無法反應全集的問題,而且呈現的結果時效性低.
近年來,通信市場的迅速發展,手機的高覆蓋率,為城市人口分布感知提供了一種新的途徑.手機用戶在主叫、被叫、收發短信、開關機以及位置更新時,運營商均可以記錄包含著時空信息的數據內容.這些手機數據存在著海量、實時的特性,并且具有數據采集方便、數據樣本覆蓋全的特點,使其可以廣泛的應用在城市空間結構、建設環境評估、職住關系分類、交通通勤行為等眾多研究領域,同時也為動態人口感知提供了可能.
基于上述內容,本文以北京市連續五天早5點到晚上12點采集的某運營商數據為基礎,結合GIS地理信息系統,采用分布式消息中間件Kafka作為數據緩沖平臺、Spark Streaming作為實時處理方案及HBase作為數據存儲平臺,以小時作為處理時間粒度單位,嘗試感知北京市動態人口分布時空特性,為城市交通和城市規劃的后續研究提供參考借鑒.
當移動終端在蜂窩網絡中發生基站小區切換時,基站會記錄用戶位置更新相應的交互信息日志(稱為位置更新數據),并匯總到運營商數據中心.基于位置更新數據,建立本文的數據模型.
定義 1.原始定位點 OPP (Original Positioning Point).表示位置更新數據經過降噪格式化處理之后的有效數據單元,包含了三個基本信息: OPP=(ID,P,T),其中 ID 表示用戶唯一性標識,P=(LAC,CELLID)分別為基站大區和小區號,T為交互發生的有效時間戳.
如圖1所示,用戶在單位時間內共發生8次基站小區切換,形成8條有效記錄,經過轉換形成8個OPP單元,每一個單元均包含了位置小區以及時間信息.

圖1 用戶位置序列
定義 2.移動軌跡 MT (Movement Trajectory).一條移動軌跡由同一用戶在單位時間內的原始定位點OPP按照時間排序組成,MT={OPPi}.
在圖1所示情況中,OPP位置按照位置更新的有效時間作為主鍵進行升序排序,MT={OPP1,OPP2,OPP3,OPP4,OPP5,OPP6,OPP7,OPP8}.
定義 3.用戶駐留點 SP (Stay Point).用戶駐留點表示將用戶的移動軌跡按照時間和空間兩個維度聚類之后產生的位置信息點,SP=(P,T),P=(LAC,CELLID)為聚類之后形成的新的聚類中心對應的基站小區編號,T為聚類之后形成的新的有效時間信息點.
如圖1所示,用戶的8個OPP中,有五個點滿足聚類條件,形成了新的聚類中心SP1.
定義 4.用戶位置空間 UGA (Geometry Area).用戶位置空間表示將基站按照泰森多邊形算法[11]劃分形成基站覆蓋面,之后將用戶的駐留位置點信息SP根據基站小區編號位置映射,形成用戶位置空間.UGA=(ID,Geometry),其中 ID 標識唯一用戶,Geometry 為包含基站形成泰森多邊形區域的地理語義信息.
大數據平臺主要為本應用提供海量數據的采集、計算、存儲、對外服務等基礎支撐性功能.在數據采集方面需要提供全面的數據清洗能力,實現數據的無縫抽取、轉換和加載.在數據分析方面需要能夠具備海量數據的實時處理分析能力和高度的可擴展性.在數據存儲方面需要具備低成本、高擴展、及時響應的存儲性要求.對外服務方面需要具有全面的應用服務接口,對外提供交互友好的可視化效果.
大數據分析處理平臺采用分層架構,利用當前主流的Hadoop生態圈產品.平臺技術架構如圖2所示.

圖2 分布式處理平臺架構
數據采用層要能夠接入多種異構數據源,包括了靜態數據文件以及實時流數據.靜態數據文件如行政區劃和基站等地理信息數據采用自定義工具實現數據的存儲轉換.實時流數據在不同的時間段面對的數據量大不同,為保證后臺實時處理的效率及性能的動態收縮,采用Kafka作為分布式消息隊列,減輕后后臺業務處理壓力.
傳統關系型數據庫對于小量結構化數據有著高速查詢、分析處理的能力,但是無法滿足海量異構數據的存儲分析性能要求.HBase分布式數據庫誕生之初就是為了解決海量結構化和非結構化數據的存儲以及分析需求.結合關系型數據庫MySQL和分布式數據庫HBase構建數據存儲層.將靜態、變更周期長的數據存儲在傳統關系型數據庫中,而將海量實時流數據存儲在分布式數據庫中.
數據處理層需要具備海量數據實時處理分析的能力,并在數據爆發時具有高可伸縮性.采用構建在Spark基礎之上的Spark Streaming作為分布式實時處理架構,其基于內存的高速執行引擎具有使其能夠達到秒級響應并具備高效的容錯性.
數據監控層主要用于監控集群的運行狀態以及對數據的變更做出及時的響應.一方面采用開源Zookeeper組件保存部分應用狀態,如HBase元信息和Kafka偏移量控制; 另一方面采用自定義監控工具實現對靜態數據變更的監控及響應,當基礎數據如基站數據或者行政區劃數據發生變更時,及時更新數據庫中的狀態.
對外服務層采用B/S架構,提供數據結構調用,并采用HTML5+JaSvaScript實現可視化效果,后臺采用Tomcat作為Web應用服務發布層,并利用GeoServer發布應用.
用戶位置更新數據存在海量、實時等大數據的優點,但是由于人為因素或者其他客觀因素的存在,原始數據需要經過一定的數據清洗優化措施才能供分析使用.
首先,存在基站異常數據,用戶連接基站信息缺失以及連接基站小區不存在等情況.
其次,存在非真實用戶數據,針對數據的統計分析工作發現,存在用戶位置更新頻率異常高,超出人類動力學[12]活動范圍,針對此類用戶,通過設定閾值方式,剔除不合理用戶數據.
最后,存在切換點異常的用戶,這類用戶通過建立用戶的個體軌跡方式,剔除異常值.
針對以上異常數據內容,提出一種基于時間和空間兩個維度的數據預處理方案以減少這樣的低質量數據,消除異常數據所帶來的影響.
數據預處理整體算法描述如算法1.

法1.位置更新數據預處理入: 原始記錄,時間閾值,距離閾值出: 用戶移動軌跡將從消息源讀到的數據格式化為OPP對象,刪除不包含OPP基本息的記錄.將OPP記錄按照用戶ID為主鍵進行合并,再按照時間為主鍵進行次排序,形成用戶的基站小區軌跡序列MT.從用戶移動軌跡MT的第二個點開始遍歷,計算當前點和前一個的間差,如果時間差小于時間閾值參數,計算兩點之間的歐式距離,果歐式距離大于距離閾值,移除當前點,開始下一個點的計算.結束用戶軌跡的遍歷之后,返回每個用戶的有效軌跡序列.
經過預處理之后的用戶移動軌跡反應的是用戶在單位時間內空間位置移動序列,但是這樣的移動序列并沒有和地理空間相結合起來.考慮時間和空間兩個因素,采用密度聚類 DBSCAN[13]方式,結合地理語義信息,生成用戶在單位時間內的駐留點模型,其中聚類需要滿足以下時間參數T和距離參數D:

Dis(OPPi.P-OPPi–1.P)表示相鄰OPP點在道路網中采用最短路徑搜索算法pgRouting[14]搜索出來的道路長度之和,將滿足條件的點進行聚類,形成新的聚類位置中心為聚類范圍點的中心位置、聚類時間中心為聚類點的時間和.不滿足聚類條件的點生成單獨的駐留點.整體算法描述如算法2.

算法2.用戶駐留點聚類輸入: 用戶移動軌跡,時間閾值,距離閾值輸出: 用戶單位時間內的駐留小區1) 讀取用戶移動軌跡并將其轉換為聚類算法的標準時空格式List.2) 從List的第一個點開始,形成第一個聚類中心,并加入用戶駐留點序列,聚類中心時間點為第一個點的值,遍歷第二個點,如果滿足聚類條件,更新新的聚類位置中心為兩個點相對位置中心,聚類時間點為兩個點相對分鐘數之和.如果第二個點不滿足聚類條件,則將第二個點表示成另一個聚類中心,開始第三個點的遍歷,直到List循環結束.3) 將用戶的駐留點序列按照時間長短排序,選擇時間最長的為用戶當前時間范圍內的駐留點,更新用戶駐留點為覆蓋用戶當前駐留位置的基站小區編號.4) 返回用戶的當前時間單位內的駐留小區編號.
用戶位置空間模型將用戶個體映射到定義區域網格中,實現不同標準的人口數據在地理尺度上的收縮.當前的研究方法主要有: Meng等[15]提出的線性面積權重法,是一種使用較為廣泛的社會經濟數據空間化處理方法,在假設同種類型的人均面積權重的前提下,根據目標區內各個源區所占面積的百分比確定目標區的屬性值.

其中Pj表示網格j中的人口數,Pi表示第i類用地內總人口數,表示網格j的中i的面積權重,表示用地的總面積權重.但是這種方法要綜合考慮地理空間各種屬性數據,獲取數據難度較大.Deville等[16]采用了非線性方程表征手機活躍度和人口密度之間的關系.其中,ρc表示小區人口密度,σc表示小區手機用戶密度.并且,通過實驗表明非線性方程有很好的擬合效果.
綜合考慮上述兩種模型,考慮某運營商在通信市場上的無差別市場占有率,提出本文人口分布感知方法,采用移動端區域面積模型反應實際人口指標.公式如下:

Ni代表當前基站實際用戶數量,Nic代表第i個基站的手機活躍用戶數.對公式(3)進行變換,得到然后對全北京市基站人口數據做累加運算,得全北京的城區的用戶數據:

其中Y代表全北京移動用戶數.由于∑Ni已知,為求解參數α、β,將模型可以轉化為求解函數f(α,β)最小化問題.

考慮f(α,β)>=0,改進公式:

即求f'(α,β)的最小化問題.
采用梯度下降算法求解最優值,對五天以小時為單位數據集分別求解α、β最優值,結果如圖3所示,圖2中較高的折線表示α從早上7點到晚上21點的變化曲線.較低的折線表示β隨時間變化曲線.

圖3 α、β 隨時間變化曲線
從圖中可以看出,α、β參數隨時間基本保持穩定,對α、β分別求5天不同時刻的幾何平均值,得α、β值如表1所示.

表1 α、β 隨時間變化值
以 12 點為例,取α=3.005,β=0.977 將結果帶入公式,求得基站i對應的真實用戶數Ni=3.055(Nic)0.977(Ai)0.003.
以小時作為數據處理時間單位,用戶在單位時間內的移動序列形成了用戶的移動軌跡.不同用戶的移動軌跡在時空維度上都呈現出異構性,同一用戶不同時間段的移動軌跡、活動頻率也不相同.為分析用戶在單位時間內的活動軌跡,由于在時間維度上不同時間段內用戶發生位置更新的頻率不一致,采用Kafka作為消息緩沖中間件; 面對海量的數據集,為提高算法的橫向可擴展性以及提高時間效率,采用Spark Streaming作為分布式處理平臺,并以HBase作為海量數據存儲平臺,最后的分析結果存入傳統關系型數據庫實現數據可視化.
從Kafka中讀取數據的周期為1小時,然后在map階段按照讀取到的用戶ID為主鍵進行元組映射; 以用戶ID為key進行Reduce,將同一個用戶的移動軌跡序列在同一個計算節點上進行分析,并行處理分析用戶數據,在同一用戶的數據傳輸到同一個計算節點之后,首先進行數據預處理,再分析用戶的駐留點模型,最后分析用戶的停留基站小區,用于空間模型分析.
算法描述如算法3.

法3.實時處理算法輸入: 原始位置更新數據輸出: 基站位置小區用戶數

1) 將從通信網絡中采集原始位置更新數據格式化存儲到Kafka中.2) 按照讀取周期,從Kafka中讀取原始數據,按照用戶ID為主鍵進行分區.3) 調用數據預處理算法,生成用戶的有效活動軌跡.4) 調用駐留點算法將用戶的活動軌跡數據進行聚類分析,生成用戶單位時間內的有效駐留地.5) 按照位置空間模型將用戶駐留地結果進行轉換,按照駐留小區為主鍵進行統計.再按照時間伸縮比例進行人口數據伸縮.
本文中使用的實驗數據來自某運營商提供的北京2016年8月1日到5日連續5天從凌晨5點到晚上12點的包含了用戶通話位置切換和正常位置更新信息兩類日志數據.如圖4所示,當用戶發生位置區切換時,與移動端進行連接的通信基站和通信建立連接時刻將會被記錄下來.記錄信息如表2所示,每條數據包含了用戶身份標示、記錄時間、連接基站等信息.

圖4 蜂窩小區

表2 位置更新記錄屬性
同期,運營商提供了切換記錄對應的基站位置小區數據,如表3所示,其中包含了基站的位置區、位置小區、經緯度坐標等基本信息.如圖5所示,一個基站有一般有1~3個扇區和多個位置小區.對基站按照經緯度進行地理位置的合并,形成有效基站數據.

表3 基站位置小區屬性
驗證原始數據集來自由北京統計局發布的《北京統計年鑒2016》中第六次人口普查數據中的本地戶籍常駐人口和常駐外來人口數據以及北京市旅游發展委員會公布的北京旅游統計數據.

圖5 基站信息
本文利用第2節提到的分布式算法對數據進行了分析處理,結果如圖6所示,原始統計數據表示將每天的位置更新數據進行統計之后得到了人口數量,分析結果數據表示將最初的人口數據按照計算法進行處理分析之后得到的每天的人口總數,驗證數據表示將北京的原始驗證數據乘以某運營商的市場占比后得到的人口數據.從實驗結果中得出,人口感知的誤差率保持在30%~10%之間,平均誤差率為21.5%.
數據可視化使用OpenStreets Map作為后臺GIS 地理信息系統基礎服務平臺.OpenStreets Map 是一款由網絡大眾共同打造的免費開源、可編輯的地圖服務,它利用公眾集體的力量和無償的貢獻來改善地圖相關的地理數據.采用GeoServer作為Web應用服務器,GeoServer是采用J2EE規范編寫的用來發布地圖數據的服務器,支持多種數據源,用戶能夠簡單便捷的發布地圖數據,并可以對數據進行刪除、更新,添加等操作.最后采用Html+JavaScript組合進行前端可視化,其中采用 OpenLayers作為地圖加載引擎,OpenLayers是專門為WebGIS開發提供的開源JavaScript類庫.

圖6 實驗結果對比
采用B/S架構進行數據可視化展示,前后臺交互采用SpringMVC技術,前臺通過參數向后臺發送數據請求,后臺進行相應的查詢分析之后將數據返回給前臺,然后OpenLayer進行數據渲染.

圖7 可視化展示
本文從城市感知出發,利用白天連續時段的位置更新信令數據,分別從時間維度和地理空間維度量化分析了人口數據.同時,為減小個體數據低質量的影響,對個體位置信息進行了分析挖掘,反映真實用戶信息,以降低高頻用戶造成的數據偏差.
實驗結果表明,在以小時數據量為單位的情況下,該平臺在面對海量數據,依舊能夠保證性能與分析結果的準確性.本文提出的大數據城市人口感知分析方法,在動態人口感知中,取得了一定的成果.但是,實驗數據缺少了夜晚信息數據,沒有反映全天24 h的城市人口分布,處理單位維持在小時粒度級別,未來可以考慮獲取全天數據和進一步提高數據的分辨率.
參考文獻
1Wang L,Yang YZ,Feng ZM,et al.Prediction of China’s population in 2020 and 2030 on county scale.Geographical Research,2014,33(2): 310–322.
2Pan Q,Jin XB,Zhou YK.Population change and spatiotemporal distribution of China in recent 300 years.Geographical Research,2013,32(7): 1291–1302.
3Checchi F,Stewart BT,Palmer JJ,et al.Validity and feasibility of a satellite imagery-based method for rapid estimation of displaced populations.International Journal of Health Geographics,2013,(12): 4.
4卓莉,黃信銳,陶海燕,等.基于多智能體模型與建筑物信息的高空間分辨率人口分布模擬.地理研究,2014,33(3):520–531.[doi: 10.11821/dlyj201403011]
5Wirth L.Urbanism as a way of life.American Journal of Sociology,1938,44(1): 1–24.[doi: 10.1086/217913]
6Tobler W,Deichmann U,Gottsegen J,et al.World population in a grid of spherical quadrilaterals.International Journal of Population Geography,1997,3(3): 203–225.[doi:10.1002/(ISSN)1099-1220]
7Linard C,Gilbert M,Snow RW,et al.Population distribution,settlement patterns and accessibility across Africa in 2010.PLoS One,2012,7(2): e31743.[doi: 10.1371/journal.pone.0031743]
8Gaughan AE,Stevens FR,Linard C,et al.High resolution population distribution maps for Southeast Asia in 2010 and 2015.PLoS One,2013,8(2): e55882.[doi: 10.1371/journal.pone.0055882]
9龍瀛,張宇,崔承印.利用公交刷卡數據分析北京職住關系和 通 勤 出 行.地 理 學 報,2012,67(10): 1339–1352.[doi:10.11821/xb201210005]
10Hong L,Zheng Y,Yung D,et al.Detecting urban black holes based on human mobility data.Proceedings of the 23rd ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems.Seattle,WA,USA.2015.35.
11Fu TL,Yin XT,Zhang Y.Voronoi algorithm model and the realization of its program.Computer Simulation,2006,23(10): 89–91,128.
12李楠楠,周濤,張寧.人類動力學基本概念與實證分析.復雜系統與復雜性科學,2008,5(2): 15–24.
13Ester M,Kriegel HP,Sander J,et al.A density-based algorithm for discovering clusters a density-based algorithm for discovering clusters in large spatial databases with noise.Proceedings of the 2nd International Conference on Knowledge Discovery and Data Mining.Portland,OR,USA.1996.226–231.
14Zhang LJ,He XH.Route search base on pgRouting.In: Wu YW,ed.Software Engineering and Knowledge Engineering:Theory and Practice.Berlin Heidelberg: Springer,2012.1003–1007.
15Meng B,Wang JF.A review on the methodology of scaling with geo-data.Acta Geographica Sinica,2005,60(2):277–288.
16Deville P,Linard C,Martin S,et al.Dynamic population mapping using mobile phone data.Proceedings of the National Academy of Sciences of the United States of America,2014,111(45): 15888 –15893.[doi: 10.1073/pnas.1408439111]