王慶榮,魏怡萌,朱昌鋒,田可可
(1.蘭州交通大學 電子與信息工程學院,蘭州 730070;2.蘭州交通大學 交通運輸學院,蘭州 730070)
隨著科技和社會的發展與進步,車輛和道路在增加,交通事故發生的頻率也在不斷增加,人們的生命和財產受到嚴重威脅[1]。預測交通是一項具有挑戰性的任務,雖然日常通勤是相對可預測的,但在節假日、休閑活動、惡劣天氣等情況下的交通出行均具有很強的隨機性,較難預測。目前,通過交通大數據預測交通事故風險成為研究熱點,如果能準確預測交通事故,并根據預測結果對交通事故的發生進行重新規劃,那么將提高城市交通效率,減少交通事故的發生導致的城市、個人經濟損失,同時也能保障人們的人身安全。
目前,研究人員對交通事故預測方面的研究可以分為兩大類。第一類是傳統預測方法,比如統計回歸法、灰色預測法等。傳統回歸法常用于短期數據變化的預測,但對于隨機性較大、干擾因素較多的交通數據來說,其預測的結果比較片面,可靠性難以得到保障。灰色預測法適用于樣本數量較少的預測,其模型簡單,對中短期預測有較好的預測結果,但對于中長期的預測仍有不足。第二類是神經網絡預測法,該方法的自主學習能力較好,非線性映射和高魯棒性也較強,在交通預測領域的應用前景較廣泛。雖然現有對交通事故的預測研究已有較好的成果,但交通事故的發生受很多復雜因素影響,如駕駛員的行為等不可控因素給交通事故的預測增加了很多困難,交通事故的復雜機制依舊不太明確。
經典的機器學習技術大多將交通事故的預測看作分類問題,目的是預測下個時段是否會發生交通事故,未考慮相關復雜因素的影響,因此預測結果相對較差。文獻[2]使用邏輯回歸方法對美國4 號洲際公里的交通事故進行預測,文獻[3]提出連續的非凸優化的k-means 算法,通過一個等效模型,利用矩陣優化理論分析和解決交通預測模型問題。文獻[4]通過動態預測模型建立基于馬爾可夫鏈和云模型預測道路交通事故的數量。文獻[5]提出使用多層感知器模型預測事故熱點地區的事故情況。文獻[6]提出基于反向傳播(Back Propagotion,BP)神經網絡的高速公路事故預測,但BP 神經網絡的缺點是易陷入局部最小點,收斂速度較慢,訓練時間也較長。文獻[7]提出一個組合預測優化模型預測交通事故,以提高預測精度,但在如何更好地結合單一模型方面還有待提高。文獻[8]提出灰色BP 神經網絡模型預測發生交通事故后的車型分擔率,并結合BP 神經網絡模型和灰色預測模型進行優勢互補,相比單純的BP 神經網絡有較高的預測精度和穩定性。文獻[9]建立了基于改進深度森林算法的交通事故風險狀態等級預測模型,通過對比傳統預測模型驗證該模型的優勢。文獻[10]通過引入交通風險概念,建立一個堆疊自編碼器模型,研究在城市道路中過往人流量的變化對交通事故風險的影響。文獻[11]對長短期記憶(Long Short-Term Memory,LSTM)模型進行改進后提出雙尺度LSTM 模型,用以預測交通事故,并得到了很好的效果,但混合模型的訓練時間較長,且未考慮復雜的天氣、路況等影響因素。
文獻[12]提出一種新的堆棧去噪卷積自動編碼模型用于預測城市交通事故風險,并使用空間依賴性學習事故中的隱藏因素,實驗表明該模型的性能優越,但該模型未考慮天氣因素的影響。文獻[13]提出一種基于時空注意力網絡的區域交通事故風險預測深度學習框架,并綜合影響交通事故的外部因素,提高了模型的預測性能。文獻[14]提出基于卷積神經網絡的車邊緣網絡,用于交通事故風險預測,經過實驗對比發現,該網絡的精度較傳統機器學習網絡較高。文獻[15]提出基于路網結構預測短期城市交通事故,采用多層圖卷積神經網絡和雙鏈LSTM 構建預測模型,發現時空特征屬性對最終的預測結果影響較大,但該模型存在多源數據和因子分析缺乏的問題。
綜上可知,目前交通事故風險預測的研究主要存在以下幾點問題:一是未考慮在實際場景下,發生交通事故的多源外部影響因素,如車流量、路況、天氣、興趣點(POI)等;二是未考慮時空特征對交通事故產生的影響;三是現有研究大部分是對交通事故量預測的研究,在交通事故風險預測方面的研究較少。
本文采用神經網絡方法構建基于時空特征的交通事故風險預測模型,在考慮時間依賴、空間依賴、時空依賴的情況下,在模型中使用改進的時空圖卷積網絡(Improved Spatio-Temporal Graph Convolutional Network,ISTGCN),通過添加批標準化(Batch Normalization,BN)層解決梯度消失爆炸問題,并采用均方誤差(Mean Squared Error,MSE)損失函數,解決樣本零膨脹問題。
圖卷積網絡(Graph Convolutional Network,GCN)[16]和卷積神經網絡(Convolutional Neural Networks,CNN)均可以作為特征提取器,但GCN 的對象是圖數據,其先從圖數據中提取相關特征,然后用這些特征對圖數據進行結點分類、圖分類、邊預測等。一個圖的結構如式(1)所示:

時空圖卷積網絡(Spatic-Temporal Graph Convolutional Network,STGCN)在交通中的應用最開始用于交通事故預測,后來逐漸被學者應用于交通流[17]的預測。由于交通流和交通事故均在一定的空間和時間背景下發生,因此均會受到時空特性相關復雜因素的影響,且交通事故相比于交通流受時空特性的影響更大,且交通流也是交通事故的一個影響因素。本文將STGCN 網絡用于交通事故預測中,并驗證其預測性能。
STGCN 網絡的輸入是N×C×V×T,先通過尺寸為1×1 的2d 卷積層輸出N×(C×K)×V×T,再與鄰接矩陣A(K×V×V)相乘,這里K表示子集的個數,得到空間卷積N×C×T×V,最后通過一個定義的時間長度n_t×1,2d 卷積層進行時間維度的卷積。其中:N為個數;C為通道數,即特征維度;V為頂點個數;T為時間維度。STGCN 網絡的結構如圖1 所示。

圖1 STGCN 網絡的基本結構Fig.1 Structure of STGCN network
交通事故的致因主要分為空間相關性、時間相關性和時空相關性三大類,本文對每類因素的不同特征采取不同的網絡結構,依次進行特征提取,并將處理后的相關數據放入本文模型中進行訓練。
ISTGCN 模型由2 個時空卷積模塊和1 個全連接層組成,時空卷積塊的每個模塊有2 個時間門控序列卷積層和中間1 個空間卷積模塊,如圖2 所示為本文模型的結構。首先使用GCN 網絡提取相關特征的空間屬性,然后使用門控線性單元(Gated Linear Units,GLU)來建模事故的相關時間依賴,最后通過時空卷積模塊,并利用圖形和卷積捕捉時空特征的相關動態變化。此外,以構造好的時空相關屬性的圖信號權重矩陣作為輸入,通過時空卷積模塊的時空相關性預測模塊,并將前3 個模塊的輸出進行加權融合,輸出最終的預測值。

圖2 ISTGCN 模型結構Fig.2 Structure of ISTGCN model
空間卷積層由圖形卷積組成,該卷積將路段及其鄰域的空間信息聚合在一起。時間卷積層在圖形卷積操作上捕獲時間維度的標準卷積層,并通過合并連續時隙中的有效信息以更新各個節點的有效信號。使用空間圖形卷積捕獲空間相關屬性,利用時間門控卷積捕獲時間相關屬性,并采用時空卷積塊融合空間域和時間域的特征。
為解決梯度爆炸問題,本文在模型中加入BN層,并采用MSE 損失函數,在計算損失時,對交通事故風險較大的樣本給予較大的權重,避免模型預測結果聚集在0 附近。
2.2.1 空間卷積模塊
在一般情況下,用圖形結構表示交通網絡,用數學公式表示路網。以往的研究忽略了交通網絡的空間屬性,交通網絡常被分為多個分段或網絡,導致網絡的連通性和整體性被破壞。本文模型將直接在圖形結構數據上使用圖形卷積,用來提取空間域中有意義的特征,并計算圖卷積中的核Θ。由于圖傅里葉基數[18]運算代價較高,因此采用切比雪夫多項式[19]逼近策略來克服該問題。

選擇幾個空間卷積空間段組成空間分量,選用相應的表示形式,并通過全連接(Fully Connected FC)層略微減小空間特征。然后,將特征輸入到堆疊的空間卷積塊中,一個空間卷積塊由幾個空間卷積層組成,聚集了路段與領域的空間信息,通過在該空間卷積層中加入BN 層來增加模型初始化的健壯性,提升訓練速度與分類效果。BN 層對于初始化的要求不高,所以可以使用較大的學習率進行訓練,假設第1 層的輸入和輸出分別為H(L)∈RN×F和H(l+1)∈RN×F,則空間卷積層的計算式如式(4)所示:

其中:BN 是標準歸一化;ReLU 為激活函數;H是可訓練參數。
2.2.2 時間卷積模塊
通過門控線性單元(Gated Linear Unit,GLU)提取時間相關屬性,相比LSTM 來說,GLU 模型更加簡單,收斂速度更快,需要的op(Operation)更少,這樣一來,模型所需非線性的操作也就更少,因此能夠有效降低梯度彌散現象,提高模型訓練及收斂速度。
在時間維度上采用一維因果卷積對數據進行并行處理,采用GLU 實現時間維度上的卷積操作,在每個節點上使用GLU 捕獲時間上的依賴關系。首先在CNN 的卷積層中引入門控線性單元機制,使卷積層的輸出變成式(5)所示,表示一個沒有非線性函數的卷積層輸出,再通過Relu 非線性激活函數的卷積層輸出,表達式如式(5)所示:

其中:X是層hl的輸入,即前一層的輸出;Q和V 表示不同的卷積核;n表示輸出通道數;b和c為偏置參數。式(5)后半部分含激活函數的卷積,即門控機制,其控制了X*Q+b當中的哪些有效信息可以傳去下一層,然后將該模型進行堆疊以便獲取時間相關屬性。在獲取空間維度上各個節點的相鄰信息時,采用基于圖形卷積操作上的時間卷積層,通過合并連續時隙中的信息來更新節點信息。
時間特征可以反映每個路段的歷史交通狀況,第1 個時間卷積層的第vi路況的輸入信號為,輸入信號的第j通道的計算式如式(6)所示:

2.2.3 時空卷積模塊
本文構造了時空卷積塊(Spatio-Temporal Convolutional Block,ST-Conv)以聯合處理圖結構時間序列,融合時空域的特征。ST-Conv 利用圖形和卷積捕捉空間和時間相關特征屬性的動態變化,時空卷積模塊可以根據特定情況的規模和復雜性進行堆疊和擴展。一個空間卷積塊由2 個時間卷積核和1 個空間層組成,空間卷積層是連接2 個時間卷積層的橋梁,通過時間卷積層可以實現圖卷積到時間卷積的快速時空傳播[20]。
將GCN 網絡與加入CNN 的門控線性單元GLU組合成ST-Conv,把輸入的數據先做時間維度的卷積,將時間維度卷積的輸出結果再做圖卷積操作,圖卷積的輸出結果經過1 個Relu 之后再進行1 個時間維度卷積,以上即為整個ST-Conv 的輸出。
此外,本文使用Relu 激活函數,在疊加2 個ST-Conv 之后增加1 個額外的時域卷積層,并和1 個全連通層共同作為輸出層,以防止過擬合,ST-Conv的輸入和輸出都是3D 的張量。
2.2.4 融合預測模塊
堆疊2 個時空卷積模塊及1 個時間卷積模塊的輸出后,通過拼接操作將空間、時間、時空以及外部信息融合在一起,形成一個融合的表示,將融合后的表示輸入,得到輸出層,并使用式(7)進行融合:

其中:*表示卷積操作;W1,W2,W3為卷積核參數;Y1,Y2,Y3為3 個模塊的輸出;FC 為全連接層,輸出結果Y∈RI×J是下一個階段發生交通事故的風險。
在交通大數據中,交通事故數據與交通流數據存在較大差別,例如交通事故樣本中會出現“零值”,代表傷害程度最低等級,比如未受傷。研究結果表明,當事故樣本中含有大量的零值時,容易導致各影響因素對“零值”的邊際概率被高估,若忽略這種零膨脹現象,將導致有偏估計,從而導致錯誤的結論[21]。因此,本文采用MSE 損失函數解決數據零膨脹問題,在計算損失時給予事故風險樣本較大的權重值,以避免預測值在0 附近。本文將事故風險分為3個等級(輕度、中度和重度),對應的風險值i分別為1、2、3,計算式如式(8)所示:

其中:Y表示真實值;Y'表示預測值;λi代表權重值(事故風險等級為i的樣本權重)。
本文模型的流程如圖3 所示。

