【论文翻译】HTVGNN:一种用于交通流量预测的混合时间变化图神经网络

news2024/11/29 1:56:52

image-20241015162028520

题目A Novel Hybrid Time-Varying Graph Neural Network For Traffic Flow Forecasting
论文链接https://arxiv.org/pdf/2401.10155v4
关键词交通流预测,图神经网络,Transformer,多头自注意力

摘要

实时且精确的交通流量预测对于智能交通系统的效率至关重要。传统方法通常采用基于预定义图的图神经网络(GNNs)来描述城市道路网络中交通节点之间的空间相关性。然而,这些预定义的图受限于现有的知识和图生成方法,无法全面反映空间相关性。基于数据驱动的时间变化图虽然试图解决这些限制,但仍然难以充分捕捉交通数据中固有的空间相关性。此外,大多数现有方法在捕捉动态时空相关性时,依赖于统一的计算方案,使用基于时间的多头自注意力机制,但这种方法在某些层面可能导致不准确性。

为了解决这些挑战,我们提出了一种用于交通流量预测的混合时间变化图神经网络(HTVGNN)。首先,我们提出了一种基于时间变化掩码增强的增强时序感知多头自注意力机制,能够更准确地建模交通网络中不同交通节点之间的动态时间依赖性。其次,我们提出了一种新的图学习策略,以同时学习道路网络中不同交通节点的静态和动态空间关联关系。同时,为了增强时间变化图学习的能力,设计了一种耦合图学习机制,能够耦合每个时间步长学习到的图。最后,在四个真实数据集上验证了HTVGNN的有效性。仿真结果表明,HTVGNN在预测精度上优于现有的时空图神经网络模型。此外,消融实验验证了耦合图学习机制能够有效提高HTVGNN的长期预测性能。

HTVGNN

  • I. 引言
  • II. 相关工作
    • A. 传统交通预测方法
    • B. 时空图神经网络交通预测方法
    • C. Transformer
  • III. 问题定义
  • IV. 方法
    • A. 增强时间感知多头自注意力
    • B. 位置编码
    • C. 耦合时间变化图卷积递归模块
      • 1)图学习
      • 2)耦合时间变化图卷积门控递归单元
  • V. 实验
    • A. 数据集
    • B. 评估指标
    • C. 基准
    • D. 超参数设置
    • E. 性能比较
    • F. 消融研究
    • G. HTVGNN 超参数分析
    • H. 可视化
    • I. 效率研究
  • VI. 结论

I. 引言

随着城市化的快速加速,汽车拥有量急剧增加。车辆数量的上升加剧了提高道路网络效率以缓解交通拥堵的挑战。交通流量预测,基于实时数据提供未来交通状态信息,是推进智能交通管理和控制的关键。

早期研究主要利用统计方法构建交通流量预测模型。例如,历史平均(HA)、自回归滑动平均模型(ARIMA)、向量自回归模型(VAR)等。这些统计方法基于线性假设,应用于时间序列数据。然而,交通流量的复杂和可变性导致非线性依赖关系,从而使这些方法在实际预测任务中的表现欠佳。之后,传统的基于机器学习的方法(如支持向量回归(SVR)和k近邻(KNN))被报道可以克服基于统计方法的缺点。然而,这些方法对人工特征的依赖限制了它们在处理大规模交通流量数据时的有效性。随后,长短期记忆(LSTM)及其变种门控循环单元(GRU)被用于建模交通流时间序列数据中的时间依赖性,卷积神经网络(CNN)和图卷积网络(GCN)则用于捕捉不同交通节点之间的空间依赖性。

近年来,由于交通流量预测的核心是准确建模不同交通节点动态流量的复杂非线性时空依赖性,图卷积网络(GCN)和Transformer成为许多具有代表性的交通流量预测模型中的两大核心组件。尽管这些时空建模方法在交通流预测中取得了有希望的结果,准确捕捉道路网络中的复杂动态时空相关性仍然面临以下挑战:

  • Transformer模型最初是为自然语言处理开发的,它在机器翻译中表现出色,因为其强大的建模长期上下文特征的能力。其编码器-解码器架构显著提高了模型的泛化能力。这个架构的核心是多头自注意力机制。然而,这种传统机制在有效建模交通流中的动态时间相关性时面临困难,常常因为权重计算中的错误导致性能问题。此外,将周期性特征整合到该机制中可能会增强其感知交通数据中的时间相关变化的能力。

  • 捕捉道路网络节点之间的空间相关性具有挑战性,特别是在没有先验知识的情况下。尽管有些研究尝试基于现有知识创建空间结构图,这些图往往由于其基本假设和方法的局限性而无法准确表示空间相关性。其他研究虽然在自适应空间建模方面取得了进展,但它们仍然主要使用全局自适应图来表示所有时间步长,从而限制了其学习潜力。

  • 另一个主要挑战在于,空间相关性的静态特性在自适应和预定义的图中都存在,这与交通网络动态且不断变化的拓扑结构不符。准确建模这些动态空间相关性至关重要。现有的模型,如Liu等人的STGHTN和Zhu等人的CorrSTN,使用多头注意力机制进行动态建模,前者用于动态调整特征,后者则在集群卷积前修改图结构。然而,这些方法由于依赖于空间多头注意力,通常带来较高的计算复杂度。

为了解决这些已识别的挑战,本文提出了一种用于交通流量预测的混合时间变化图神经网络。提出了一种基于时间变化掩码增强的时序感知多头自注意力机制,以提升注意力模型的计算精度和时序敏感性。设计了一种高效的耦合时间变化图卷积递归网络,用于捕捉交通流的时空动态。该网络在每个时间步长上利用时间变化图,增强其学习空间依赖性和道路网络交通长期趋势的能力。通过整合不同时间步长的时间变化图,模型有效结合了短期和长期交通模式。此外,提出了一种动态图卷积方法,利用拓扑和语义矩阵组合作为掩码,从而更加精确地对交通网络中的动态空间相关性进行建模。

以下是本文在交通流量预测方面的三大主要贡献:

  • 提出了一种基于时间变化掩码增强的时序感知多头自注意力机制,与传统方法不同。该机制基于输入数据的时序特征动态调整注意力计算,从而更准确地捕捉交通节点间的时间依赖性。时间变化掩码由三部分组成:用于修正多头自注意力机制的静态掩码嵌入,以及两个动态掩码嵌入,以增强该机制的时间感知能力。

  • 提出了一种新的图学习策略,能够同时解决交通网络中的静态和动态空间相关性问题。为增强静态空间相关性的学习,采用了全局和局部时间变化嵌入,促进在不同时间步长下对空间关系的理解。此外,还引入了耦合图学习机制,将不同时间步长学习到的图整合起来,以便更精确地捕捉动态空间相关性。通过使用从拓扑和语义矩阵派生的掩码矩阵,对由策略生成的动态图进行精化。

  • 在四个真实世界的数据集上对提出的HTVGNN方法进行了仿真评估。结果表明,HTVGNN的预测精度高于最新的时空图神经网络模型。此外,消融研究证实,耦合图学习机制的整合显著增强了模型的长期预测能力。

