陳 堅(jiān),彭 濤,曹晏詩(shī),劉柯良
(重慶交通大學(xué) 交通運(yùn)輸學(xué)院,重慶 400074)
隨著社會(huì)經(jīng)濟(jì)的不斷發(fā)展,旅游客運(yùn)需求日益擴(kuò)大。高強(qiáng)度且集中化的出行需求使得交通供給設(shè)施面臨巨大壓力,可能引發(fā)旅客滯留、局部交通設(shè)施癱瘓甚至踩踏事件的發(fā)生。精準(zhǔn)的旅游客運(yùn)需求預(yù)測(cè)能夠?yàn)橛行Х峙渎糜喂┙o資源提供參考,有助于提升旅游出行效率與安全。
旅游客運(yùn)需求預(yù)測(cè)是目前研究的熱點(diǎn)問(wèn)題,現(xiàn)有成果在預(yù)測(cè)方法上主要通過(guò)統(tǒng)計(jì)學(xué)模型開展[1]。王頠等[2]提出了基于四階段法的旅游客運(yùn)需求預(yù)測(cè)模式;WU Lijuan等[3]通過(guò)SVR和FOA算法建立了單、多步驟的旅游客流預(yù)測(cè)模型;YAO Yuan等[4]運(yùn)用神經(jīng)網(wǎng)絡(luò)增強(qiáng)的隱馬爾科夫時(shí)間序列預(yù)測(cè)模型對(duì)美國(guó)入境旅游人數(shù)進(jìn)行預(yù)測(cè)?,F(xiàn)有研究更注重長(zhǎng)期(年度、季度)旅游需求或是大范圍(國(guó)家、城市、地區(qū)等)的旅游需求預(yù)測(cè),這些模型為制定宏觀旅游政策提供了參考,但對(duì)于具體的旅游景區(qū)而言,短期預(yù)測(cè)顯得更為重要。日旅游需求量呈現(xiàn)復(fù)雜的非線性趨勢(shì),使得傳統(tǒng)模型難以預(yù)測(cè),集成學(xué)習(xí)模型相較于以上模型具有更強(qiáng)的靈活性,可以用來(lái)處理復(fù)雜的非線性關(guān)系,越來(lái)越多的研究者傾向于使用集成學(xué)習(xí)模型處理預(yù)測(cè)問(wèn)題[5]。
在預(yù)測(cè)影響因素選取上,多以歷史旅游客流數(shù)據(jù)為基礎(chǔ),結(jié)合天氣、節(jié)假日情況對(duì)旅游客運(yùn)需求量進(jìn)行預(yù)測(cè)[6]。ZHANG Binru等[7]利用搜索引擎數(shù)據(jù)與歷史客流數(shù)據(jù)對(duì)景區(qū)旅游需求進(jìn)行預(yù)測(cè);YAO Lifei等[8]利用百度指數(shù)對(duì)旅游景區(qū)日到達(dá)客流量進(jìn)行預(yù)測(cè);LI Keqing等[9]將網(wǎng)絡(luò)搜索數(shù)據(jù)與天氣、節(jié)假日相結(jié)合對(duì)日旅游客流量進(jìn)行預(yù)測(cè)。已有研究需依靠大量的歷史數(shù)據(jù)建立模型,存在數(shù)據(jù)來(lái)源單一、數(shù)據(jù)獲取成本高、對(duì)出行群體動(dòng)態(tài)刻畫不充分等缺陷,使得上述模型在提升預(yù)測(cè)精度方面陷入瓶頸。
近年來(lái),隨著互聯(lián)網(wǎng)及移動(dòng)終端的快速普及,社交網(wǎng)絡(luò)成為信息交互、資源共享的新平臺(tái)。旅游客運(yùn)需求是出行行為的直接體現(xiàn),而社交網(wǎng)絡(luò)數(shù)據(jù)能夠通過(guò)引導(dǎo)作用和前兆效應(yīng)反映人的行為。1963年,S.MILGRAM等[10]基于其六度分割理論首次提出社交網(wǎng)絡(luò)的概念,用以描述人際間交往規(guī)律;S.ARAL等[11]對(duì)不同個(gè)體在社交網(wǎng)絡(luò)中的影響和易感性進(jìn)行了研究;傅志妍等[12]將社交網(wǎng)絡(luò)交通信息作為心理感受變量構(gòu)建了出行方式選擇行為混合模型;S.D.YOUNG[13]指出,社交網(wǎng)絡(luò)數(shù)據(jù)能夠有助于群體行為預(yù)測(cè);LI Menggang等[14]通過(guò)分析股票市場(chǎng)投資者情緒預(yù)測(cè)股票收益率;S.NAEEM等[15]基于推特文本的情感分析對(duì)USD/PKR匯率進(jìn)行預(yù)測(cè)。
現(xiàn)有研究在旅游客運(yùn)需求預(yù)測(cè)模型方面已取得一定成果,但面對(duì)短期旅游客運(yùn)需求的非線性趨勢(shì),尚未有研究采用集成學(xué)習(xí)方法對(duì)短期旅游客運(yùn)需求進(jìn)行預(yù)測(cè)。此外,隨著社交網(wǎng)絡(luò)的高速發(fā)展,由此產(chǎn)生的海量數(shù)據(jù)備受關(guān)注,諸多領(lǐng)域正挖掘其應(yīng)用價(jià)值,但目前國(guó)內(nèi)外尚未利用社交網(wǎng)絡(luò)數(shù)據(jù)對(duì)旅游客運(yùn)需求預(yù)測(cè)進(jìn)行研究。值得關(guān)注的是,越來(lái)越多的人們出行前在社交網(wǎng)絡(luò)平臺(tái)分享或發(fā)布出行意圖、目的地及出行時(shí)間等信息,使得探求社交網(wǎng)絡(luò)數(shù)據(jù)與旅游客運(yùn)需求之間的內(nèi)在聯(lián)系成為可能。中國(guó)社會(huì)科學(xué)院發(fā)布的微博旅游白皮書指出,微博上旅游相關(guān)內(nèi)容的熱度與旅游市場(chǎng)的熱度呈現(xiàn)明顯正相關(guān)。旅游目的地在微博上的熱度與游客出行方向也呈正相關(guān),故亟待從社交網(wǎng)絡(luò)數(shù)據(jù)入手對(duì)旅游景區(qū)客運(yùn)需求進(jìn)行精準(zhǔn)預(yù)測(cè)。
筆者以社交網(wǎng)絡(luò)數(shù)據(jù)為切入點(diǎn),將情感分析量化的社交網(wǎng)絡(luò)數(shù)據(jù)融入集成學(xué)習(xí)模型中,提出基于社交網(wǎng)絡(luò)數(shù)據(jù)的梯度提升回歸樹(GBRT)預(yù)測(cè)模型,以提高旅游客運(yùn)需求的預(yù)測(cè)精度,彌補(bǔ)現(xiàn)有研究在模型和數(shù)據(jù)方面的不足。
社交網(wǎng)絡(luò)數(shù)據(jù)獲取主要通過(guò)網(wǎng)絡(luò)爬蟲實(shí)現(xiàn),網(wǎng)絡(luò)爬蟲能夠按照既定規(guī)則對(duì)互聯(lián)網(wǎng)中的數(shù)據(jù)進(jìn)行有目的的采集和整理。在大數(shù)據(jù)時(shí)代,通過(guò)編寫網(wǎng)絡(luò)爬蟲程序完成數(shù)據(jù)獲取工作已成為主要途徑。
Scrapy是基于Python開發(fā)的快速且能定制的Web抓取框架,是一種適用于數(shù)據(jù)采集的框架,Scrapy爬蟲框架見圖1。
圖1 Scrapy爬蟲框架
Scrapy的工作步驟如下:調(diào)度器對(duì)首個(gè)URL進(jìn)行解析并向互聯(lián)網(wǎng)發(fā)送請(qǐng)求,交給下載器進(jìn)行下載;在其返回時(shí)對(duì)內(nèi)容進(jìn)行檢索并解析得到的請(qǐng)求網(wǎng)頁(yè);返回項(xiàng)目對(duì)象和需要繼續(xù)迭代的請(qǐng)求對(duì)象,其中項(xiàng)目對(duì)象經(jīng)過(guò)爬蟲解析后流向項(xiàng)目管道進(jìn)行數(shù)據(jù)儲(chǔ)存;繼續(xù)迭代的請(qǐng)求對(duì)象將回到調(diào)度器中,循環(huán)完成上述工作;最后利用Pandas庫(kù)可以將所有數(shù)據(jù)儲(chǔ)存至本地硬盤中。
在對(duì)社交網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行爬取后,能夠得到大量的文本信息,為了建立其與旅游客運(yùn)需求的相互關(guān)系,需對(duì)文本信息進(jìn)行量化處理。由于文本內(nèi)容復(fù)雜,通過(guò)人工閱讀并給出對(duì)應(yīng)的情感立場(chǎng),工作量巨大且易出現(xiàn)主觀性過(guò)強(qiáng)等問(wèn)題,筆者采用深度學(xué)習(xí)模型對(duì)文本內(nèi)容進(jìn)行結(jié)構(gòu)化處理。
BERT(bidirectional encoder representations from transformer)模型由谷歌AI團(tuán)隊(duì)于2018年5月首次提出[16],模型的最大特點(diǎn)在于利用大規(guī)模的無(wú)標(biāo)注語(yǔ)言進(jìn)行預(yù)訓(xùn)練。
BERT模型的輸入由詞向量、分段向量、位置向量3個(gè)部分組成,模型規(guī)范化輸入見圖2。每句話的開頭與結(jié)尾分別添加CLS(classification)和SEP(separate),其中CLS對(duì)應(yīng)位置的輸出是BERT所有輸出池化后的結(jié)果,能夠作為全文本分類的特征向量,SEP用以斷開每個(gè)句子,BERT模型結(jié)構(gòu)見圖3。
圖2 BERT規(guī)范化輸入
圖3 BERT模型結(jié)構(gòu)
BERT的文本特征提取由Transformer(圖3中Trm)編碼層實(shí)現(xiàn),Transformer包含兩個(gè)子層,分別為多頭注意力機(jī)制子層和位置全連接子層,從輸入E={E[CLS],E1,E2,…,E[SEP]}到多頭注意力機(jī)制子層輸出S={s1,s2,…,sN}的運(yùn)算過(guò)程如式(1)~式(3):
(1)
(2)
(3)
(4)
式中:W1、W2、b1、b2為模型參數(shù),W1,W2∈dr×dh,b1,b2∈dh。類似地,對(duì)當(dāng)前輸出進(jìn)行殘差連接并層歸一化得到處理后的輸出見式(5):
(5)
情感分類(sentiment analysis)是將BERT預(yù)訓(xùn)練模型輸出結(jié)果輸出至特定的分類器,分類器可以是LSTM、CNN、GRU、FC等。研究表明,使用全連接層(fully-connected layer)的情感分類效果優(yōu)于其他分類器[14]。
(6)
(7)
在現(xiàn)有研究基礎(chǔ)上,新增結(jié)構(gòu)化后的社交網(wǎng)絡(luò)數(shù)據(jù),模型變量與定義見表1。其中,日旅游客運(yùn)需求量為因變量,往年同期旅游客運(yùn)量、量化后的社交網(wǎng)絡(luò)數(shù)據(jù)、天氣、法定節(jié)假日為自變量。對(duì)于天氣和法定節(jié)假日,引入虛擬變量對(duì)其進(jìn)行處理。
表1 梯度提升決策樹訓(xùn)練樣本描述
1)天氣:除極端天氣暴雨或大雨外,其它天氣對(duì)旅游客運(yùn)需求的影響較小[4,6],故僅對(duì)極端天氣引用虛擬變量,即該變量?jī)H取1(暴雨或大雨時(shí))或0(其他天氣)。
2)法定節(jié)假日:旅游客運(yùn)需求受周末、法定節(jié)假日和工作日的影響較為明顯[4,6-7],故需引入兩組虛擬變量D1和D2表示以上3種狀態(tài)。當(dāng)預(yù)測(cè)日為法定節(jié)假日時(shí)取D1=1,其他情況取D1=0;當(dāng)預(yù)測(cè)日為周末時(shí)取D2=1,其他情況取D2=0。并規(guī)定當(dāng)某一預(yù)測(cè)日既是周末也是法定節(jié)假日時(shí),視該預(yù)測(cè)日為法定節(jié)假日。
3)往年同期旅游客運(yùn)量:指往年中與預(yù)測(cè)日同一天的歷史旅游客運(yùn)量。在已有的研究中,旅游客運(yùn)需求量與往年同期旅游客運(yùn)量存在較強(qiáng)的相關(guān)關(guān)系[8],故筆者將往年同期旅游客運(yùn)量納入模型,有利于提升預(yù)測(cè)精度。
4)社交網(wǎng)絡(luò)數(shù)據(jù):通過(guò)合法途徑獲取社交網(wǎng)絡(luò)數(shù)據(jù),并對(duì)其與人工瀏覽方式獲得的數(shù)據(jù)進(jìn)行抽樣比對(duì)確定有效性,將社交網(wǎng)絡(luò)數(shù)據(jù)納入研究范疇。研究表明,Twitter中的公眾情緒變化總是在2~3 d后對(duì)道瓊斯工業(yè)指數(shù)(DIJA)產(chǎn)生影響[13]。同樣,社交網(wǎng)絡(luò)中公眾對(duì)于旅游景區(qū)的情緒變化不會(huì)立即體現(xiàn)在景區(qū)旅游客運(yùn)量上,待出行群體在社交網(wǎng)絡(luò)中的表現(xiàn)與現(xiàn)實(shí)中的實(shí)際行為存在一定的時(shí)間滯后,故引入滯后變量對(duì)其進(jìn)行處理。滯后變量是指過(guò)去時(shí)期對(duì)當(dāng)前被解釋變量產(chǎn)生影響的變量。ZHANG Binru等[7]和YAO Lifei等[8]指出,對(duì)于日數(shù)據(jù),三階以上的滯后變量對(duì)提升預(yù)測(cè)精度的貢獻(xiàn)甚微。筆者對(duì)量化后的社交網(wǎng)絡(luò)數(shù)據(jù)分別進(jìn)行一階、二階、三階滯后處理并一同納入預(yù)測(cè)模型。
文中預(yù)測(cè)模型采用梯度提升回歸樹(gradient boosting regression trees, GBRT)構(gòu)建,該模型將x=[x1,x2,…,x6]做為輸入特征,將y作為輸出特征,GBRT將預(yù)測(cè)函數(shù)f(x)近似為M個(gè)回歸樹的線性組合,如式(8):
(8)
式中:M為回歸樹的數(shù)量;αm為第m棵回歸樹b(x;θm)的權(quán)重;θm為第m棵回歸樹的參數(shù)。通過(guò)使損失函數(shù)L(yi,f(xi))達(dá)到最小值,確定am和θm的取值。筆者對(duì)旅游客運(yùn)量進(jìn)行建模,屬于回歸任務(wù),對(duì)于此類任務(wù)的損失函數(shù)為:
(9)
損失函數(shù)在前m-1個(gè)回歸樹的組合fm-1(x)的負(fù)梯度值為:
(10)
通過(guò)式(11)、式(12)估計(jì)回歸樹的權(quán)重與參數(shù):
(11)
(12)
GBRT的迭代過(guò)程可用式(13)表示:
fm(x)=fm-1(x)+αmb(x;θm)
(13)
為防止過(guò)擬合和欠擬合,引入學(xué)習(xí)率ξ(0<ξ≤1)對(duì)模型進(jìn)行改進(jìn),當(dāng)達(dá)到預(yù)定迭代次數(shù)M時(shí),最終預(yù)測(cè)函數(shù)以式(14)表示:
fM(x)=fM-1(x)+ξαMb(x;θM)
(14)
數(shù)據(jù)獲取階段采用爬蟲程序獲取2019年4月1日至5月3日之間新浪微博中“黃山旅游”相關(guān)微博博文內(nèi)容、用戶id和發(fā)表時(shí)間,共計(jì)64 526條微博數(shù)據(jù)。同時(shí),通過(guò)黃山旅游客運(yùn)樞紐獲得相應(yīng)時(shí)間段內(nèi)實(shí)際旅游客運(yùn)數(shù)據(jù),因往來(lái)黃山游客均需換乘景區(qū)交通車進(jìn)行游覽,故選取乘坐景區(qū)交通車的人數(shù)作為實(shí)際的旅游客運(yùn)量。
在社交網(wǎng)絡(luò)數(shù)據(jù)量化部分,選用BERT-Base預(yù)訓(xùn)練語(yǔ)言模型,其參數(shù)設(shè)置已經(jīng)固定,其中多頭注意力機(jī)制為12個(gè),隱含層為768層,訓(xùn)練批處理大小為18,學(xué)習(xí)率設(shè)置為0.000 02,最大句長(zhǎng)為200[16]。
模型的超參數(shù)選取很大程度上決定其預(yù)測(cè)效果,現(xiàn)有研究中超參數(shù)確定方式過(guò)于主觀,這可能導(dǎo)致模型與樣本契合度低,從而影響預(yù)測(cè)精度[5]。筆者采用網(wǎng)格搜索法(GridSearch),使用5折交叉驗(yàn)證(訓(xùn)練集與測(cè)試集之比為8∶2)[17]來(lái)評(píng)估超參數(shù)的所有組合并以均方誤差(mean squared error,MSE)為判別標(biāo)準(zhǔn),對(duì)GBRT模型的學(xué)習(xí)率、最大決策樹數(shù)量、樹深度3個(gè)超參數(shù)進(jìn)行優(yōu)化,超參數(shù)調(diào)整過(guò)程見圖4。
Scikit-Learn中交叉驗(yàn)證功能采用效用函數(shù)(越大越好)而非成本函數(shù)(越小越好),故對(duì)模型評(píng)估的函數(shù)實(shí)際是負(fù)的均方誤差函數(shù),即圖4中最佳模型取值。文中模型超參數(shù)取值為最大回歸樹數(shù)量為300、回歸樹深度為5、學(xué)習(xí)率為0.1。
圖4 超參數(shù)調(diào)整過(guò)程
文中模型迭代過(guò)程見圖5。由圖5可以看出,隨著迭代次數(shù)的提升,訓(xùn)練集和測(cè)試集偏差的趨勢(shì)呈一致的下降趨勢(shì),證明模型參數(shù)設(shè)置適當(dāng),沒有出現(xiàn)過(guò)擬合現(xiàn)象。
圖5 迭代過(guò)程中模型對(duì)各數(shù)據(jù)集的偏差
為驗(yàn)證筆者所提的基于社交網(wǎng)絡(luò)數(shù)據(jù)的GBRT模型(模型1)的有效性,引入未納入社交網(wǎng)絡(luò)數(shù)據(jù)的GBRT模型(模型2),同時(shí)控制其余因素,兩個(gè)模型均以GBRT算法實(shí)現(xiàn)預(yù)測(cè)。GBRT的可解釋體現(xiàn)在其能反映各特征對(duì)于目標(biāo)特征的相對(duì)重要度,通過(guò)調(diào)用GBRT的feature_importances方法,得到各特征的相對(duì)重要度排序,見表2。
表2 特征相對(duì)重要度排序
由表2可以看出,往年同期旅游需求量是旅游需求預(yù)測(cè)的主導(dǎo)特征,其重要度為49.41%,其次是社交網(wǎng)絡(luò)數(shù)據(jù),其總體重要度達(dá)到了45.54%,即社交網(wǎng)絡(luò)數(shù)據(jù)能夠?yàn)槁糜涡枨箢A(yù)測(cè)提供依據(jù)。此外,節(jié)假日對(duì)旅游需求的影響比天氣更大,其重要度分別為4.94%和0.12%。
需要注意的是,一階、二階、三階社交網(wǎng)絡(luò)數(shù)據(jù)并不相互獨(dú)立,在統(tǒng)計(jì)分析中若自變量存在共線性,將無(wú)法區(qū)分它們對(duì)因變量的影響,導(dǎo)致無(wú)法將結(jié)果解釋清楚。但GBRT模型的特征重要度是相對(duì)于模型而言的,即特征重要度的計(jì)算依賴于模型的選擇。GBRT模型是由一系列的基回歸樹集成而成的機(jī)器學(xué)習(xí)模型,它能夠處理特征間的共線性,樹模型本質(zhì)上不受多重共線性的影響[18]。另外,未引入社交網(wǎng)絡(luò)數(shù)據(jù)的GBRT模型所表現(xiàn)的特征相對(duì)重要度分別如下:往年同期旅游客運(yùn)量、節(jié)假日情況、天氣狀況的相對(duì)重要度分別為87.62%、11.33%、1.05%。從結(jié)果上看,被剔除的社交網(wǎng)絡(luò)數(shù)據(jù)所占據(jù)的重要度被攤派給了剩余變量,三者重要度相對(duì)關(guān)系與納入社交網(wǎng)絡(luò)數(shù)據(jù)的GBRT模型保持一致。
兩種模型預(yù)測(cè)結(jié)果見表3,模型精度對(duì)比見表4,兩種模型預(yù)測(cè)曲線及誤差見圖6。
表3 兩種模型客流量預(yù)測(cè)結(jié)果
表4 模型精度對(duì)比
由圖6可以看出,模型1的預(yù)測(cè)誤差在3%以內(nèi),筆者提出的模型誤差均小于未納入社交網(wǎng)絡(luò)數(shù)據(jù)的GBRT模型誤差。由表4可以看出,基于社交網(wǎng)絡(luò)數(shù)據(jù)的GBRT模型相較于未納入社交網(wǎng)絡(luò)數(shù)據(jù)的GBRT模型具有更低的平均相對(duì)誤差絕對(duì)值,預(yù)測(cè)精度提升了10.81%。
圖6 兩種模型客流量預(yù)測(cè)曲線及誤差
在移動(dòng)互聯(lián)網(wǎng)絡(luò)信息新環(huán)境下,針對(duì)如何運(yùn)用網(wǎng)絡(luò)數(shù)據(jù)開展交通需求預(yù)測(cè)的嶄新問(wèn)題,筆者提出融入社交網(wǎng)絡(luò)數(shù)據(jù)的旅游交通需求預(yù)測(cè)模型,并運(yùn)用于對(duì)黃山旅游客運(yùn)需求預(yù)測(cè)的實(shí)證分析中,通過(guò)與未納入社交網(wǎng)絡(luò)數(shù)據(jù)的預(yù)測(cè)模型進(jìn)行對(duì)比,研究發(fā)現(xiàn),筆者所提模型在擬合優(yōu)度和預(yù)測(cè)精度上有所提升,進(jìn)而證實(shí)社交網(wǎng)絡(luò)數(shù)據(jù)有助于提高短期微觀旅游需求預(yù)測(cè)精度。研究結(jié)果一方面開拓了旅游需求預(yù)測(cè)領(lǐng)域的模型運(yùn)用,另一方面拓展了社交網(wǎng)絡(luò)數(shù)據(jù)的應(yīng)用前景。