李帥, 楊柳, 趙欣卉
(1.西南交通大學(xué)唐山研究生院, 唐山 063002; 2.綜合交通大數(shù)據(jù)應(yīng)用技術(shù)國家工程實驗室, 成都 611756; 3.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院, 成都 610000)
近年來,城市交通發(fā)展和機(jī)動車的保有量增長迅速,截至2020年,中國汽車的保有量為2.81億輛,年平均增長2 000多萬輛,而全國的道路每年的增長率僅為3%~5%。城市道路的容納力無法滿足現(xiàn)有機(jī)動車數(shù)量的增長,嚴(yán)重影響了日常交通出行,城市的交通擁堵已經(jīng)成為各個城市中的普遍現(xiàn)象。所以提前預(yù)知城市交通狀況,可以幫助城市交通管理人員提前做好準(zhǔn)備,極大緩解交通擁堵現(xiàn)象,也可以為公眾出行提供參考。
城市的交通流預(yù)測一直是科研人員研究的熱點,在不同的時期采用不同的預(yù)測方法,都取得了較為優(yōu)秀的成功。目前,對于城市交通預(yù)測的研究方法國內(nèi)外主要分為三大類:參數(shù)模型、非參數(shù)模型以及混合模型。
第一類:參數(shù)模型。
基于參數(shù)模型的預(yù)測方法中典型的代表是自回歸積分滑動平均模型(autoregressive integrated moving average,ARIMA)[1]。王曉全等[2]基于ARIMA提出了一種組合模型ARIMA-GARCH-M進(jìn)行短時交通流預(yù)測,并利用城市快速路交通流數(shù)據(jù)進(jìn)行模型預(yù)測精度的檢驗。
ARIMA模型通常只能應(yīng)對簡單的問題,要求輸入的數(shù)據(jù)是平穩(wěn)的,對于復(fù)雜的交通流數(shù)據(jù),實際中無法和潛在的目標(biāo)函數(shù)完全吻合,容易出現(xiàn)欠擬合。
第二類:非參數(shù)模型。
基于非參數(shù)模型的預(yù)測方法包括支持向量機(jī)回歸模型(support vector regression, SVR)、人工神經(jīng)網(wǎng)絡(luò)模型、深度學(xué)習(xí)模型等。常用的人工神經(jīng)網(wǎng)絡(luò)模型有BP神經(jīng)網(wǎng)絡(luò)、小波神經(jīng)網(wǎng)絡(luò)、模糊神經(jīng)網(wǎng)絡(luò)等[3]。
李建森等[4]結(jié)合BP神經(jīng)網(wǎng)絡(luò)模型和自回歸求和滑動平均(ARIMA)模型對城市道路交通短時區(qū)間流量進(jìn)行預(yù)測。首先利用ARIMA模型擬合訓(xùn)練集,然后利用BP神經(jīng)網(wǎng)絡(luò)模型擬合殘差,通過這種方式來提高預(yù)測的精準(zhǔn)度。
蒲斌等[5]通過實驗驗證了ARIMA 乘積季節(jié)模型、BP神經(jīng)網(wǎng)絡(luò)的多種訓(xùn)練函數(shù)的預(yù)測精度及適應(yīng)性,證明了BP神經(jīng)網(wǎng)絡(luò)的預(yù)測方法具有更好的適應(yīng)性。牟振華等[6]提出一種小波降噪與貝葉斯神經(jīng)網(wǎng)絡(luò)聯(lián)合模型的預(yù)測方式。該預(yù)測模型通過小波降噪的方式處理交通數(shù)據(jù),構(gòu)建貝葉斯神經(jīng)網(wǎng)絡(luò)模型使用降噪后的數(shù)據(jù)進(jìn)行擬合、預(yù)測。宋瑞蓉等[7]提出了一種基于果蠅算法的混合小波神經(jīng)網(wǎng)絡(luò)模型。該模型選擇果蠅優(yōu)化算法對小波神經(jīng)網(wǎng)絡(luò)的初始參數(shù)進(jìn)行調(diào)節(jié),解決了小波神經(jīng)網(wǎng)絡(luò)預(yù)測對初始參數(shù)敏感的問題。其次,將迭代次數(shù)和當(dāng)前解的情況作為搜索半徑和種群規(guī)模的動態(tài)調(diào)整因子,對果蠅算法進(jìn)行了改進(jìn),提高了果蠅算法的全局尋優(yōu)能力和局部收斂速度。
隨著人工智能技術(shù)的不斷發(fā)展,深度學(xué)習(xí)已經(jīng)成為當(dāng)前研究人員的研究熱點。Bai等[8]在時間序列預(yù)測方面,把卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)與其他預(yù)測模型進(jìn)行了眾多對比實驗,證明了CNN可以用于時間序列預(yù)測,且取得了很好的效果。Ma等[9]提出了一種基于CNN的流量學(xué)習(xí)方法,該方法將流量學(xué)習(xí)為圖像,并對大規(guī)模、全網(wǎng)絡(luò)流量速度進(jìn)行高精度預(yù)測。但是CNN并不完全適用于時間序列的預(yù)測,因此會需要各種輔助性處理,局限性太大。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)可以處理輸入的任意長度的序列,所以RNN適用于捕捉交通流數(shù)據(jù)的時空演變。但RNN對于捕捉輸入序列的長時間依賴顯得無能為力,同時RNN還存在梯度消失和梯度爆炸的問題。為了進(jìn)一步提高預(yù)測精準(zhǔn)度,長短期記憶(long-short term memory, LSTM)神經(jīng)網(wǎng)絡(luò)被開始應(yīng)用于交通預(yù)測領(lǐng)域。相比于RNN,LSTM極大避免梯度消失的問題,可以處理長時間跨度的時間序列。
文獻(xiàn)[10-11]將LSTM神經(jīng)網(wǎng)絡(luò)應(yīng)用于交通流預(yù)測,證明了LSTM在交通預(yù)測的可行性,同時基于LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)模型分析了不同輸入配置對交通流量預(yù)測精度的影響。
交通流數(shù)據(jù)的預(yù)測是和時間相關(guān)的,故利用LSTM來處理交通流數(shù)據(jù),提取交通流數(shù)據(jù)的時間特征。但是交通流數(shù)據(jù)不僅僅和時間相關(guān),還和空間相關(guān),而LSTM 自身無法獲取到數(shù)據(jù)的空間特征,必須通過人工方式,將數(shù)據(jù)的空間信息通過編碼作為網(wǎng)格進(jìn)行輸入,但通過這個方式會影響到預(yù)測的精度。RNN的梯度問題在LSTM里面得到了一定程度的解決,但還是存在。LSTM不能夠進(jìn)行并行計算,訓(xùn)練LSTM模型對硬件的要求非常高,需要大量資源,導(dǎo)致訓(xùn)練效率低下。
在2017年,Transformer的出現(xiàn)引爆了AI圈[12]。文獻(xiàn)[13-16]證明了Transformer的優(yōu)越性,同時證明了在交通流量預(yù)測方面的可行性,因為Transformer的特點,在交通流預(yù)測方面也取得了非常優(yōu)秀的成績。各種深度學(xué)習(xí)方法應(yīng)用在交通流預(yù)測上可以得到不錯的效果,但是絕大多數(shù)的深度學(xué)習(xí)方法在實際的預(yù)測當(dāng)中仍然存在一些問題,例如對于交通數(shù)據(jù)的時空特征不能進(jìn)行有效的提取,使得預(yù)測精度受到了局限性。
第三類:混合模型。
為了解決單一預(yù)測模型無法精確的提取時間序列數(shù)據(jù)中的時空特征問題,混合模型被提了出來。Shi等[17]首次提出了卷積神經(jīng)網(wǎng)絡(luò)CNN和循環(huán)神經(jīng)網(wǎng)絡(luò)LSTM的結(jié)合體CNN-LSTM。CNN-LSTM模型后來也被開始應(yīng)用于交通流預(yù)測[18-20]。
文獻(xiàn)[21-22]針對交通流量特性和外部因素對交通流量預(yù)測結(jié)果的影響,在CNN-LSTM的基礎(chǔ)上提出了CNN-ResNet-LSTM城市短時交通流量預(yù)測的模型。王海起等[23]利用CNN 模型和基于注意力機(jī)制的 LSTM 模型建立了交通流短時預(yù)測模型,通過嵌入注意力機(jī)制來處理交通流的趨勢變動性。
宋瑞容等[24]為了精準(zhǔn)預(yù)測交通流量,充分提取交通流中復(fù)雜的線性和非線性特征及其依賴關(guān)系,提出了融合多維時空特征的CLABEK模型。CLABEK模型由Conv-LSTM、BiLSTM和Dense神經(jīng)網(wǎng)絡(luò)分別提取時空特征、周期特征和額外特征,并通過將上述模型融合從而全面獲取交通流的非線性特征,通這種方法來提高模型預(yù)測的準(zhǔn)確率。
為了更準(zhǔn)確地對城市交通狀態(tài)進(jìn)行預(yù)測,現(xiàn)結(jié)合以往的研究,通過網(wǎng)格劃分的方法,把城市區(qū)域劃分為多個區(qū)域,根據(jù)城市交通數(shù)據(jù)流的時空特征,提出一種基于深度學(xué)習(xí)的城市交通擁堵預(yù)測模型CS-Transformer(CNN-SPEM Transformer)。該模型通過使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取基于網(wǎng)格劃分的城市區(qū)域交通數(shù)據(jù)的空間特征,然后采用全連接神經(jīng)網(wǎng)絡(luò)增強(qiáng)模型的表達(dá)能力,再通過相似性位置編碼機(jī)制(similarity position encoding mechanism,SPEM)把位置信息加入交通數(shù)據(jù)中,最后運用Transformer網(wǎng)絡(luò)捕捉交通數(shù)據(jù)的時間依賴特征。
通過城市網(wǎng)格劃分的方法,將城市劃分為了I×J個不重疊的網(wǎng)格矩陣區(qū)域,網(wǎng)格矩陣代表的是時間片t下成都市各個區(qū)域的交通擁堵狀態(tài),如圖1所示。將網(wǎng)格指標(biāo)記作X={xi,j},xi,j為時間片段t下位置(i,j)區(qū)域的擁堵情況,如圖1所示。
圖1 網(wǎng)格地圖劃分圖Fig.1 Grid map division map
城市區(qū)域交通擁堵預(yù)測是一個時空序列預(yù)測問題,可以定義為:在給定的時間片段t的條件下,通過n個歷史時間片段的交通擁堵狀態(tài)網(wǎng)格矩陣{Y1,Y2,…,Yn},來預(yù)測未來時間片段t下的城市交通擁堵狀態(tài){Yn+1}。對于城市交通的擁堵狀態(tài)預(yù)測,不僅僅需要考慮時間特征的連續(xù)性和周期性,還需要考慮空間特征的依賴性。
城市短時交通擁堵預(yù)測是通過以往的歷史交通擁堵狀態(tài)預(yù)測未來城市交通擁堵狀態(tài),在時間方面精確的預(yù)測受2個因素影響。
1.2.1 鄰近性
城市短時交通擁堵預(yù)測是指在給定的時間片段t的條件下,通過n個歷史時間片段的交通擁堵狀態(tài)網(wǎng)格矩陣{Y1,Y2,…,Yn},來預(yù)測未來時間片段t下的城市交通擁堵狀態(tài){Yn+1},未來預(yù)測的交通擁堵狀態(tài)與它前一時刻的擁堵狀態(tài)是相關(guān)的。即每一個時間片段的擁堵狀態(tài)往往受前一個時間片段的擁堵狀態(tài)的影響,同時也會影響下一個時間片段的擁堵狀態(tài)。
1.2.2 周期性
城市區(qū)域的擁堵狀態(tài)具有周期性。即每一天相同時間片段的城市區(qū)域的擁堵狀態(tài)是大致相同的。例如,2018年3月1日10:15—10:30的城市區(qū)域擁堵狀態(tài)與2018年3月2日10:15—10:30的城市區(qū)域擁堵狀態(tài)大致相同。
為了使城市區(qū)域交通擁堵狀態(tài)的預(yù)測更加精準(zhǔn),需要考慮時間周期性的特性。所以可以把需要預(yù)測的某一天的時間片段前一天相同時間段的時間片段,也作為歷史時間片段序列來進(jìn)行預(yù)測。例如,需要預(yù)測的時間片段為2018年3月6日10:30的擁堵狀態(tài),可以把前一天相同時間片段放入歷史時間片段序列中,即把2018年3月5日10:30放入n個歷史時間片段中,歷史片段就變成了n+1個,就成為{W1,Y1,Y2,…,Yn},W1為需要預(yù)測的時間片段前一天相同時間段的時間片段,稱為歷史相同日周期片段。
對城市進(jìn)行網(wǎng)格區(qū)域劃分為X={xi,j}后,每個區(qū)域網(wǎng)格指標(biāo)代表該位置區(qū)域的擁堵情況。每區(qū)域的擁堵情況不僅僅與歷史擁堵情況具有相關(guān)性,與附近其他區(qū)域的擁堵情況也具有相關(guān)性,區(qū)域xi,j的擁堵情況會受到周圍{xi-1,j-1,xi-1,j,xi-1,j+1,xi,j-1,xi,j+1,xi+1,j-1,xi+1,j,xi+1,j+1}這8個區(qū)域的影響,如圖2所示。
圖2 城市網(wǎng)格區(qū)域表示圖Fig.2 Urban grid area representation
根據(jù)基于網(wǎng)格劃分的城市區(qū)域交通擁堵狀態(tài)預(yù)測的時空特性,以及現(xiàn)有模型存在的一些局限性,提出了一種基于CNN和相似性位置編碼機(jī)制(similarity position encoding mechanism,SPEM)的模型CS-Transformer(CNN-SPEM Transformer)的預(yù)測模型,如圖3所示。模型由CNN空間組件、相似性位置編碼機(jī)制(similarity position encoding mechanism,SPEM)和Transformer時間組件三部分組成。
W1、{X1,X2,…,Xn}為編碼器的輸入;Xn為解碼器的輸入;{H1,H2,…,Hn}為SPEM模塊處理數(shù)據(jù)的輸出圖3 CS-Transformer模型架構(gòu)圖Fig.3 CS-Transformer model architecture
該模型首先通過使用CNN組件提取基于網(wǎng)格劃分的城市區(qū)域交通數(shù)據(jù)的局部空間特征,然后采用全連接神經(jīng)網(wǎng)絡(luò)增強(qiáng)模型的表達(dá)能力。然后輸入SPEM中,通過位置編碼組件給輸入的序列加入位置信息,再輸入Transformer組件,運用Transformer 組件捕捉交通數(shù)據(jù)的時間依賴特征。
CNN是卷積神經(jīng)網(wǎng)絡(luò)的簡稱,在圖像處理領(lǐng)域得到了廣泛的應(yīng)用,具有強(qiáng)大的特征學(xué)習(xí)能力。在交通流預(yù)測方面,引入CNN進(jìn)行空間建模,可以更好地刻畫交通流的空間特征。通過CNN的卷積核可以更加高效地處理高維數(shù)據(jù),同時自動地學(xué)習(xí)交通流數(shù)據(jù)的空間特征,從而達(dá)到提高模型預(yù)測精準(zhǔn)度的目的。
CNN組件的主要任務(wù)是利用CNN中的卷積層來提取基于網(wǎng)格劃分的城市交通擁堵狀態(tài)的空間特征。將時間片段t下的城市交通擁堵矩陣Y看作是一張單通道的圖像,把Y作為輸入,對其進(jìn)行卷積操作,挖掘局部的空間特征。圖4為CNN組件結(jié)構(gòu)圖。
圖4 CNN組件結(jié)構(gòu)圖Fig.4 Structure diagram of CNN components
(1)卷積層1。對輸入的8×8二維矩陣進(jìn)行卷積操作,通過卷積操作可以挖掘局部的空間特征,城市區(qū)域的擁堵狀態(tài)不僅僅是與自身區(qū)域的交通流有關(guān),和周圍區(qū)域的交通流也有關(guān)系,所采用維度為3×3的卷積維度,移動步長設(shè)置為1,填充設(shè)置為1。經(jīng)過卷積操作后,再輸入池化層進(jìn)行池化操作。
(2)卷積層2。經(jīng)過卷積層1的處理后,城市交通擁堵狀態(tài)矩陣由8×8變?yōu)榱?×4,再把4×4的二維矩陣輸入卷積層2中進(jìn)行卷積操作,卷積核采用3×3的卷積維度,移動步長設(shè)置為1,填充設(shè)置為1。經(jīng)過卷積操作后,再輸入池化層進(jìn)行池化操作。經(jīng)過卷積層2的操作后,輸出的矩陣大小為2×2,輸入兩層全連接層后,再輸入到位置編碼組件Position中。
Transformer是作為一種新的深度學(xué)習(xí)框架而被開發(fā)出來的,基于注意力機(jī)制和位置編碼策略進(jìn)行序列建模。Transformer完全建立在注意力機(jī)制上,這使得它能夠訪問序列的任何部分,無視其距離目標(biāo)的距離。從本質(zhì)上講,Transformer是以編碼組件-解碼組件的方式進(jìn)行構(gòu)建的,編碼組件部分由一堆編碼器構(gòu)成,解碼組件是由一堆解碼器構(gòu)成,編碼器和解碼器的數(shù)量是相同的。每個編碼器模塊是由一個多頭自注意層和一個位置前饋層組成,而每個解碼器模塊又多了一層編碼器-解碼器注意層,插在自注意層和前饋層之間,作為編碼器和解碼器部分的橋梁。圖5為Transformer模型結(jié)構(gòu)圖。
圖5 Transformer模型結(jié)構(gòu)圖Fig.5 Structure diagram of Transformer model
因為城市交通流數(shù)據(jù)具備時間序列的特點,必須考慮時間序列的連續(xù)性和周期性等時間特征。所以Transformer時間組件的主要作用是用來提取時城市交通流數(shù)據(jù)的時間特征。通過Transformer模型可以在城市交通時間序列預(yù)測的過程中,可以不必考慮距離去訪問歷史序列數(shù)據(jù)的任何部分,所以適用于具有長期依賴關(guān)系的時間序列預(yù)測應(yīng)用場景,同時還具有更強(qiáng)的并行性,來捕捉時間序列的連續(xù)性和周期性。
由于Transformer模型不包含循環(huán)和卷積,為了使模型能夠利用序列的順序信息,必須給輸入的序列加入一些關(guān)于位置的信息。故在編碼器和解碼器堆棧底部的輸入嵌入中添加了位置編碼。位置編碼后的序列與嵌入序列具有相同的維數(shù),因此兩者可以直接相加。位置編碼的公式定義為
PE(pos,2i)=sin(pos/10 0002i/d)
(1)
PE(pos,2i+1)=cos(pos/10 0002i/d)
(2)
式中:pos和i分別為輸入序列的位置索引和輸入序列維度位置;d為輸入序列的維度大小。位置編碼的每個維度對應(yīng)于一個正弦信號,波長為2π~10 000×2π,呈幾何級數(shù)。
Transformer引入了位置編碼策略,它對序列中數(shù)據(jù)的先后位置進(jìn)行編碼。Transformer根據(jù)序列中元素的位置建立索引,然后通過一系列正弦函數(shù)傳遞索引。Transformer在自然語言處理方面取得了重大成功,包括機(jī)器翻譯。盡管這種編碼策略對機(jī)器翻譯很有用,但它不適用于交通預(yù)測,因為對于交通預(yù)測,必須考慮時間序列的連續(xù)性和周期性等時間特征。所以把Transformer應(yīng)用于交通預(yù)測需要改變編碼策略。在機(jī)器翻譯中,輸入序列和目標(biāo)序列代表著兩種不同的語言相同含義的句子,因此兩個序列應(yīng)該共享相同的位置索引。然而在交通預(yù)測中,歷史序列和預(yù)測序列是連續(xù)的,因此歷史序列和預(yù)測序列不能共享相同的位置索引。此外,交通數(shù)據(jù)還具有周期性,即每一天相同時間片段的城市區(qū)域的擁堵狀態(tài)是大致相同的。因此,把Transformer應(yīng)用于交通預(yù)測時,需要采用新的策略對時間特性進(jìn)行編碼。
根據(jù)城市交通流數(shù)據(jù)特性,提出了3種不同的位置編碼策略,即局部位置編碼策略、全局位置編碼策以及周期性位置編碼策。在首屆世界城市日論壇上,上海在“2035規(guī)劃”中提出“15分鐘社區(qū)生活圈”的概念。生活圈代表的是配備生活所需的基本服務(wù)功能與公共活動空間,形成安全、友好、舒適的社會基本生活平臺。其中的15分鐘指的是指社區(qū)居民的步行尺度,同時也包含依托自行車和機(jī)動車出行的能力,故采用15分鐘為一個時間片段進(jìn)行預(yù)測。使用{W1,Y1,Y2,…,Yn}為歷史城市區(qū)域交通擁堵狀態(tài)序列,來預(yù)測城市交通擁堵狀態(tài){Yn+1}序列。
2.3.1 局部位置編碼策略
該編碼方式是為了保證時間序列的局部連續(xù)性,即只關(guān)心歷史交通序列-預(yù)測交通序列之間的連續(xù)性,而不去考慮整個交通序列的連續(xù)性。首先把歷史交通序列-預(yù)測交通序列按照時間進(jìn)行排序,先不考慮歷史相同周期片段W,把0作為起始位置,每往后一個時間步就把索引位置加1,即可得到局部位置索引LP,如式(3)所示。再把LP通過式(1)和式(2)運算即可得到每一個時間序列的局部位置編碼。例如{Y1,Y2,…,Yn}為歷史交通序列,{Yn+1}為需要預(yù)測的交通序列,使用局部位置策略得到的索引位置分別為(0,1,…,n-1)和(n)。對于周期歷史片段W,把W設(shè)置為和預(yù)測的交通序列相同的索引位置,即{n},再放入相對歷史位置索引中可得(n,0,1,…,n-1)。再把索引位置利用式(1)和式(2)得到局部位置編碼。
LP={Y1,Y2,…,Yn}→{0,1,…,n-1}
(3)
2.3.2 全局位置編碼策略
局部位置策略可以保證序列的局部連續(xù)性,但也忽略了一個時間片段序列在不同的歷史交通序列-預(yù)測交通序列其實是同一個時間片段序列。例如時間在3:00—3:15的交通擁堵狀態(tài)序列在不同的歷史交通序列-預(yù)測交通序列中,其實是一樣的。因此,局部位置策略的局限性就在于沒能讓同一個時間序列在不同的歷史交通序列-預(yù)測交通序列表現(xiàn)出相同的位置編碼。因此提出全局位置策略來解決局部位置策略的局限性,保證時間序列的全局連續(xù)性。
全局位置策略可以保證在整個時間周期中的時間片即使出現(xiàn)在了不同的序列中,也只有一個位置編碼,保證了唯一性。首先,把數(shù)據(jù)集中的所有時間片按照時間進(jìn)行排序,然后從0開始進(jìn)行索引,每過一個時間片索引就加1,再把所有索引代入式(1)和式(2)得到每個時間片的全局位置編碼,然后根據(jù)歷史交通序列-預(yù)測交通序列在整個數(shù)據(jù)集中的排序截取相應(yīng)位置的編碼,即可得到歷史交通序列-預(yù)測交通序列的全局位置編碼,如式(4)所示。
GP={Y1,Y2,…,Yn}→{97,98,…,97+n}
(4)
2.3.3 周期位置編碼策略
在交通序列中,不僅僅要考慮連續(xù)性的時間特征,還需要考慮序列的周期性時間特征。通過加入周期性的時間特征,可以保證模型具有更好的預(yù)測精準(zhǔn)度。由于每一周相同的數(shù)據(jù)時間片段具有相同特性,所以可以把使用的交通數(shù)據(jù)每一周看作是一個周期進(jìn)行編碼。
把一周7 d按先后順序進(jìn)行排列進(jìn)行索引,即{0,1,2,3,4,5,6}分別對應(yīng)星期一到星期日,再把輸入預(yù)測模型的時間序列數(shù)據(jù)按屬于星期幾進(jìn)行標(biāo)注,如式(11)所示。例如輸入的時間序列數(shù)據(jù){Y1,Y2,…,Yn}都在星期一,那么索引就為{0,0,…,0},再輸入式(1)和式(2),得到位置編碼。
把歷史交通序列-預(yù)測交通序列分別按照局部位置編碼策略、全局位置編碼策略和周期性位置編碼得到3份位置編碼,因為3份位置編碼的維度相同,所以可以直接相加,把相加后的結(jié)果作為新的位置編碼pos,位置編碼既考慮到了序列的局部性,又考慮到了序列的全局性和周期性。
WP={Y1,Y2,…,Yn}→{1,1,…,1}
(5)
把位置編碼pos與輸入模型中的歷史交通序列-預(yù)測交通序列直接相加的方式,為輸入的序列加入一些關(guān)于位置的信息。但由于位置編碼pos既包括了局部位置編碼,又包括全局位置編碼和周期性位置編碼,如果通過與輸入序列直接相加的方式為輸入的序列加入一些關(guān)于位置的信息,可能會隱藏序列之間的其他關(guān)系,導(dǎo)致訓(xùn)練模型更加困難,降低預(yù)測的精準(zhǔn)度,尤其在數(shù)據(jù)集很小的時候。
所以提出了一種改進(jìn)的方式,即相似性位置組合模塊SPEM,通過相似性的方式把3種位置編碼更好地融合進(jìn)入輸入的序列中,既為輸入的序列加入一些關(guān)于位置的信息,又可以保證位置編碼不會隱藏序列之間的其他關(guān)系,導(dǎo)致訓(xùn)練模型更加困難。在CNN空間組件和Transformer時間組件加上一層基于注意力機(jī)制的位置組合方式,通過對CNN-Transformer模型的進(jìn)一步改進(jìn)提高預(yù)測的精準(zhǔn)度。計算公式如下。
S=softmax[pos(pos)T]
(6)
(7)
式中:pos為輸入序列的位置編碼;Q、K、V分別為輸入序列進(jìn)行線性變換后的查詢向量、鍵向量以及值向量;dk為K的維度;Pos_Attention(Q,K,V,S)為結(jié)果輸出矩陣。
圖6為相似性位置組合方式過程圖。
圖6 相似性位置組合方式過程圖Fig.6 Process diagram of similarity position combination mode
使用的數(shù)據(jù)集是成都2018年3月出租車的GPS點定位數(shù)據(jù),是對成都區(qū)域的出租車每隔10 s進(jìn)行一次的GPS數(shù)據(jù)采集,屬于高頻率采樣,共計31 d。出租車是每個城市都有的交通工具,而且遍布全城,故出租車會出現(xiàn)在城市的各個地方,所以出租車的行駛速度可以反映城市道路的真實交通狀態(tài)。但是仍然存在問題,即出租車為未載客狀態(tài)時的行駛速度不能反映當(dāng)前道路的真實交通狀態(tài),因為未載客的出租車的目的是尋找乘客,所以說會降低行駛速度尋找乘客。故后續(xù)研究會選擇載客的出租車作為數(shù)據(jù)集,因為載客的出租車目的是將乘客送達(dá)乘客目的地,所以會以出租車目前可以行駛的最快速度進(jìn)行行駛,故可以反映當(dāng)前道路真實的交通狀態(tài)。
數(shù)據(jù)集中包含了1 372 331 359條數(shù)據(jù),同時擁有10個字段。使用前23 d的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),后8 d的數(shù)據(jù)作為測試數(shù)據(jù)。本數(shù)據(jù)集的字段如表1所示。
表1 數(shù)據(jù)集字段及說明Table 1 Data set fields and descriptions
在數(shù)據(jù)集中,存在著同一時刻對同一個出租車有多個GPS定位數(shù)據(jù),這種數(shù)據(jù)就是重復(fù)的數(shù)據(jù),對于這種數(shù)據(jù)只保留一個數(shù)據(jù)即可,其他的GPS定位點需要進(jìn)行刪除操作。字段VP_INCOMEFLAG代表的是出租車此刻是否載人,0代表空車,1代表載人。由于是研究城市交通狀態(tài),當(dāng)出租車沒有載客時,為了拉客會放慢速度,四處游蕩尋找乘客,所以沒有載客的出租車數(shù)據(jù)對于研究是沒有意義的,需要進(jìn)行剔除,保留VP_INCOMEFLAG為1的數(shù)據(jù)。
對于缺失值根據(jù)缺失的程度進(jìn)行補(bǔ)全或者去除。如果某一條數(shù)據(jù)出現(xiàn)某個字段缺失,可以根據(jù)其他字段進(jìn)行補(bǔ)全,例如車牌號或者出現(xiàn)缺失時,可以根據(jù)其終端設(shè)備ID進(jìn)行補(bǔ)全操作。如果是經(jīng)緯度或者速度這些無法通過其他信息補(bǔ)全的字段缺失,那么就進(jìn)行刪除操作。
路網(wǎng)匹配是地理服務(wù)中非常關(guān)鍵的一個數(shù)據(jù)處理步驟,它的作用是把GPS軌跡點匹配到實際的路網(wǎng)當(dāng)中去。通過對GPS軌跡點的路網(wǎng)匹配后的數(shù)據(jù)進(jìn)行挖掘和分析,就可以輔助本課題的城市區(qū)域交通狀態(tài)預(yù)測研究。成都路網(wǎng)是從Open Street Map開源社區(qū)獲取得到的。Open Street Map(簡稱OSM)是一款由網(wǎng)絡(luò)眾人共同攜手打造的一個開源免費的世界地圖,它的目標(biāo)是建造一個能夠任何人都可以編輯的世界地圖。圖7為下載成都的部分路網(wǎng)圖。
圖7 成都的部分路網(wǎng)圖Fig.7 Partial road network of Chengdu
由于出租車GPS定位中可能會因為所處的環(huán)境,對用戶設(shè)備的接收產(chǎn)生較大誤差。例如當(dāng)車輛行駛在高樓大廈之間時,可能會因為建筑的遮擋,導(dǎo)致衛(wèi)星信號出現(xiàn)變?nèi)趸蛘咧袛?導(dǎo)致定位點于實際所在位置出現(xiàn)偏離。圖8為GPS軌跡點偏離路網(wǎng)示意圖。
圖8 GPS軌跡點偏離路網(wǎng)示意圖Fig.8 Schematic diagram of GPS track point deviation from road network
通過路網(wǎng)匹配來解決GPS軌跡點偏離實際位置的問題。采用的是基于隱馬爾可夫模型(hidden Markov model,HMM)的路網(wǎng)匹配算法。隱馬爾可夫模型在進(jìn)行路網(wǎng)匹配有較大的優(yōu)勢,因為它可以較為平滑地處理噪聲數(shù)據(jù),并和路徑約束相整合,從而在許多可能的路徑中選擇出一條最大似然路徑。
基于隱馬爾可夫的路網(wǎng)匹配就是一個解碼問題。因為出租車在路網(wǎng)的交叉路口行駛時,符合隱馬爾可夫模型。出租車的GPS軌跡為隱馬爾可夫中的觀察序列,隱藏序列即為出租車在路網(wǎng)當(dāng)中的經(jīng)過的軌跡,即所求的真實軌跡。故基于HMM的路網(wǎng)匹配就是在知道出租車GPS觀察軌跡的條件下,求最大可能的隱藏軌跡,即出租車實際移動的軌跡。通過這樣方式,就可以把HMM應(yīng)用于路網(wǎng)匹配中了。采用HMM進(jìn)行路網(wǎng)匹配時,把出租車GPS位置作為觀察變量,出租車在路網(wǎng)的真實位置為隱藏變量,而且認(rèn)為下一個軌跡點的位置僅僅與上一個軌跡點的位置存在關(guān)系。
對于觀察變量,可能因為各種情況,導(dǎo)致誤差存在,所以對于每一個軌跡點都需要去確定一組候選路段。確定候選路段時,首先確定一個距離值d,以d為半徑,軌跡點作為圓心畫圈,在每個圓當(dāng)中的路段即為該軌跡點的候選路段。每一個候選路段都被當(dāng)作HMM中的隱藏變量,對每一個候選路段根據(jù)公式計算出它的概率值,這就是HMM的先驗概率,該先驗概率計算公式為
(8)
式(8)中:j為這一時刻GPS點的候選路段的序號;dis為這一時刻GPS點到候選路段的距離;σ為根據(jù)具體情況設(shè)置的值。
下一時刻的軌跡點位置只與上一時刻的軌跡點的位置與之間存在著關(guān)系,即t+1時刻的軌跡點位置僅與t時刻的軌跡點位置有關(guān)。那么t時刻與t+1時刻的候選路段就存在著轉(zhuǎn)移概率,該轉(zhuǎn)移概率的計算公式為
(9)
式(9)中:i和j分別為t時刻和t+1時刻候選路段的標(biāo)號;dis為t時刻候選路段和t+1時刻候選路段的距離;β為設(shè)置的權(quán)重值。每個時刻觀測值的最優(yōu)匹配點為所有候選路段的先驗概率和上一時刻轉(zhuǎn)移概率之積中最大的候選點。過程如圖9所示。表2為部分出租車GPS軌跡匹配結(jié)果。
表2 部分出租車GPS軌跡匹配結(jié)果Table 2 GPS track matching results of some taxis
圖9 基于HMM的路網(wǎng)匹配過程Fig.9 Road network matching process based on HMM
目前,在國外有許多對交通擁堵狀態(tài)進(jìn)行評價的指標(biāo)。國外對于城市交通擁堵評價指標(biāo)主要分為4類:基于道路速度的交通擁堵指標(biāo)、基于交通量的交通擁堵指標(biāo)、基于路段交通密度的交通擁堵指標(biāo)、其他交通擁堵計算方法。對于城市交通擁堵評價指標(biāo)采用的是基于道路速度的交通擁堵指標(biāo)。
INRIX Index就是典型的基于道路速度的交通擁堵指標(biāo)。INRIX Index的計算核心就是基于的道路速度,通過INRIX Index來計算城市不同區(qū)域的交通擁堵指標(biāo)。計算步驟如下。
步驟1計算路段的實際路段速度CSij。課題時間間隔設(shè)置為15 min,故CSij計算公式為
(10)
式(10)中:CSij為路段i第j個時間間隔的實際的路段速度;n為第j個時間間隔內(nèi)通過路段i的車輛數(shù)量;Sk為通過車輛的實際速度。
步驟2計算時間間隔內(nèi)每個路段的INRIX Index指標(biāo)值A(chǔ)ij。故INRIX Index指標(biāo)值A(chǔ)ij計算公式為
(11)
式(11)中:RSij為路段i第j個時間間隔的路段自由流速度。
步驟3計算城市不同區(qū)域的INRIX Index指標(biāo)值Bij。把路段的長度作為權(quán)值系數(shù)對Aij進(jìn)行加權(quán)求平均,Bij計算公式為
(12)
式(12)中:Bij為城市區(qū)域i第j個時間間隔INRIX Index指標(biāo)值;Lk為路段長度;N為城市不同區(qū)域里面的路段總數(shù)。
通過網(wǎng)格劃分的方法,將成都市城區(qū)劃分為8×8不重疊的網(wǎng)格區(qū)域,每個網(wǎng)格長為3.2 km,寬為2.9 km。圖10所示為成都市網(wǎng)格區(qū)域劃分示意圖。
圖10 成都市網(wǎng)格區(qū)域劃分示意圖Fig.10 Schematic diagram of grid area division in Chengdu
通過INRIX Index計算城市不同區(qū)域的INRIX Index指標(biāo)值Bij。表3為2018年3月1日9:00—9:15成都市各個網(wǎng)格區(qū)域的擁堵指標(biāo)。
采用均方誤差(mean square error, MSE)、平均絕對誤差(root mean square error, MAE)來測試模型訓(xùn)練的效果,詳細(xì)計算公式如下。
(13)
(14)
為了驗證模型的預(yù)測效果,選取了CNN和CNN-Transformer來進(jìn)行對比。把數(shù)據(jù)集前23 d的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),后8 d的數(shù)據(jù)作為測試數(shù)據(jù)。時間選取了3月24日和3月27日,分別為周末和工作日。對整個城市區(qū)域的平均擁堵指標(biāo)進(jìn)行比較,城市區(qū)域的平均擁堵指標(biāo)為城市各個區(qū)域的擁堵指標(biāo)除以區(qū)域數(shù)而得到的平局值。預(yù)測模型采用CNN模型、Transformer模型、CNN-Transformer模型以及CS-Transformer模型進(jìn)行預(yù)測對比。
圖11~圖14為各個預(yù)測模型在3月24日的城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖。
圖11 CNN模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.11 Comparison chart of CNN model urban area average congestion index forecast
圖12 Transformer模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.12 Comparison of forecast of average congestion indexes in urban areas of Transformer model
圖13 CNN-Transformer模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.13 Comparison chart of forecast of average congestion indexes in urban areas of CNN-Transformer model
圖14 CS-Transformer模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.14 Comparison chart of forecast of average congestion index in urban area of CS-Transformer model
圖15~圖18為各個預(yù)測模型在3月27日的城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖。
圖15 CNN模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.15 Comparison chart of CNN model urban area average congestion index forecast
圖16 Transformer模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.16 Comparison of forecast of average congestion indexes in urban areas of transformer model
圖17 CNN-Transformer模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.17 Comparison chart of forecast of average congestion indexes in urban areas of CNN-Transformer model
圖18 CS-Transformer模型城市區(qū)域平均擁堵指標(biāo)預(yù)測對比圖Fig.18 Comparison chart of forecast of average congestion index in urban area of CS-Transformer model
再選用均方誤差(MSE)、平均絕對誤差(RMSE)來測試模型訓(xùn)練的效果,結(jié)果如表4所示。
表4 預(yù)測指標(biāo)對比表Table 4 Comparison of prediction indexes
通過預(yù)測對比圖以及MSE和MAE對幾個模型進(jìn)行對比可以發(fā)現(xiàn),僅僅使用Transformer模型進(jìn)行交通狀態(tài)預(yù)測,效果是最差的,這是因為單一的Transformer只捕捉到了交通數(shù)據(jù)的時間特征,而忽略了交通數(shù)據(jù)的空間特征。其次是CNN模型,因為CNN模型考慮了交通的空間特征和時間特征,所以預(yù)測效果比僅考慮了時間特征的Transformer效果要好,但由于單一的CNN模型不能夠有效地捕捉交通數(shù)據(jù)的時空特征,所以預(yù)測效果相比于CNN-Transformer要差一些。
CNN-Transformer模型由CNN空間組件和Transformer時間組件兩部分組成。使用CNN組件提取交通數(shù)據(jù)的空間特征,采用全連接神經(jīng)網(wǎng)絡(luò)增強(qiáng)模型的表達(dá)能力。然后將這些特性輸入Transformer組件,運用Transformer 組件捕捉交通數(shù)據(jù)的時間依賴特征。通過CNN-Transformer模型可以更加有效地提取交通數(shù)據(jù)的時空特征,進(jìn)一步提高預(yù)測精準(zhǔn)度。
CNN-Transformer模型雖然進(jìn)一步提高了精確度,但仍有一定缺陷。CNN-Transformer模型中的時間組件Transformer不包含循環(huán)和卷積,為了使模型利用序列的順序,必須給輸入的序列加入一些關(guān)于位置的信息。故在編碼器和解碼器堆棧底部的輸入嵌入中添加了位置編碼。位置編碼后的序列與嵌入序列具有相同的維數(shù),通過直接相加的方式向輸入的序列加入位置信息。由于考慮到了交通數(shù)據(jù)的時間連續(xù)性,位置編碼包括全局位置編碼和局部位置編碼,如果把位置編碼直接通過相加的方式為輸入的序列加入一些關(guān)于位置的信息,可能會隱藏序列之間的其他關(guān)系,導(dǎo)致訓(xùn)練模型更加困難,降低預(yù)測的精準(zhǔn)度。
CS-Transformer基于CNN-Transformer模型位置編碼的缺點,做出了進(jìn)一步改進(jìn),提出了一種改進(jìn)的方式,把位置編碼更好地融合到了輸入的序列中,既為輸入的序列加入一些關(guān)于位置的信息,又可以保證位置編碼不會隱藏序列之間的其他關(guān)系,導(dǎo)致訓(xùn)練模型更加困難,進(jìn)一步提高了預(yù)測的精準(zhǔn)度。
為了準(zhǔn)確地對城市交通狀態(tài)進(jìn)行預(yù)測,基于成都出租車的GPS數(shù)據(jù),根據(jù)城市交通數(shù)據(jù)流的時空特征,提出一種基于CNN和Transformer改進(jìn)的城市交通擁堵預(yù)測模型CS-Transformer。該模型通過使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取基于網(wǎng)格劃分的城市區(qū)域交通數(shù)據(jù)的空間特征,然后采用全連接神經(jīng)網(wǎng)絡(luò)增強(qiáng)模型的表達(dá)能力,最后運用Transformer網(wǎng)絡(luò)捕捉交通數(shù)據(jù)的時間依賴特征。所提出的改進(jìn)方式(相似性位置組合)把位置編碼更好地融合進(jìn)入輸入的序列當(dāng)中,既為輸入的序列加入一些關(guān)于位置的信息,又可以保證位置編碼不會隱藏序列之間的其他關(guān)系,導(dǎo)致訓(xùn)練模型更加困難。在CNN空間組件和Transformer時間組件加上一層基于注意力機(jī)制的位置組合方式,通過對CNN-Transformer模型的進(jìn)一步改進(jìn)提高預(yù)測的精準(zhǔn)度。
通過城市交通預(yù)測,可以及時地幫助出行者規(guī)劃出一條合理的路線,提高交通安全,避免時間的浪費,從而提高城市交通的運行效率,極大避免了城市交通擁堵的出現(xiàn)。對城市交通進(jìn)行準(zhǔn)確的預(yù)測對于支持城市交通的管理者管理城市網(wǎng)絡(luò),并合理地分配資源具有重大意義。