郭旭萍,劉小芳,姚 蕊
(四川輕化工大學 計算機科學與工程學院,四川 宜賓 644000)
景區客流量預測常見的一種方式是利用差分自回歸移動平均模型(ARIMA)進行預測,吳祥彬等[1]建立的ARIMA 模型預測了某城市地鐵客流量變化的趨勢。然而,這種方法只適用于處理平穩時間序列,對于非平穩的景區客流量時間序列,ARIMA 在預測時會受到一些限制,尤其在處理非線性因素、異常值、長期趨勢以及復雜季節性等方面。隨著技術的不斷發展,基于機器學習的時間序列預測方法逐漸興起。陳昆等[2]提出一種ARIMA 與支持向量機(SVM)的組合模型對道路斷面交通流量進行預測。然而,機器學習方法需要手動設計和選擇適當的特征,而且在捕捉時間序列數據中的長期依賴關系方面存在一定困難。
基于深度學習的時間序列預測模型應運而生。這些模型中,循環神經網絡(Recurrent Neural Network,RNN)發揮了重要作用,特別是其變體--長短期記憶神經網絡(Long Short-Term Memory,LSTM)[3],在處理傳統RNN 中的梯度消失與梯度爆炸問題方面表現出色。Bi 等[4]提出基于LSTM 的方法并用于黃山等旅游景區的客流量預測。然而,單一的LSTM 單元可能會面臨梯度消失問題。卷積神經網絡(Convolutional Neural Network,CNN)能夠通過不同大小的卷積核捕獲多尺度的特征,從而減少梯度消失的情況,與LSTM 結合后能夠應用于許多場景,例如,在情感分析、實體識別和行為預測等領域[5-7]。在時間序列預測領域,應用范圍更加廣泛。張文棟等[8]提出了一種綜合CNNLSTM 模型,用于提取與電力、空調和供暖等耦合特性相關的特征,提高了預測整體能源生成系統中負荷的準確性。
但CNN 與LSTM 融合后,仍然存在一些問題。例如,模型對原始數據特征的提取不夠精細。為了解決這些問題,引入了時空歸一化模塊(Spatial and Temporal Normalization,ST-Norm)[9]。該模塊的引入能夠對客流量數據的高頻分量與局部分量進行細化,加強數據特征的提取,同時更好地捕捉過去時間頻次對客流量的影響。通過將深度學習中的雙向長短期記憶網絡(Bidirectional Long Short-Term Memory,BILSTM)[10]與CNN 相結合,并且引入注意力機制(AM)以提升預測精度,建立了一種新的景區客流量預測模型SCBANet,后續通過實驗驗證了模型的有效性。
SCBANet 模型包含ST-Norm、CNN、BILSTM、AM機制,模型框架結構如圖1 所示。