II. 相关工作

A. 传统交通预测方法

交通流量预测在城市智能交通中起着关键作用,能够基于交通网络的实时数据预测未来的交通状况。这些信息为交通管理部门的调度和决策提供了基础。在早期研究中,研究人员主要依赖于数学统计方法和早期的机器学习技术,如历史平均(HA)、自回归滑动平均(ARIMA)、向量自回归模型(VAR)等。然而,由于交通流量的复杂和动态特性,这些模型在实际的交通预测任务中表现往往不佳。随着深度学习技术在语音识别和图像处理等领域的显著进步,越来越多的研究者开始采用深度学习方法进行时空交通流量预测任务。卷积神经网络(CNN)、长短期记忆网络(LSTM)及其变种门控循环单元(GRU)被广泛应用,代表了大幅提高交通流量预测精度的深度学习方法。与以往的方法不同,基于深度学习的方法能够有效捕捉时空相关性。例如,全连接长短期记忆网络(FC-LSTM)结合了CNN和LSTM,以提取交通流数据中的隐式时空特征。然而,由于CNN最初是为处理规则网格结构(如图像和视频的欧几里得数据)设计的,在处理交通网络的图结构数据时表现不佳,导致FC-LSTM的预测性能不足。

B. 时空图神经网络交通预测方法

传统的交通研究将交通流预测视为一个简单的时间序列问题,忽视了交通网络中其他节点对当前节点的影响。因此,传统预测方法的表现并不理想。为增强建模能力,研究人员开始研究有效的方法,以捕捉交通网络中的空间特征。例如,ConvLSTM采用卷积操作来对序列中的空间特征进行建模。然而,传统的卷积神经网络(CNNs)最初是为处理具有规则网格结构的欧几里得数据(如图像和视频)设计的,这使得它们在处理图结构数据时效果不佳。图卷积网络(GCNs)扩展了传统卷积以处理非欧几里得数据,并在各种基于图的预测任务中展示了良好的效果。时空图神经网络(STGNNs),如STGCN,结合了图卷积和时间卷积或循环神经网络(RNNs),能够有效捕捉道路网络中的空间和时间特征。然而,STGCN对空间特征的捕捉能力受限于训练时使用的预定义图结构。相反,像GraphWaveNet和AGCRN这样的模型能够自适应地从数据中学习道路网络的图结构,无需先验知识,并在预测性能上与基于预定义图的模型相媲美。

C. Transformer

Transformer模型最初是在机器翻译领域提出的,之后被广泛应用于包括自然语言处理(NLP)和计算机视觉等深度学习领域。Transformer模型采用了基于多头自注意力机制(MSA)的编码结构,因其强大的上下文信息建模能力而著称。因此,MSA在机器翻译任务中得到了广泛的应用,并提供了出色的性能。在交通流预测中,Transformer模型采用基于时间的多头自注意力机制,将数据映射到高维空间,通过多个注意力组来学习不同特征之间的最佳注意力分配。这使得在不同特征之间可以同时学习到最优的注意力分布。研究人员成功地将MSA引入交通流预测,显著提高了多个方面的预测性能。例如,Yan等人提出了Traffic Transformer模型,通过首先设计一个编码和嵌入块来解决不同研究领域中的数据差异。此外,他们通过引入两个组件——全局编码器和全局-局部解码器——增强了Transformer的原始编码器-解码器结构。这些块堆叠在一起,形成具有层次特征的深度预测网络。另一方面,Wang等人提出了一种结合位置注意力机制的新型图神经网络层,能够动态聚合来自邻近道路的历史交通流信息。为了更好地捕捉全局和局部层面的时间特征,他们结合了RNN和Transformer层。

III. 问题定义

定义 1. 交通网络

交通网络可以表示为加权有向图 G = ( V , E , A ) G = (\mathcal{V}, \mathcal{E}, A) G=(V,E,A),其中 V \mathcal{V} V 表示道路网络中的所有节点( ∣ V ∣ = N \lvert \mathcal{V} \rvert = N V=N), E \mathcal{E} E 是所有边的集合,表示不同节点之间的连通性。 A ∈ R N × N A \in \mathbb{R}^{N \times N} ARN×N 表示加权邻接矩阵,其值代表不同节点之间的相关性程度。

定义 2. 交通流特征

基于交通网络,交通流预测的输入定义为 X ∈ R T × N × C X \in \mathbb{R}^{T \times N \times C} XRT×N×C,表示在过去 T T T 个时间点由所有节点观测到的交通流特征(如交通流量、速度等)。

定义 3. 交通流预测

给定道路拓扑 G G G 和交通流特征 X = [ X t − T + 1 , . . . , X t ] ∈ R T × N × C X = [X_{t-T+1}, ..., X_t] \in \mathbb{R}^{T \times N \times C} X=[XtT+1,...,Xt]RT×N×C,我们旨在通过分析交通流特征 X X X 来预测未来 τ \tau τ 个时间点的交通状况 P = [ P t + 1 , . . . , P t + τ ] ∈ R τ × N × C P = [P_{t+1}, ..., P_{t+\tau}] \in \mathbb{R}^{\tau \times N \times C} P=[Pt+1,...,Pt+τ]Rτ×N×C

定义 4. 时间变化掩码嵌入

在具有 N N N 个节点的交通网络中,传感器每天采样 n n n 次(如果采样间隔设置为 5 分钟,则 n = 288 n = 288 n=288),考虑到一周的7天。嵌入的维度为 d m d_m dm。定义三个独立训练的嵌入 E ~ ∈ R N × d m \tilde{E} \in \mathbb{R}^{N \times d_m} E~RN×dm E ~ D ∈ R n × d m \tilde{E}^D \in \mathbb{R}^{n \times d_m} E~DRn×dm E ~ W ∈ R 7 × d m \tilde{E}^W \in \mathbb{R}^{7 \times d_m} E~WR7×dm 用于生成日掩码嵌入 P ~ t D ∈ R N × d m \tilde{P}^D_t \in \mathbb{R}^{N \times d_m} P~tDRN×dm 和周掩码嵌入 P ~ t W ∈ R N × d m \tilde{P}^W_t \in \mathbb{R}^{N \times d_m} P~tWRN×dm,对应于当前交通流 X t X_t Xt。同时, E ~ \tilde{E} E~ 用于优化生成的日掩码嵌入 E ~ D \tilde{E}^D E~D 和周掩码嵌入 E ~ W \tilde{E}^W E~W

IV. 方法

