張鵬飛,翁小雄
(華南理工大學 土木與交通學院,廣州 廣東 510641)
地鐵客流預測是軌道交通領域的研究熱點,現有預測模型與方法[1-2]已可以提供相當準確的預測結果,為地鐵系統的規劃、運營等提供了良好的支撐。然而,隨著人工智能、云計算等[3]新技術的飛速發展,地鐵領域的應用場景正在向著個性化、多樣化方向發展,如交通信息個性化推送[4]、差異化票價策略[5-6]等。這些新興應用場景不僅需要宏觀粒度的客流預測,更需要對微觀粒度的乘客個體出行行為進行預測與建模。
個體出行行為預測是指基于個體的歷史出行行為記錄,預測其下一次的出行屬性(如出發地、目的地等)。相較于客流預測,個體出行行為預測的研究起步較晚,主要原因是個體出行行為預測需要對海量數據(如GPS軌跡、地鐵刷卡記錄等)進行分析,對算法設計及算力都有較高要求。近年來,大數據計算使儲存和處理海量個體出行軌跡數據成為可能,針對個體出行行為的預測的研究也開始涌現。目前,個體出行行為預測方法主要基于統計學習算法。S.GAMBS等[7]提出了n元出行馬爾科夫(n-Mobility Markov Chain)模型,基于個體出行的前n次訪問地點預測下一個可能的訪問地點;A.MONREALE等[8]提出了基于決策樹的T模式樹(T-pattern tree)模型,從歷史GPS數據中學習個體的出行行為特征然后進行預測;Z.ZHAO等[9]提出一種n元語言模型,并將出行行為預測分為出行決策以及屬性決策兩個連續的子問題分別進行求解。然而,這些方法并不能很好適用于地鐵乘客的出行行為預測。
地鐵乘客的出行行為主要以地鐵進出站刷卡(AFC)數據的形式儲存。AFC數據包括多維時空信息,如進出站站點、進出站時間等。這些信息有著不同的表示形式,如空間信息(如進站站點)是離散的類別數據(categorical data),而時間信息(如進站時間)則是連續數據。現存方法通常直接將連續的時間信息離散化,再利用馬爾科夫等離散模型進行處理,這顯然不夠精確。個體出行行為還存在長距離依賴,如某些地鐵乘客可能會在每周末去往商場站點進行消遣,這種模式每周才出現一次,傳統預測方法無法把握這種間隔較長的出行模式。
針對上述問題,筆者提出了一種基于注意力機制LSTM(長短時循環神經網絡)的深度學習預測框架,利用地鐵系統的AFC數據記錄預測乘客的下一次出行行為。提出了不同的特征提取模塊處理與融合不同數據類型的時空信息,能更加精確把握乘客的出行信息,克服了傳統統計學習模型難以進行數據融合的缺陷;同時,利用注意力機制學習傳統統計學習方法無法把握的長距離依賴出行特征,提升預測精度。
為了表述準確,先對所研究預測問題進行數學定義。
出行元組:出行元組r=(a1,a2,…,ak)定義為地鐵乘客一次出行的屬性集合,其中ai為第i個出行屬性。如一次進站點為A站、時間為08:00、出站點為B站、時間為08:10的出行可表示為(A, 08:00, B, 08:10)。
出行序列:地鐵乘客u的出行序列S表示該乘客在AFC數據庫中最后n次出行的時序排列S={r1,r2,…,rn},ri表示乘客u在AFC數據庫中記錄的第i次出行,rn表示乘客u在AFC數據庫中記錄的最后一次出行。

預測模型的框架主要由特征提取與時序模塊兩部分組成,如圖1。特征提取用于將乘客的各出行屬性信息進行融合,從而將出行序列轉化為抽象的向量序列輸入至時序模塊;時序模塊基于注意力機制選擇與當前預測相關的歷史出行信息,生成上下文向量cn,與表示最后一次出行信息的向量hn拼接后輸入預測模塊,預測下一次出行的出行屬性。
由于出行屬性有離散(空間)和連續(時間)2種數據形式,對不同形式的出行屬性信息進行高質量的特征提取及信息融合,對提高預測精度至關重要。針對離散和連續出行屬性提出2種不同的特征提取模塊,對乘客出行進行建模。
2.1.1 離散出行屬性特征提取
離散形式的空間信息數據本質上屬于類別數據,如進站站點中每個站點可視作一個分類。對于類別數據,深度學習領域普遍采用詞嵌入(word2vec[10])技術進行特征提取,為后續模塊提供富含語義特征[11]的高質量輸入。筆者利用word2vec將離散出行屬性ai變換為對應的非稀疏向量vai。

圖1 預測模型框架示意Fig. 1 Schematic diagram of the prediction framework
2.1.2 連續出行屬性特征提取
空間信息的連續數據值僅代表不同的時間點,直接將其輸入模型無法很好的提取特征,這是由于空間中的連續值并不是預測所需要的信息,預測關注的是地鐵乘客在這些時間點上發生出行行為的關聯關系,而非數值大小關系。現有預測模型通常對連續時間屬性進行離散化,如將一天劃分為24個小時區間,將每個區間當作一個類別,然后利用word2vec進行特征提取,這樣避免了屬性的值對預測造成的影響。
但是,對于地鐵乘客的出行行為預測,這種離散化表示并不準確。例如,進站時間08:00與08:59均屬于08:00—08:59這個區間,因此若利用小時區間這種離散化形式對時間進行表示,上述兩個時間點的表示將完全相同,這掩蓋了其實際相差將近一個小時的事實,顯然是不合理的。