ST-Norm 是一種新穎的時間歸一化和空間歸一化方法,可以從原始時間序列數據中提取高頻分量和局部分量,以此作為特征輸入到模型中,增強模型對序列數據的理解和泛化能力。CNN 有很好的特征提取能力,在特征提取中一直得到廣泛應用。BILSTM 能夠全面捕捉上下文信息,在時間序列預測中得到了廣泛應用。AM 能夠把時間序列數據過去的特征狀態加入到輸出結果中,更好地調整BILSTM 預測后的結果。綜上,本文建立了SCBANet 客流量預測模型。
時空歸一化機制包含時間歸一化與空間歸一化機制。時間歸一化(Time Normalization,TN)的目的是從輸入的客流量數據中準確提取其高頻分量,景區客流量數據的高頻分量指的是客流量數據中包含的變化頻率較高的部分,它表示了客流量數據中快速變動的部分,通常對應于較短時間尺度上的波動或噪聲。客流量數據的高頻分量計算如下:
式中,Zi,t表示全局與局部高低頻分量的乘積;表示在時間t 下第i 個樣本的輸入特征;表示在時間t 下第i 個樣本的局部低頻特征;E 表示取均值;σ表示標準差;是一個保持數值穩定性的小常數;與分別是針對高頻分量的可學習參數,用于對客流量數據的高頻分量進行縮放和偏移,以便更好地保留和表達高頻特征。
空間歸一化(Spatial Normalization,SN)的目標是細化景區客流量數據的局部分量,客流量數據的局部分量指的是客流量特定時間段內的局部特征或屬性,它是對客流量數據在不同時間段的局部變化進行描述和分析的方法。通過分析局部分量,可以更好地理解客流量數據在不同時間段內的趨勢、周期性、季節性以及其他特征。客流量數據的局部分量計算如下:
卷積神經網絡是包含卷積運算的一種特殊前饋神經網絡。卷積神經網絡一般由卷積層、池化層和全連接層構成。前一層的輸出是后一層的輸入,前面幾層每一層進行卷積(convolution)運算或者池化(pooling)運算,卷積實現特征檢測,池化實現特征選擇。最后幾層是全連接的前饋神經網絡,進行回歸預測,經過多次實驗后,使用1D-CNN 的卷積層與池化層來提取景區客流量的局部特征信息。
卷積層通過應用一系列可學習的濾波器(也稱為卷積核)對輸入數據進行卷積操作,從而提取輸入數據的局部特征,其卷積運算過程如下:
式中,Ct是卷積后的輸出值,f 是激活函數,這里使用ReLU 作為激活函數,Xt是輸入向量,Wt是卷積核的權重矩陣,bt為卷積核的偏置。
池化層用于減少特征映射的空間尺寸,并保留重要的特征信息,選用最大池化方法,其公式表示為
LSTM 是一種特殊的循環神經網絡,具有記憶能力和門控機制且適用于處理序列數據。傳統的RNN 在處理長序列時容易出現梯度消失或梯度爆炸問題,導致難以捕捉長期依賴關系,而LSTM 通過引入門控機制,可以有效地維護和更新記憶狀態,從而更好地處理長期依賴問題,并且LSTM 可以對輸入和輸出的門控進行控制,使得模型能夠更靈活地控制信息的傳遞,適應不同任務的需求,所以LSTM 在處理復雜序列時比傳統的RNN 表現更優,其單元結構如圖2 所示。LSTM 的門控結構組成具體包括遺忘門、輸入門和輸出門。