为了更准确地捕捉不同交通节点之间的动态时空相关性,我们提出了一种用于交通流预测的混合时间变化图神经网络(HTVGNN)。HTVGNN的基本结构如图1所示。首先,提出了一种增强时序感知多头自注意力机制,用于建模动态时序相关性。然后,使用耦合时间变化图卷积门控递归模块(CTVGCRM)来提取时空相关性。在CTVGCRM中,我们构建静态和动态时间变化图来捕捉交通节点之间的空间相关性。

image-20241015223546514

值得注意的是,更精确的时序多头注意力可以为耦合时间变化图提供更多区分的时空特征。这有助于耦合时间变化图在不同时间步长上学习交通模式。通过这种方式,我们构建的耦合时间变化图可以发挥更好的效果。我们提出的HTVGNN模型的详细结构和机制总结如下。

A. 增强时间感知多头自注意力

自注意力机制是一种更广泛的注意力机制,其中query、key和value是同一序列的不同表示。为了学习输入数据的复杂和时间变化的时间依赖性,时间特征 X ∈ R T × N × C X \in \mathbb{R}^{T \times N \times C} XRT×N×C 通常映射到一个高维空间,并采用广泛使用的多头自注意力(MHSA)。对于第 i i i 个头的自注意力, Q i ∈ R T × N × d q , K i ∈ R T × N × d k , V i ∈ R T × N × d v Q_i \in \mathbb{R}^{T \times N \times d_q}, K_i \in \mathbb{R}^{T \times N \times d_k}, V_i \in \mathbb{R}^{T \times N \times d_v} QiRT×N×dq,KiRT×N×dk,ViRT×N×dv 通过线性投影生成,定义如公式 (1) 所示:

Q i = X W i q , K i = X W i k , V i = X W i v , Q_i = XW_i^q, \quad K_i = XW_i^k, \quad V_i = XW_i^v, Qi=XWiq,Ki=XWik,Vi=XWiv,

其中 W i q , W i k , W i v W_i^q, W_i^k, W_i^v Wiq,Wik,Wiv 是第 i i i 个自注意头的可学习参数。

接下来,将 Q i ∈ R T × N × d q , K i ∈ R T × N × d k , V i ∈ R T × N × d v Q_i \in \mathbb{R}^{T \times N \times d_q}, K_i \in \mathbb{R}^{T \times N \times d_k}, V_i \in \mathbb{R}^{T \times N \times d_v} QiRT×N×dq,KiRT×N×dk,ViRT×N×dv 输入到一个并行的注意力得分函数中,定义如公式 (2) 所示,以计算第 i i i 个自注意力头的注意力:

h e a d i = A t t e n t i o n ( Q i , K i , V i ) = S o f t m a x ( Q i K i ⊤ d h e a d ) V i , head_i = Attention(Q_i, K_i, V_i) = Softmax \left(\frac{Q_i K_i^\top}{\sqrt{d_{head}}}\right) V_i, headi=Attention(Qi,Ki,Vi)=Softmax(dhead QiKi)Vi,

最终,与输入 X ∈ R T × N × C X \in \mathbb{R}^{T \times N \times C} XRT×N×C 对应的多头自注意力可以通过将 h h h 个自注意力头的注意力加权在一起获得。具体而言,它可以通过以下公式 (3) 计算:

M H S A = [ h e a d 1 , ⋯   , h e a d i , ⋯   , h e a d h ] W , MHSA = [head_1, \cdots, head_i, \cdots, head_h]W, MHSA=[head1,,headi,,headh]W,

其中 h h h 是所有注意力头的总数, W W W 是最终输出投影矩阵。然而,在传统的多头注意力机制中,key ( K i ) (K_i) (Ki) 会导致不必要的干扰。此外,由于学习到的参数 W i q , W i k , W i v W_i^q, W_i^k, W_i^v Wiq,Wik,Wiv 在训练后保持不变,传统的多头注意力方程式 (2) 计算的得分无法完全感知自注意力的时间趋势。因此,设计了一个时间变化掩码嵌入生成器。生成器的关键过程是找到与当前交通流 X t X_t Xt 对应的时间的每日子掩码嵌入 P ~ t D \tilde{P}_t^D P~tD 和每周子掩码嵌入 P ~ t W \tilde{P}_t^W P~tW。然后,基于一个可独立训练的嵌入 E ~ ∈ R N × d m \tilde{E} \in \mathbb{R}^{N \times d_m} E~RN×dm,我们提出了一个增强的时间感知多头自注意力(ETPMSA)。

image-20241015224359970

为简化表示,我们提出的增强的时间感知多头自注意力(ETPMSA),如图 2 所示,可以通过公式 (4) 计算如下:
E T P M u l A t t ( Q , K , V ) = Θ ⋅ W ^ , ETPMulAtt(Q, K, V) = \Theta \cdot \hat{W}, ETPMulAtt(Q,K,V)=ΘW^,

Θ = [ h e a d 1 E T P , ⋯   , h e a d i E T P , ⋯   , h e a d h E T P ] , \Theta = [head_1^{ETP}, \cdots, head_i^{ETP}, \cdots, head_h^{ETP}], Θ=[head1ETP,,headiETP,,headhETP],

其中 W ^ \hat{W} W^ 是一个可学习的参数, h e a d i E T P head_i^{ETP} headiETP 表示第 i i i 个自注意力头,其可通过公式 (5) 到 (9) 计算:

h e a d i E T P = S o f t m a x ( Q i ⋅ K i E T P d h e a d ) V i head_i^{ETP} = Softmax \left(\frac{Q_i \cdot K_i^{ETP}}{\sqrt{d_{head}}}\right) V_i headiETP=Softmax(dhead QiKiETP)Vi

K i E T P = M ⋅ K i , K_i^{ETP} = M \cdot K_i, KiETP=MKi,

M = [ M t − τ + 1 , ⋯   , M t ] , M = [M_{t-\tau+1}, \cdots, M_t], M=[Mtτ+1,,Mt],

M t = m t ⋅ m t ⊤ , M_t = m_t \cdot m_t^\top, Mt=mtmt,

m t = E ~ ∘ P ~ t D ∘ P ~ t W , m_t = \tilde{E} \circ \tilde{P}_t^D \circ \tilde{P}_t^W, mt=E~P~tDP~tW,