(1)

重疊編碼的優勢在于,當兩個時間點接近時,編碼絕大多數位置都相同,僅有少數元素不同,可以表征其特征具有很高的相似性。例如圖2中,由于07:07與07:14十分相近,他們的重疊編碼向量有兩處的元素不同(圖中只顯示了一處);當兩個時間點距離逐漸變大,其相同的元素個數逐漸減少,直至完全沒有重疊,此時兩個時間點表征不同的兩個類別,隨后再增加兩個時間點間的距離,則不會對其相似性產生影響。
將連續的時間屬性表示為重疊編碼的形式后,同樣利用word2vec將其變換為一個非稀疏向量vai進行特征提取。
2.1.3 出行屬性特征融合
利用上述兩種特征提取模塊,可以將每個出行屬性a1,a2,…,ak表示為其對應的非稀疏向量va1,va2,…,vak。深度學習模型具有強大的特征提取能力,可直接將各個非稀疏向量拼接起來組成表征該次出行的特征向量vi=va1⊕va2⊕…⊕vak,其中⊕表示拼接操作。這樣,乘客的出行序列S即變換為其對應的向量序列Sv。
2.2.1 LSTM神經網絡
時序預測模塊用于提取序列Sv中的時序關聯。長短時記憶神經網絡(LSTM)作為一種循環神經網絡的改進,對長時序序列有較強的處理能力[12],其結構如圖3。