圖2 LSTM 單元結構圖
LSTM 單元細胞更新過程如下:
1)決定從細胞狀態中丟棄哪些信息。這個決定是由一個稱為“遺忘門層”的sigmoid 層做出的,會輸出一個介于0 和1 之間的數字,1 表示“完全保留此內容”,0 表示“完全遺忘此內容”,遺忘門的輸出結果由
所得式中,xt為t 時刻的輸入值;ht?1為t-1 時刻的細胞單元狀態;bf為偏置項;Wf為參數矩陣。
2)決定將在單元格狀態中存儲哪些新信息。分為兩部分:首先,輸入門中的sigmoid 層決定將更新哪些it;接下來,tanh 層創建一個新候選值的向量并添加到狀態中。過程如下:
3)更新舊的細胞狀態Ct?1,進入新的單元格狀態Ct,式中:ft與it分別表示遺忘門與輸入門的計算結果,計算公式為
4)基于單元格狀態決定輸出什么,輸出門的sigmoid 層決定輸出部分ot,然后把ot乘tanh(Ct),即可得到輸出ht,即
BILSTM 結構是LSTM 的一種變種,它在LSTM 的基礎上增加了一個關鍵的特性,即雙向信息傳遞,從而可以更好地捕捉景區客流量數據的上下文信息,使得預測更精準。
注意力機制是一種用于增強神經網絡模型在處理序列數據時的能力的技術[11],其思想類似于人類在處理信息時的注意力機制:對于復雜的任務,會更加關注與當前任務相關的信息,而忽略無關緊要的信息。在神經網絡中,注意力機制允許模型自動學習對于當前時刻最重要的輸入信息,使其能夠更有針對性地處理序列數據。AM 的計算過程分為三個階段:
1)計算查詢(輸出特征)與鍵(輸入特征)的相關性,公式為
式中,t={1,2,…,N},Wh是注意力機制的權重,ht是輸入向量,bh是注意力機制的偏置項,其中Wh和bh在每層中都共享權重。
2)將上式結果歸一化,并使用Softmax 函數轉換成注意力得分at,
式中v 為可學習的參數向量,一般長度固定。
3)對at值加權后得到最終關注值s,
首先,將獲取到的有關九寨溝景區2020 年上半年至2023 年上半年近三年的景區季節、溫度、風速、客流量等數據進行預處理[12],編碼后使用本模型進行預測;其次,使用不同的主流模型進行實驗;最后通過評價指標來驗證本論文所提出模型的優越性。
實驗所需的日客流量數據采集自九寨溝景區官網每日公布的進溝人數。采集的影響因素數據包括季節、星期、最高溫度、最低溫度、天氣以及風速。由于影響因素數據為文本數據,不可直接輸入到深度學習模型中,因此對這些數據做量化處理,例如天氣數據:晴天和多云編碼為1,陰天和小雨編碼為2,中雨和中雪則編碼為3,大暴雨和大暴雪等惡劣天氣編碼為4。之后創建一個包含歷史客流量和相應影響因素的數據集,這個數據集可以用于訓練和測試預測模型。
將時間步長設置為1,滑動窗口設置為7 來進行樣本的提取,并按照8:1:1 將九寨溝景區客流量數據數據劃分為訓練集、驗證集與測試集。實驗是基于Python3.6 實現的,使用Tensorflow 庫中的Keras 模塊,模塊構建方式為順序邏輯。將訓練的epoch 設置為10,batch_size 設置為24,模型的優化器使用Adam,模型的損失函數使用MSE,
評價標準對于理解模型的表現、對比不同模型或算法的效果,以及優化模型的重要性至關重要。實驗使用3 個評價指標,下面各式中:表示客流量預測值,yi表示客流量實際觀測值,n 表示客流量樣本數量。
(1)均方根誤差(RMSE)是預測值與真實值之間差異的平方和的平均值的平方根,用于衡量預測值與真實值之間的整體誤差,公式為
(2)平均絕對誤差(MAE)是預測值與真實值之間差異的絕對值的平均值,用于衡量預測值與真實值之間的平均誤差,公式為
(3)平均絕對百分比誤差(MAPE)是預測值與真實值之間差異的絕對百分比的平均值。它用于衡量預測值與真實值之間的平均百分比誤差,公式為
為了找到最佳的模型參數組合,在實驗中對相關參數進行了調整和選擇。
(1)LSTM 層的單元數
LSTM 層是模型的核心組件之一,它負責捕捉序列中的時間依賴關系。為了研究LSTM 層單元數對模型性能的影響,分別嘗試了不同的單元數,包括32、64和128。其中,較小的單元數能夠減少模型的復雜性,而較大的單元數能夠增加模型的記憶容量。
(2)Dropout 率
Dropout 率是一種用于防止過擬合的正則化技術,通過隨機地將一部分神經元輸出置為0 來降低模型復雜性[13]。在實驗中,嘗試使用不同的Dropout 率,包括0.2、0.3 和0.4,以研究Dropout 率對模型泛化能力的影響。
(3)卷積層參數
卷積層用于對輸入數據進行初步特征提取,它的參數包括濾波器數目和卷積核大小。在實驗中,嘗試了不同的濾波器數目和卷積核大小,例如濾波器數目為32 和64,卷積核大小為1 和3,以研究卷積層參數對模型性能的影響。
(4)學習率
學習率是控制模型參數更新的步長,較小的學習率可以使模型收斂得更穩定,但訓練時間可能較長。在實驗中,嘗試使用不同的學習率,包括0.001、0.01 和0.1,以尋找最佳的學習率。
(5)注意力機制參數
注意力機制在模型中起到了重要作用,它能夠自動學習序列中不同時間步之間的重要性。在實驗中,對注意力機制的參數進行了調整,包括注意力層中的神經元數目和激活函數的選擇。
綜上考慮,使用網格搜索的方法,通過指定參數的取值范圍,在給定的參數組合中進行窮舉搜索,計算每組參數的損失函數值,最后選擇具有最佳性能的參數組合作為最優模型。最終的模型參數選擇如表1 所示。

表1 模型參數
SCBANet 模型訓練流程如圖3 所示,主要包含5個步驟:

圖3 SCBANet 模型訓練流程圖
1)對輸入的時間序列進行時空歸一化,對數據進行預處理步驟,以便輸入到后續的網絡模型。
2)經過歸一化后,時間序列被輸入到卷積神經網絡中提取空間上的特征,捕捉時間序列中的局部模式和重要特征。
3)CNN 的輸出被輸入到BILSTM 中,通過前向和反向兩個LSTM 層,捕捉時間序列中的長期依賴關系和時間相關性。
4)在BILSTM 的輸出上,引入注意力機制來進一步提升預測性能。
5)經過注意力機制的處理,得到的特征被輸入到輸出層進行景區客流量的預測。
通過以上步驟,SCBANet 模型可以高效地從輸入的時間序列中提取特征,并通過雙向LSTM 和注意力機制進行有效的預測。這使得該模型在客流量預測任務中表現出色。
為驗證SCBANet 模型的有效性,進行了一系列實驗來比較其性能。在性能比較方面,選擇了一組基準模型,包括ARIMA、SVM、RNN 和LSTM。此外,還進行了消融實驗,通過與其他模型,如CNN、BILSTM、CNN+BILSTM 和CNN+BILSTM+AM 對比,來驗證SCBANet模型中每個組成部分的有效性。
在基準模型對比實驗中,將SCBANet 模型與經典的線性模型ARIMA、機器學習方法SVM、以及深度學習方法RNN、LSTM 進行對比,可以充分驗證其有效性。本實驗將采用3.2 節所述均方根誤差(RMSE)、平均絕對誤差(MAE)、平均絕對百分比誤差(MAPE)評價指標來評估SCBANet 模型性能。基準模型實驗對比如表2 所示。