其中 Q i ∈ R T × N × d q , K i ∈ R T × N × d k , V i ∈ R T × N × d v Q_i \in \mathbb{R}^{T \times N \times d_q}, K_i \in \mathbb{R}^{T \times N \times d_k}, V_i \in \mathbb{R}^{T \times N \times d_v} QiRT×N×dq,KiRT×N×dk,ViRT×N×dv 是传统多头注意力中定义的query、key和value, M t ∈ R N × N M_t \in \mathbb{R}^{N \times N} MtRN×N 是根据时间步 t t t 的输入数据大小定义的掩码矩阵。需要注意的是, m t ∈ R N × d m m_t \in \mathbb{R}^{N \times d_m} mtRN×dm 是掩码嵌入,由三个子掩码嵌入 E ~ ∈ R N × d m \tilde{E} \in \mathbb{R}^{N \times d_m} E~RN×dm P ~ t D ∈ R N × d m , P ~ t W ∈ R N × d m \tilde{P}_t^D \in \mathbb{R}^{N \times d_m}, \tilde{P}_t^W \in \mathbb{R}^{N \times d_m} P~tDRN×dm,P~tWRN×dm 组成的。子掩码嵌入 P ~ t D \tilde{P}_t^D P~tD P ~ t W \tilde{P}_t^W P~tW 是时间步 t t t 的每日子掩码嵌入和每周子掩码嵌入。子掩码嵌入 P ~ t D \tilde{P}_t^D P~tD P ~ t W \tilde{P}_t^W P~tW 被用来增强模型的时间感知能力,通过更新多头自注意力机制的key ( K K K)。

B. 位置编码

时间位置编码用于表示时间序列中的时间顺序,在连续时间步长的序列中,时间步长之间表现出更高的相关性。在传统的Transformer模型中,正弦和余弦函数用于在计算时间位置编码的过程中映射不同的特征维度,如公式(10)所述:

P E ( p o s , 2 d ) = sin ⁡ ( p o s 1000 0 2 d D ) PE(pos, 2d) = \sin \left( \frac{pos}{10000^{\frac{2d}{D}}} \right) PE(pos,2d)=sin(10000D2dpos)

P E ( p o s , 2 d + 1 ) = cos ⁡ ( p o s 1000 0 2 d D ) (10) PE(pos, 2d+1) = \cos \left( \frac{pos}{10000^{\frac{2d}{D}}} \right) \tag{10} PE(pos,2d+1)=cos(10000D2dpos)(10)

其中, p o s pos pos 表示位置, d d d 表示特征维度, D D D 表示模型的嵌入维度。

C. 耦合时间变化图卷积递归模块

为了进一步提取时间和空间特征,提出了一种新的耦合时间变化图卷积递归模块(CTVGCRM)。

image-20241015224434176

CTVGCRM的结构如图3所示,CTVGCRM的详细设计总结如下:

1)图学习

如指出的那样,交通节点之间通常存在静态和动态空间相关性。为了捕捉这些静态和动态的空间相关性,我们提出了一种图学习方法,能够在没有任何先验知识的情况下以数据驱动的方式生成静态图和动态图。

  • 静态图学习
    为了捕捉交通节点之间的静态空间相关性,我们使用两个可学习的嵌入向量自适应地学习每个时间步长的静态邻接矩阵。第 t t t 个时间步长的静态邻接矩阵 A t s A_t^s Ats 定义为公式(11):

E t = E + e t E_t = E + e_t Et=E+et

A t s = S o f t m a x ( E t ⊙ E t T ) (11) A_t^s = Softmax(E_t \odot E_t^T) \tag{11} Ats=Softmax(EtEtT)(11)

其中, E E E 是一个可训练的节点嵌入, e t e_t et 是不同时间步长 t t t 的可训练偏置项。为了在训练过程中保证 A t s A_t^s Ats 的多样性,我们在不同时间步长 t t t 设置不同的 e t e_t et,并使用激活函数 S o f t m a x ( ) Softmax() Softmax()

为了建模不同交通节点之间交通流的相似性,使用DTW算法计算历史交通流的相关性来定义交通模式图。一般而言,交通模式图反映了长期交通模式。然而,短期交通模式可能在短期交通流预测中起着更重要的作用。因此,为了在不同时间步长获得更多空间拓扑相关信息,我们提出了静态图学习模块来提高静态邻接矩阵的学习能力。每个时间步长,我们可以构建静态图,静态邻接矩阵 A t s A_t^s Ats 定义如公式(11)。然后,为了更准确地建模交通节点之间的静态空间相关性,我们可以通过公式(12)进一步计算耦合时间变化邻接矩阵:

A t + 1 s = S o f t m a x ( ( E t − T + 1 ⊙ E t − T + 1 T ) ∣ ∣ S o f t m a x ( E t + 1 ⊙ E t + 1 T ) ∣ ∣ ⋯ ∣ ∣ S o f t m a x ( E t ⊙ E t T ) ⊙ W t ) (12) A_{t+1}^s = Softmax((E_{t-T+1} \odot E_{t-T+1}^T) || Softmax(E_{t+1} \odot E_{t+1}^T) || \cdots || Softmax(E_t \odot E_t^T) \odot W_t) \tag{12} At+1s=Softmax((EtT+1EtT+1T)∣∣Softmax(Et+1Et+1T)∣∣∣∣Softmax(EtEtT)Wt)(12)

其中, W t − T + 2 , . . . , W t W_{t-T+2},...,W_t WtT+2,...,Wt 是可学习的参数。在完成图耦合过程后,耦合图 A t s A_t^s Ats 被用作每个时间步长空间相关性建模的最终静态邻接矩阵。

  • 动态图学习
    为了捕捉不同交通节点之间的动态空间相关性,动态邻接矩阵基于当前交通特征的隐藏嵌入 H H H 计算。我们设计了一个 1 × 1 1 \times 1 1×1 卷积层作为映射函数 ϕ \phi ϕ,映射过程定义如公式(13)。然后定义一个可学习的向量 a a a 来计算节点 i i i 和节点 j j j 之间的注意力权重。 t t t 时间步长节点 i i i 和节点 j j j 的动态邻接矩阵 A t v ( i , j ) A_t^v(i,j) Atv(i,j) 定义如公式(13)至(16):

E t v = H t W ϕ (13) E_t^v = H_t W_{\phi} \tag{13} Etv=HtWϕ(13)

e i j v = a ⋅ ( [ E t v ] i ∣ ∣ [ E t v ] j ) (14) e_{ij}^v = a \cdot ([E_t^v]_i || [E_t^v]_j) \tag{14} eijv=a([Etv]i∣∣[Etv]j)(14)

A t v ( i , j ) = [ S o f t m a x ( e i j v ) ] j (15) A_t^v(i,j) = [Softmax(e_{ij}^v)]_j \tag{15} Atv(i,j)=[Softmax(eijv)]j(15)

A ~ t v = A t v ⊙ ( A + A d t w ) (16) \tilde{A}_t^v = A_t^v \odot (A + A_{dtw}) \tag{16} A~tv=Atv(A+Adtw)(16)

其中, A t v ( i , j ) A_t^v(i,j) Atv(i,j) t t t 时间步长节点 i i i 和节点 j j j 的值, A t v A_t^v Atv t t t 时间步长的值。动态空间相关性的变化应归属于当前时间步长内实际存在的最活跃节点,如邻接矩阵 A A A 和 DTW矩阵 A d t w A_{dtw} Adtw 中所表示的节点。因此,我们结合邻接矩阵 A A A 和 DTW矩阵 A d t w A_{dtw} Adtw 作为动态空间相关性的掩码矩阵,最终的动态邻接矩阵 A ~ t v \tilde{A}_t^v A~tv 定义如公式(16)。