圖3 本文模型的流程Fig.3 Procedure of model in this paper
選用Kaggle 上的2005~2018 年英國道路安全交通事故和車輛公開數據集,該數據集是實時收集的,使用了多個流量應用程序編程接口(Application Programming Interface,API)。這些API 廣播各種實體捕捉到的交通事件,比如英國和國家運輸部門、執法機構、交通攝像頭以及道路網絡內的交通傳感器,目前該數據集大約包含120 000 起事故記錄。本文選取了2005~2018 年期間部分事故數據進行驗證,并從2018 年1 月到2018 年12 月的全英國事故中,挑出部分事故嚴重的時間段進行了可視化,統計分析圖如圖4 所示。

圖4 不同時間下的交通事故量Fig.4 Traffic accidents at different time
本文收集的數據集均是英國的交通事故量、交通流量、天氣數據,此數據集一共包含32 條屬性,包括事故記錄ID、嚴重程度、開始時間、結束時間、溫度、經緯度、風向等。所選取數據的具體分類如下:
1)交通事故。該數據包含了2005~2018 年期間所有記錄的交通事故。除了街道相關信息、時間、地點等一些基本信息外,該數據集還包括撞車的原因。本文把數據集按事故嚴重程度等級劃分為1,2,3,數值越小,表示事故越嚴重,該數據集不同風險等級下的交通事故量統計如圖5 所示。

圖5 不同風險等級下的交通事故量Fig.5 Traffic accidents quantity under different risk levels
2)交通流量數據。由相關識別設備檢測到的行車記錄計算而來,行車記錄包括設備ID、車牌號、車輛過車時間、方向、車道號5 個屬性,正常路段車速對交通事故的影響如圖6 所示。

圖6 交通事故量與速度的關系Fig.6 Relationship between traffic accidents volume and speed
3)天氣數據。本文采集的天氣數據來自英國天氣數據中心,數據屬性有時間、天氣、經緯度、能見度、濕度、溫度、風向等。天氣狀況對交通事故的影響如圖7 所示。對天氣狀況進行標簽化,將天氣條件惡劣程度等級劃分為-1~9,數值越小,表示天氣越惡劣。由圖7 可以看出天氣條件嚴重惡劣情況下造成的交通事故量最多。

圖7 交通事故量與天氣的關系Fig.7 Relationship between traffic accidents volume and weather
4)POI 數據,POI 數據也來自英國公共數據中心,包含學校、購物中心等的POI 坐標。
對收集到的數據進行去除冗余值、補全缺失值等預處理操作之后,將其轉化為權重矩陣的形式,并作為模型空間預測單元的輸入。數據對象每一個屬性權重都是該權重占所有權重的比例,定義一個二元空間對稱矩陣H,以此來表達n個節點位置區域的相鄰關系,如式(9)所示:

其中:wi j指的是第i行數據對象的第j個屬性占所有屬性的比例。
圖8 為構造圖形結構[22]的數據權重矩陣,數據點vt為一個圖形信號,該圖形信號定義在無向圖G=(vt,ε,w)上,其權重為圖8 的wi j,vt是一組有向的頂點,對應于交通道路網絡中監測站的觀測值,ε表示站與站之間連通的一組邊。

圖8 圖形結構的數據權重矩陣Fig.8 Data weight matrix of the graph structure
本文使用平均相對誤差(Mean Relative Error,MAE)、均方根誤差(Root Mean Square Error,RMSE)、召回率(Recall)等評價指標評估預測模型,相關計算式如下所示:

其中:y(t)為t時刻交通事故的實測值;(t)為預測值;N為樣本個數;TTP表示實則為正類且預測為正類的樣本數目;FFN表示實則為正類且預測為負類的樣本數目。
本文實驗在Python3.6 和TensorFlow1.9 的環境下進行,將所選用數據集的交通流量、交通事故量、外部特征屬性作為訓練輸入,2018 年的交通流量、外部特征作為預測模型輸入,模型輸出交通事故量。在實驗中,按照時間順序以6∶2∶2 的比例劃分訓練集、驗證集、測試集。基于TensorFlow 框架實現ISTGCN 模型,經過實驗比較,使用3 層圖卷積,卷積核大小均為3;GLU 為3 層,每層隱藏單元個數為128,使用BN 層將數據歸一化。每個實驗包含7 個對比交通事故預測模型:歷史平均HA 模型(利用相同時段事故風險的平均值預測下一時段的事故風險)、基于提升樹的機器學習(XGBoot)模型[23]、多層感知機(Multilayer Perceptron,MLP)模型、門控循環單元網絡(Gate Linear Unit,GLU)模型[24]、基于CNN的堆疊降噪自動編碼器模型、CNN 和LSTM 相結合(ConvLSTM)模 型[25]和本文 所提出 的ISTGCN模型。
3.4.1 對比實驗分析
將本文模型和對比模型在英國真實數據集上進行預測分析,分別迭代200 次和300 次,所有對比模型均在同一數據集下進行調試,結果如表1 所示。由表1 可以看出,迭代300 次的整體預測結果比迭代200 次的好,HA、XGBoot、MLP 和GLU 模型的整體預測效果都比較差,這些模型均沒有捕獲空間特性。SDCAE 模型較HA、XGBoot、MLP 和GLU4 個模型的整體預測效果較好,但卻忽略了時間的長短期相關性。ConvLSTM 模型同時考慮了時間和空間相關屬性依賴,但卻忽略了時空特性對交通事故預測的影響,相比之下,本文ISTGCN 模型在同時考慮時間、空間、時空相關屬性依賴后,取得了較好的預測結果。

