張鵬禎,左興權(quán),黃 海
1.北京郵電大學(xué) 計(jì)算機(jī)學(xué)院,北京 100876
2.可信分布式計(jì)算與服務(wù)教育部重點(diǎn)實(shí)驗(yàn)室,北京 100876
公交客流預(yù)測(cè)根據(jù)過去一段時(shí)間的客流量及其相關(guān)信息來預(yù)測(cè)未來一段時(shí)間內(nèi)的客流量,對(duì)公交系統(tǒng)的組織和運(yùn)營(yíng)具有重要意義[1]。公交短時(shí)客流預(yù)測(cè)一般指預(yù)測(cè)未來5~15 min 的客流,主要包括兩種模型:線性預(yù)測(cè)模型和非線性預(yù)測(cè)模型。線性預(yù)測(cè)模型包括自回歸移動(dòng)平均(autoregressive integrated moving average,ARIMA)模型[2]、卡爾曼濾波(Kalman filtering)模型[3]等,這類模型具有實(shí)現(xiàn)簡(jiǎn)單、預(yù)測(cè)結(jié)果穩(wěn)定的優(yōu)點(diǎn),但只適用于平穩(wěn)的時(shí)間序列預(yù)測(cè),無(wú)法捕捉客流的時(shí)變性和隨機(jī)性帶來的復(fù)雜非線性關(guān)系。非線性模型包括支持向量回歸(support vector regression,SVR)模型[4]、最小二乘支持向量機(jī)(least squares support vector machine,LSSVM)模型[5],以及深度置信網(wǎng)絡(luò)[6](deep belief network,DBN)、棧式自動(dòng)編碼器[7](stacked autoencoder,SAE)和長(zhǎng)短期記憶網(wǎng)絡(luò)[8](long short-term memory,LSTM)等深度學(xué)習(xí)模型。
當(dāng)前公交短時(shí)客流預(yù)測(cè)方法主要利用單條線路的客流進(jìn)行預(yù)測(cè),忽略了多條線路客流之間的相似性對(duì)客流預(yù)測(cè)的提升效果。通過分析公交乘客刷卡數(shù)據(jù),發(fā)現(xiàn)一些公交線路的客流量波動(dòng)趨勢(shì)存在相似性,組合多條線路更能刻畫客流量的整體分布趨勢(shì),減少由于過度擬合導(dǎo)致的預(yù)測(cè)精度下降情況。此外,引入其他公交線路的客流也有利于捕捉當(dāng)前線路的客流量實(shí)時(shí)波動(dòng)情況。在公交實(shí)際運(yùn)行過程中,客流量的變化和分布往往受到諸多因素影響,近期的客流對(duì)于預(yù)測(cè)任務(wù)具有更高的參考價(jià)值,但時(shí)間跨度的縮短會(huì)導(dǎo)致因數(shù)據(jù)量不足而難以擬合客流趨勢(shì)的問題,多條線路同時(shí)預(yù)測(cè)擴(kuò)大了訓(xùn)練數(shù)據(jù)的規(guī)模,可以在一定程度上彌補(bǔ)這一問題。鑒于此,引入多任務(wù)學(xué)習(xí)方法來建立公交客流預(yù)測(cè)模型。
多任務(wù)學(xué)習(xí)(multi-task learning,MTL)同時(shí)考慮多個(gè)相關(guān)任務(wù)的學(xué)習(xí)過程,其目的在于利用任務(wù)間的內(nèi)在關(guān)系來提高單個(gè)任務(wù)學(xué)習(xí)的泛化性能[9],進(jìn)而改善任務(wù)的學(xué)習(xí)效果。對(duì)于需要大量標(biāo)注數(shù)據(jù)的監(jiān)督機(jī)器學(xué)習(xí)方法,多任務(wù)學(xué)習(xí)框架可以幫助目標(biāo)任務(wù)利用其他任務(wù)的經(jīng)驗(yàn)信息,有效緩解數(shù)據(jù)需求的壓力并防止學(xué)習(xí)資源的浪費(fèi)。目前,多任務(wù)深度學(xué)習(xí)已被用于多個(gè)領(lǐng)域的時(shí)間序列預(yù)測(cè)問題,已有研究表明[10-12]:多任務(wù)學(xué)習(xí)框架可以隱式地捕捉多個(gè)時(shí)間序列之間的動(dòng)態(tài)關(guān)系,提高時(shí)間序列預(yù)測(cè)的精度。
近些年,一些研究將多任務(wù)學(xué)習(xí)用于城市交通客流預(yù)測(cè)問題。Zhong等[13]融合公交、地鐵、出租車等多元客流數(shù)據(jù),通過正則化方式建立多任務(wù)學(xué)習(xí)模型,預(yù)測(cè)區(qū)域內(nèi)的未來客流。Bai等[14]利用多任務(wù)框架預(yù)測(cè)區(qū)域內(nèi)的出租車乘客人數(shù),根據(jù)興趣點(diǎn)(point of interest,POI)信息和歷史乘客需求為每個(gè)目標(biāo)區(qū)域選擇相似區(qū)域,并利用卷積神經(jīng)網(wǎng)絡(luò)提取它們的空間相關(guān)性。Chidlovskii[15]將城市公交網(wǎng)絡(luò)劃分為多個(gè)區(qū)域,利用多任務(wù)支持向量機(jī)算法預(yù)測(cè)每個(gè)區(qū)域的上車乘客數(shù)目。Luo等[16]將多任務(wù)學(xué)習(xí)用于單條公交線路的細(xì)粒度客流預(yù)測(cè),利用車載客流和上下車客流來構(gòu)建預(yù)測(cè)模型。當(dāng)前還沒有借助多任務(wù)學(xué)習(xí),利用多條公交線路的客流信息來提升客流預(yù)測(cè)效果的研究。
多任務(wù)學(xué)習(xí)本質(zhì)上是一種歸納遷移機(jī)制,該方法基于共享表示并行訓(xùn)練任務(wù),在并行訓(xùn)練的同時(shí)分享不同任務(wù)學(xué)到的知識(shí),將相關(guān)任務(wù)訓(xùn)練數(shù)據(jù)中包含的領(lǐng)域信息作為一種誘導(dǎo)偏差[17]。本文將多任務(wù)學(xué)習(xí)引入到公交客流預(yù)測(cè)中,提出一種基于多任務(wù)學(xué)習(xí)的公交短期客流預(yù)測(cè)方法(multi-task learning based method for short term bus passenger flow prediction,MTL-BFP),利用多條相關(guān)線路的客流預(yù)測(cè)任務(wù)來約束深度學(xué)習(xí)模型的潛在共享參數(shù)。首先,利用灰色關(guān)聯(lián)分析法[18](grey relation analysis,GRA)和皮爾遜相關(guān)系數(shù)[19](Pearson correlation coefficient,PCC)獲取不同公交線路客流量之間的相關(guān)關(guān)系;然后,將與當(dāng)前線路相關(guān)度高的若干線路的客流預(yù)測(cè)任務(wù)作為輔助任務(wù),建立了一個(gè)硬參數(shù)共享的多任務(wù)循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,模型利用門控循環(huán)單元(gate recurrent unit,GRU)神經(jīng)網(wǎng)絡(luò)來捕捉客流的時(shí)序特征。將該模型用于真實(shí)公交線路的短時(shí)客流預(yù)測(cè),實(shí)驗(yàn)結(jié)果表明,該模型在預(yù)測(cè)精度方面優(yōu)于傳統(tǒng)時(shí)間序列預(yù)測(cè)模型以及僅考慮單條線路客流的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。
本文利用當(dāng)前公交線路及其相關(guān)線路的歷史客流量數(shù)據(jù)和時(shí)間特征信息,預(yù)測(cè)當(dāng)前線路未來一個(gè)時(shí)間步長(zhǎng)的上車客流量,即在該時(shí)間步長(zhǎng)內(nèi)的上車總?cè)藬?shù)。
本文將公交路網(wǎng)描述為一個(gè)有權(quán)無(wú)向圖G=(V,E,W)。集合V中每個(gè)節(jié)點(diǎn)代表一條公交線路,|V|=N為公交線路的數(shù)量;邊集合E表示線路之間的相關(guān)關(guān)系;W=RN×N為相關(guān)度系數(shù)矩陣,其中元素分別表示線路Li和Lj間的皮爾遜相關(guān)系數(shù)和灰色關(guān)聯(lián)度系數(shù),i=1,2,…,N,j=1,2,…,N。對(duì)于目標(biāo)預(yù)測(cè)線路(即要預(yù)測(cè)客流的線路)Lk,用前s步的特征信息X={xt-s,xt-s+1,…,xt-1}來預(yù)測(cè)下一步的客流Yt。
公交線網(wǎng)由多條公交線路組成,公交線路的客流一般具有高峰、平峰、低峰時(shí)間段,不同公交線路的客流分布呈現(xiàn)一定的相似性。特別是經(jīng)過共同區(qū)域或者存在換乘關(guān)系的一些公交線路,它們的客流存在時(shí)空相關(guān)性。
多任務(wù)學(xué)習(xí)框架可以同時(shí)訓(xùn)練多個(gè)客流分布具有相關(guān)性或相近性的客流預(yù)測(cè)任務(wù),并在底層共享參數(shù),幫助模型聚焦到多個(gè)任務(wù)共同反應(yīng)的特征,提高預(yù)測(cè)精度,因此本文利用多任務(wù)學(xué)習(xí)模型來預(yù)測(cè)當(dāng)前線路的客流。
多任務(wù)深度學(xué)習(xí)主要分為兩種,硬參數(shù)共享和軟參數(shù)共享?;谟矃?shù)共享的多任務(wù)學(xué)習(xí)方法在神經(jīng)網(wǎng)絡(luò)的底層共享參數(shù),學(xué)習(xí)公共特征子空間;在高層為特定任務(wù)建立特定網(wǎng)絡(luò)模型,各個(gè)模型之間相互獨(dú)立,用于保留更多的任務(wù)個(gè)性特征。在共享層中,所有任務(wù)的參數(shù)是完全相同的,以此有效防止過擬合問題,提高模型泛化能力。在軟參數(shù)共享模式中,每個(gè)任務(wù)都有各自的參數(shù)和模型,參數(shù)之間通過正則化距離約束在一起,任務(wù)之間的參數(shù)相似但不同。
對(duì)于公交線路的短時(shí)客流預(yù)測(cè)任務(wù),本文利用多任務(wù)學(xué)習(xí)方式約束深度學(xué)習(xí)模型中的底層參數(shù),通過共享層中的共享表示引導(dǎo)模型學(xué)習(xí)多條線路的客流量波動(dòng)趨勢(shì),提高模型參數(shù)的通用性,降低模型對(duì)數(shù)據(jù)波動(dòng)的敏感性,進(jìn)而改善模型的預(yù)測(cè)效果。
MTL-BFP的流程如圖1所示。首先利用2.2節(jié)中的方法計(jì)算所有線路之間的相關(guān)系數(shù);然后,利用2.3節(jié)中的方法篩選目標(biāo)預(yù)測(cè)線路的相關(guān)線路;接著,按2.1節(jié)中的方法構(gòu)造目標(biāo)預(yù)測(cè)線路及相關(guān)線路的特征矩陣,作為多任務(wù)深度學(xué)習(xí)模型的輸入。多任務(wù)學(xué)習(xí)模型經(jīng)過訓(xùn)練后,用于客流預(yù)測(cè)。
圖1 MTL-BFP的流程圖Fig.1 Flow chart of MTL-BFP
本文使用硬參數(shù)共享模式建立多任務(wù)深度學(xué)習(xí)模型,如圖2所示。模型中的每個(gè)任務(wù)都代表一條公交線路的短時(shí)客流預(yù)測(cè)任務(wù),所涉及線路包括目標(biāo)預(yù)測(cè)線路及其相關(guān)線路。假設(shè)有n+1 個(gè)任務(wù),則第0個(gè)任務(wù)為目標(biāo)線路的預(yù)測(cè)任務(wù),第1到n個(gè)任務(wù)為相關(guān)線路的預(yù)測(cè)任務(wù)。每個(gè)任務(wù)都有一個(gè)私有模塊(全連接層),用于擬合單條公交線路的客流特征。此外,模型還包括一個(gè)共享模塊用于共享網(wǎng)絡(luò)參數(shù),該模塊由兩個(gè)GRU 模塊和一個(gè)全連接模塊組成,用于學(xué)習(xí)公交線路客流分布的時(shí)序特征。模型輸出為各任務(wù)對(duì)應(yīng)的n+1 個(gè)線路的客流預(yù)測(cè)值。
圖2 多任務(wù)深度學(xué)習(xí)模型Fig.2 Multi-task deep learning model
模型的輸入為n+1 條線路前s步的特征信息,包括每步的時(shí)間信息、目標(biāo)預(yù)測(cè)線路的客流量l0以及相關(guān)線路的客流量li,i=1,2,…,n,見圖3。時(shí)間信息包括工作日信息(周一到周五)和時(shí)間片序號(hào)(以ts分鐘為一個(gè)時(shí)間片,每天的時(shí)間片從0開始編號(hào))。構(gòu)建輸入特征時(shí),將時(shí)間信息轉(zhuǎn)換為獨(dú)熱編碼,所有線路的客流量歸一化到[0,1]區(qū)間。
圖3 模型的輸入特征Fig.3 Input features of model
本文通過PCC和GRA對(duì)不同公交線路客流在時(shí)間上的分布進(jìn)行相關(guān)性度量,進(jìn)而獲取目標(biāo)預(yù)測(cè)線路的相關(guān)線路。
PCC常用來度量?jī)蓚€(gè)隨機(jī)變量之間的線性相關(guān)性,取值范圍為[-1,1]。相關(guān)系數(shù)大于零表示正相關(guān),小于零表示負(fù)相關(guān);絕對(duì)值越接近于1,相關(guān)性越強(qiáng),越接近于0,相關(guān)性越弱。一般認(rèn)為大于0.6時(shí)為強(qiáng)相關(guān)。具體的計(jì)算公式如下:
本文進(jìn)一步用GRA來分析客流分布的相關(guān)性。GRA適用于解決多因素、多變量之間復(fù)雜關(guān)系的問題[20],可用于探究變量之間的非線性相關(guān)性,其根據(jù)參考序列和若干個(gè)比較序列的曲線幾何形狀相似程度來判斷關(guān)聯(lián)性。GRA的取值范圍為[0,1],值越大表示關(guān)聯(lián)性越強(qiáng)。具體計(jì)算步驟如下:
(1)設(shè)定參考序列δ0。將目標(biāo)預(yù)測(cè)線路的客流量時(shí)間序列設(shè)定為母序列,記為:
(2)設(shè)定比較序列δ′:
其中,m表示參與計(jì)算的公交線路總數(shù)。
(3)利用均值法對(duì)參考序列和比較序列進(jìn)行歸一化處理:
其中,k=0,1,…,m;i=1,2,…,P。
(4)計(jì)算每個(gè)比較序列與參考序列對(duì)應(yīng)元素的關(guān)聯(lián)度系數(shù)。
其中,k=1,2,…,m;i=1,2,…,P;ρ為分辨系數(shù),0<ρ<1,ρ越小,關(guān)聯(lián)系數(shù)間差異越大,區(qū)分能力越強(qiáng)。本文ρ取值0.5。
(5)計(jì)算關(guān)聯(lián)度。分別計(jì)算參考序列與比較序列各個(gè)對(duì)應(yīng)時(shí)間步長(zhǎng)上的關(guān)聯(lián)系數(shù),并求其均值,作為參考序列與比較序列關(guān)聯(lián)度的量化表示:
其中,k=1,2,…,m。
多任務(wù)學(xué)習(xí)利用正則化和遷移學(xué)習(xí)改進(jìn)所有任務(wù)的預(yù)測(cè)效果,然而在實(shí)踐中,多任務(wù)學(xué)習(xí)模型并不總是在所有任務(wù)上都優(yōu)于相應(yīng)的單任務(wù)模型。尤其是當(dāng)模型參數(shù)在所有任務(wù)之間廣泛共享時(shí),任務(wù)差異帶來的固有沖突可能會(huì)損害部分任務(wù)的預(yù)測(cè)精度[21]。當(dāng)任務(wù)之間相差甚遠(yuǎn)時(shí),底層共享網(wǎng)絡(luò)將失去意義。
為保證輸入到模型中的各任務(wù)具有較高相關(guān)性,本文設(shè)計(jì)了一個(gè)結(jié)合GRA 和PCC 的方法(GRA-PCC)用于選取相關(guān)線路。該方法考慮相關(guān)線路與目標(biāo)預(yù)測(cè)線路間相關(guān)性的同時(shí),也考慮了相關(guān)線路之間的相關(guān)性,具體步驟如下:
(1)設(shè)V為所有公交線路的集合;N為公交線路的總數(shù)。
(2)計(jì)算線路之間的相關(guān)度系數(shù)矩陣W,其中Wi,j=,包含線路i和線路j之間的皮爾遜相關(guān)系數(shù)和灰色關(guān)聯(lián)度系數(shù)。
(3)對(duì)于目標(biāo)預(yù)測(cè)線路Lk,設(shè)Vk為L(zhǎng)k及其已被選擇的相關(guān)線路的集合;Nk為Vk中線路數(shù)量;令Vk={Lk}。
(4)計(jì)算剩余候選線路集合V′=V-Vk。
(5)計(jì)算V′中每條線路的相關(guān)度系數(shù),構(gòu)成集合,其中表示集合V′中的第j條線路與集合Vk中所有線路的平均灰色關(guān)聯(lián)度系數(shù)。
(6)根據(jù)w′,從V′選取平均灰色關(guān)聯(lián)度系數(shù)最大且與Vk中的任一線路的皮爾遜相關(guān)系數(shù)均大于0.6 的線路;若存在這樣的線路,則將其添加到Vk中,否則算法結(jié)束。
(7)若V′≠?或Nk≠n,返回步驟(4);否則,算法結(jié)束。
算法計(jì)算每條候選線路與所有已經(jīng)被選擇的相關(guān)線路的灰色關(guān)聯(lián)系數(shù),用其平均值代表候選線路與Vk中所有線路的總體關(guān)聯(lián)程度,通過皮爾遜相關(guān)系數(shù)進(jìn)一步確定每?jī)蓷l線路之間的相關(guān)程度,進(jìn)而保證模型輸入任務(wù)的相關(guān)性。最終得到的集合Vk中的線路作為目標(biāo)預(yù)測(cè)線路Lk的相關(guān)線路(包含目標(biāo)線路Lk),輸入到GRU模型。
GRU 是由Cho等[22]于2014年提出的一種循環(huán)神經(jīng)網(wǎng)絡(luò),一定程度上解決了傳統(tǒng)RNN 中存在的梯度消失問題和長(zhǎng)期依賴問題,其與LSTM 類似,但進(jìn)一步簡(jiǎn)化了神經(jīng)元的結(jié)構(gòu),將LSTM中的遺忘門和輸入門合并成為一個(gè)更新門,因而參數(shù)更少,更容易計(jì)算和收斂,卻能達(dá)到和LSTM相近的效果。與LSTM相比,GRU網(wǎng)絡(luò)的訓(xùn)練用時(shí)往往更少,效果也更穩(wěn)定[23],更適用于短時(shí)公交客流預(yù)測(cè)問題對(duì)實(shí)時(shí)性和穩(wěn)定性的需求。
GRU 在序列學(xué)習(xí)任務(wù)中表現(xiàn)良好,克服了傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)長(zhǎng)期依賴項(xiàng)時(shí)梯度消失和梯度爆炸的問題,已經(jīng)被用于股票序列預(yù)測(cè)[24]、金融序列預(yù)測(cè)[25]、電池健康狀態(tài)預(yù)測(cè)[26]等多個(gè)領(lǐng)域的預(yù)測(cè)問題。本文使用雙層GRU 神經(jīng)網(wǎng)絡(luò)來捕捉公交線路客流量的時(shí)序特征。
GRU神經(jīng)元的門控機(jī)制如圖4所示。典型的GRU神經(jīng)元只有更新門z和重置門r兩個(gè)門控單元,這兩個(gè)門控單元都用來處理xt和ht-1,其中xt表示當(dāng)前時(shí)間步上公交線路客流數(shù)據(jù)的特征信息,ht-1為隱藏層h在時(shí)間步(t-1)的輸出(隱藏狀態(tài)),充當(dāng)神經(jīng)網(wǎng)絡(luò)的記憶體,用來傳遞先前的客流狀態(tài)信息;更新門決定了上一個(gè)時(shí)間步長(zhǎng)的狀態(tài)信息被接受的程度,其值越大說明前一個(gè)時(shí)間步長(zhǎng)的狀態(tài)信息越重要;重置門用于控制先前的隱藏狀態(tài)與新的輸入信息的結(jié)合情況,它的輸出為傳遞到下一個(gè)時(shí)間步長(zhǎng)的隱藏狀態(tài),其值越小說明先前的隱藏狀態(tài)被忽略的越多。GRU網(wǎng)絡(luò)中隱藏層的存儲(chǔ)單元在每個(gè)時(shí)間步上的更新過程如下:
圖4 GRU神經(jīng)元結(jié)構(gòu)Fig.4 GRU structure
其中,rt、zt、ht分別表示重置門r、更新門z、隱藏層h在第t個(gè)時(shí)間步長(zhǎng)的輸出;表示隱藏層h在第t個(gè)時(shí)間步長(zhǎng)上的記憶體;Wr、Wz、分別表示重置門r、更新門z、隱藏層h在第t個(gè)時(shí)間步長(zhǎng)的權(quán)重。
多任務(wù)學(xué)習(xí)模型并行訓(xùn)練多條線路的客流預(yù)測(cè)任務(wù),使用參數(shù)優(yōu)化器(如Adam、SGD)自動(dòng)學(xué)習(xí)優(yōu)化過程中特征的交互作用,損失函數(shù)如下:
其中,Xk是預(yù)測(cè)線路Lk的客流時(shí)輸入的特征矩陣,如圖3所示。Yi是第i個(gè)任務(wù)對(duì)應(yīng)的真實(shí)客流,θi是第i個(gè)任務(wù)的學(xué)習(xí)參數(shù),第0個(gè)任務(wù)為線路Lk的預(yù)測(cè)任務(wù),n是相關(guān)線路數(shù)目。本文模型的優(yōu)化目標(biāo)是最小化所有任務(wù)的損失和,其中損失函數(shù)為客流量預(yù)測(cè)值與真實(shí)值之間的平均絕對(duì)誤差(mean absolute error,MAE)。
實(shí)驗(yàn)數(shù)據(jù)來自于北京市25條公交線路一個(gè)月的真實(shí)乘客上車刷卡數(shù)據(jù),經(jīng)過數(shù)據(jù)異常值及重復(fù)數(shù)據(jù)清洗后,總數(shù)據(jù)量約682萬(wàn)條,單條線路的數(shù)據(jù)量在5萬(wàn)至73萬(wàn)之間。按照時(shí)間維度對(duì)數(shù)據(jù)集進(jìn)行劃分,前80%數(shù)據(jù)為訓(xùn)練集,后20%數(shù)據(jù)為測(cè)試集。
將線路1、9、653、57、983 作為目標(biāo)預(yù)測(cè)線路。圖5(a)為這5 條線路一天內(nèi)的客流分布情況(以15 min 為統(tǒng)計(jì)單位),其客流量均在8:00 左右和18:00 左右出現(xiàn)高峰,在10:00—15:59 左右趨于平穩(wěn)。圖5(b)為這些線路的全天總客流量在不同日期的分布情況。為了減少數(shù)據(jù)波動(dòng)對(duì)模型預(yù)測(cè)效果的影響,根據(jù)客流數(shù)據(jù)分布特點(diǎn),本文將數(shù)據(jù)集劃分為早高峰前后(6:00—9:59)、平穩(wěn)時(shí)段(10:00—15:59)和晚高峰前后(16:00—21:59)三個(gè)時(shí)間段,分別構(gòu)建輸入序列樣本。
圖5 線路的客流分布情況Fig.5 Passenger flow distribution of bus lines
將提出的MTL-BFP方法與下列算法對(duì)比。這些比較算法采用單步預(yù)測(cè)方式:
(1)歷史平均(history average,HA):利用過去一段時(shí)間內(nèi)的客流量平均值作為未來客流量的預(yù)測(cè)結(jié)果。
(2)ARIMA[2]:一種統(tǒng)計(jì)學(xué)習(xí)方法,考慮差分、自回歸和移動(dòng)平均分量來分離信號(hào)和噪聲,廣泛應(yīng)用于各種時(shí)間序列任務(wù)。
(3)SVR[4]:支持向量機(jī)的一個(gè)重要分支,通過優(yōu)化樣本點(diǎn)到超平面的距離得到最小訓(xùn)練模型,用來回歸問題。
(4)循環(huán)神經(jīng)網(wǎng)絡(luò)[27](recurrent neural network,RNN):一類用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),在序列的演進(jìn)方向進(jìn)行遞歸且所有節(jié)點(diǎn)按鏈?zhǔn)竭B接,基于多時(shí)間步歷史數(shù)據(jù)進(jìn)行預(yù)測(cè)。
(5)GRU模型[22]:一種循環(huán)神經(jīng)網(wǎng)絡(luò),適用于序列學(xué)習(xí),可以在一定程度上解決梯度爆炸問題。
(6)MTL-RNN 模型:多任務(wù)版本的循環(huán)神經(jīng)網(wǎng)絡(luò)模型MTL-RNN,與MTL-BFP模型的差別在于使用RNN替換模型中的GRU網(wǎng)絡(luò),用來評(píng)估GRU網(wǎng)絡(luò)在多任務(wù)框架下對(duì)客流特征的捕捉性能。
使用平均絕對(duì)誤差MAE、平均絕對(duì)百分比誤差(mean absolute percent error,MAPE)和均方根誤差(root mean square error,RMSE)來評(píng)估客流預(yù)測(cè)結(jié)果。誤差值越小,模型預(yù)測(cè)效果越好。
其中,q為預(yù)測(cè)客流的時(shí)間片個(gè)數(shù),yi為真實(shí)的客流值,為預(yù)測(cè)的客流值。
實(shí)驗(yàn)中,所有模型的時(shí)間步長(zhǎng)ts均為15 min,神經(jīng)網(wǎng)絡(luò)模型輸入序列長(zhǎng)度s設(shè)為15。GRU模型和MTL-BFP模型中的兩層GRU 結(jié)點(diǎn)數(shù)從下到上分別設(shè)為128 和64,激活函數(shù)為ReLU;底層Dense 的結(jié)點(diǎn)數(shù)設(shè)為64,各個(gè)任務(wù)獨(dú)立的Dense結(jié)點(diǎn)數(shù)為16,激活函數(shù)均為L(zhǎng)inear。對(duì)比模型RNN、MTL-RNN中的RNN結(jié)點(diǎn)數(shù)和MTL-BFP模型中的GRU結(jié)點(diǎn)數(shù)相同,Dense層結(jié)構(gòu)保持一致。利用tensorflow2 的keras 模塊搭建神經(jīng)網(wǎng)絡(luò)模型,使用初始學(xué)習(xí)率為0.001的Adam優(yōu)化器優(yōu)化模型。實(shí)驗(yàn)的批次大小取64,迭代次數(shù)設(shè)為80。模型HA、ARIMA、SVR的參數(shù)設(shè)置如表1所示。
表1 HA、ARIMA、SVR的參數(shù)設(shè)置Table 1 Parameter setting of HA,ARIMA and SVR
當(dāng)參與訓(xùn)練的相關(guān)線路數(shù)目n值較小時(shí),線路之間的相關(guān)性高,但模型泛化能力較差,不同時(shí)段客流預(yù)測(cè)結(jié)果差異明顯;當(dāng)n值較大時(shí),則難以保證足夠的相關(guān)線路數(shù)目以及線路之間的相關(guān)性。通過少量實(shí)驗(yàn),將n設(shè)為4。
用GRA-PCC 方法篩選目標(biāo)預(yù)測(cè)線路的相關(guān)線路,被選中的相關(guān)線路與其對(duì)應(yīng)目標(biāo)線路的相關(guān)性度量值如表2 所示。其中,灰色關(guān)聯(lián)度系數(shù)均在0.79 以上,皮爾遜相關(guān)系數(shù)均在0.67以上,表明目標(biāo)線路與相關(guān)線路為強(qiáng)相關(guān),其客流分布呈現(xiàn)一定的相似性,符合多任務(wù)學(xué)習(xí)模型對(duì)任務(wù)相關(guān)性的要求。
表2 目標(biāo)預(yù)測(cè)線路的相關(guān)線路及其相似性度量值Table 2 Related lines of target prediction lines and their similarity measures
為了證明GRA-PCC 方法的有效性,隨機(jī)選取4 條線路與GRA-PCC方法選取的4條線路進(jìn)行客流量預(yù)測(cè)實(shí)驗(yàn)對(duì)比,結(jié)果如表3 所示。與隨機(jī)選取方法相比,采用GRA-PCC方法的預(yù)測(cè)效果在MAPE上降低了3.1%~5.9%,在MAE和RMSE上也表現(xiàn)更好。
表3 GRA-PCC和隨機(jī)選擇線路方法的預(yù)測(cè)結(jié)果對(duì)比Table 3 Comparison of prediction results of GRA-PCC and approach of selecting lines randomly
表4比較了各算法應(yīng)用于5條線路的預(yù)測(cè)結(jié)果。從表4可看出,深度學(xué)習(xí)模型(RNN、MTL-RNN、GRU、MTLBFP)的預(yù)測(cè)效果明顯優(yōu)于其他算法(HA、ARIMA、SVR)。對(duì)于神經(jīng)網(wǎng)絡(luò)模型,相比RNN、MTL-RNN 的MAPE 降低了5.2%~9.1%;相比GRU、MTL-BFP的MAPE降低了3.2%~8.4%,這說明多任務(wù)學(xué)習(xí)可有效地降低預(yù)測(cè)誤差。相比于MTL-RNN,MTL-BFP模型在線路9、653、57、983 上的預(yù)測(cè)效果在各個(gè)指標(biāo)上表現(xiàn)更好,MAPE 降低了1.5%~6.2%。對(duì)于線路1,MTL-BFP 相比MTL-RNN在MAPE 指標(biāo)上表現(xiàn)略差,但在其MAE 和RMSE 指標(biāo)更優(yōu),這說明GRU網(wǎng)絡(luò)可以更好地捕捉客流的變化特征。
表4 MTL-BFP與其他方法的預(yù)測(cè)結(jié)果對(duì)比Table 4 Comparison of prediction results of MTL-BFP and other approaches
針對(duì)公交線路的短時(shí)客流預(yù)測(cè)問題,本文利用多任務(wù)學(xué)習(xí)框架引入相關(guān)線路的短時(shí)客流預(yù)測(cè)任務(wù),建立了一個(gè)多任務(wù)循環(huán)神經(jīng)網(wǎng)絡(luò)模型。該模型利用GRU網(wǎng)絡(luò)捕捉客流的時(shí)序特征,在底層網(wǎng)絡(luò)中共享參數(shù)以提高泛化能力,并利用每個(gè)任務(wù)的私有模塊保留個(gè)性特征。本文設(shè)計(jì)了一個(gè)基于灰色關(guān)聯(lián)法和皮爾遜相關(guān)系數(shù)的相關(guān)線路篩選方法,用以保證多條線路客流預(yù)測(cè)任務(wù)之間的相關(guān)性,進(jìn)而提升多任務(wù)模型預(yù)測(cè)效果。
將本文方法用于真實(shí)公交線路的客流預(yù)測(cè),實(shí)驗(yàn)證明:本文設(shè)計(jì)的相關(guān)線路篩選方法是有效性的,建立的多任務(wù)模型可有效提升公交線路短時(shí)客流預(yù)測(cè)的準(zhǔn)確性。
未來的研究方向包括:進(jìn)一步研究多任務(wù)學(xué)習(xí)模型的構(gòu)建方法,并引入更多客流特征和時(shí)空特征,從而進(jìn)一步提高客流預(yù)測(cè)的準(zhǔn)確性。