2)耦合时间变化图卷积门控递归单元

GRU 是 RNN 的一种变体,它保持了 RNN 在捕捉时间特征方面的有效性,同时简化了模型的参数,使其广泛应用于时间相关性的捕捉。基于之前的研究,提出了一种耦合时间变化图卷积门控递归单元(CTVGCRU),通过将 GRU 中的矩阵乘法替换为图卷积网络和节点自适应参数学习模块的组合。具体形式可以定义为公式(17):

H ^ t = H t ∣ ∣ h t − 1 \hat{H}_t = H_t || h_{t-1} H^t=Ht∣∣ht1

E ^ = [ E t − T + 1 , . . . , E t ] \hat{E} = [E_{t-T+1}, ..., E_t] E^=[EtT+1,...,Et]

z t = σ ( ∥ [ g s ( H ^ t , E ^ ; θ z 1 ) , g d ( H ^ t , E t v ; θ z 2 ) ] ∥ ) z_t = \sigma \left( \left\| \left[ g_s(\hat{H}_t, \hat{E}; \theta_{z1}), g_d(\hat{H}_t, E_t^v; \theta_{z2}) \right] \right\| \right) zt=σ( [gs(H^t,E^;θz1),gd(H^t,Etv;θz2)] )

r t = σ ( ∥ [ g s ( H ^ t , E ^ ; θ r 1 ) , g d ( H ^ t , E t v ; θ r 2 ) ] ∥ ) r_t = \sigma \left( \left\| \left[ g_s(\hat{H}_t, \hat{E}; \theta_{r1}), g_d(\hat{H}_t, E_t^v; \theta_{r2}) \right] \right\| \right) rt=σ( [gs(H^t,E^;θr1),gd(H^t,Etv;θr2)] )

c t = tanh ⁡ ( ∥ [ g s ( g t , E ^ ; θ c 1 ) , g d ( g t , E t v ; θ c 2 ) ] ∥ ) c_t = \tanh \left( \left\| \left[ g_s(g_t, \hat{E}; \theta_{c1}), g_d(g_t, E_t^v; \theta_{c2}) \right] \right\| \right) ct=tanh( [gs(gt,E^;θc1),gd(gt,Etv;θc2)] )

g t = H t ∣ ∣ r t ⊙ h t − 1 g_t = H_t || r_t \odot h_{t-1} gt=Ht∣∣rtht1

h t = z t ⊙ h t − 1 + ( 1 − z t ) ⊙ c t (17) h_t = z_t \odot h_{t-1} + (1 - z_t) \odot c_t \tag{17} ht=ztht1+(1zt)ct(17)

其中, H t H_t Ht h t h_t ht 分别是时间步长 t t t 的输入隐藏嵌入和输出隐藏嵌入。符号 ∣ ∣ || ∣∣ 表示拼接操作, z t z_t zt r t r_t rt 分别表示时间步长 t t t 的重置门和更新门。 g s g_s gs g d g_d gd 分别表示图卷积网络(GCN)和动态图卷积网络(DGCN)。 θ z 1 , θ z 2 \theta_{z1}, \theta_{z2} θz1,θz2 θ r 1 , θ r 2 \theta_{r1}, \theta_{r2} θr1,θr2 以及 θ c 1 , θ c 2 \theta_{c1}, \theta_{c2} θc1,θc2 是 CTVGCRM 中的可学习参数。

V. 实验

A. 数据集

我们通过对四个真实世界的交通数据集(PEMS03、PEMS04、PEMS07 和 PEMS08)进行实验来验证我们提出的 HTVGNN 方法的预测性能。这些数据集由加州交通管理系统(PeMS)收集。有关详细信息请参阅表 I。

image-20241015224540841

B. 评估指标

在本研究中,我们采用了三种效果衡量标准,即平均绝对误差(MAE)、平均绝对百分比误差(MAPE)和均方根误差(RMSE),用于评估 HTVGNN 模型的准确性,如公式 (18) 至 (20) 所示:

M A P E = 1 n ∑ i ∣ y i − y ^ i y i ∣ × 100 % (18) MAPE = \frac{1}{n} \sum_i \left| \frac{y_i - \hat{y}_i}{y_i} \right| \times 100\% \tag{18} MAPE=n1i yiyiy^i ×100%(18)

M A E = 1 n ∑ i ∣ y ^ i − y i ∣ (19) MAE = \frac{1}{n} \sum_i |\hat{y}_i - y_i| \tag{19} MAE=n1iy^iyi(19)

R M S E = 1 n ∑ i ( y ^ i − y i ) 2 (20) RMSE = \sqrt{\frac{1}{n} \sum_i (\hat{y}_i - y_i)^2} \tag{20} RMSE=n1i(y^iyi)2 (20)

其中, y ^ i \hat{y}_i y^i y i y_i yi 分别表示节点 i i i 处的预测值和真实值, n n n 表示节点的总数。

C. 基准

我们将 HTVGNN 模型与 13 个最新的基准模型进行了对比,如下所述:

  • 历史平均值(HA) :HA 模型将交通状况建模为季节性过程,并使用历史平均值作为预测。

  • 向量自回归(VAR) :VAR 模型可以处理多个变量之间相关性的时间序列模型。

  • 长短期记忆(LSTM) :LSTM 是 RNN 的经典变体,可用于长期时间序列预测。

  • 时空图卷积网络(STGCN) :STGCN 是一种新颖的时空图卷积网络,有效捕捉时空特征,通过图卷积和门控时间卷积的结合实现。

  • 扩散卷积递归神经网络(DCRNN) :DCRNN 通过将交通流与扩散过程关联来建模空间依赖性,并引入扩散卷积至 GRU 中,以编码器-解码器的方式进行多步交通流预测。

  • 图波网络(Graph WaveNet,GWN) :GWN 使用自适应邻接矩阵并通过节点嵌入进行学习,用于深度时空图建模。

  • 基于注意力的时空图卷积网络(ASTGCN) :ASTGCN 将注意力机制引入 CNN 和 GCN 以分别建模交通数据的时空动态。

  • 自适应图卷积递归网络(AGCRN) :AGCRN 通过节点自适应参数学习增强 GCN,并结合 GRU 捕捉交通数据的时空特征。

  • 图多注意力网络(GMAN) :GMAN 使用时空多注意力机制来建模动态时空相关性,并设计了门控机制以更好地融合时空特征。

  • 基于 Transformer 的动态层次化交通时空特征学习(Tformer) :Tformer 使用 LSTM 编码历史流数据,设计了全局编码器和全局-局部解码器以提取全局和局部的时空特征。

  • 双动态时空图卷积网络(DDSTGCN) :DDSTGCN 通过将交通流图的边转换为双重超图,利用 GCN 在超图上的时空特性进行建模。

  • 双向时空自适应 Transformer(Bi-STAT) :Bi-STAT 的编码器-解码器结构包括时间 Transformer 和空间 Transformer,并引入召回模块为预测任务提供补充信息。

  • 基于高效谱注意力网络的解耦交通预测(STWave) :STWave 分解复杂的交通数据为稳定的趋势和波动事件,利用双通道时空网络分别建模趋势和事件。

