本發(fā)明屬于交通管理與智能交通領域,涉及一種基于注意力的長短時空圖神經(jīng)網(wǎng)絡的交通流預測方法。
背景技術:
1、交通流量預測在現(xiàn)代城市交通管理、智能交通系統(tǒng)建設以及出行規(guī)劃中具有不可或缺的重要應用價值。通過準確的交通流量預測,交通管理部門能夠優(yōu)化交通信號燈的時序控制,合理調(diào)配交通資源,從而有效緩解交通擁堵,提升道路網(wǎng)絡的整體通行效率。此外,精準的流量預測還可以為個體出行者提供高質(zhì)量的實時路線規(guī)劃建議,幫助其規(guī)避高峰時段或擁堵路段,實現(xiàn)更加高效和舒適的出行體驗。這不僅提升了城市交通系統(tǒng)的運行效率,同時也為社會經(jīng)濟的可持續(xù)發(fā)展創(chuàng)造了有利條件。傳統(tǒng)的交通流量預測方法,在早期的研究與應用中取得了一定成果。然而,由于這些方法在捕捉交通流量隨時間和空間變化的復雜動態(tài)特性上存在顯著局限性,其預測精度往往難以滿足現(xiàn)代交通系統(tǒng)的高要求。這主要是因為交通流量受多種因素的綜合影響,其時空分布具有高度的非線性與動態(tài)特性,單純依賴傳統(tǒng)方法難以準確表征這些復雜特征。近年來,隨著深度學習技術的飛速發(fā)展,越來越多的研究將其引入交通流量預測領域。深度學習方法憑借在處理復雜非線性和高維數(shù)據(jù)方面的優(yōu)勢,在一定程度上彌補了傳統(tǒng)方法的不足,顯著提升了流量預測的精度。然而,即便如此,現(xiàn)有深度學習模型在建模交通流量的時空依賴關系方面仍存在明顯不足。許多模型僅關注時間維度或空間維度的單一依賴特性,或者對時空依賴關系進行簡單的線性建模,無法充分挖掘交通流量在時空維度上的深層關聯(lián)性。這些模型在預測未來時間段的交通流量時,依然難以做到高精度和高魯棒性,限制了其在實際場景中的廣泛應用。
2、因此,需要一種基于注意力的長短時空圖神經(jīng)網(wǎng)絡的預測方法。
技術實現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種基于注意力的長短時空圖神經(jīng)網(wǎng)絡的交通流預測方法。
2、為達到上述目的,本發(fā)明提供如下技術方案:
3、一種基于注意力的長短時空圖神經(jīng)網(wǎng)絡的交通流預測方法,其核心步驟包括:
4、s1:獲取交通的流量歷史數(shù)據(jù),包括流量、速度等特征,根據(jù)交通網(wǎng)絡中的路段或節(jié)點關系構建鄰接矩陣,以表示節(jié)點間的空間依賴,將歷史數(shù)據(jù)按時間窗口分割,并對數(shù)據(jù)進行歸一化處理;
5、s2:將流量歷史數(shù)據(jù)和鄰接矩陣輸入模型;
6、s3:通過時空模塊分別提取時間特征和空間特征,并通過前饋神經(jīng)網(wǎng)絡,來提高泛化能力;
7、s4:通過空間注意力模塊,通過一個三層的空間注意力塊實現(xiàn)對共享層中重要特征的差異化提取。注意力機制根據(jù)的注意力權重來衡量輸出,輸出結果合并到lstm中,并通過lstm處理密集層的信息,以執(zhí)行任務的預測,最后融合長短流量預測得到最終的預測結果;
8、所述s1中,獲取時間序列數(shù)據(jù)以及鄰接矩陣數(shù)據(jù),根據(jù)接受的數(shù)據(jù)構建維度為(v,e,a),其中v代表節(jié)點數(shù)量,代表交通網(wǎng)絡中包含的路段,e代表連接節(jié)點的邊集,a代表鄰接矩陣;
9、所述s2中,假設我們有n個節(jié)點(即交通網(wǎng)絡中的路段),每個節(jié)點的特征為一個時間序列,表示該節(jié)點在不同時間步的交通流特征;
10、鄰接矩陣是一個n×n的矩陣,表示交通網(wǎng)絡中節(jié)點之間的空間依賴關系;
11、在模型中,時間序列數(shù)據(jù)和鄰接矩陣將作為輸入,經(jīng)過時空模塊和空間注意力模塊處理時間依賴關系和空間依賴關系;
12、進一步的,s3具體包括:
13、s31.構建空間gat塊,包含多頭注意力機制,提取空間特征;
14、s32.構建tcn塊,包含兩種卷積核,一種長tcn塊,一種短tcn塊,用于分別模擬長期和短期依賴關系;
15、進一步的,所述s31中,
16、利用gat-tcn(圖注意力網(wǎng)絡-時域卷積網(wǎng)絡)來分別提取時空特征,在空間gat(圖注意力網(wǎng)絡)塊中,采用多頭注意機制,使模型能夠通過多個獨立的注意塊共同學習空間依賴性;
17、在tcn(時域卷積網(wǎng)絡)塊中,,采用了兩種不同卷積核來提取時間序列特征;
18、最終特征提取結果輸出到空間注意力模塊以及前饋神經(jīng)網(wǎng)絡。引入自注意力機制來傳播gat,對于給定的節(jié)點特征集r代表實數(shù)集,f為每個節(jié)點的特征數(shù),任意兩個節(jié)點間的注意力系數(shù)eij表示為:
19、
20、利用softmax函數(shù)將注意系數(shù)歸一化成易于比較的形式:
21、aij=softmax(leakyrelu(eij))
22、其中softmax函數(shù)是激活函數(shù);leakyrelu函數(shù)是一種用于神經(jīng)網(wǎng)絡的激活函數(shù),a為所有節(jié)點使用共享的自注意力機制,eij是任意兩個節(jié)點間的注意力系數(shù);
23、然后利用gcn卷積規(guī)則更新這些系數(shù)的模型特征:
24、
25、其中h為節(jié)點特征集,激活函數(shù)(例如relu),n為節(jié)點數(shù),a為所有節(jié)點使用共享的自注意力機制;w為學習的權重矩陣;將輸入數(shù)據(jù)傳遞到tcn層,應用多個1d卷積層,使用1d反卷積層恢復到原始尺寸,輸出預測值;
26、
27、
28、其中y(t)代表預測值,x(t)代表輸入值,w(k)代表卷積核,k代表卷積核的數(shù)量,是克羅內(nèi)克積代表張量積的特殊形式,dk代表延遲。
29、所述s4中,空間注意力模塊用來提取交通數(shù)據(jù)的空間相關性,模塊中的attention塊利用分數(shù)函數(shù)來決定注意力權重的大小,并得到q,k,v三個矩陣;
30、注意力機制基于鍵k和查詢q之間的關系來縮放v的值,如下所示:
31、att(q,k,v)=fa(q,k)v
32、其中att代表注意力機制,fa()是分數(shù)函數(shù),q,k,v是三個矩陣;
33、需要提高學習能力,可以將q,k,v線性投影到不同的子空間,通過計算單個注意力頭的值,合并計算多個注意力頭得到輸入y;
34、multihead(q,k,v)=[head1·head2·...·head0]w0
35、
36、
37、其中分別是q,k,v的權值矩陣,w0是線性組合的輸出,softmax是激活函數(shù),multihead代表多頭注意力機制,head代表注意力頭;
38、最后的輸出結果合并到lstm中,通過門控機制將時間卷積和空間注意力的結果融合;
39、lstm采用一個cell?state來保存長期記憶,再配合門機制對信息進行過濾,從而達到對長期記憶的控制,具體來說:
40、輸入門ft的作用在于決定需要更新的單元狀態(tài):
41、ft=σg(wfxt+ufht-1+bf)
42、而遺忘門的神經(jīng)層則負責對前一時刻聯(lián)合狀態(tài)中的信息進行篩選和處理,如下面兩個公式所示;
43、具體而言,遺忘門決定前一時刻狀態(tài)中的信息是被保留還是被丟棄,進而對單元狀態(tài)進行更新;
44、it=σg(wixt+utht-1+bi)
45、st=tanh(wc·[wcxt+ucht-1]+bc
46、在此基礎上,輸入門和遺忘門的作用被進一步整合,從而共同影響單元狀態(tài)的更新過程;
47、ct=ft·ct-1+it·st
48、最終,輸出值層的功能是確定將多少處理后的信息傳遞至下一時間步的輸入閾值層,并輸出結果;
49、ot=σg(woxt+uoht-1+bo)
50、而隱藏狀態(tài)的信息更新則如下所展現(xiàn),通過一系列的非線性變換實現(xiàn);
51、ht=ot·tanh(ct)
52、其中wf,bf,wi,bi,wc,bc,wo和bo是每個閾值層的權值和偏移量,ft是輸入門,it是遺忘門,ot是輸出門,ct是記憶狀態(tài),ht是隱藏狀態(tài),σ和tanh是激活函數(shù)。
53、進一步的,所述s32中,
54、利用gat-tcn(圖注意力網(wǎng)絡-時域卷積網(wǎng)絡)來分別提取時空特征;
55、在tcn(時域卷積網(wǎng)絡)塊中,為了有效捕捉短期和長期依賴關系,本發(fā)明在設計模型時采用了兩種不同大小的卷積核,從而實現(xiàn)了對這兩類時序特征的不同建模,以分開短期和長期的依賴關系;
56、為了更精確地捕捉短期和長期的時間依賴關系,在短期時間卷積網(wǎng)絡(shorttcn)和長期時間卷積網(wǎng)絡(long?tcn)的設計中采用了不同大小的卷積核;
57、在短tcn中,我們選用了大小為1×1,1×2和1×3的卷積核,用以模擬較短時間尺度內(nèi)的依賴關系;
58、相比之下,在長tcn的設計中,為了適應更廣泛的時間依賴建模需求;
59、我們采用了1×1,1×5和1×6的卷積核,從而能夠有效提取長期時間依賴特征,然后分別合并三個卷積得到的結果,輸出預測值;
60、s3中,為了提升單個任務的泛化性能,使用了一種基于多層前饋神經(jīng)網(wǎng)絡(feedforward?neuralnetwork,fnn)的特征捕獲方法;
61、該方法通過多個全連接的隱藏層對時空模塊的單任務輸出進行處理,具體而言,框架的fnn結構由三個完全連接的隱藏層組成;
62、前饋神經(jīng)網(wǎng)絡通過逐層的信息傳遞,得到網(wǎng)絡最后的輸出a(l);
63、整個網(wǎng)絡可以看做是一個復合函數(shù),將向量x作為第1層的輸入a(0),將第l層的輸出a(l)作為整個函數(shù)的輸出;
64、令a(l)表示l層的激活向量,θ(l)表示一個將l層映射到l+1層的權重的矩陣表示l層神經(jīng)元k到l+1層神經(jīng)元j的權重;
65、fnn通過三個完全連接的隱藏層擁有的神經(jīng)網(wǎng)絡可以用以下矩陣構建:
66、
67、其中σ為激活函數(shù),σ的取值為0到1;
68、s4的最終預測結果映射返回到現(xiàn)實空間中,從而得到預測交通流數(shù)據(jù);
69、利用平均絕對誤差(mae),平均絕對百分比誤差(mape)和均方根誤差(rmse)計算實際值和預測值之間的損失;
70、平均絕對誤差:
71、
72、均方根誤差:
73、
74、平均絕對百分比誤差:
75、
76、其中xi,j和分別代表實際值和預測值,n和q為樣本個數(shù)。
77、根據(jù)本公開的實施例,獲取預測點的交通的歷史交通流數(shù)據(jù)的步驟包括:獲取交通的流量歷史數(shù)據(jù),包括流量、速度等特征,根據(jù)交通網(wǎng)絡中的路段或節(jié)點關系構建鄰接矩陣,以表示節(jié)點間的空間依賴,將歷史數(shù)據(jù)按時間窗口分割;
78、根據(jù)本公開的實施例,對獲取的交通流數(shù)據(jù)進行預處理和特征讀取的步驟包括:獲取時間序列數(shù)據(jù)以及鄰接矩陣數(shù)據(jù),根據(jù)接受的數(shù)據(jù)構建維度為(v,e,a),將歷史數(shù)據(jù)按時間窗口分割,并對數(shù)據(jù)進行歸一化處理;每個節(jié)點的特征為一個時間序列,表示該節(jié)點在不同時間步的交通流特征;鄰接矩陣是一個n×n的矩陣,表示交通網(wǎng)絡中節(jié)點之間的空間依賴關系;然后將時間序列數(shù)據(jù)和鄰接矩陣將作為輸入,經(jīng)過時空模塊和空間注意力模塊處理時間依賴關系和空間依賴關系;然后利用gat-tcn來分別提取時空特征,在空間gat塊中,采用了多頭注意機制,使模型能夠通過多個獨立的注意塊共同學習空間依賴性;在tcn塊中,采用了兩種不同卷積核來提取時間序列特征。最終特征提取結果輸出到空間注意力模塊以及前饋神經(jīng)網(wǎng)絡;
79、根據(jù)本公開的實施例,對于輸出的特征提取結果,使用了一種基于多層前饋神經(jīng)網(wǎng)絡(feedforwardneural?network,fnn)的特征捕獲方法;該方法通過多個全連接的隱藏層對時空模塊的單任務輸出進行處理,具體而言,框架的fnn結構由三個完全連接的隱藏層組成,前饋神經(jīng)網(wǎng)絡通過逐層的信息傳遞,得到網(wǎng)絡最后的輸出a(l);對于輸出的特征提取結果,空間注意力模塊用來提取交通數(shù)據(jù)的空間相關性,模塊中的attention塊利用分數(shù)函數(shù)來決定注意力權重的大小,并得到q,k,v三個矩陣;注意力機制基于鍵k和查詢q之間的關系來縮放v的值;
80、提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序或代碼,當由處理器加載并執(zhí)行時,能夠?qū)崿F(xiàn)所述的交通流預測方法的步驟。
81、本發(fā)明的有益效果在于:本發(fā)明通過結合圖神經(jīng)網(wǎng)絡(gat)和時間卷積網(wǎng)絡(tcn),實現(xiàn)了對交通流時空依賴關系的精準建模,從而有效提高了交通流預測的精度;利用空間注意力模塊和多頭注意機制,不僅能捕捉交通網(wǎng)絡中的復雜空間依賴關系,還能有效提取短期和長期的時間依賴特征,適應了交通流量的動態(tài)變化特性;引入多層前饋神經(jīng)網(wǎng)絡(fnn),有助于提升模型對不同交通場景的適應能力,增強了泛化性能。
82、本發(fā)明的其他優(yōu)點、目標和特征在某種程度上將在隨后的說明書中進行闡述,并且在某種程度上,基于對下文的考察研究對本領域技術人員而言將是顯而易見的,或者可以從本發(fā)明的實踐中得到教導。本發(fā)明的目標和其他優(yōu)點可以通過下面的說明書來實現(xiàn)和獲得。