圖3 LSMT結構示意Fig. 3 Schematic diagram of LSTM
LSTM網絡的更新規則如式(2)~式(7):
jt=σ(Wijvt+bij+Whjht-1+bhj)
(2)
ft=σ(Wifvt+bif+Whfht-1+bhf)
(3)
gt=tanh(Wigvt+big+Whght-1+bhg)
(4)
ot=σ(Wiovt+bio+Whoht-1+bho)
(5)
ct=ft*ct-1+jt*gt
(6)
ht=ot*tanh(ct)
(7)
式中:vt為t時刻輸入網絡的出行特征向量;ht為t時刻LSTM的隱藏層狀態向量;jt為記憶狀態向量;ht-1為t-1時刻的隱藏層狀態向量;it,ft,gt,ot分別為LSTM單元的輸入門、遺忘門、記憶門及輸出門的輸出向量;σ(·)為雙曲正切sigmoid激活函數;*為哈達瑪(Hadamard)積;Wij,Whj,Wif,Whf,Wig,Whg,Wio,Who均表示一層線性層;bij,bhj,bif,bhf,big,bhg,bio,bho為偏置項。
LSTM主要克服了傳統RNN訓練中“梯度消失”與“梯度爆炸”的問題。LSTM與傳統RNN最大的區別就在于其門控結構對長序列的信息提取更加有效。
2.2.2 注意力模塊
雖然LSTM具有提取長序列時序特征的能力,但序列長度過長時(如超過20),LSTM的性能會快速下降[13]。對于地鐵乘客出行行為預測,只有選取足夠長的序列長度,才能包含乘客更多的出行特征(如每周末固定休閑出行)。因此,僅利用LSTM無法很好處理地鐵乘客出行行為預測問題。
為了解決上述問題,將注意力機制與LSTM組合,共同把握長出行序列的時序特征。注意力機制用于計算乘客的每一次歷史出行{r1,r2,…,rn-1}與當前出行rn的相關性,從而構建當前時刻的上下文向量cn。注意力模塊的加入使歷史特征不會因為多步時序傳播而變弱,從而彌補了LSTM無法處理過長序列的缺陷。
上下文向量cn表征當前出行與歷史出行的依賴關系,計算方法如式(8)、式(9):
(8)
αk=softmax(hnWchk)
(9)
式中:hn,hk分別為當前時刻與k時刻(k 得到上下文向量cn后,將cn與hn拼接后輸入線性層,并用softmax激活函數將線性層的輸出轉化為概率輸出: on=softmax(Woutun) (10) 式中:Wout為輸出線性層,un=cn⊕hn。 L=crossentropy(on,target) (11) 式中:crossentropy(·)表示交叉熵函數;target為真實屬性值對應的獨熱編碼形式。 整體算法訓練流程如下: 算法:地鐵乘客出行預測訓練算法 輸入:乘客出行序列S={r1,r2,…,rn} 輸出:訓練完畢的模型M while epoch Sv=featureExtraction (S) fori∈(1,2,…n) do: hi=LSTM(vi) end for H←[h1,h2,…,hn-1] cn=Attention(H,hn) un=cn⊕hn on=softmax(Woutun) L=crossentropy(on,target) IfL end while outputM else: backpropagation(L) 以廣州地鐵2017年1月8日至2017年3月9日的AFC數據驗證筆者提出的預測框架。隨機選擇20 000名累計出行次數大于90次的乘客作為研究對象。對于每次出行,選擇進站時間tin,進站站點o,出站站點d以及星期幾D構建出行元組。對于每一名所選乘客的出行序列,用寬度為70的滑動時窗進行采樣,將所得序列樣本按照8∶2比例分為兩部分,前80%序列樣本歸入訓練集,后20%序列樣本歸于測試集。 為驗證所提出的特征提取模塊的有效性,利用歸一化輸入、獨熱編碼、重疊編碼,3種不同的方法對時間信息進行特征提取: 1)歸一化輸入。先將時間點tin變換為從當天00:00開始的時間戳,再歸一化至區間[0,1]。例如,06:00轉換為6÷24=0.25。將歸一化后的數值直接與空間信息的非稀疏向量拼接構建vi。 2)獨熱編碼。將時間點tin轉換為獨熱編碼(以1 h為間隔),然后用word2vec轉化為非稀疏向量與空間信息拼接。 3)重疊編碼。將時間點tin轉換為重疊編碼(l=5 min,w=1 h),然后用word2vec轉化為非稀疏向量與空間信息拼接。 訓練3個分別使用上述3種時間信息表示的模型,分別對下一次出行的進站站點o、進站時間tin及出站站點d進行預測,模型參數設置如表1。 表1 預測模型參數設置Table 1 Parameter settings of the prediction model vd,vo,vtin,vD分別表示經過word2vec轉化后的非稀疏向量。預測的性能指標選擇準確率: (12) 式中:Nright為測試集中對n+1次出行的屬性ai預測正確的序列個數;Ntotal為測試集的序列總數。 模型預測結果如表2。 表2 不同時間信息特征提取模塊準確率Table 2 Accuracy of different time information feature extraction modules % 實驗結果顯示: 1)直接歸一化輸入時間信息無法很好的提取時間特征,其預測性能弱于另外2種方法,尤其是對于進站時間的預測,其準確率遠低于另外2種方法。 2)在對進、出站點的預測中,利用獨熱編碼時間信息的模型取得了最好的預測效果;而在對進站時間的預測中,重疊編碼具有優勢。 這種情況的主要原因是進出站的預測對時間信息的依賴不高,算法只需把握空間信息就可以輸出正確的預測站點結果。因此,重疊編碼更強的時間信息提取能力優勢并不明顯,相反,由于重疊編碼引入了更高維的時間信息表示,更容易陷入過擬合(over-fitting)的麻煩,降低預測性能;而對于進站時間的預測,算法必須正確把握具體的時間特征才能輸出正確的結果。重疊編碼提取更高質量時間特征的能力可以顯示出較大的優勢,從而取得了更高的預測準確率。 為了驗證筆者提出預測框架的有效性,將其預測結果與現存的代表性個體出行預測模型進行比較(對t的預測采用重疊編碼方式,對o與d預測采用獨熱編碼方式)。選擇Mobility Markov chain(Markov)算法[12]、Mobility N-gram(N-gram)算法[13]作為比較對象,預測性能對比結果如表3。 由表3可知: 1)在進站站點、進站時間以及出站站點的預測中,對比N-gram算法,筆者提出深度學習模型分別獲得了17.9%、4.4%、11.3%的提升。這說明了深度學習框架在特征提取與建模方面相較于所對比方法具有明顯優勢。 2)較之站點預測,進站時間預測的提升較小,這主要是因為乘客出行的時間存在較高的隨機性,即使是同一出行行為(例如下班回家),其出行時間也可能存在較大幅度的變化,這些隨機因素很難通過建模去進行捕捉,因此深度學習模型在進行時間預測時也表現出有限的提升; 3)進、出站站點預測提升較大,這是因為同一出行行為的進出站站點不存在較大的隨機性,只要所構建的模型可以更好的捕捉乘客的出行特征,就可以作用于預測效果的提升,獲得的提升也更為顯著。 相較于目前應用較多的傳統統計學習方法,筆者提出的預測框架大幅度提高了預測精度。 筆者提出了一種針對地鐵乘客出行行為的預測框架。基于乘客出行行為時間信息及空間信息的特點,構建了不同的特征表示及提取模塊,可以更加精確的捕捉個體的出行信息;同時,注意力機制LSTM深度學習網絡可以精準的從歷史出行信息中選擇與當前預測最為相關的出行特征,加強了網絡對乘客出行行為多重依賴關系的建模,從而提高對個體出行行為預測的精度。相較于傳統統計學習算法,筆者提出的算法具有明顯優勢。分析發現,所提出模型在對進、出站站點的預測中取得了顯著提升,預測準確率分別從50.3%、61.5%提升至61.6%、71.4%。同時,不同的信息提取模塊對于不同預測場景的作用也呈現出異質性,對于進站及出站站點的預測中,獨熱編碼預測性能最優,分別達到了79.4%、61.6%,而重疊編碼對進站時間的預測則具有優秀的性能,準確率達到44.8%。2.3 模型訓練
3 實例分析
3.1 特征提取模塊性能對比


3.2 預測性能對比
4 結 論