D. 超参数设置

  1. 数据预处理
    根据最近的方法,我们以 6:2:2 的比例划分训练集、验证集和测试集。为了确保更稳定的训练,采用了 Z-score 标准化。此外,我们利用过去 T = 12 T = 12 T=12 个时间片(60 分钟)的历史交通流速度数据,预测未来 τ = 12 \tau = 12 τ=12 个时间片(60 分钟)的交通流速度。输入数据使用 Z-score 正态化处理,如公式 (21) 所示:

x ^ = x − m e a n ( x t r i a n ) s t d ( x t r i a n ) (21) \hat{x} = \frac{x - mean(x_{trian})}{std(x_{trian})} \tag{21} x^=std(xtrian)xmean(xtrian)(21)

其中, m e a n ( ) mean() mean() s t d ( ) std() std() 分别表示均值和标准差函数, x t r i a n x_{trian} xtrian 代表训练集。

  1. 模型设置
    实验在配备了 NVIDIA RTX 3090 和 32GB 内存的单机上进行。HTVGNN 使用 Ubuntu 18.04、PyTorch 2.0.0 和 Adam 优化器进行训练。学习率设置为 0.001,其余超参数如表 IV 所示。

E. 性能比较

image-20241015224617652

image-20241015224834788

表 II 和表 III 展示了四个数据集上12种预测模型的对比结果。总体而言,我们的 HTVGNN 在所有12个预测步骤中都表现出了出色的预测准确性。基于深度学习的方法在处理高度非线性的交通流方面,明显优于传统的基于统计的向量自回归(VAR)方法。正如表 II 和表 III 所示,这些方法表现出了次优的预测性能。此外,捕捉时空依赖性的方法通常优于仅建模时间依赖性的方法(如 LSTM),这进一步强调了空间依赖性的重要性。DCRNN 和 STGCN 使用预定义图来建模路网中的空间依赖性,但它们的表现很大程度上取决于预定义图的质量。AGCRN 利用自适应图来捕捉空间依赖性,这通常比预定义图提高了预测精度。然而,无论是预定义图还是自适应图,在预测阶段都保持静态,忽视了路网中的动态变化。相比之下,动态建模空间依赖性的模型(如 GMAN、STWave)显著优于基于静态图结构的其他方法(如 DCRNN、STGCN、GWN)。这是由于它们能够学习动态变化的图结构,并提供了一个更广泛的表示空间来建模更复杂的时空依赖性。

与其他模型相比,HTVGNN 通过引入时间变化的掩码矩阵,增强了多头注意力机制,准确捕捉动态时间相关性。此外,HTVGNN 采用了专门的耦合图学习方法,为多头注意力量身定制,有效提高了其在长期预测任务中的表现。为了更好地在路网中建模动态空间相关性,我们基于拓扑和语义矩阵定义了一个掩码,以优化动态时间变化图。总体上,我们的模型在四个数据集上优于现有的最先进方法,表现出更高的预测准确性。

此外,为了展示我们模型的整体优越性,我们为 HTVGNN 和13个对比模型的每个预测点提供了可视化表示,如图4所示。在 PEMS03 和 PEMS04 数据集中,随着时间步长长度的增加,我们的模型表现出最小的累积误差,突显了 HTVGNN 在长期预测阶段的明显优势。此外,对于 PEMS07 和 PEMS08 数据集,我们的模型在所有时间步长中始终保持显著的优势。

image-20241015224932129

F. 消融研究

本节的目的是通过一系列实验展示我们模型关键组件的有效性。随后的一些变化旨在表明不同模块组合的效果:

  • w/o ETPMSA:应仅使用 CTVGCRM,不包含增强的时间感知多头自注意力机制。这一变体主要展示了增强的时间感知多头自注意力的功能。

  • w/o TV:用拓扑图替换 CTVGCRM 中的时间变化图,强调其在捕捉空间相关性中的关键作用。

  • w/o TR:用基于拓扑图的卷积替换 CTVGCRM,这主要强调了 HTVGNN 中 RNN 模块的作用。在此时,层数保持不变。

实验进行了多次,表 V 展示了每种变体在 PEMS04 和 PEMS08 数据集上的最佳 MAE、RMSE 和 MAPE 值。

image-20241015224947273

表 V 中的结果表明,包含 ETPMSA 的 HTVGNN 在性能上优于没有 ETPMSA 的 HTVGNN,强调了 ETPMSA 在 HTVGNN 中的关键作用。此外,w/o TV 相比 HTVGNN 性能下降,表明通过时间变化图捕捉空间相关性至关重要。此外,w/o TR 性能低于 HTVGNN,表明 RNN 在捕捉时间相关性中的积极贡献。

image-20241015224959888

鉴于我们的模型是混合时间变化图卷积神经网络,本教程旨在通过将模型分为多个模块,分析时间变化掩码嵌入和时间变化嵌入对其性能的影响,最终分析这些模块对模型性能的影响。

1) 时间变化掩码嵌入在增强时间感知多头自注意力中的效果分析

为了展示我们提出的时间变化掩码嵌入在增强时间感知多头自注意力中的有效性,我们选择了报告的具有时间趋势感知多头自注意力的 Transformer 模型作为对比模型,称为 Transformer-o。为了便于描述,带有时间变化掩码嵌入的增强时间感知多头自注意力称为 Transformer-tv。首先,我们研究了掩码嵌入 E ~ ∈ R N × d m \tilde{E} \in \mathbb{R}^{N \times d_m} E~RN×dm P ~ t D ∈ R N × d m \tilde{P}_t^D \in \mathbb{R}^{N \times d_m} P~tDRN×dm P ~ t W ∈ R N × d m \tilde{P}_t^W \in \mathbb{R}^{N \times d_m} P~tWRN×dm 的维度 d m d_m dm 对增强时间感知多头自注意力的影响。

为了便于分析,我们将 Transformer-o 和 Transformer-tv 的层数都设置为1。然后,我们可以得到最佳的掩码嵌入。图5展示了不同时间变化掩码嵌入对 PEMS04 和 PEMS08 数据集的影响。正如图5所示,PEMS04 和 PEMS08 的最佳掩码嵌入分别为18和15。

image-20241015225058925

为了突出增强时间感知在多头自注意力中的优势,我们基于最佳掩码嵌入将层数设置为4。

