張龍妹,陸 偉
(1.西安科技大學 通信與信息工程學院,陜西 西安 710054;2.西安財經大學 信息學院,陜西 西安 710100)
交通時間預測一直是基于位置的服務(location based services,LBS)和智能交通系統(intelligent transportation system,ITS)的重要研究內容之一。城市交通時間預測可以歸結為軌跡預測問題,當前研究人員對軌跡預測的研究方法總體可以分為2大類:一類是基于理論模型的方法,另一類是基于數據驅動的方法。
基于理論模型的方法通常需要建立一個虛擬的道路網絡模型,并利用動態交通分配的原理對模型進行仿真。例如,HANS等人基于變分理論以及充分變分圖精確計算干線入口出口的累計計數,并由此推導出動態條件下的軌跡時間分布[1];CASTILLO等人考慮交叉口之間的交通信號協調,建立了一個考慮交叉口隨機交通過程的鏈路出行時間分布分析模型[2]。隨著實際交通狀況越來越復雜,實際交通路網的建模越來越困難,使得該方法在實際交通時間預測中精度較低,對不同交通場景的適應性較差。
基于數據驅動方法通常使用歷史軌跡路線、軌跡速度、道路容量、出發時間等相關變量,通過軌跡序列匹配對當前軌跡進行預測。例如,HADACHI等人基于城市稀疏軌跡數據,使用粒子濾波法以及路段的時間概率分布預測軌跡的行程時間[3];WEDIN等人對歷史軌跡數據進行分析,建立具有歷史交通模式的數據庫并記錄下不同道路在不同時間的平均速度,后續通過從歷史數據中找到期望的交通模式,進而對軌跡進行預測[4];SINGH等人基于軌跡起始時間和目的地位置對歷史軌跡進行聚類,在此基礎上通過挖掘頻繁的子軌跡對交通時間進行建模并預測[5]。在宏觀上,歷史軌跡可能存在周期相似性,但微觀上,具體到不同日期、時段和道路的交通狀態,軌跡相似度將大大降低,該方法預測效果和效率也隨之下降。此外,歷史軌跡分布一般具有偏態分布的特征,這將進一步影響該方法對于交通稀疏路段和較長里程軌跡的預測。
隨著深度學習研究的興起及其在計算機視覺、語音和自然語言處理方面的廣泛應用,該方法在軌跡時間預測方面的應用也得到相關研究人員關注。以機器學習為基礎的預測方法分為參數模型和非參數模型2種思路。貝葉斯模型[6-7]和時空隱馬爾可夫模型[8-9]是參數模型的典型代表;非參數模型主要包括K近鄰算法模型[10]、支持向量機模型[11]和神經網絡模型[12]。深度學習是機器學習的一個重要研究方向,非常適合于非線性系統建模,并成為近幾年的一個研究熱點。卷積神經網絡(convolutional neural network,CNN)和遞歸神經網絡(recurrent neural network,RNN)是軌跡預測中應用較為普遍的2種神經網絡結構。部分研究將軌跡數據劃分為網格數據使用CNN進行處理,以提升路段行駛速度與流量預測精度[13]。RNN是一種適合處理時間序列數據的神經網絡模型[14]。例如,DONG等人使用RNN構建了一個自編碼器,用以提取軌跡序列中的時間依賴特征,在軌跡分類方面取得了較高的準確率[15]。但傳統的RNN模型僅由一個隱層記錄歷史信息,在輸入序列過長情況下會產生梯度消失或爆炸問題。長短期記憶網絡(long short term memory network,LSTM network)模型通過引入記憶單元保存相關的歷史數據,能有效緩解難以獲取的長序列數據間的依賴問題[16]。對交通流的預測研究結果進一步表明,深度神經網絡的非線性變換和特征提取更有利于時間預測中的時空相關性提取,從而提高軌跡時間預測準確率[17-20]。
文中在當前研究基礎上,提出了一種基于一維卷積神經網絡(Conv1d)-長短期記憶單元(LSTM)-殘差網絡(ResNet)的混合神經網絡預測框架(convld-LSTM-resNet travel time estimation framework,CLRTT),并通過城市實際交通數據分析所提出框架的預測效果。
CLRTT模型框架包括4個部分:原始軌跡預處理、外部特征提取、時空特征提取和時間預測,模型整體框架如圖1所示。

