一种基于多头自注意力机制的交通流量预测模型及方法

文档序号:25523411发布日期:2021-06-18 20:11阅读:560来源:国知局
一种基于多头自注意力机制的交通流量预测模型及方法
本发明涉及深度学习领域,解决交通流量预测问题,具体是一种基于多头自注意力机制的交通流量预测模型及方法。
背景技术
:在城市数据挖掘系统中,越来越需要有效的长期预测。许多实际应用,例如事故预防和资源预分配,需要更长的准备时间。但是,挑战来自长期预测对错误的高度敏感性,这在预测具有复杂动态时空相关性的城市现象时变得尤为关键。具体地,由于有价值的相关量是有限的,所以巨大的不相关特征会引入噪声,从而触发增加的预测误差。预测长期未来已成为城市计算系统最迫切的需求之一。越来越多的城市运营需要数小时的准备时间才能最终执行,例如,动态交通管理和智能服务分配。与传统的时序问题相比,预测时空现象更具挑战性,因为它不仅必须处理非线性时间相关性,而且还要处理动态和复杂的空间相关性。在长期预测中,挑战变得更加艰巨,因为小错误可以穿越复杂的相关性,从而导致错误传播的蝴蝶效应,从而破坏即将到来的每个时空位置的预测。当前,如何有效地对时空现象进行长期的预测仍然是数据挖掘和机器学习社区中的巨大挑战。可以将长期预测问题的形式定义指定为:根据对时空现象的历史观察,学习一个将输入映射到多个未来时间步长的对应输出的函数。近年来,对于深度神经网络的时空预测越来越多地进行了研究,并通过采用复杂的体系结构胜过传统方法。例如,深度残差卷积神经网络(cnn)在测量动态和复杂的空间相关性方面表现出出色的性能。同时,经常研究递归神经网络(rnn),尤其是长短期记忆(lstm)网络,以对不稳定的时间相关性进行建模。在最新的研究中,提出了卷积递归结构-结合了cnn和rnn的混合体系结构,以联合建模复杂的动态时空关联。但是,当前大多数方法仅关注短期预测并在长期预测中变得不太有效。原因之一是,在历史观察中,大量不相关的空间信息将噪声引入了预测中,但大多数情况下却忽略了噪声,并导致误差飙升。在评估当前方法时,存在无关信息的负面影响,因为当输入的空间大小变大时,错误率会大大增加。换句话说,并非所有空间位置都包含有助于预测的信息。取而代之的是,考虑更大的空间区域,输入的较高部分是微不足道的,从而引入了进一步破坏预测的噪声。减轻这种影响的常用策略是限制局部块内的采样区域,以使所有输入与目标共享强烈的相关性。但是,由于相关性是动态的并且分布不规则,因此仅考虑最近的邻居也牺牲了对于预测而言遥远但非平凡的输入。此外,按照传统的时间序列预测方式,长期预测可以轻松吸收先前结果中的误差。当每个时空输出将其误差传递到下一个预测时,误差传播比典型的时间序列问题更重要。因此,由于当前方法仅专注于预测下一个时间步长,因此它们忽略了此问题,不再在长期预测中保持其有效性。最近,采用深度神经网络已在时空预测方面取得了显着改善。由于lstm已牢固地确立为时间序列预测的最新方法,因此已广泛用于提高交通状态预测的性能。后来,注意到不仅时间信息而且空间相关性都是至关重要的,交通流量预测中还考虑了周围地区的特征。从那时起,许多时空预测研究,包括预测人群流量和乘车需求,开始使用cnn作为测量空间相关性的主要工具。为了证明惊人的有效性,深入研究了深残留的cnn和卷积递归网络以共同捕获时空相关性。在最新作品中,图卷积网络与lstm相结合,通过利用图表示来增强时空测量。但是,它们忽略了不相关的空间信息所带来的负面影响,当所考虑的区域变大时,这会导致错误增加。此外,它们主要集中在短期预测上,而很少注意错误传播,这使得它们在预测将来的进一步结果时效率较低。技术实现要素:本发明的目的在于提供一种基于多头自注意力机制的交通流量预测模型及方法,通过考虑长时间序列当中各个时间段对下一个时刻的影响程度计算相应的权重,利用注意力机制计算出更具有相关性的时间点,由于交通路段彼此相连接可看成是一个图结构的网络,利用图注意力机制计算出各个邻近站点对中心站点的影响,从而提高预测下一个时间的交通状况的准确性,提高后方驾驶员车辆对前方路况的响应速度。为了达到上述目的,本发明通过以下技术方案实现:一种基于多头自注意力机制的交通流量预测模型,包含:输入层,用于输入交通路网中n个站点在前t个时刻的历史交通流量序列;时间注意力模型模块,用于对各站点的历史交通流量序列进行多头自注意力机制计算,提取历史交通流量序列的时间序列特征;图注意力模型模块,用于对所述时间序列特征进行多头自注意力机制计算,获得站点之间的相关度矩阵,并根据所述相关度矩阵更新所述时间序列特征;全连接层,用于根据更新后的所述时间序列特征,对各站点的时间序列中各时间点数据进行全连接输出;输出层,用于输出所述交通路网中n个站点在t+1时刻的交通流量数据。进一步的,所述时间注意力模型模块按照以下方式对各站点的历史交通流量序列进行多头自注意力机制计算:a1,对k个单头时间自注意力模型均进行如下处理:a11,针对每个站点,采用单头自注意力机制对该站点的历史交通流量序列x计算得到该站点的时间序列特征;a12,将所有站点的时间序列特征拼接为一个时间序列特征x’;a13,对时间序列特征x’采用relu函数进行激活,并经过一层layernormalization;a2,对k个时间特征序列采用平均化处理,得到最终的时间序列特征x”,作为历史交通流量序列的时间序列特征。进一步的,a11采用如下公式计算站点的时间序列特征;式中,att(qi,ki,vi)表示采用第i个单头时间自注意力模型计算的时间序列特征,qi,ki,vi分别是由查询向量、键向量和值向量构成的矩阵,表示第i个单头时间自注意力模型的3个参数矩阵,x表示所有站点的历史交通流量序列,为常数。进一步的,所述图注意力模型模块按照以下方式获得站点之间的相关度矩阵并更新所述时间序列特征:b1,对m个单头图注意力模型均进行如下处理:b11,针对任两个站点,采用单头自注意力机制根据该两个站点的时间序列特征计算得到该两个站点间的相关度,将每两个站点间的相关度组成初始相关度矩阵;b12,利用邻接矩阵作为掩模对初始相关度矩阵进行过滤,过滤掉不相关的站点连接关系,再采用softmax函数进行归一化处理,最后利用leakyrelu进行激活得到最终相关度矩阵;b13,根据最终相关度矩阵对各站点的时间序列特征进行更新;b2,对b1得到的m个更新后的时间特征序列采用平均化处理,得到最终的更新后的时间序列特征x”’。进一步的,b11采用如下公式计算两个站点间的相关度:式中,eij表示站点i与站点j的相关度,a表示注意力系数,w表示权重矩阵参数,分别表示站点i与站点j的时间序列特征。进一步的,b13按照以下公式对各站点的时间序列特征进行更新:式中,表示更新后的站点i的时间序列特征,σ为激活函数,αij表示最终相关度矩阵中站点i与站点j的相关度,w表示权重矩阵参数,表示站点j的时间序列特征。一种基于多头自注意力机制的交通流量预测方法,包括:获取多个训练样本组成训练集,每个训练样本中输入数据为交通路网中n个站点在前t个时刻的历史交通流量序列,输出数据为交通路网中n个站点在第t+1个时刻的历史交通流量序列;采用所述训练集对如权利要求1~6任一项所述的基于多头自注意力机制的交通流量预测模型进行训练;采用训练好的所述基于多头自注意力机制的交通流量预测模型,对所述交通路网中n个站点的交通流量进行实时预测。与现有的交通预测方法相比,本发明的有益效果是:(1)采用自注意力机制,计算了各个时间点的重要程度,可以捕获长距离依赖关系,引入了multiself-attentionheads,以扩展attention机制的特征学习通道数。(2)使用了attention机制来描述邻接节点对于节点的重要性;对单特征上进行均值处理,多特征进行多个加权处理稳定self-attention的学习过程。(3)并行计算,相对于以往的卷积的方式,速度更快。附图说明为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:图1为本发明提供的一种基于多头自注意力机制的交通流量预测模型的示意图;图2为数据处理流程图。具体实施方式以下结合附图1、2和具体实施方式对本发明提出的技术方案作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。本发明提供的一种基于多头自注意力机制的交通流量预测模型,利用历史交通流量数据进行训练,然后用来预测未来时间点的交通流量。如图1所示,所述基于多头自注意力机制的交通流量预测模型包括:输入层,用于输入交通路网中n个站点在前t个时刻的历史交通流量序列;时间注意力模型模块,用于对各站点的历史交通流量序列进行多头自注意力机制计算,提取历史交通流量序列的时间序列特征;图注意力模型模块,用于对所述时间序列特征进行多头自注意力机制计算,获得站点之间的相关度矩阵,并根据所述相关度矩阵更新所述时间序列特征;全连接层,用于根据更新后的所述时间序列特征,对各站点的时间序列中各时间点数据进行全连接输出;输出层,用于输出所述交通路网中n个站点在t+1时刻的交通流量数据。输入层的输入数据可通过以下方式获取:选择某市出租车轨迹公开数据集作为数据样本,数据描述信息如表1所示:表1feturedescribespeed各个站点每隔5分钟采集一次平均速率locationid表示站点的id然后,对数据集进行数据预处理,具体实施时可以包括:(1)将数据进行归一化处理;(2)若数据集的周期为t,则将t个时刻的数据作为历史数据即为输入x,第t+1个时刻作为预测值即为y;(3)将数据集按照8:2的比例划分为训练集和测试集,用于进一步对模型进行训练和评估。经上述步骤处理之后,序列数据表示如下:x:{x1,x2,x3,x4,x5,x6,…xt},x∈rnxt,y:{yt+1},y∈rn。在时间注意力模型模块中,基于自注意力机制模型将初始化3个与x相同长度的参数矩阵分别为经过多头自注意力机制的公式(2)进行计算得到一个长度为f的时间序列特征,具体处理方式如下:a1,对k个单头时间自注意力模型均进行如下处理:a11,针对每个站点,采用单头自注意力机制对该站点的历史交通流量序列计算得到该站点的时间序列特征;a12,将所有站点的时间序列特征拼接为一个时间序列特征x’;a13,对时间序列特征x’采用relu函数进行激活,并经过一层layernormalization;a2,对a1得到的k个时间特征序列采用平均化处理,得到最终的时间序列特征x”’,作为历史交通流量序列的时间序列特征。在a11中,计算单头自注意力机制的公式为式中,att(qi,ki,vi)表示采用第i个单头时间自注意力模型计算的时间序列特征,qi,ki,vi分别是由查询向量、键向量和值向量构成的矩阵,表示第i个单头时间自注意力模型的3个参数矩阵,x的所有站点的历史交通流量序列,为常数。dw为参数矩阵的维度,dx为输入的历史交通流量序列维度。在公式(1)中,分别为线性映射的参数矩阵,q=[q1,…,qn],k=[k1,…,kn],v=[v1,…,vn]分别是由查询向量、键向量和值向量构成的矩阵,公式(1)用所有键计算查询的点积,将每个键除以然后应用softmax函数获得值的权重。由此,在具体实施时,a11先将q和k进行内积,找到历史交通流量序列x各个时间点与时间点之间的相关性,将得到的结果经过softmax来进行归一处理,最后将得到的值再乘以v,从而得到一个新的时间序列特征。经过上述计算后,时间序列特征维度升高,进而可以进行多头注意力计算,分别进行后续处理。对于每个站点同样进行a11步骤,最后将其拼接为新的时间序列特征x’,x’∈rn×f。对k个单头时间自注意力模型均进行如上操作可得k个x’,每个x’为n个站点长度为f的特征块。经过以上处理后对x’采用relu函数进行激活,将激活后得值经过一层layernormalization,可以使得特征在训练时收敛更快。通过以上处理后得到了k个特征块,此时对k个特征块采用平均化处理,使得训练更为平稳。因此得到最终的时间序列特征x”,x”∈rn×f。由此,计算多头自注意力机制的公式入下:式中,k表示注意力头的个数,我们将特征向量进行升维,并分为k个多维向量,最后取平均化处理,公式(2)计算得到的msa即为最终的时间序列特征x”。将时间注意力模型模块中计算的结果(即x”)输入到图注意力模型(gat)模块中,同样采用多头注意力机制的方式对各个站点的时间序列特征进行计算,获得站点之间的相关度矩阵从而更新各个站点的时间特征序列。具体处理方式如下:b1,对m个单头图注意力模型均进行如下处理:b11,针对任两个站点,采用单头自注意力机制根据该两个站点的时间序列特征计算得到该两个站点间的相关度,将每两个站点间的相关度组成初始相关度矩阵;b12,利用邻接矩阵作为掩模对初始相关度矩阵进行过滤,过滤掉不相关的站点连接关系,再采用softmax函数进行归一化处理,最后利用leakyrelu进行激活得到最终相关度矩阵;b13,根据最终相关度矩阵对各站点的时间序列特征进行更新;b2,对b1得到的m个更新后的时间特征序列采用平均化处理,得到最终的更新后的时间序列特征x”’。在b11中,计算单头gat中两个站点间的相关度的公式为:式中,eij表示站点i与站点j的相关度,a表示注意力系数,w表示权重矩阵参数,分别表示站点i与站点j的时间序列特征。h为输入的各个站点的时间序列特征,n为站点个数,f为每个站点的特征个数。w为权重矩阵参数化的共享线性变换应用于每个节点,w∈rf′×f。然后,我们在节点上执行自我关注-一种共享的关注机制a:rf′×rf′→r计算注意力系数。b12中采用softmax函数进行归一化处理和利用leakyrelu进行激活的公式分别为公式(4)和公式(5):其中αij表明节点j的特征对节点i的相关性。为了使系数可以轻松地在不同节点之间进行比较,我们使用softmax函数在所有j的选择中对它们进行归一化:公式(5)中注意力机制a是单层前馈神经网络,由权重向量参数化,并应用leakyrelu非线性(负输入斜率α=0:2)。b13按照以下公式对各站点的时间序列特征进行更新:式中,表示更新后的站点i的时间序列特征,σ为激活函数,αij表示最终相关度矩阵中站点i与站点j的相关度,w表示权重矩阵参数,表示站点j的时间序列特征。为将上一层传递的特征向量进行权重相乘。由此,b1得到了m个更新后的时间特征序列再对其进行平均化处理,得到最终的更新后的时间序列特征x”’。多头gat的计算公式如下:其中m表示gat的数目,是通过第m个注意机制(am)计算的归一化注意系数,wm是相应的输入线性变换的权重矩阵。公式(7)计算得到的即为最终的更新后的时间序列特征x”’。可见,在图注意力模型(gat)模块中,会先根据时间序列特征来获得各个站点特征之间的相似性,从而得到各个站点的相关度记为eij,最后利用邻接矩阵a∈rnxn作为mask对eij矩阵进行过滤,过滤掉不相关的站点连接关系,继而采用softmax函数进行归一化处理,最后利用leakyrelu进行激活得到最终的相关度矩阵,再将此矩阵与各站点的时间序列特征进行相乘,对各个站点的特征进行更新得到gat的输出x”’∈rn×f。在全连接层,将图注意力模型模块输出的x”’经过全连接层对各个站点的时间序列各个时间点数据进行全连接输出y,y∈rn×t(其中t为所需输出的预测时间长度)。最后由输出层输出y,即根据所述交通路网中n个站点在前t个时刻的历史交通流量序列预测得到的在t+1时刻的交通流量数据。此外,可以将输出层输出的y,与下一个时刻的真实值进行比较计算误差。可通过以下三种不同的公式用以评估模型计算最终结果的预测准确度。(a)mae其中公式(8)计算实际速度和预测速度之间的误差最小。ytrue是某时刻的真实值,ypred是某时刻的模型预测值。(b)rmse其中公式(9)计算实际速度和预测速度之间的误差最小。ytrue是某时刻的真实值,ypred是某时刻的模型预测值。(c)lossfunction其中公式(10)的第一项旨在计算实际速度和预测速度之间的误差最小,ytrue是某时刻的真实值,ypred是某时刻的模型预测值,第二项lreg是归一化项,有利于避免过度拟合,λ是一个超参数。本发明的技术要点在于:1、考虑各个时间点与历史时间点之间的相关性作为加权特征,将高度相关的时间点提取出来,2、考虑全用自注意力机制的方式,来加强特征训练的速度。基于同一发明构思,本发明还提供一种基于多头自注意力机制的交通流量预测方法,包括:获取多个训练样本组成训练集,每个训练样本中输入数据为交通路网中n个站点在前t个时刻的历史交通流量序列,输出数据为交通路网中n个站点在第t+1个时刻的历史交通流量序列;采用所述训练集对如上文所述的基于多头自注意力机制的交通流量预测模型进行训练;采用训练好的所述基于多头自注意力机制的交通流量预测模型,对所述交通路网中n个站点的交通流量进行实时预测。即,获取交通路网中n个站点当前t个时刻的历史交通流量序列x,输入所述基于多头自注意力机制的交通流量预测模型后,可输出预测的第t+1时刻的交通流量y,从而实现了交通流量的实时预测。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。上述实施例仅例示性说明发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1