社交网络数据驱动下旅游客运需求预测模型

2022-11-02 08:52曹晏诗刘柯良
关键词:需求预测客运社交

陈 坚,彭 涛,曹晏诗,刘柯良

(重庆交通大学 交通运输学院,重庆 400074)

0 引 言

随着社会经济的不断发展,旅游客运需求日益扩大。高强度且集中化的出行需求使得交通供给设施面临巨大压力,可能引发旅客滞留、局部交通设施瘫痪甚至踩踏事件的发生。精准的旅游客运需求预测能够为有效分配旅游供给资源提供参考,有助于提升旅游出行效率与安全。

旅游客运需求预测是目前研究的热点问题,现有成果在预测方法上主要通过统计学模型开展[1]。王頠等[2]提出了基于四阶段法的旅游客运需求预测模式;WU Lijuan等[3]通过SVR和FOA算法建立了单、多步骤的旅游客流预测模型;YAO Yuan等[4]运用神经网络增强的隐马尔科夫时间序列预测模型对美国入境旅游人数进行预测。现有研究更注重长期(年度、季度)旅游需求或是大范围(国家、城市、地区等)的旅游需求预测,这些模型为制定宏观旅游政策提供了参考,但对于具体的旅游景区而言,短期预测显得更为重要。日旅游需求量呈现复杂的非线性趋势,使得传统模型难以预测,集成学习模型相较于以上模型具有更强的灵活性,可以用来处理复杂的非线性关系,越来越多的研究者倾向于使用集成学习模型处理预测问题[5]。

在预测影响因素选取上,多以历史旅游客流数据为基础,结合天气、节假日情况对旅游客运需求量进行预测[6]。ZHANG Binru等[7]利用搜索引擎数据与历史客流数据对景区旅游需求进行预测;YAO Lifei等[8]利用百度指数对旅游景区日到达客流量进行预测;LI Keqing等[9]将网络搜索数据与天气、节假日相结合对日旅游客流量进行预测。已有研究需依靠大量的历史数据建立模型,存在数据来源单一、数据获取成本高、对出行群体动态刻画不充分等缺陷,使得上述模型在提升预测精度方面陷入瓶颈。

近年来,随着互联网及移动终端的快速普及,社交网络成为信息交互、资源共享的新平台。旅游客运需求是出行行为的直接体现,而社交网络数据能够通过引导作用和前兆效应反映人的行为。1963年,S.MILGRAM等[10]基于其六度分割理论首次提出社交网络的概念,用以描述人际间交往规律;S.ARAL等[11]对不同个体在社交网络中的影响和易感性进行了研究;傅志妍等[12]将社交网络交通信息作为心理感受变量构建了出行方式选择行为混合模型;S.D.YOUNG[13]指出,社交网络数据能够有助于群体行为预测;LI Menggang等[14]通过分析股票市场投资者情绪预测股票收益率;S.NAEEM等[15]基于推特文本的情感分析对USD/PKR汇率进行预测。

现有研究在旅游客运需求预测模型方面已取得一定成果,但面对短期旅游客运需求的非线性趋势,尚未有研究采用集成学习方法对短期旅游客运需求进行预测。此外,随着社交网络的高速发展,由此产生的海量数据备受关注,诸多领域正挖掘其应用价值,但目前国内外尚未利用社交网络数据对旅游客运需求预测进行研究。值得关注的是,越来越多的人们出行前在社交网络平台分享或发布出行意图、目的地及出行时间等信息,使得探求社交网络数据与旅游客运需求之间的内在联系成为可能。中国社会科学院发布的微博旅游白皮书指出,微博上旅游相关内容的热度与旅游市场的热度呈现明显正相关。旅游目的地在微博上的热度与游客出行方向也呈正相关,故亟待从社交网络数据入手对旅游景区客运需求进行精准预测。

笔者以社交网络数据为切入点,将情感分析量化的社交网络数据融入集成学习模型中,提出基于社交网络数据的梯度提升回归树(GBRT)预测模型,以提高旅游客运需求的预测精度,弥补现有研究在模型和数据方面的不足。

1 数据采集

社交网络数据获取主要通过网络爬虫实现,网络爬虫能够按照既定规则对互联网中的数据进行有目的的采集和整理。在大数据时代,通过编写网络爬虫程序完成数据获取工作已成为主要途径。

Scrapy是基于Python开发的快速且能定制的Web抓取框架,是一种适用于数据采集的框架,Scrapy爬虫框架见图1。

图1 Scrapy爬虫框架

Scrapy的工作步骤如下:调度器对首个URL进行解析并向互联网发送请求,交给下载器进行下载;在其返回时对内容进行检索并解析得到的请求网页;返回项目对象和需要继续迭代的请求对象,其中项目对象经过爬虫解析后流向项目管道进行数据储存;继续迭代的请求对象将回到调度器中,循环完成上述工作;最后利用Pandas库可以将所有数据储存至本地硬盘中。

2 基于BERT的文本情感分析模型