圖1 CLRTT模型整體框架
軌跡預處理階段主要任務是將原始軌跡數據映射到城市道路路網數據之上,并經過排序、采樣、分段和匹配等步驟,得到符合實際交通路網的修正軌跡序列,該軌跡序列作為后續時空特征提取組件的輸入。外部特征提取組件負責提取影響交通時間的司機駕駛習慣、時間、天氣和里程等因素,并將其轉換為低維實時向量,以適應神經網絡輸入要求。時空特征提取組件負責提取軌跡序列的空間相關性以及時間依賴性,分別采用CNN和RNN實現。時間預測組件負責融合外部特征提取和時空特征提取組件輸出,并融合局部路徑時間預測結果,預測最終軌跡時間。
在目標對象實際移動過程中,基于GPS或北斗等定位技術的位置數據存在一定誤差,并且這些位置數據按時間序列直接相連無法反映道路特征,因此,基于位置數據的原始軌跡與城市道路實況不能很好吻合,直接使用原始軌跡數據作為模型輸入進行預測將會導致較大的誤差,路網匹配是解決這一問題的有效方法[21]。路網匹配是指將移動目標的有序位置數據序列根據算法匹配到電子地圖中路網上的過程,基于隱馬爾科夫模型(hidden markov model,HMM)[22]的路網匹配算法是當前應用較為廣泛的一類算法。文中采用基于HMM的軌跡修正方法,主要流程如圖2所示。

圖2 軌跡修正過程
影響軌跡時間的外部因素有多種,比如不同司機有著不同的駕駛習慣,在同一時段同一路段上駕駛速度不一,進而導致軌跡行駛時間不同。此外,軌跡行駛時間也具有明顯的以周為單位的周期性。使用外部特征擬合影響時間預測的主要外部因素,包括:駕駛員編號(driverId)、時間段(time)、星期(week)、天氣(weather)、距離(distance)。
時空特征提取組件包含2個部分:一部分是Conv1d層;另一部分是RNN層。Conv1d層使用CNN一維卷積提取空間相關性,將軌跡第一維度設置為批大小,第二維度設置為軌跡長度,第三維度設置為通道數,卷積過程如圖3所示。

圖3 空間相關性提取卷積過程
首先使用更細的粒度將四維軌跡點pi(經緯度、時間以及載客狀態信息)通過公式(1)非線性映射到16維度的向量中。其中,pi.lat為軌跡點緯度;pi.lng為軌跡點經度;pi.time為軌跡點時間;pi.lod為載客狀態;°為連接操作;wloc為可學習的權重矩陣。
loci=tanh(wloc·[pi.lat°pi.lng°pi.time°pi.lod])
(1)
然后使用c個大小為f的卷積核對每個局部路徑進行卷積(局部路徑之間的滑動窗口是1)后通過激活函數ELU得到初步的特征圖。考慮到局部路徑的長度對于局部路徑時間預測的影響,再級聯每一個局部路徑歸一化后的距離向量,最終得到locf特征圖,該特征圖捕捉了所有局部路徑之間的空間相關性。
對于RNN層,使用雙層的LSTM模型。從外部因素特征提取組件中輸出的屬性向量展開級聯到Conv1d輸出所得到的特征圖locf中作為LSTM的輸入數據,使用記憶單元記錄時間序列中的歷史信息,提取局部路徑的時間依賴性,前向傳播后訓練模型得到每一個時間步的隱藏層參數H作為輸出。
時間預測組件融合前面2個部分的輸出,預測最終的旅行時間。CLRTT模型結合局部預測和整理預測2種方法。對于局部路徑預測,輸入為LSTM層傳來的參數,即隱藏層單元特征序列H[h1,h2,…]。對每一個hi再經過一個單元數分別為64和1的全連接層,將hi轉化為數值,進而得到每個局部路徑的預測時間;對于整體路徑預測,輸入仍為H,由于隱藏層單元H分量長度不同,因此需要使用均勻池化(mean pooling)操作,使得每一個局部路徑的權重都相同。此外,一段路徑預測準確率低主要是由于某些局部路徑之間存在較多交叉路口以及交通信號燈等導致的交通擁堵被忽略而導致。為了解決這一問題,模型引入注意力機制,把外部因素特征提取組件中得到的輸出屬性數據,經線性映射σ后轉為與隱層狀態相同維度的向量X,經Softmax變換后得到特征矩陣H的權重向量α,最后通過加權求和實現對特征矩陣自適應關注,使模型能夠更加準確地提取出軌跡序列的時空特征,得到更準確的軌跡時間預測。變換過程見式(2)。
(2)
模型分別獲得局部路徑的預測時間和整體路徑的預測時間后,使用3層的殘差全連接網絡得到最終整段路徑的預測時間E。