表1 不同模型的結果對比Table 1 Results comparison of different models
3.4.2 模型結構分析
對本文ISTGCN 模型的模塊結構進行對比分析,在去掉空間層和時空層后,對剩下結構進行模型預測訓練。由于模型在迭代300 次時效果最好,因此本文結構分析分別是在迭代300 次后的預測結果,預測結果如表2 所示,其中S、ST 分別代表空間層和時空層。由表2 可以看出,ISTGCN 模型的每塊結構都有不同的作用性能,去除任一模塊結構,得到的預測結果都很差,ISTGCN 模型采用空間層獲取空間相關屬性,使用時間層獲取時間相關屬性,利用時空卷積層捕獲時空相關特征,只有這3 種結構相互作用,才能得到最佳性能。為驗證ITSGCN 模型性能,使用運行時間消耗這一指標進行性能分析,表3 所示為不同模塊結構訓練時間的對比,本文模型ISTGCN 實現了更快的訓練速度,在去除任意結構之后性能表現都不佳,只有3 種結構彼此相互作用,才能實現最佳性能。

表2 本文模型結構對預測性能的影響Table 2 Influence of structure of model in this paper on prediction performance

表3 數據集訓練時間消耗Table 3 Training time consumption of data sets 單位:s
3.4.3 激活函數分析
分別用3 種不同激活函數驗證模型性能,迭代次數選擇300 次,對比在激活函數前和激活函數后加入BN 層的變化,激活函數對模型預測性能的影響結果如表4 所示。由表4 可以看出,當激活函數為ReLU 的時候,預測性能整體較好,將BN 層加在激活函數前比加在激活函數之后效果更好,這是因為卷積層在進行BN 操作時,會把數據分布在指定的區間,當ReLU 函數再進行激活操作時,神經元失活的概率會下降,模型性能得到較大幅度的提升。

表4 激活函數對模型預測性能的影響Table 4 Impact of activation functions on predictive performance
如果先在ReLU 函數后進行BN 操作,ReLU 函數激活后的部分神經元已失活,參與BN 操作時的神經元數量就會減少,模型的泛化能力降低。由表4 也可以看出ReLU 函數在BN 層前后的變化并沒有Sigmoid 和Tanh 函數變化大,這是由于BN 層在ReLU 函數前可以讓ReLU 函數更好地產生特征選擇作用,由于輸入值的分布更接近于零均值,此時ReLU 函數可以展現單側抑制作用,且不會出現輸入全分布在0 的一側。但如果將BN 操作放在ReLU 函數之后,在激活函數后進行歸一化能更好地保證下一層的輸入是零均值,能避免下一層連接權重的梯度同號,模型訓練效率更高,收斂更快。由表5 結果可知,將ReLU 函數放在BN 前后的差別不大,但也因不同實驗而有區別。
本文提出一種基于時空圖卷積的交通事故風險預測模型,以多源異構數據作為輸入,分別基于空間卷積層、時間卷積層和時空卷積層處理不同類型的特征,并將處理后的隱含特征拼接成緊湊的表示,饋入全連接層,學習不同特征之間的相互作用,預測下一個階段的交通事故風險。在空間卷積層中加入BN 層,解決梯度爆炸問題,應用MSE 損失函數來解決數據零膨脹問題。在英國真實數據集上的實驗結果表明,與GLU、SDCAE、ConvLSTM 模型相比,該模型的RMSE 指標分別降低3.28%、4.87%、4.19%。下一步將優化網絡結構與參數,通過收集違章、行人、出租車等數據,訓練并優化模型,提高模型的運行速度和預測效率。