在对社交网络数据进行爬取后,能够得到大量的文本信息,为了建立其与旅游客运需求的相互关系,需对文本信息进行量化处理。由于文本内容复杂,通过人工阅读并给出对应的情感立场,工作量巨大且易出现主观性过强等问题,笔者采用深度学习模型对文本内容进行结构化处理。

2.1 BERT模型

BERT(bidirectional encoder representations from transformer)模型由谷歌AI团队于2018年5月首次提出[16],模型的最大特点在于利用大规模的无标注语言进行预训练。

BERT模型的输入由词向量、分段向量、位置向量3个部分组成,模型规范化输入见图2。每句话的开头与结尾分别添加CLS(classification)和SEP(separate),其中CLS对应位置的输出是BERT所有输出池化后的结果,能够作为全文本分类的特征向量,SEP用以断开每个句子,BERT模型结构见图3。

图2 BERT规范化输入

图3 BERT模型结构

BERT的文本特征提取由Transformer(图3中Trm)编码层实现,Transformer包含两个子层,分别为多头注意力机制子层和位置全连接子层,从输入E={E[CLS],E1,E2,…,E[SEP]}到多头注意力机制子层输出S={s1,s2,…,sN}的运算过程如式(1)~式(3):

(1)

(2)

(3)

(4)

式中:W1、W2、b1、b2为模型参数,W1,W2∈dr×dh,b1,b2∈dh。类似地,对当前输出进行残差连接并层归一化得到处理后的输出见式(5):

(5)

2.2 BERT-FC情感分类

情感分类(sentiment analysis)是将BERT预训练模型输出结果输出至特定的分类器,分类器可以是LSTM、CNN、GRU、FC等。研究表明,使用全连接层(fully-connected layer)的情感分类效果优于其他分类器[14]。

(6)

(7)

3 旅游客运需求预测模型构建

3.1 模型变量选取

在现有研究基础上,新增结构化后的社交网络数据,模型变量与定义见表1。其中,日旅游客运需求量为因变量,往年同期旅游客运量、量化后的社交网络数据、天气、法定节假日为自变量。对于天气和法定节假日,引入虚拟变量对其进行处理。

表1 梯度提升决策树训练样本描述

1)天气:除极端天气暴雨或大雨外,其它天气对旅游客运需求的影响较小[4,6],故仅对极端天气引用虚拟变量,即该变量仅取1(暴雨或大雨时)或0(其他天气)。

2)法定节假日:旅游客运需求受周末、法定节假日和工作日的影响较为明显[4,6-7],故需引入两组虚拟变量D1和D2表示以上3种状态。当预测日为法定节假日时取D1=1,其他情况取D1=0;当预测日为周末时取D2=1,其他情况取D2=0。并规定当某一预测日既是周末也是法定节假日时,视该预测日为法定节假日。

3)往年同期旅游客运量:指往年中与预测日同一天的历史旅游客运量。在已有的研究中,旅游客运需求量与往年同期旅游客运量存在较强的相关关系[8],故笔者将往年同期旅游客运量纳入模型,有利于提升预测精度。

4)社交网络数据:通过合法途径获取社交网络数据,并对其与人工浏览方式获得的数据进行抽样比对确定有效性,将社交网络数据纳入研究范畴。研究表明,Twitter中的公众情绪变化总是在2~3 d后对道琼斯工业指数(DIJA)产生影响[13]。同样,社交网络中公众对于旅游景区的情绪变化不会立即体现在景区旅游客运量上,待出行群体在社交网络中的表现与现实中的实际行为存在一定的时间滞后,故引入滞后变量对其进行处理。滞后变量是指过去时期对当前被解释变量产生影响的变量。ZHANG Binru等[7]和YAO Lifei等[8]指出,对于日数据,三阶以上的滞后变量对提升预测精度的贡献甚微。笔者对量化后的社交网络数据分别进行一阶、二阶、三阶滞后处理并一同纳入预测模型。

3.2 基于梯度提升回归树的预测模型构建

文中预测模型采用梯度提升回归树(gradient boosting regression trees, GBRT)构建,该模型将x=[x1,x2,…,x6]做为输入特征,将y作为输出特征,GBRT将预测函数f(x)近似为M个回归树的线性组合,如式(8):

(8)

式中:M为回归树的数量;αm为第m棵回归树b(x;θm)的权重;θm为第m棵回归树的参数。通过使损失函数L(yi,f(xi))达到最小值,确定am和θm的取值。笔者对旅游客运量进行建模,属于回归任务,对于此类任务的损失函数为:

(9)

损失函数在前m-1个回归树的组合fm-1(x)的负梯度值为:

(10)

通过式(11)、式(12)估计回归树的权重与参数:

(11)

(12)

GBRT的迭代过程可用式(13)表示:

fm(x)=fm-1(x)+αmb(x;θm)

(13)

为防止过拟合和欠拟合,引入学习率ξ(0<ξ≤1)对模型进行改进,当达到预定迭代次数M时,最终预测函数以式(14)表示:

fM(x)=fM-1(x)+ξαMb(x;θM)

(14)

4 实证分析

4.1 参数配置与检验

数据获取阶段采用爬虫程序获取2019年4月1日至5月3日之间新浪微博中“黄山旅游”相关微博博文内容、用户id和发表时间,共计64 526条微博数据。同时,通过黄山旅游客运枢纽获得相应时间段内实际旅游客运数据,因往来黄山游客均需换乘景区交通车进行游览,故选取乘坐景区交通车的人数作为实际的旅游客运量。

在社交网络数据量化部分,选用BERT-Base预训练语言模型,其参数设置已经固定,其中多头注意力机制为12个,隐含层为768层,训练批处理大小为18,学习率设置为0.000 02,最大句长为200[16]。

模型的超参数选取很大程度上决定其预测效果,现有研究中超参数确定方式过于主观,这可能导致模型与样本契合度低,从而影响预测精度[5]。笔者采用网格搜索法(GridSearch),使用5折交叉验证(训练集与测试集之比为8∶2)[17]来评估超参数的所有组合并以均方误差(mean squared error,MSE)为判别标准,对GBRT模型的学习率、最大决策树数量、树深度3个超参数进行优化,超参数调整过程见图4。

Scikit-Learn中交叉验证功能采用效用函数(越大越好)而非成本函数(越小越好),故对模型评估的函数实际是负的均方误差函数,即图4中最佳模型取值。文中模型超参数取值为最大回归树数量为300、回归树深度为5、学习率为0.1。

图4 超参数调整过程

文中模型迭代过程见图5。由图5可以看出,随着迭代次数的提升,训练集和测试集偏差的趋势呈一致的下降趋势,证明模型参数设置适当,没有出现过拟合现象。

图5 迭代过程中模型对各数据集的偏差

4.2 结果讨论

为验证笔者所提的基于社交网络数据的GBRT模型(模型1)的有效性,引入未纳入社交网络数据的GBRT模型(模型2),同时控制其余因素,两个模型均以GBRT算法实现预测。GBRT的可解释体现在其能反映各特征对于目标特征的相对重要度,通过调用GBRT的feature_importances方法,得到各特征的相对重要度排序,见表2。

表2 特征相对重要度排序

由表2可以看出,往年同期旅游需求量是旅游需求预测的主导特征,其重要度为49.41%,其次是社交网络数据,其总体重要度达到了45.54%,即社交网络数据能够为旅游需求预测提供依据。此外,节假日对旅游需求的影响比天气更大,其重要度分别为4.94%和0.12%。

需要注意的是,一阶、二阶、三阶社交网络数据并不相互独立,在统计分析中若自变量存在共线性,将无法区分它们对因变量的影响,导致无法将结果解释清楚。但GBRT模型的特征重要度是相对于模型而言的,即特征重要度的计算依赖于模型的选择。GBRT模型是由一系列的基回归树集成而成的机器学习模型,它能够处理特征间的共线性,树模型本质上不受多重共线性的影响[18]。另外,未引入社交网络数据的GBRT模型所表现的特征相对重要度分别如下:往年同期旅游客运量、节假日情况、天气状况的相对重要度分别为87.62%、11.33%、1.05%。从结果上看,被剔除的社交网络数据所占据的重要度被摊派给了剩余变量,三者重要度相对关系与纳入社交网络数据的GBRT模型保持一致。

两种模型预测结果见表3,模型精度对比见表4,两种模型预测曲线及误差见图6。

表3 两种模型客流量预测结果

表4 模型精度对比

由图6可以看出,模型1的预测误差在3%以内,笔者提出的模型误差均小于未纳入社交网络数据的GBRT模型误差。由表4可以看出,基于社交网络数据的GBRT模型相较于未纳入社交网络数据的GBRT模型具有更低的平均相对误差绝对值,预测精度提升了10.81%。

图6 两种模型客流量预测曲线及误差

5 结 语

在移动互联网络信息新环境下,针对如何运用网络数据开展交通需求预测的崭新问题,笔者提出融入社交网络数据的旅游交通需求预测模型,并运用于对黄山旅游客运需求预测的实证分析中,通过与未纳入社交网络数据的预测模型进行对比,研究发现,笔者所提模型在拟合优度和预测精度上有所提升,进而证实社交网络数据有助于提高短期微观旅游需求预测精度。研究结果一方面开拓了旅游需求预测领域的模型运用,另一方面拓展了社交网络数据的应用前景。

猜你喜欢
需求预测客运社交
社交牛人症该怎么治
聪明人 往往很少社交
社交距离
百花齐放的“定制客运”,能否拯救道路客运市场?
你回避社交,真不是因为内向
基于计算实验的公共交通需求预测方法
提高客运驾驶人安全意识
浅谈电网规划中的电力需求预测
台湾客运业:高铁躲过破产危机?
基于灰色理论的山东省能源需求预测及分析