劉 臣,陳靜嫻,郝宇辰,李 秋,甄俊濤
上海理工大學 管理學院,上海200093
由于地鐵具有安全、準時和環(huán)保等特點,已逐漸成為人們出行的首選交通方式。以上海地鐵為例,2018年日均客運量為1 015.28萬人次,總客運量達37.05萬億人次。大客流量已成為各地鐵站的運營常態(tài),精確的客流量預測不僅可以為出行者提供準確的路況信息,也有助于相關部門提前部署安保措施,因此預測地鐵客流量具有重要的實際應用價值。
根據(jù)之前學者的研究,交通流預測大致可以分為模型驅動和數(shù)據(jù)驅動兩大類。模型驅動是基于數(shù)學工具和物理知識,通過計算模擬來形式化交通問題,如排隊論[1]、用戶行為仿真[2]等。然而,上述模型往往需要大量的假設來簡化問題,導致模型無法精確預測現(xiàn)實環(huán)境中復雜的交通流變化情況。數(shù)據(jù)驅動方法則是從統(tǒng)計學角度來分析數(shù)據(jù)的變化規(guī)律,不考慮其物理性質,因此具有良好的泛化性。早期的傳統(tǒng)統(tǒng)計學方法如歷史平均模型(History Average,HA)和ARIMA(Autoregressive Integrated Moving Average model)[3]等,雖然計算簡單快速,但依賴時間序列平穩(wěn)分布假設,無法表達具有高度非線性特點的交通流數(shù)據(jù)。
而機器學習方法如支持向量機[4](Support Vector Regression,SVR)與人工神經(jīng)網(wǎng)絡可以自主地從歷史數(shù)據(jù)中學習到這些非線性特征,從而能較好地反映交通數(shù)據(jù)。近年來,隨著數(shù)據(jù)爆炸式增長以及計算機性能的提高,深度學習成功地應用于自然語言處理、計算機視覺、目標檢測等領域,引起了學者的注意,為交通流預測提供了新思路。Ma等人[5]在2015年首次將長短期記憶網(wǎng)絡(Long Short-Term Memory,LSTM)應用于交通領域,Liu等人[6]采用自編碼器這種特殊結構來提取數(shù)據(jù)的非線性特征,從而實現(xiàn)無監(jiān)督學習。
然而,交通數(shù)據(jù)是典型的時空數(shù)據(jù),不僅具有時間維度屬性,同時對道路空間結構有著較強的依賴性[7-8]。為了更好地刻畫數(shù)據(jù)空間特征,一些學者嘗試采用卷積網(wǎng)絡(Convolutional Neural Networks,CNN)來捕獲空間特征[9-10]。然而CNN各層之間的連接方式,使得其只適用于鄰接點數(shù)量相同且有序的數(shù)據(jù)。Bruna等人[11]提出的圖卷積(Graph Convolutional Network,GCN)能夠較好地提取非歐數(shù)據(jù)的特征,為復雜拓撲空間特征提取提供了很好的解決方案。為降低計算復雜度,Defferrad等人[12]使用切比雪夫多項式來近似過濾器參數(shù)提出了ChebNet模型,Kipf等人[13]使用一階近似來進一步簡化該模型。Seo等人[14]將GCN與隨機游走相結合,把交通流建模為擴散過程,提出的GCRNN模型能較為準確地預測車速。
之前學者研究大多集中于短時客流量預測(一般指30 min跨度內的預測),然而現(xiàn)實生活中,長期預測更具有實際指導意義和參考價值,如為人們出行規(guī)劃預留充足時間等。為此,本文提出基于編碼器解碼器(Encoder-Decoder)架構設計[15-16]的地鐵客流量進出站預測模型,其中解碼器和編碼器都由時空預測模塊組成。同時采用進出站雙時間序列作為輸入,使得模型在長期預測上獲得較高的精確度。
地鐵網(wǎng)絡是一個開放的復雜大系統(tǒng),隨著時間的推進,網(wǎng)絡上的客流量在稀少、擁擠與飽和等狀態(tài)間反復轉化,形成了客流量時間序列。以南京西路站2016年7月1日、8月2日和9月1日的進站數(shù)據(jù)為例,客流量隨時間的變化如圖1所示。
從圖1中可以看出,在較長時間范圍內呈現(xiàn)出一定的周期性與相似性,如反復出現(xiàn)的早晚高峰期等。而在短時間內,客流量除了表現(xiàn)出一定的相關性外,還具有時變性,如列車故障等突發(fā)性事件,從而導致客流量數(shù)據(jù)具有高度的非線性特征。
圖1 南京西路站三天客流量數(shù)據(jù)Fig.1 Passenger flow of Nanjing West Road Station for three day
在地鐵靜態(tài)拓撲路網(wǎng)基礎上,各站點客流量隨著時間的推進不斷變化,形成了客流量時空數(shù)據(jù)[17],因此除時間外還需挖掘出客流量數(shù)據(jù)空間維度的隱藏屬性[18]。然而,不同于鄰接點相同且有序的網(wǎng)格數(shù)據(jù),如圖片和視頻等,地鐵站具有復雜的拓撲結構。一方面,地鐵各站點的鄰接點數(shù)不盡相同,如圖2所示,世紀大道站有8個鄰接站點,而楊高中路站只有1個。另一方面,各站點受城市地理環(huán)境、區(qū)域功能劃分和道路網(wǎng)布局等影響,地鐵站點在空間上呈現(xiàn)出不均勻與無序的排列特點。
圖2 局部地鐵站點的拓撲結構示意圖Fig.2 Topological structure of local subway stations
站點的出站客流量除了在自身時間線上呈現(xiàn)一定規(guī)律,同時與其他站點的進站客流量緊密相關。因此,本文采用進出站雙時間序列作為輸入,協(xié)同預測各站點的進出站人數(shù)。為驗證采用雙序列作為輸入的有效性,選用相關系數(shù)ρ[19]來衡量進出站序列間的相關性:
其中,cov(x,y)為x,y兩條時間序列數(shù)據(jù)的協(xié)方差,D(x)、D(y)分別為x,y序列的方差;|ρ|≤1,|ρ|值越大,表明兩條序列越相關。
選用莘莊站與陸家嘴站的早高峰時段客流量進行分析,由于從莘莊站出發(fā)至陸家嘴站需要一定的時間,因此將時間滯后值設為40 min。xin、xout分別表示莘莊站7:02—9:50的進站與出站客流量時間序列,yout表示陸家嘴7:42—10:30的出站客流量。通過公式(1)計算得出xin與yout的相關性系數(shù)ρ1=0.92,而xout與yout的相關性系數(shù)ρ2=0.64。相比于xout,xin與yout具有更為相似的變化趨勢。由上述分析可知,采用進出站雙序列協(xié)同預測能更好地捕捉序列潛在的非線性特征。
基于上述對地鐵客流量數(shù)據(jù)的分析,本文將地鐵網(wǎng)絡表示為圖G=(V,E),其中V=(v1,v2,…,vn)為頂點集,對應網(wǎng)絡中n個地鐵站點。E∈Rn×n為邊的集合。由于地鐵各相鄰兩站點間的距離較為相似,且相鄰兩站點間的距離并不會對乘客出行路線產(chǎn)生影響,故本文采用無權無向圖,鄰接矩陣A∈Rn×n只表示各站點間的連接關系。如圖3,以東昌路站為例,其與世紀大道站直接相連,則鄰接矩陣對應位置的值為1;與商城路不相連,則對應值為0。
圖3 地鐵站點鄰接矩陣Fig.3 Adjacency matrix of subway station
將地鐵客流量表示為圖上的圖信號X∈Rn×2,n表示地鐵站點個數(shù),節(jié)點特征數(shù)為2,分別表示進站與出站人數(shù)。令Xt∈Rn×2表示t時刻的圖信號,客流量預測問題則可以轉化為學習一個函數(shù)f(?),給定m個歷史圖信號,預測接下來h個圖信號:
總的來說,本文模型基于編碼器解碼器架構設計,編碼器解碼器均由時空預測模塊組成。在該模塊中,采用GCN來學習地鐵站空間結構,再將帶有空間特征的數(shù)據(jù)放入門控循環(huán)單元(Gated Recurrent Unit,GRU)中進行時間上的建模。
編碼器解碼器架構允許輸出與輸入為不定長序列,因此常被用于序列到序列的學習。為了實現(xiàn)不同時間步長的預測,本文模型基于編碼器解碼器架構設計。在編碼過程中,編碼器將輸入的不定長序列X=(x1,x2,…,xt)變換為一個定長的上下文向量C,該向量包含輸入序列的全部信息:
其中,ht∈Rn、ht-1∈Rn分別為t、t-1時刻的隱藏狀態(tài)值;f和q為自定義非線性函數(shù),通過函數(shù)q將各個時間步的隱藏狀態(tài)值變換為上下文向量。
在解碼過程中,采用C初始化解碼器,再結合之前預測的所有值,解碼器被訓練預測t′時刻的值:
其中,St′、St′-1分別為t′、t′-1時刻的隱藏狀態(tài)值,yt′、yt′-1為t′、t′-1時刻的預測值;f和g都為非線性函數(shù),前者表示解碼器隱藏層狀態(tài)變換函數(shù),后者為輸出yt′的概率函數(shù)。
為避免傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡容易產(chǎn)生梯度爆炸或梯度消失等問題,本文編碼器和解碼器均選用GRU。即令上述式(3)和式(5)中的f=GRU。GRU單元中共含有兩個門:更新門(update gate)和復位門(reset gate),各個門的計算公式如下:
其中,⊙表示哈達瑪積,σ(?)為sigmoid激活函數(shù),tanh(?)為雙曲正切函數(shù);u、r分別為更新門和復位門向量,C為候選值向量,bu、br、bc分別為更新門、重置門以及候選值的偏置向量;Θ為過濾器參數(shù),Xt、Ht分別為t時刻的輸入和輸出向量。
由1.2節(jié)分析可知,地鐵網(wǎng)絡具有復雜的拓撲結構,傳統(tǒng)的CNN無法很好地處理此類數(shù)據(jù)。為此,本文選用Defferrad等人提出的ChebNet提取地鐵數(shù)據(jù)的空間特征,簡化后的圖卷積可以被寫為:
其中,p為節(jié)點特征數(shù),取值為1或2;?G為雙通道圖卷積操作;Θ∈R2×F為過濾器參數(shù)矩陣,F(xiàn)為過濾器個數(shù)。
目前的時空數(shù)據(jù)挖掘方法大多只是簡單拼接時間和空間維度特征,會導致特征向量維度過高,并包含大量冗余信息,一定程度上約束了特征的表達能力。為解決上述問題,本文將GRU與GCN算法進行有機融合,構建了時空預測模塊。該模塊通過將式(7)~(10)的矩陣乘法置換為式(12)中的雙通道圖卷積?G,使得輸入的數(shù)據(jù)先經(jīng)過GCN捕捉空間結構,再將帶有空間特征的數(shù)據(jù)放入GRU中進行時間上的建模,從而可以同時提取地鐵數(shù)據(jù)的時空特征。該模塊不僅可以減少模型訓練參數(shù),提升模型訓練速度,還可以使時空特征結合更緊密,減少融合后的冗余信息,模塊結構如圖4所示。
圖4 時空預測模塊圖Fig.4 Spatiotemporal prediction module diagram
在時空特預測模塊中,輸入的t時刻圖信號Xt與t-1時刻的隱藏狀態(tài)值Ht-1先經(jīng)過圖卷積?G捕捉數(shù)據(jù)的空間特征。再將帶有空間特征的數(shù)據(jù)輸入GRU,首先通過更新門和重置門,來決定輸入的信息多少需要被遺忘,以及加入哪些有用信息:
其中,⊙表示哈達瑪積;ΘC′、bC′分別為隱藏狀態(tài)層的過濾器參數(shù)和偏置。
為了減弱傳統(tǒng)Encoder-Decoder的編碼器在訓練和預測時輸入存在差異的問題,本文在解碼器加入Bengio等人[20]提出的計劃采樣(scheduled sampling)。訓練時,不再完全將真實觀測值做為下一次的輸入,而是在第i次迭代中,以概率εi使用真實觀測值,以1-εi的概率使用模型自身的預測值。
模型的整體框架如圖5所示,模型基于解碼器編碼器架構設計,包含編碼與解碼過程。在編碼器中,輸入歷史t個時刻的進站和出站兩條結構化時間序列,經(jīng)過時空預測模塊同時捕獲數(shù)據(jù)的時間和空間特征。最終輸出固定長度的上下文向量C。在解碼過程中,首先用向量C初始化解碼器,再結合計劃采樣,解碼器被訓練預測未來各站點的客流量。
圖5 地鐵進出站客流量時空預測模型Fig.5 Spatiotemporal passenger flow prediction model of subway station
本文采用2016年SODA大賽所提供的一卡通刷卡數(shù)據(jù)作為實驗數(shù)據(jù),該數(shù)據(jù)集包含2016年7月1日、8月2日以及9月1日上海市一卡通的刷卡記錄,共計約3 000萬條記錄。原始數(shù)據(jù)集共包括7個數(shù)據(jù)段:用戶ID、日期、時間、站點名稱等。
首先篩選出乘車類型為地鐵的數(shù)據(jù),由于地鐵剛開始運營和結束時人流較為稀疏,故本文抽取7:30至21:58的刷卡數(shù)據(jù)。再根據(jù)刷卡價格來區(qū)分進出站,若票價為0則為進站,反之則為出站。最后,綜合考慮實驗的數(shù)據(jù)量與列車平均發(fā)車時間間隔,本文按照4 min的時間間隔對各站點的進出站人數(shù)進行聚合,三天共計654個時間段。以7月1日為例,處理后的數(shù)據(jù)樣本如表1所示,每個站點均包含進站和出站兩條時間序列數(shù)據(jù)。
表1 地鐵站點客流量統(tǒng)計表Table 1 Passenger flow statistics of subway station
為消除單位時間內客流量波動較大造成的影響,分別對進出站客流量序列進行標準化處理,使數(shù)據(jù)按比例縮小至[-1,1]。編碼器步長設為15,為此將原進出站時間序列滑動切分為15單位長度的短序列,經(jīng)過處理三天共計612個時間段。再為該序列添加時間,最后得到四維數(shù)組。各維度分別表示樣本數(shù)量、步長、站點數(shù)、特征數(shù),其中特征數(shù)量為3,依次表示進站人數(shù)、出站人數(shù)和時間。最后將數(shù)據(jù)按7∶1∶2的比例劃分訓練集、評估集和測試集。整理后得到的最終數(shù)據(jù)集如表2所示。
表2 數(shù)據(jù)集Table 2 Dataset
本文采用平均絕對誤差MAE(Mean Absolute Error)與標準誤差RMSE(Root Mean Square Error)來量化衡量模型的預測精度,計算公式如下所示:
其中,N為樣本數(shù)量,yi為真實值,y?i為預測值。MAE和RMSE越小,表明預測值的總體與真實值的偏差越小,即模型的預測性能越好。
為了評價提出的模型在地鐵客流量預測方面的有效性,本文構建了4個模型進行對比:
(1)HA(History Average),即歷史均值模型,僅將歷史周期的加權均值作為輸入預測未來客流量。
(2)VAR(Vector Autoregression),即向量自回歸模型,基于數(shù)據(jù)的統(tǒng)計性質建立模型,利用客流量時間序列自身的滯后項來擬合預測未來客流量。
(3)SVR(Support Vector Regression),是基于機器學習的方法,核函數(shù)選擇線性基函數(shù),懲罰因子C=0.001。
(4)GCN-GRU模型,即本文提出的基于深度學習的客流量進出站預測模型。模型采用Tensorflow來搭建,學習率衰減,為了增強模型的泛化性能,batchsize設為16。隱藏單元數(shù)是模型的重要參數(shù),直接影響預測的精度,因此通過實驗來選取最優(yōu)值。
以預測1 h客流量為例,進出站的MAE指標對比如圖6所示,橫坐標表示隱藏層單元個數(shù),左、右軸分別表示進出站指標。從圖中可以看出,當隱藏層單元數(shù)為64時效果最優(yōu),故本文隱藏單元數(shù)為64。模型的主要參數(shù)設置如表3所示。
表3 參數(shù)設置Table 3 Parameter setting
圖6 不同隱藏單元數(shù)對模型性能對比Fig.6 Comparison of performance under different hidden units
3.4.1 各模型優(yōu)劣對比
根據(jù)評價指標公式(17)、(18),計算得到4種模型預測未來4 min、20 min、40 min與60 min客流量的MAE、RMSE指標值,實驗結果如表4所示。
表4 各模型預測性能對比Table 4 Performance comparison of different models
通過預測結果的對比分析可知,本文提出的客流量預測模型在短期和長期預測上均取得最好的精確度。GCN-GRU模型與SVR模型的預測精度均優(yōu)于HA與VAR模型,這意味著機器學習相較于傳統(tǒng)的統(tǒng)計學方法能更好表達非線性交通流數(shù)據(jù),體現(xiàn)對非線性時間依賴建模的重要性。GCN-GRU預測精度優(yōu)于SVR,表明同時考慮地鐵站點空間結構的重要性。此外,各模型的進站預測均優(yōu)于出站,可能是由于出站客流量相較于進站分布更為分散,并且存在較多客流量為0或為較小值的時間段,一個很小的預測差異可能會導致相對較大的誤差。
3.4.2 長短期預測對比
隨著預測步長的增加,三個模型的平均絕對誤差和標準誤差都在顯著提高。各模型進出站預測結果的MAE值如圖7(a)、(b)所示,當預測步長為15時,即預測未來1 h的客流量,GCN-GRU進出站的MAE分別達到了15.66和25.30,VAR進出站的MAE甚至達到了31.5和49.13。
圖7 MAE指標對比Fig.7 Comparison of MAE indexes
值得注意的是,相較于VAR與SVR方法,GCNGRU模型的誤差增速明顯放緩。一方面由于GRU可以從輸入的時間序列數(shù)據(jù)中遞歸學習長時動態(tài)特征,有選擇地選取歷史數(shù)據(jù)進行預測。另一方面,數(shù)據(jù)的空間維度屬性的提取,使得模型能夠將鄰接站點的進出站客流量變化信息考慮進去,從而提高長期預測的精確度。
3.4.3 序列標準化與反標準化對比
模型在預測結束后,首先對輸出結果進行反標準化處理,然后計算損失函數(shù)。為衡量此操作的有效性,進行了實驗對比,從圖8中可以看出,使用反標準化的模型4 min進出站預測精度分別提高了0.5%和1.6%,60 min進出站預測精度分別提高了4.3%和2.6%。這一結果表明將輸出結果反標準化后計算損失函數(shù)能有效地提高模型預測的準確度。
圖8 標準化與反標準化預測對比Fig.8 Comparison of standardized and anti-standardized prediction
3.4.4 典型站點分析
為更好地展示模型預測效果,本文對南京西路站預測結果進行可視化展示。圖9、10分別展示了進出站4 min、60 min預測值與實際值的對比。其中,橫坐標表示時間,縱坐標表示進出站客流量人次。從圖中可以觀察出以下幾種情況:
圖9 4 min客流量預測可視化Fig.9 Visualization results for prediction of 4 min
(1)本文提出的模型能較好地預測客流量的波動,表明模型能有效捕獲時間序列的非線性特征。
(2)能較為準確地預測高峰的起始和終止,得益于模型的進出站協(xié)同預測,同時采用GCN捕獲空間依賴,將鄰接站點的客流量變化信息考慮進去。
(3)進站的短期和長期預測均優(yōu)于出站預測,這主要是由于出站人數(shù)分布相較進站更為分散,數(shù)據(jù)的波動也較頻繁,給模型的預測帶來一定的困難。
(4)長期的早高峰較難預測,如圖10(a)、(b)所示,7:30—8:02的預測結果存在較大誤差,主要由于歷史數(shù)據(jù)較少且人數(shù)短時間內波動較大導致。
圖10 60 min客流量預測可視化Fig.10 Visualization results for prediction of 60 min
本文針對地鐵站客流量預測問題,提出了基于時空網(wǎng)絡的進出站預測模型。該模型基于編碼器解碼器架構設計,編碼器解碼器均由時空預測模塊組成。在時空模塊中,通過將GRU中的矩陣乘法置換為GCN中的雙通道圖卷積,實現(xiàn)了時空特征的融合提取。在上海地鐵一卡通數(shù)據(jù)集上進行了對比實驗,結果表明本文提出的模型在短期和長期預測上均取得較好的預測性能。
在下一步工作中,可以將車站周邊用地性質以及天氣、溫度等外部因素考慮進去,這些都會對車站客流量產(chǎn)生影響。此外,由于條件限制,本文模型只采用三天客流量數(shù)據(jù)進行訓練。在未來工作中,通過收集更多的客流量數(shù)據(jù)作為輸入,進一步提高模型長期預測的精度。