表 VI 中展示了不同层数实验的结果。显然,Transformer-tv 在层数为1和4时显著优于 Transformer-o。我们提出的时间变化掩码矩阵有效地缓解了多头自注意力中计算不准确的问题,同时极大地增强了时间感知预测能力。

image-20241015225029657

2) 不同图结构在 CTVGCRM 和 HTVGNN 中的效果分析

与前一节类似,为了评估不同图结构对 CTVGCRM 的影响,我们设计了 CTVGCRM 的四个迭代版本,如下所示:

  • CTVGCRM:这是一种耦合时间变化图卷积门控循环网络。

  • CTVGCRM-sl:不同的时间片段使用不同的嵌入学习,但不同时间片段之间的空间相关性未被耦合。

  • CTVGCRM-ag:所有时间片段使用相同的嵌入进行学习,在这种情况下,时间变化图与 AGCRN 相同。

  • CTVGCRM-s:用拓扑图替换耦合的时间变化图。

image-20241015225116743

表 VII 中的结果明确展示了 CTVGCRM 相较于其变体(CTVGCRM-sl、CTVGCRM-ag 和 CTVGCRM-s)的优势。此结果突显了预定义图在准确表示交通网络空间相关性方面的局限性。此外,CTVGCRM-sl 相较于 CTVGCRM-ag 的优越性能表明,空间相关性随不同时间片段而变化,这表明使用单一时间变化图进行学习是次优的。此外,CTVGCRM 相较于 CTVGCRM-sl 的优越性表明,考虑不同时间片段的空间相关性至关重要,因为这允许从其他时间片段中捕获相关信息,从而增强当前时间片段的建模精度。

随后,我们评估了我们提出的增强时间感知多头自注意力和耦合时间图对模型整体性能的影响,通过使用 PEMS04 和 PEMS08 数据集上的消融实验,结合前述的最佳掩码嵌入和 dropout 技术来进行。我们设计了五个变体,如下所述:

  • HTVGNN:一种新型混合时间变化图神经网络,如图1所示。

  • w/o - tm:移除 HTVGNN 中增强时间感知多头自注意力中的时间变化掩码嵌入部分。

  • w/o - cg:移除 HTVGNN 中的时间变化图的耦合部分。

  • w/o - bc:移除 HTVGNN 中增强时间感知多头自注意力中的时间变化掩码嵌入部分和时间变化图的耦合部分。

image-20241015225136234

表 VIII 中的结果表明 HTVGNN 相较于 w/o-tm 和 w/o-cg 的优越性,突显了时间变化掩码嵌入在提高自注意力准确性中的积极作用。此外,HTVGNN 相较于 w/o-cg 的优越性以及 w/o-cg 相较于 w/o-bc 的优越性表明,耦合时间变化图在捕捉交通网络空间相关性方面的优势。

特别是,消融研究表明,我们提出的 HTVGNN 通过引入时间变化图显著减少了累积预测误差。详细对比结果如表 IX 所示。

image-20241015225150779

表 IX 中的结果明确展示了 HTVGNN 与耦合时间变化图相比的优越性。随着时间步的增加,这一优势变得更加显著。此外,表 IX 显示 HTVGNN 在 PEMS04 数据集上(时间分辨率为60分钟)分别比 HTVGNN-wc 在 MAE、RMSE 和 MAPE 上提升了4.81%、4.06% 和4.29%。同样,在 PEMS08 数据集上,HTVGNN 在相同的时间分辨率下,分别在 MAE、RMSE 和 MAPE 上提升了6.76%、3.37% 和6.16%。

G. HTVGNN 超参数分析

我们分析了由 E E E 表示的时变图嵌入维度、由 D D D 表示的模型嵌入维度、由 H e a d s Heads Heads 表示的增强时间感知多头自注意力的头数,以及由 L a y e r s Layers Layers 表示的模型层数。这四个超参数对 PEMS08 数据具有显著影响。实验结果表明, D D D 的值对 PEMS08 数据集的影响范围为 2 到 10。

  1. 层数的敏感性:模型层数的影响如图 6a 所示。我们的发现表明,增加层数并不会显著提高性能。这一观察表明,HTVGNN 模型可能已经达到了其预测误差极限。
  2. 头数的敏感性:增强时间感知多头自注意力头数的影响如图 6b 所示。可以观察到,通过两个头计算的注意力得分可以获得更好的预测结果。随着头数的增加,时空特征将被映射到更高维度空间,导致更合理的注意力得分。然而,过多的头数可能引入大量负面干扰,阻碍注意力得分的准确计算。
  3. 维度 D D D 的敏感性:模型嵌入维度 D D D 对 HTVGNN 模型的影响如图 6c 所示。可以看出,较小的 D D D 无法有效编码时空特征,而过大的 D D D 可能导致过拟合。
  4. E E E 的敏感性:时变图嵌入空间的大小 E E E 的影响如图 6d 所示。可以观察到,较小的维度 E E E 无法有效捕捉空间相关性,而过大的维度 E E E 会导致过拟合并影响时变图的次优学习。

image-20241015225320374

H. 可视化

为了直观展示我们提出的模型的优越性,我们呈现了 PEMS04 和 PEMS08 数据集上基准模型在 500 个时间步内的交通流情况。模型之间的交通流预测结果与实际值的对比如图 7 所示。可以观察到,HTVGNN 模型在应对异常交通流时表现出更高的准确性和响应能力,同时在处理复杂和动态交通变化方面表现出卓越的鲁棒性。

image-20241015225410805

I. 效率研究

我们还对 HTVGNN、Bi-STAT 和 STWave 在 PEMS08 数据集上的训练和推理效率进行了比较。为了确保评估的公平性,所有方法均在配备 Intel Core i7 13700KF 处理器和单个 NVIDIA RTX3090 显卡的服务器上执行。表 X 展示了此比较的结果。尽管我们提出的单层 HTVGNN 模型使用了 RNN,但 HTVGNN 在 PEMS08 数据集上的预测性能优于 STWave 和 Bi-STAT,同时保持了相似的计算成本。

image-20241015225336092

VI. 结论

在本文中,我们提出了一种新型的时变图神经网络预测方法 HTVGNN。为了准确捕捉最相关的时间特征,我们引入了一种基于时变掩码增强的增强时间感知多头自注意力机制。我们为不同的时间特征分配了最佳的注意力计算方案。在空间相关性建模中,我们采用了两种策略。首先,在静态空间相关性建模中,我们设计了一个耦合图学习机制,将每个时间步学习到的图集成在一起,有效增强模型的长期预测能力。其次,在基于道路网络的动态空间相关性建模中,我们定义了一个基于拓扑矩阵和语义矩阵的掩码,以优化动态时变图并提高模型捕捉动态空间相关性的能力。

