王凤武,张晓博,吉 哲,王 乐
(大连海事大学 航海学院,辽宁 大连 116026)
港口的货物吞吐量在一定程度上反映出了该地区经济的发展状况及该港口的发展程度与规模,是衡量一个港口综合实力的重要指标,也是进行港口建设规划的重要参考,数据表明,港口货物运输贸易总量约占到全球运输贸易总量的80%以上[1]。由于集装箱运输具有标准化、高效化等优势,所以以集装箱为主的运输体系现已经逐渐成为海上运输的主要方式。因此对港口集装箱吞吐量的准确预测有利于港口的合理规划与建设。
目前常用的港口集装箱吞吐量预测方法主要包括自回归差分移动平均(autoregressive integrated moving average, ARIMA)模型、灰色预测法、指数平滑法、BP神经网络等。文献[2]~文献[5]分别使用上述4种方法建立相应的模型并加以改进,通过对港口货物吞吐量历史数据进行分析预测,将预测结果与其他传统预测模型进行对比,验证所改进后的模型所适应的范围和精确性。
虽然上述预测方法已经取得了一定的成果,但在实际预测中往往表现并不理想。例如,有些预测方法不考虑影响集装箱吞吐量的因素,仅仅用吞吐量本身的数据进行预测由于仅基于历史吞吐量数据进行预测的局限性,在复杂、高波动条件下的预测效果不理想,还有一些方法在预测时仅考虑港口所归属地区的经济、政策、周边港口竞争等因素对港口吞吐量产生的线性影响,没有考虑到影响因素非线性作用的情况,使得预测结果有较大偏差。由于港口集装箱吞吐量影响因素相互作用导致吞吐量呈现非线性变化的特点,而基于深度学习技术的LSTM模型因其在处理时序数据方面较传统预测模型精度提高很多,在时间序列预测方面显示出了巨大潜力,已在不同领域被广泛用于提取数据的时间特征。蒲悦逸等[6]利用LSTM模型来获取分析交通流量数据的特征并对北京市城市区域交通流量进行预测,验证结果表明,LSTM模型比传统模型准确性更高;连静等[7]、YAN Haoran等[8]利用改进后的LSTM模型分别对行人轨迹和机械设备齿轮剩余寿命进行预测,预测结果表明,改进后的模型有效提高了预测精度,模型鲁棒性和收敛速度更好。
综上所述,通过对国内外研究现状的梳理可以发现,由于影响港口集装箱吞吐量的因素众多,所以吞吐量预测是复合型预测问题。目前对港口货物吞吐量预测的方法有很多,但是使用传统预测方法不能够很好地拟合时间序列的特点,因此笔者基于影响港口与集装箱吞吐量的多重因素选取了深度学习理论中的LSTM模型对青岛港集装箱吞吐量进行预测。
LSTM(long short-term memory)全称为长短时记忆网络[9],它是在深度学习中的循环神经网络(recurrent neural networks, RNN)基础上进行改进的,属于RNN的一种,如图1。RNN是包含循环的神经网络,允许信息的持久化[10]。图1(a)可以看作神经网络的一个缩影,接受某时刻的输入xt,然后输出对应的结果ht,一个回路可以允许信息从一步传递到另一步。常规的RNN对时间序列数据预测会出现梯度消失或梯度爆炸的问题,有用信息与预测点相隔较远,预测效果不太理想。相比于RNN简单和重复的神经网络层,LSTM模型对信息的长期传递有着很好的效果,如图1(b),在LSTM模型中,使用了4个神经网络层并且彼此之间以一种特殊的关系进行交互。
图1 模型结构
LSTM模型在RNN基础上引入了门控机制概念,通过遗忘门、输入门和输出门对数据信息流动进行控制,如图2。图2中:遗忘门决定有多少信息被去掉,多少信息需要保留;输入门决定输入多少信息可以保留到记忆单元Ct中;输出门需要控制当前的数据信息,决定输出到Ot有多少成分输出到隐藏层ht。正是因为LSTM模型保留了RNN分析时间序列的优势,而且具有长期预测更加平稳、速度更快的特点,在预测中得到了广泛应用。
图2 LSTM模型门控机制
参照LSTM模型门控机制(图2),其遗忘门、输入门和输出门关系如式(1)~式(3):
ft=σ(Wf·[ht-1,xt]+bf)
(1)
(2)
ht=Ot×tanh(Ct)
(3)
式中:σ(·)为Sigmoid函数;ht-1为t-1时刻的输出;xt为t时刻本层的输入;bf为遗忘门的偏置项;bi和bC分别为输入层与候选值的偏置项;Wf为此时前一层隐藏神经元在遗忘门输出时的权重;Wi为t时刻输入层的权重;WC为t时刻隐藏层的权重;Ot为t时刻输出层上的状态;Ct为经过输入门和遗忘门之后的状态。
通过以上3个门对信息流动的控制,完成了1个神经元的内部处理,使得LSTM模型可以有效利用输入数据,对过去长时期的数据形成记忆,进而预测未来数据。
通过对LSTM模型原理的论述,可以清楚地了解到该模型的内部结构和网络结构,笔者构建了一个全连接层的网络结构,如图3。具体操作步骤如下:
图3 多变量LSTM模型预测流程
1)首先进行多因素选取,由于影响港口集装箱吞吐量因素众多,且各自变量之间具有多重共线性,故采用系统聚类法,找出独立且有代表性的自变量,筛选出典型影响因素。
2)对典型影响因素数据及历史吞吐量数据进行预处理,构建数据集。将处理后数据划分为训练集与测试集两部分并将数据归一化,作为模型的输入xt。
3)进行模型定阶,确定模型层数及隐藏节点的个数,选取激活函数和损失函数。
4)进行模型预测及结果评估,将预测结果进行反归一化,使用评价指标比较预测值与实际值的误差来评估预测效果。
由于影响港口集装箱吞吐量的因素较多,吞吐量预测是一个复合型预测问题,所以建立预测模型时应考虑多方面因素。笔者以青岛港集装箱吞吐量数据及其影响因素为基础进行吞吐量预测。青岛港位于山东半岛南岸,地理位置优越,是山东沿海港口群的核心[11],同时也是“一带一路”重要的节点城市之一,在世界港口货物吞吐量排名中占第6位。自1976年青岛港第一次开始开展集装箱业务以来,港口集装箱吞吐量持续增长,2017年青岛港全自动化集装箱码头率先投入运营,装卸效率显著提高,目前青岛港每月集装箱航班达500多班,2020年集装箱吞吐量达到2 201万TEU,同比增幅4.7%。港口的发展离不开合理的决策,而科学合理的决策需要准确的预测,因此对其集装箱吞吐量进行预测可以为港口的合理规划和发展提供相应的建议。
为了更加有效的验证笔者所使用的多变量LSTM模型的预测精度,笔者基于相同数据同时选用了单变量LSTM模型以及传统ARIMA模型进行预测,并通过建立评价指标平均绝对百分比误差(MAPE)以及均方根误差(RMSE)对预测结果进行比较分析。
集装箱吞吐量预测是指通过对港口的历史观察数据(如历年货物吞吐量、腹地GDP值、进出口总额等)进行统计、处理和分析,并通过一定的方法找出其规律,根据该规律来预测未来港口的吞吐量。港口集装箱吞吐量受多重因素影响,如政治、经济、自然条件、港口的发展情况等都会对其产生影响,仅对历史吞吐量数据进行预测并不能完全反映其真实走向。通过查找现有文献发现,可以将影响港口货物吞吐量的因素分为宏观因素和微观因素。宏观因素主要包括全球经济活动、该地区经济政策、经济发展水平、进出口总额和运价指数等;微观因素主要是指港口本身发展情况,包括码头泊位个数、码头长度、港口管理模式等方面[12]。笔者构建的多变量LSTM模型适用于普遍性因素对港口集装箱吞吐量产生影响时进行预测。因此在选取影响港口货物吞吐量的因素上,基于可定量分析的考虑并结合相关文献分析,选取了宏观因素中的社会消费品零售总额、青岛市GDP、固定资产投资额、第一、二、三产业产值等相关经济指标作为主要影响因素。笔者选择了2010—2019年青岛港集装箱吞吐量影响因素年度数据进行分析,由于影响因素月度数据较难获取,因此笔者将青岛市年度数据均值作为月度数据,年度统计数据如表1。
表1 2010—2019年青岛港集装箱吞吐量影响因素数据
2.1.1 系统聚类法选择影响因素
系统聚类[13]是国内外普遍使用的变量聚类方法。此方法将变量看作类,通过计算类与类之间的距离矩阵来选择距离最接近的几类合并为新的一类,然后计算新类与其他类之间的距离,再合并为新类,以此类推,直至所有变量合并为一类。笔者选用了平方欧式距离来计算各变量之间的距离,使用组间连接的聚类方法得到谱系如图4。
根据图4,在平方欧式距离为5时,此时与AB线相交的横线左侧所对应的影响因素就是一类,可以将7种影响因素分为3类,结果如表2。
表2 影响因素分类结果
图4 青岛港集装箱吞吐量影响因素系统聚类谱系
2.1.2 确定典型因素
当一类中具有多个影响因素时,为了缩减指标和避免多重共线性,可以选取一种典型因素代表这一类因素。笔者选用了Pearson相关系数来确定典型因素,Pearson相关系数是研究变量之间线性相关程度的量,一般用r表示,r取值区间为[-1,1]。r越大,说明变量之间相关程度越强;r=0表示变量之间不相关;r=-1表示变量之间完全负相关。r计算公式如式(4):
(4)
式中:Cov(X1,X2)为变量X1与X2的协方差;Var[X1]、Var[X2]为变量X1与X2的方差。
由于系统聚类后的第一类影响因素中的变量较多,所以笔者对第一类中各变量之间的Pearson相关系数进行计算,结果如表3。
表3 Pearson相关系数
综上所述,通过以上对相关影响因素的系统聚类分析和典型因素的确定,可以得出对青岛港集装箱吞吐量的典型影响因素为:GDP、进出口总额、固定资产投资额。
笔者使用的历史集装箱吞吐量数据为青岛港2010—2019年共计120个月的数据,数据来自中国港口集装箱网,原始数据如表4。
表4 2010—2019年青岛港集装箱吞吐量
LSTM模型对数据比较敏感,在利用模型进行预测前,需要对数据进行处理。首先,对数据进行差分处理,使数据保持相同的量级;其次,构建训练集和测试集。
2.3.1 数据差分处理
为了使数据保持一致性,提高模型的收敛速度以及预测精度,笔者在输入数据时进行了归一化处理,使数据落在[0,1]区间,在输出时反归一化,归一化公式如式(5):
(5)
式中:x为输入数据;xmin为输入数据的最小值;xmax为输入数据的最大值;x′为归一化后的输入数据。
2.3.2 数据构建
为了充分发挥数据的作用,同时提高模型的预测精度,笔者采用连续3个月历史数据递归预测下一个月数据进行构建LSTM模型样本数据,即采用1—3月的历史数据预测第4个月的吞吐量,采用2—4月的历史数据预测第5个月的吞吐量,总共可构建117组样本数据,并将前90组作为数据训练集,将后27组作为测试集,样本数据构建方法如表5。
表5 数据构建
为了更好地评价笔者构建的多变量LSTM模型对多因素影响下青岛港集装箱吞吐量的预测效果,选用了时间序列预测方法中常用的MAPE以及RMSE两项评价指标来评价预测值与实际值之间的差距[14]。其中:MAPE是相对误差绝对值之和的平均值,反映了预测误差的平均水平,常用来表示模型的优劣程度;RMSE表示误差平方的期望值,反映预测值与真实值的平均偏离程度,该值越小越好。评价指标MAPE和RMSE如式(6)~式(7):
(6)
(7)
式中:dfj为港口集装箱吞吐量第j个预测值;dmj为港口集装箱吞吐量第j个实际值。
2.5.1 模型参数设置
笔者使用了Adam算法对数据进行训练,训练次数为100次。为了使多变量LSTM模型的预测性能达到最好,需要对网络模型的隐含层层数、神经元个数以及学习率等参数进行设置。使用历史数据对模型进行多次尝试预测,根据预测结果分析发现,当隐含层层数为10,神经元个数为4,学习率为0.001时,模型的拟合效果最好。
2.5.2 预测结果分析
笔者分别采用了多变量LSTM模型、单变量LSTM模型以及ARIMA模型对青岛港集装箱吞吐量进行预测,预测结果如图5。
图5 3种模型预测结果对比
由图5可以发现,与其它两种模型的预测结果相比,多变量LSTM模型预测值与实际值更加吻合,波动性更加平稳,拟合性更好。为了更加深入地比较3种模型预测精度,分别对3种模型预测值的误差、评价指标MAPE和RMSE进行了计算,误差如表6,指标评价结果如表7。
表6 3种模型预测值及误差
表7 指标评价结果
通过对比3种模型预测结果的误差以及MAPE、RMSE发现:
1)将单变量LSTM模型预测结果与ARIMA模型预测结果进行比较:单变量LSTM模型预测值最大误差为20.69,最小误差为0.29;ARIMA模型预测值最大误差为23.10,最小误差为0.80;单变量LSTM模型预测值的MAPE和RMSE均比ARIMA模型要小。分析结果表明,LSTM模型同样适用于港口集装箱吞吐量预测,且预测值误差相比传统预测模型更小。
2)将多变量LSTM模型预测结果与单变量LSTM模型预测结果进行比较,多变量LSTM模型预测值最大误差为17.92,最小误差为0.12,MAPE降低到4.170%,RMSE降低到7.736,说明因为综合考虑了多种因素相互影响关系同时结合历史吞吐量数据后,使用多变量作为输入可以有效提高LSTM模型对港口集装箱吞吐量的预测精度。
笔者建立了一种使用多变量输入的LSTM模型,并用该模型对青岛港集装箱吞吐量进行预测;使用系统聚类方法分析港口集装箱吞吐量的多种影响因素进而筛选出典型因素;结合历史港口集装箱吞吐量数据生成多变量共同输入到模型中。对预测结果分析表明,使用多变量输入的模型预测结果误差更小,拟合度更高。目前研究大多仅仅使用单变量输入到模型中进行预测,预测效果往往不佳。笔者考虑了多种因素对集装箱吞吐量的影响,使预测更加科学、合理。科学准确的港口集装箱吞吐量预测对港口规划、经济研究及合理决策等方面具有重要的意义。将该模型应用到港口规划管理中,不仅可以促进深度学习技术在港口集装箱吞吐量预测方面的应用,同时为港口的合理决策与规划提供参考。