(3)
局部路徑使用每條訓練軌跡上的局部路徑的平均絕對百分比誤差Llocal作為損失函數,整體路徑使用所有訓練軌跡的平均絕對百分比誤差Letr作為損失函數,以(β*Llocal+(1-β)*Letr)作為最終的全局損失函數,其中β作為權重系數。
模型使用ReLU、Tanh、ELU這3種激活函數。其中,在Conv1d中,卷積后使用ELU激活函數;在雙層LSTM模型和注意力機制網絡中,使用Tanh激活函數;在殘差全連接網絡中,使用ReLU激活函數。
實驗所用軌跡數據選擇2014年8月3日到30日之間成都市約13 600輛出租車的每日浮動車GPS位置數據。為防止出現軌跡的稀疏性問題,軌跡時間范圍取為每日的6:00至24:00,空間范圍覆蓋成都市的整個市區。
為了得到適合模型輸入的短軌跡序列,基于載客訂單將一天的軌跡分割為較小的軌跡序列,并且對軌跡點進行采樣,使2個連續點之間的距離差距在200 m到400 m左右。為加快模型訓練速度,實驗中抽樣選取3 600條軌跡作為訓練數據,1 400條軌跡作為測試數據。
模型CLRTT基于PyTorch深度學習框架實現,所選數據集包含24 000輛出租車,在模型的外部因素特征提取組件中,將driverID從24 000維降維至16維;將每日以分鐘為劃分,6:00為起始點,劃分為1 440個維度,將timeID從1440維降維至8維;將出發日期的星期由7天降為3維。在時空特征提取組件中,Conv1d層卷積核大小kernel-size設為3*1,使用32個卷積核進行Conv1d運算,LSTM雙層網絡隱藏層單元參數H的大小為128。在整體路徑時間預測組件中,使用注意力網絡將外部屬性轉換為維度128維的權重加到隱藏層單元參數上,最后殘差全連接層的固定層數為3,每層單元數為128,以權重參數β設為0.3得到實際最終的損失函數對模型進行訓練。
模型訓練過程中,迭代次數epoch設為100,mini-batch設為50,使用Adam優化器進行訓練,學習率為1e-3,模型中用正態分布N(0,1)來初始化參數。
AVG和KNN是軌跡時間預測最常見的2種方法,并且對于不同數據集具有相對較好的穩定性;而當前基于機器學習的預測方法,數據集不同、數據集預處理方法不同以及模型參數不同都會導致預測結果相差較大。因此文中選取AVG算法和KNN算法作為基準進行對比分析。對于AVG算法,實驗中將一天的時間從早上6:00到晚上24:00分割為144個時段,每個時段10分鐘,根據歷史軌跡前18天的軌跡計算每個時段的平均速度。對于KNN算法,實驗中選取k=10作為實驗參數,對于一個待預測軌跡,在歷史數據中查詢與其起點和終點近似的歷史軌跡,以其跟待測軌跡的距離作為權重,根據歷史軌跡時間的加權和預測待測軌跡時間。
為了全面準確地度量不同參數或者其他因素對模型預測軌跡時間的影響,實驗中使用均方根誤差RMSE、平均絕對誤差MAE以及平均絕對百分比誤差MAPE作為評估標準對結果進行分析。
3.4.1 權重參數β的影響分析
模型內部參數往往會影響所訓練出模型的泛化能力,整體路徑和局部路徑時間預測的權重β是最直接的可變參數,在其他參數不變的條件下,調整β從區間[0,1]變化,得到模型預測結果誤差的MAPE變化情況如圖4所示。

圖4 模型預測誤差MAPE隨權重β變化情況
從圖4可以看出,當β設置為0.4時,模型預測誤差MAPE達到最小,約為12.63%,從整體上看,模型預測誤差隨β變化波動并不是很大。
3.4.2 數據集質量對預測結果影響分析
為了分析數據集質量對預測模型的影響,本文分別采用原始軌跡數據和經過路網匹配修正之后的軌跡數據作為輸入,進行模型訓練和驗證。在epoch=50,β=0.4情況下,驗證集損失函數隨訓練迭代次數增大的變化如圖5所示。
從圖5可以看出,對原始軌跡數據集進行路網匹配修正后,模型預測誤差明顯減小,證實采用路網匹配方法對軌跡數據進行預處理的有效性。