表2 基準模型實驗對比
表2 顯示了3 種不同歷史時間窗口的基準模型預測結果,將每個時間窗口的最優結果加粗突出顯示。ARIMA 和SVM 受到線性關系的限制,無法捕捉到數據中的復雜非線性模式,從而導致預測的不準確性,所以誤差與其他模型相比是最大的。RNN 和LSTM 都是循環神經網絡模型,但是其性能隨著回溯窗口大小的增加而惡化或保持穩定,而SCBANet 模型可以通過各個組件的綜合能力來獲取學習特征并且更好地進行預測。從表2 中可以看到:SCBANet 模型表現的性能最好,并且隨著回溯窗口的增大,預測結果更好。在3 個評價指標中,MAPE 的變化最為明顯,在預測未來一個月的周期中,SCBANet 比ARIMA(16.7 比1.01)下降93.95%,比SVM(31.4 比1.01)下降96.78%,比RNN(17.4 比1.01)下 降95.23%,比LSTM(42.5 比1.01)下 降97.63%。
消融實驗通過逐步剔除或削弱系統中的組件或特性,評估它們對整體性能的影響,并揭示關鍵因素與系統工作原理。在人工智能領域,該方法常用于評估模型性能與魯棒性,幫助確認重要組件并優化系統設計。將SCBANet 模型的預測結果分別與CNN、BILSTM、CNN+BILSTM、CNN+BILSTM+AM 進行比較,驗證每一部分的有效性。消融實驗結果對比如表3 所示。

表3 消融實驗結果對比
從表3 中可以看到:CNN 的誤差結果最大,SCBANet 模型的各種誤差結果最小。在這5 種方法中,SCBANet 模型的性能表現最好,其RMSE 為0.270,MAE 為0.194,MAPE 為2.01,與引入AM 機制的CNN-BILSTM 相比,RMSE 下降了45.2%,MAE 下降了47.6%,MAPE 下降了34.5%。因此,在這5 種方法中,SCBANet 模型最能精準預測九寨溝景區短期客流量,為景區管理者做出正確的決策提供參考。
將九寨溝一個月的歷史客流量數據輸入到SCBANet 模型中,取得了令人滿意的預測效果。未來一周預測客流量的MAPE 值如圖4 所示。由圖4 可知,MAPE 值穩定保持在4%以下,表明SCBANet 預測模型能夠準確地預測景區的客流量變化。

圖4 預測客流量的MAPE
同時,將預測未來一周的客流量繪制出來,如圖5所示。從圖5 中可以較明顯地看出:預測結果與實際觀測值非常吻合,擬合效果非常出色,這進一步證實了SCBANet 模型在九寨溝景區客流量短期預測方面的優越性。

圖5 預測未來一周的客流量
綜上所述,提出的基于SCBANet 模型的九寨溝景區客流量短期預測模型,巧妙地綜合了ST-Norm、CNN、BILSTM 和AM,以實現更高效的模型性能。該模型的核心流程包括數據預處理、時空歸一化、CNN 特征融合、BILSTM 長期依賴捕捉以及注意力機制。在九寨溝景區客流量數據上,對SCBANet 模型進行了詳細驗證。結果表明,本模型在各項評價指標中均表現出色,其中最小RMSE 為0.211,最小MAE 為0.187,而最小MAPE 僅為1.01。與其他模型相比,本模型的誤差下降幅度高達97.63%。對未來一周客流量進行預測,其MAPE 值均保持在4%以下。這些結果充分表明,SCBANet 模型能高度準確地預測景區的短期客流量,在實際中能提高九寨溝景區管理的科學性和效率,有助于改善游客體驗,保障景區生態環境,提高安全性,為九寨溝的可持續發展和管理提供了有力支持,同時也為客流量預測方法的研究和應用提供了有益的示范。未來,還將進一步探索更多的融合方式,以進一步提升預測精度。