在四个真实数据集上进行的模拟实验验证了我们提出的方法 HTVGNN 的优越预测精度,与最先进的时空图神经网络模型相比表现出明显的优势。此外,我们提出的耦合图学习方法显著提高了模型在消融实验中观察到的长期预测性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2215964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenAI的Swarm是一个实验性质的多智能体编排框架

先上文档,然后解释,然后是代码 OpenAI的Swarm是一个实验性质的多智能体编排框架,旨在简化多智能体系统的构建、编排和部署。以下是对Swarm的详细介绍: 一、核心概念和特点 智能体(Agent): Swar…

目标检测——Libra R-CNN算法解读

论文:Libra R-CNN: Towards Balanced Learning for Object Detection (2019.4.4) 作者:Jiangmiao Pang, Kai Chen, Jianping Shi, Huajun Feng, Wanli Ouyang, Dahua Lin 链接:https://arxiv.org/abs/1904.02701 代码:https://git…

计算机毕业设计 基于Python的汽车销售管理系统的设计与实现 Python毕业设计 Python毕业设计选题【附源码+安装调试】

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Android Settings 设置项修改

Settings 设置项 在 Android 系统上,WRITE_SETTINGS 这个权限从 API 1 就已经开始有了。 通过在 app 中设置权限 android.permission.WRITE_SETTINGS 允许 app 读/写 系统设置。 在官方文档的描述中,还有一段注意事项: Note: If the app targets API level 23 or higher,…

live2d 实时虚拟数字人形象页面显示,对接大模型

live2dSpeek 测试不用gpu可以正常运行 https://github.com/lyz1810/live2dSpeek 运行的话还需要额外下载https://github.com/lyz1810/edge-tts支持语音 ## 运行live2dSpeek >npm install -g http-server >http-server . ## 运行edge-tts python edge-tts.py

前端布局与响应式设计综合指南(二)

​🌈个人主页:前端青山 🔥系列专栏:Css篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Css篇专栏内容:前端布局与响应式设计综合指南(二) 目录 23、行内元素和块级元素?img算什么&…

【全网最全】AI产品经理面试高频100题答案解析

详细的目录如下,需要的小伙伴可以详细看一下~ 第一章:机器学习和深度学习的关系 第二章:机器学习7大经典算法 算法一:K近邻算法【分类算法】 1.1 KNN 算法的实现原理 1.2 KNN应用场景举例:预测候选人能不能拿到 O…

DVWA | Files Upload(文件上传)通关笔记

概念 **文件上传漏洞**是网络安全中常见的漏洞之一,攻击者可以利用该漏洞上传恶意文件,进而在服务器上执行恶意代码、绕过权限验证或获取敏感数据。文件上传漏洞主要发生在允许用户上传文件的Web应用程序中,比如图像、文档上传功能等。 ###…

3-3 AUTOSAR RTE 对SR Port的实现

返回总目录->返回总目录<- 目录 一、前言 二、显式访问 三、隐式访问 四、队列调用(Queued) 五、无效数据元素 一、前言 RTE作为SWC和BSW之间的通信机构,支持Sender-Receiver方式实现ECU内及ECU间的通信。 对于Sender-Receiver Port支持三种模式: 显式访问:若…

JavaScript全面指南(二)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Javascript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript全面指南(二) 目录 21、说明如何使用JavaScript提交表单&#xff1f; 2…

Java_EE(反射技术)

反射机制介绍: 什么是反射Java反射机制是Java语言一个很重要的特性&#xff0c;它使得Java具有了“动态性”。在Java程序运行时&#xff0c;对于任意的一个类&#xff0c;我们能不能知道这个类有哪些属性和方法呢&#xff1f;对于任意的一个对象&#xff0c;我们又能不能调用它…

【NTN 卫星通信】卫星通信的专利

1 概述 好久没有看书了&#xff0c;最近买了本讲低轨卫星专利的书&#xff0c;也可以说是一个分析报告。推荐给喜欢的朋友。 2 书籍截图 图1 封面 图2 波音低轨卫星专利演进 图3 低轨卫星关键技术专利发展阶段 图4 第一页 3 参考文献 产业专利分析报告–低轨卫星通信技术

信息收集-DNS收集

使用各种公开资源尽可能获取更多的的信息&#xff0c;收集的范围包括DNS服务器、路由关系、whois数据库、电子邮件、电话号码、个人信息和公司信息等 以www.testfire.net为例 DNS收集 关注域名注册者、联系方式、邮件信息、子域名等信息 whois查询 kali的集成工具&#xf…

Gin框架操作指南04:GET绑定

官方文档地址&#xff08;中文&#xff09;&#xff1a;https://gin-gonic.com/zh-cn/docs/ 注&#xff1a;没用过Gin的读者强烈建议先阅读第一节&#xff1a;Gin操作指南&#xff1a;开山篇。 本节演示GET绑定&#xff0c;包括绑定表单数据至自定义结构体&#xff0c;绑定查询…

运行Springboot + Vue 项目

前言&#xff1a;很多小白拿到java SpringBoot Vue前后端分离的项目却不知道怎么运行起来&#xff0c;这里博主就带领小白们一起将项目运行起来吧&#xff01; 一、环境准备 java后端软件&#xff1a;Idea、jdk、mysql、Navicat&#xff08;可用其他代替&#xff0c;如dbea…

获取vue实例

需要注意的是&#xff0c;无论通过哪种方式获取元素&#xff0c;如果元素为 vue 组件&#xff0c;则需要在子组件中使用 defineExpose 进行暴露。 在父组件中&#xff0c;我们静态绑定 childRef&#xff1a; 在子组件中&#xff0c;我们需要通过defineExpose函数&#xff0c;手…

05 奶牛与书架

题目&#xff1a; 贪心&#xff1a; #include<bits/stdc.h> using namespace std; #define M 100005 int a[M];bool cmp(int n1,int n2) {return n1>n2; }int main() {int N,B;cin>>N>>B;for(int i1;i<N;i){cin>>a[i];}sort(a1,aN1,cmp);int su…

昆虫分类与检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

昆虫分类与检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

Electron-(二)桌面应用的启动动画创建

一、概述 在很多桌面应用中都会有启动画面的显示。启动画面可以解决在启动时耗时较长&#xff0c;将每一步反馈给用户。另外一方面解决启动过程中的环境检查及检查结果的反馈。 在当今的桌面应用领域&#xff0c;启动动画已成为提升用户体验的重要组成部分。它不仅仅是一个简单…

使用 Spring 框架构建 MVC 应用程序:初学者教程

Spring Framework 是一个功能强大、功能丰富且设计精良的 Java 平台框架。它提供了一系列编程和配置模型&#xff0c;旨在简化和精简 Java 中健壮且可测试的应用程序的开发过程。 人们常说 Java 太复杂了&#xff0c;构建简单的应用程序需要很长时间。尽管如此&#xff0c;Jav…