圖5 數據集修正前后模型MAPE變化對比
在同等條件下,軌跡數據集路網匹配處理前后模型各項表現見表1。

表1 路網匹配處理前后模型預測效果對比
3.4.3 對比實驗
1)不同算法模型預測誤差對比。采取路網匹配處理后數據集前18天的數據進行模型訓練,后7天的數據進行驗證,在相同的數據集和實驗環境下,提出的模型與2種常用的軌跡時間預測模型預測結果對比見表2。
由表2可知,相比基于AVG算法和KNN算法的預測模型,文中所提出的預測模型CLRTT在相同條件下的預測精度有了大幅提升。

表2 不同算法預測誤差對比
2)模型對不同影響因素的敏感性分析。城市交通環境下,軌跡長度和時間段對軌跡耗時具有較大影響。為了分析預測模型對軌跡長度的敏感性,將測試集中的軌跡以5 km為單位分組,不同算法預測誤差對比情況如圖6(a)和圖6(b)所示。

圖6 軌跡長度對預測誤差的影響
根據圖6(a)中的dist-MAPE對比結果,隨著軌跡距離在0~20 km間增大,CLRTT模型的預測誤差MAPE總體趨勢是減小,在20~25 km時MAPE達到最低點12.63%;根據圖6(b)中的dist-MAE對比結果,隨著軌跡距離在0~20 km間增大,基于AVG與KNN這2種算法的模型預測誤差MAE快速增加,尤其對于大于20 km的長軌跡,預測效果較差,而CLRTT模型的預測誤差MAE隨軌跡長度增加緩慢增長,而對于大于20 km的長軌跡出現小幅下降。這說明相比于AVG和KNN算法模型,文中提出的CLRTT模型預測誤差隨軌跡長度的波動相對較小,表現出較好的穩定性。
為了分析預測模型對軌跡時間段的敏感性,實驗中以一天作為一個周期,模型對測試集中不同起始時間(包括從早上6:00到晚上24:00)的軌跡時間預測誤差情況如圖7所示。其中,“Label”點的縱坐標代表的是該軌跡的真實行駛時間,“Prediction”點縱坐標表示的是軌跡的預測行駛時間。

圖7 時間段對模型預測精度的影響
從圖7可以看出,CLRTT預測模型在不同時段的預測誤差MAE大部分在230 s以下,普遍低于400 s,這說明CLRTT模型對于不同時間段的軌跡時間預測具有較好的穩定性和精度。
選取測試集中6:00到24:00之間的18個小時,以小時為時間分段,3種算法模型誤差MAPE和MAE對比情況如圖8(a)和圖8(b)所示。其中橫坐標如“06”表示出發時間在6:00到7:00之間。

圖8 分時段模型誤差對比
從圖8可以看出,以一天為周期,3種預測模型在20:00后的誤差都較低,而在7:00至9:00、14:00至16:00、18:00至20:00之間,誤差都有一個較大的起伏,產生這一現象的主要原因是:在早中晚高峰期中,城市人流量大,路段中的信息變化迅速,而模型并沒有把交通管制類路況信息等作為外部因素加入到模型中,因而模型無法響應這類變化。3種模型預測誤差隨時段變化趨勢大體一致,但文中CLRTT模型誤差相對更加平穩。
1)基于一維卷積神經網絡(Conv1d)-長短期記憶單元(LSTM)-殘差網絡(ResNet)的混合神經網絡預測模型CLRTT,主要由原始軌跡預處理、外部特征提取、時空特征提取和時間預測4個部分構成。
2)實際城市出租車運行軌跡數據上的仿真實驗結果表明,采用的原始軌跡預處理方法能夠有效提升模型預測精度。對于不同時段和不同長度的軌跡預測,提出的CLRTT預測模型相比于常用的AVG和KNN類算法模型,具有較高的精度和平穩性,尤其在較長軌跡時間預測方面,預測精度提升明顯。
3)通過實驗結果發現,所有模型對于交通高峰期預測精度均會下降,主要原因在于交通高峰期的交通管制以及突發交通事故影響,而這些因素具有突發性和不確定性,目前很難有效融入模型之中,這一問題值得后續進一步研究。