机器学习周记(第二十六周:文献阅读-DPGCN)2024.1.15~2024.1.21

目录

摘要

ABSTRACT

1 论文信息

1.1 论文标题

1.2 论文摘要

1.3 论文背景

2 论文模型

2.1 问题描述

2.2 论文模型

2.2.1 时间感知离散图结构估计(Time-aware Discrete Graph Structure Estimation Module,TADG Module)

2.2.2 时间卷积模块(Temporal Convolution Module,TC Module)

2.2.3 动态个性化图卷积模块(Dynamic Personalized Graph Convolution Module,DPGC Module)

2.2.4 优化目标(Optimization Objective)


 

摘要

  本周阅读了一篇关于动态时空图神经网络的论文,该论文的模型(TPGCN)主要用于处理多元时间序列预测任务。TPGCN主要包含如下四个模块:时间感知离散图结构估计模块(Time-aware Discrete Graph Structure Estimation Module,TADG Module)时间卷积模块(Temporal Convolution Module,TC Module)动态个性化图卷积模块(Dynamic Personalized Graph Convolution Module,DPGC Module)识别模块(Identification Modle)。其主要优势在于,能够动态改变图结构,将图结构学习作为模型学习的一部分和预测任务放在一个框架中进行训练。

ABSTRACT

This week, We read a paper on a dynamic spatio-temporal graph neural network, and the model in the paper, TPGCN, is primarily designed for handling multivariate time series prediction tasks. TPGCN comprises four main modules: the Time-aware Discrete Graph Structure Estimation Module (TADG Module), Temporal Convolution Module (TC Module), Dynamic Personalized Graph Convolution Module (DPGC Module), and Identification Module. Its main advantage lies in its ability to dynamically alter the graph structure, treating graph structure learning as a part of the model learning process, and training the prediction task within a unified framework.

1 论文信息

1.1 论文标题

Time-aware personalized graph convolutional network for multivariate time series forecasting

1.2 论文摘要

  使用图结构来建模多元时间序列数据中的变量依赖关系具有很大的潜力。概率图模型,从神经网络参数分布中采样离散图,已经显示出了有效性。然而,现有方法忽略了依赖关系的动态性和异构信息的约束。例如,交通数据道路之间的相互作用受到交通量和网络拓扑结构的制约。此外,现有的时空图传播机制未能考虑节点自身的演化模式对未来结果的影响。为了解决这些局限性,提出了一种新的方法:时间感知个性化图卷积网络(TPGCN),由时间感知离散图结构估计(TADG)动态个性化图卷积(DPGC)组成。TADG模块通过将图学习构建为异构信息环境中的推理问题来应对图学习的挑战。通过动态输入,它推导出受交互性质变化影响的图结构。DPGC受个性化PageRank的启发,在考虑进化模式和外部因素的同时对可变效应进行建模。通过在每次信息聚合时动态融合这两种信息,所提出方法优于现有的最先进方法,在八个基准数据集上进行了证明。

1.3 论文背景

  多元时间序列分析是科学和工程中一个不可或缺的研究领域,因为它在气候研究、交通控制和能源管理等领域广泛应用。精确的交通流量预测可以防止延误、缓解拥堵,并降低事故发生的可能性,有助于个人更好地管理自己的出行。同样,精确的气候预测可以更好地保护环境,有助于预防灾难性灾害,并为规划和决策提供基础。此外,精确的电力消耗预测可以为能源公司带来显著好处,使他们优化资源规划和配置。因此,精确的多元时间序列预测在许多应用中至关重要。

  由于图结构可以有效地建模变量之间的依赖关系,时空图神经网络(GNNs)被广泛采用。首先,研究人员依赖于基于先验知识(如道路连接距离)人为制作的图邻接矩阵。然而,这种方法的可行性往往受到隐私问题和缺乏必要的先验知识的限制。在没有任何先验指导的情况下,从数据本身中发现潜在空间关系进行努力已经成为一个充满活力的研究方向。现有方法主要是通过测量成对的节点嵌入之间的相似性来计算边权重,这些嵌入作为可训练参数。虽然像DGCRNASTGNN这样的方法适合捕捉数据中的动态相互依赖关系,但它们需要预定义的图结构。相比之下,DMSTGCNESGSDGL等方法能够根据节点特征和学习到的节点嵌入来推断图结构。值得注意的是,完全基于节点嵌入的方法学习了一个密集的依赖结构,这可能会导致错误的关联。通过将问题构建为图分布学习,概率图模型展现出了巨大的潜力。这种模型独立地计算每个节点对的边存在概率,而不对关系的存在进行约束。LDS-GNN将图结构学习视为一个双层优化问题,其中变量之间的边从伯努利分布中采样。为了降低计算成本,GTS提出了一种联合优化公式,将图学习和模型参数一起优化,简化了优化问题,并为建模者提供了更大的灵活性来设计参数化。

  尽管上述讨论的方法取得了显著的成功,但仍有几个重大挑战尚未解决。当前概率图方法的一个关键问题是不能理解异构信息存在时变量的动态相关性。GTS通过优化训练集的平均性能来参数化图分布,即学习与时间无关的图分布。然而,重要的是要认识到动态性是时间序列数据的固有特征,表现为受一系列异构因素同时影响的变量之间的依赖关系。例如,在交通数据的背景下,不同路段之间的相互关系不仅受底层路网结构的影响,还受交通模式的流动性的影响。如图1(a)所示,用从传感器收集的交通流数据来举例说明这个概念。值得注意的是,在图1(b)中,传感器1和2以及传感器3和4表现出类似的交通流趋势,从而表明这些传感器之间存在明显的相关性。此外,变量之间的关联是时间感知的(动态)。这方面在图1(b)中可以看出,其中黑框表示强大的相关性,传感器之间的共享交通流模式证明了这一点。相反,红框表示8月15日13:00至18:00期间传感器3和4之间的相关性较弱,表示不同甚至冲突的交通流量行为。

c3b015ccb3ad45bd9c91b8d890ae64ac.png

图1.PeMSED8数据集中的交通流示意图

  随后的关键问题围绕着时间序列的复杂性,不仅受到其固有演化模式的影响,还受到外源性序列的影响,这是目前在时空GNNs背景下被忽视的一个关键方面。必须注意的是,时空GNNs的现有操作方法遵循消息传递范式,从根本上类似于拉普拉斯平滑。这种方法倾向于同质化节点表示,过度分层可能会导致节点失去其内在独特性(过平滑)的现象。尽管由于时空GNNs的浅层结构,这种现象可能不会立即显现,但跨多个变量的潜在异质性是不可否认的。如图1(c)的圆形框所示,交通流模式呈现固定的演化模式,例如,传感器对2和130表现出早高峰,而传感器90则表现出晚高峰。常用的消息传递机制利用了变量之间的相互依赖关系,但无意中削弱了这些变量的内在演化模式。现有的时空图神经网络已经对扩散卷积mix-hop传播技术进行了实验,前者捕捉数据随机性,后者对抗过平滑。然而,这些方法主要改进了消息传递范式,而没有深入研究变量本身的内在属性,特别是它们的演化模式。相比之下,多层感知器(MLP)网络最近在多元时间序列预测中引起了关注。研究STID在没有探索变量之间的潜在依赖关系的情况下,在多个交通数据集上取得了最先进的性能。这项工作颠覆了时空GNNs背后的假设,即利用变量之间的潜在相互依赖关系可以提高预测性能。在我们看来,建模多元时间序列的最优方法需要找到单变量演化模式和变量间依赖关系之间的微妙平衡。

  解决上述挑战需要克服两个主要挑战:(1)需要跨越相互限制和固有噪声从异构信息中发现时间感知的图结构;(2)有效建模外源序列和节点演化模式对未来结果的动态影响。为了应对这些挑战,本文提出了时间感知个性化图卷积网络(TPGCN),该网络包括两个关键组成部分:时间感知离散图结构估计(TADG)动态个性化图卷积(DPGC)TADG使用两种不同类型的信息来推断时间感知的图结构:模拟稳定结构信息的可训练节点嵌入和包含数据动态模式的节点级输入。为了自适应地融合两种形式的信息,并从异质信息中有效地推断边权重,利用了门控机制通道注意力。将边权重作为特征向量输出链接概率,学习变量之间离散且稀疏的依赖关系。虽然论文的方法使用了节点嵌入,但最终结果是一个概率图,并不强制节点之间存在关联。

  DPGCN背后的基本思想是将节点表示更新从图信息聚合分离。受个性化PageRank原则的启发,该方法将单变量模式提取和变量间依赖关系统一在一个框架中,该框架明确衡量了表示更新期间每个节点的演化模式和外源序列的重要性。为了捕获时空数据固有的扩散特性,本文利用了类似于APPNP有限迭代传播系统。在节点表示更新机制中引入了一种可训练的时空节点重启概率机制,能够量化外源序列之间的融合比例和每个节点的个性化演化模式。该设计宗旨旨在解决数据中的固有异构性。最后,将这两个模块集成到一个网络中进行联合优化。研究表明,对变量和自我进化模式之间的相互依赖关系进行建模对多元时间序列预测是必要的。

2 论文模型

2.1 问题描述

定义一(Graph):图在数学上定义为eq?G%3D%28V%2CE%29,它由一组节点(变量)eq?V%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%7D和一组边eq?E组成。边可以用一个图邻接矩阵eq?A%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%20%5Ctimes%20N%7D表示,其中eq?A_%7Bi%2Cj%7D%3E%200表示节点eq?ieq?j之间有连接,即eq?%28v_%7Bi%7D%2Cv_%7Bj%7D%29%5Cin%20Eeq?A_%7Bij%7D%3D0表示没有边,即eq?%28v_%7Bi%7D%2Cv_%7Bj%7D%29%5Cnotin%20E。节点eq?ieq?t时刻的特征向量表示为eq?x_%7Bi%7D%5E%7Bt%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BF%7Deq?F为特征数量。更进一步地说,eq?X%5E%7Bt%7D%3D%28x_%7B1%7D%5E%7Bt%7D%2Cx_%7B2%7D%5E%7Bt%7D%2C...%2Cx_%7BN%7D%5E%7Bt%7D%29%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%20%5Ctimes%20F%7D表示时刻t的所有节点观测值。

定义二(Node Embedding):节点嵌入表示为eq?E%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%5Ctimes%20d%7D,其中eq?d%3C%3CN表示维度。节点嵌入表示图中单个节点的浓缩和低维描述。事实上,使用可训练的节点嵌入来推断图结构方法已被证明是有效的。

定义三(Heterogeneous Information):文中研究的节点同时受到结构信息和语义信息的影响,将这种多重信息称为异构信息。例如,在交通数据中,交通流受到路网和出行模式的双重影响。与推荐系统异构信息网络中观察到的范式不同,该研究没有得出这样的区分,其特征是存在各种节点类型和关系类型。本文使用可学习的节点嵌入eq?E%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%20%5Ctimes%20d%7D来对节点的结构信息进行建模,这是传统的方法。引入eq?E%5E%7Bt%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%20%5Ctimes%20d%7D来表示节点语义嵌入,来自节点级输入。

定义四(Spatial and Temporal Identities):为了保留变量在时间和空间上的演化模式,本文使用了三个独立的可训练参数矩阵,包括eq?%5Cwidehat%7BE%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%5Ctimes%20D%7Deq?%5Cwidehat%7BT%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN_%7Bd%7D%5Ctimes%20D%7Deq?%5Cwidetilde%7BT%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN_%7Bw%7D%5Ctimes%20D%7D,其中eq?D表示这些参数矩阵的维数,eq?N_%7Bd%7D表示一天的样本数量,eq?N_%7Bw%7D表示一周的天数。空间嵌入eq?%5Cwidehat%7BE%7D提供了静态表示,如区域标识,而时间嵌入eq?%5Cwidehat%7BT%7Deq?%5Cwidetilde%7BT%7D实现了多尺度时间模式的建模,这些模式不仅在天和周之间不同,而且根据使用的设置在不同的时间尺度之间不同。

定义五(Problem Formulation):给定以eq?X%3D%28X%5E%7Bt-H+1%7D%2CX%5E%7Bt-H+2%7D%2C...%2CX%5E%7Bt%7D%29%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%20%5Ctimes%20F%20%5Ctimes%20H%7D表示的历史信号矩阵的过去eq?H个时间片,在多元时间序列预测中,目标是获得未来信号矩阵的序列。在单步预测中,目标是逼近真实值eq?Y%3D%5Cleft%20%5C%7B%20X%5E%7Bt+P%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%20%5Ctimes%20F%7D%20%5Cright%20%5C%7D,而在多步预测中,预测目标扩展到下eq?P个时间片序列的未来值,用eq?Y%20%3D%20%5Cleft%20%5C%7B%20X%5E%7Bt+1%3At+P%7D%20%5Cright%20%5C%7D%3D%5Cleft%20%5C%7B%20X%5E%7Bt+1%7D%2CX%5E%7Bt+2%7D%2C...%2CX%5E%7Bt+P%7D%20%5Cright%20%5C%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%20%5Ctimes%20F%20%5Ctimes%20P%7D表示,即:

eq?%5BX%5E%7Bt-T_%7BH+1%7D%7D%2CX%5E%7Bt-T_%7BH+2%7D%7D%2C...%2CX%5E%7Bt%7D%5D%5Coverset%7Bf_%7B1%7D%7D%7B%5Crightarrow%7D%5BX%5E%7Bt+T_%7Bp%7D%7D%5D                                                                             (1)

eq?%5BX%5E%7Bt-T_%7Bh+1%7D%7D%2CX%5E%7Bt-T_%7Bh+2%7D%7D%2C...%2CX%5E%7Bt%7D%5D%5Coverset%7Bf_%7B2%7D%7D%7B%5Crightarrow%7D%5BX%5E%7Bt+1%7D%2CX%5E%7Bt+2%7D%2C...%2CX%5E%7Bt+T_%7Bp%7D%7D%5D                                                           

其中eq?f_%7B1%7Deq?f_%7B2%7D为根据具体预测任务得到的映射函数。

2.2 论文模型

  时间感知个性化图卷积网络(TPGCN)的架构如图2所示。TPGCN框架包含几个关键模块:时间感知的离散图结构估计(TADG)模块k个时间卷积模块(TC)K个动态个性化图卷积模块(DPGC)识别模块输出模块TADG模块识别模块TC模块同时将多元时间序列数据eq?X作为输入。TADG的输出产生一个时间感知的离散图结构,随后作为所有DPGC模块的输入,如图2(a)中的紫色箭头所示。识别模块通过利用三个学习到的嵌入矩阵以及多个多层感知器(MLP)层来捕获变量的内在自进化模式。获得的自进化模式的特征向量随后被导入DPGC,如图2(b)中的红色箭头所示。为避免分布偏移,在TC模块参与之前调用可逆实例归一化(RevIN)TC模块依次与DPGC模块交替使用,提取隐藏在数据中的时间和空间信息。通过利用图2(c)所示的注意力机制,DPGC模块有效区分了更新节点状态过程中变量固有的自进化模式和外源序列的影响。此外,每个TC模块之后都有残差连接,并连接到输出模块以获得最终输出。

bf9bdf016eff44d389f7c5cd9e5f7136.png

图2.TPGCN总体架构

2.2.1 时间感知离散图结构估计模块(Time-aware Discrete Graph Structure Estimation Module,TADG Module)

  基于各种考虑,推断时间感知的二进制矩阵eq?A%5E%7Bt%7D%20%5Cin%2C1%5E%7Bn%20%5Ctimes%20n%7D,是一个多方面的挑战。主要是,时序数据中变量间依赖关系的动态特性使得关系随着时间的推移而流动。此外,这些依赖关系产生于不同信息源的合并。最后,需要开发一个可微函数,可以输出0和1的离散二进制值。解决最初的挑战需要基于动态输入的时间感知图矩阵的推理。具体公式为eq?A%5E%7Bt%7D%5Csim%20Ber%28%5Ctheta%20%5E%7Bt%7D%29eq?%5Ctheta%20%5E%7Bt%7D%3Df_%7Bg%7D%28E%5E%7Bt%7D%29,其中eq?Ber%28%5Ccdot%29表示伯努利分布,eq?E%5E%7Bt%7D表示从节点级输入eq?X中提取的动态语义信息,eq?f_%7Bg%7D%28%5Ccdot%29表示用于获取边权重eq?%5Ctheta%20%5E%7Bt%7D的链路预测器。在这里,采用1 × 1标准卷积来获取节点的动态语义信息,即eq?E%5E%7Bt%7D%3DConv%28X%29。至于第二个挑战,可以利用可训练的节点嵌入来推断图拓扑信息。因此,可以将图学习公式扩展为eq?A%5E%7Bt%7D%5Csim%20Ber%28%5Ctheta%20%5E%7Bt%7D%29eq?%5Ctheta%20%5E%7Bt%7D%3Df_%7Bg%7D%28E%5E%7Bt%7D%5CDelta%20E%29,其中eq?%5CDelta表示信息融合操作,eq?E是可训练的节点嵌入。解决第三个挑战涉及应用Gumbel重参数化技术来导出离散图结构。

eq?%5Ctheta%20%5E%7Bt%7D_%7Bij%7D%3D%28E%5E%7BT%7D_%7Bi%7D+E_%7Bi%7D%29W_%7Bq%7D%28%28E%5E%7BT%7D_%7Bj%7D+E_%7Bj%7D%29W_%7Bk%7D%29%5E%7B%5Ctop%7D%3D%5Cbegin%7Bmatrix%7D%20%5Cunderbrace%7BE%5E%7BT%7D_%7Bi%7DW_%7Bq%7DW_%7Bk%7D%5E%7B%5Ctop%20%7DE%5E%7BT%5E%7B%5Ctop%7D%7D_%7Bj%7D%7D%20%5C%5C%20homologousterms%20%5Cend%7Bmatrix%7D%20+%20%5Cbegin%7Bmatrix%7D%20%5Cunderbrace%7B%20%5Cleft%20%5C%7B%20E%5E%7BT%7D_%7Bi%7DW_%7Bq%7DW_%7Bk%7D%5E%7B%5Ctop%20%7DE_%7Bj%7D%5E%7B%5Ctop%20%7D%20%5Cright%20%5C%7D%20+%20%5Cleft%20%5C%7B%20E_%7Bi%7DW_%7Bq%7DW_%7Bk%7D%5E%7B%5Ctop%20%7DE_%7Bj%7D%5E%7BT%20%7D%20%5Cright%20%5C%7D%20%7D%20%5C%5C%20heterologousterms%20%5Cend%7Bmatrix%7D+%20%5Cbegin%7Bmatrix%7D%20%5Cunderbrace%7B%5Cleft%20%5C%7B%20E_%7Bi%7DW_%7Bq%7DW_%7Bk%7D%5E%7B%5Ctop%20%7DE_%7Bj%7D%5E%7B%5Ctop%20%7D%20%5Cright%20%5C%7D%20%7D%20%5C%5C%20homologousterms%20%5Cend%7Bmatrix%7D                                (2)    本文考虑了一个简化的案例,显式地集成了动态语义信息(eq?E%5E%7Bt%7D)和拓扑信息(eq?E),而不失一般性。在这种异构条件下,图学习公式由Eq.(2)所示。具体来说,第一个和第三个元素分别反映了从拓扑和节点级输入角度推断的关联。第二个元素表示两个异构信息源之间的交互。基于此框架,论文开发了时间感知离散图结构估计模块,如图2(a)所示。          

  在同质信息下推导边权值:遵循Eq.(2),根据来自拓扑结构的eq?%5Cbar%7BS%7D_%7Bv_%7Bi%7D%2Cv_%7Bj%7D%7D%20%3D%20%5Cleft%20%5Clangle%20E_%7Bi%7D%2CE_%7Bj%7D%20%5Cright%20%5Crangle和来自节点级输入的eq?%5Ccheck%7BS%7D%5E%7Bt%7D_%7Bv_%7Bi%7D%2Cv_%7Bj%7D%7D%20%3D%20%5Cleft%20%5Clangle%20E%5E%7Bt%7D_%7Bi%7D%2CE%5E%7Bi%7D_%7Bj%7D%20%5Cright%20%5Crangle定义边权重。这里,eq?%5Cleft%20%5Clangle%20%5Ccdot%2C%20%5Ccdot%20%5Cright%20%5Crangle表示内积运算符。在这个公式中,考虑到eq?Eeq?E%5E%7Bt%7D都是可训练参数,最好直接进行内积运算。

  在异质信息下推导边权值:在实际场景中,相邻的时间戳通常具有相似(甚至相同)的关系估计,导致图结构随时间平滑变化。为了有效地改善这种情况,选择不直接采用Eq.(2)中概述的第二个项。相反,在节点级别合并异质信息,以派生出一个进化的节点表示。然后,利用这种表示推导出演进的图结构。在之前的研究的基础上,采用门控循环单元(GRU)作为捕捉进化节点表示的方法。     

eq?r%5E%7Bt%7D%3D%5Cxi%20%28W_%7Br%7DE+U_%7Br%7DE%5E%7Bt%7D%29%2C                                                                                                         (3)

eq?z%5E%7Bt%7D%3D%5Cxi%20%28W_%7Bz%7DE+U_%7Bz%7DE%5E%7Bt%7D%29%2C

eq?%5Cwidehat%7Bh%7D%5E%7Bt%7D%3Dg%20%28W_%7Bh%7DE%5E%7Bt%7D+U_%7Bh%7D%28r%5E%7Bt%7D%5Cbigodot%20E%29%29%2C

eq?h%5E%7Bt%7D%3D%281-z%5E%7Bt%7D%5Cbigodot%20E+z%5E%7Bt%7D%5Cbigodot%20%5Cwidehat%7Bh%7D%5E%7Bt%7D%29%2C

  在Eq.(3)中,eq?Weq?U表示可训练的权重矩阵。eq?%5Cbigodot表示哈达玛积,eq?%5Cxi表示sigmoid函数,eq?g表示正切双曲函数,eq?h%5E%7Bt%7D表示输入窗口eq?t中节点的进化表示。同样,对于连接节点的边权重的估计采用内积操作。为了增强学习过程的稳定性,建议采用如Eq.(4)所示的多头变化。

eq?%5Cwidehat%7BS%7D%5E%7BK%7D_%7Bv_%7Bi%7D%2Cv_%7Bj%7D%7D%3DDropout%28%5Cfrac%7B%5Cleft%20%5Clangle%20f%5E%7Bk%7D_%7Bs%2C1%7D%28LN%28h%5E%7Bt%7D_%7Bi%7D%29%29%2Cf%5E%7Bk%7D_%7Bs%2C2%7D%28LN%28h%5E%7Bt%7D_%7Bj%7D%29%29%20%5Cright%20%5Crangle%7D%7B%5Csqrt%7Bd_%7Bk%7D%7D%7D%29                                                                     (4)

  Eq.(4)中的表达式由几个元素组成,包括表示LayerNorm的LN。非线性映射eq?f%5E%7Bk%7D_%7Bs%2C1%7Deq?f%5E%7Bk%7D_%7Bs%2C2%7D对应第k个头的两个不同映射,而eq?d_%7Bk%7D表示每个头的维度。为了考虑一般的变化模式,将eq?Dropout应用于边权重eq?%5Cwidehat%7BS%7D%5E%7Bk%7D_%7Bv_%7Bi%7D%2Cv_%7Bj%7D%7D。最后,将eq?k个子空间获得的值相加以生成最终的边权重,如Eq.(5)所示。

eq?%5Cwidehat%7BS%7D%5E%7Bt%7D_%7Bv_%7Bi%7D%2Cv_%7Bj%7D%7D%3D%5Csum_%7Bi%7D%5E%7Bh%7D%5Cwidehat%7BS%7D%5E%7Bk%7D_%7Bv_%7Bi%7D%2Cv_%7Bj%7D%7D+LN%28f_%7Bs%2C4%7D%28h_%7Bi%7D%5E%7Bt%7D%29%2Cf_%7Bs%2C4%7D%28h_%7Bj%7D%5E%7Bt%7D%29%29                                                                    (5)

  其中eq?f_%7B%28s%2C4%29%7D指共享的可训练权重。它由两个部分组成,第一个部分用于获取关联,第二个部分表示残差连接,以提高模型的易学性。

  参数化:为了通过采样获得离散图结构并满足可微性,应用了Gumbel重参数化技术:s%29,其中1-P%5E%7Bt%7D_%7Bij%7Deq?g%5E%7B1%7D_%7Bij%7D%2Cg%5E%7B2%7D_%7Bij%7D%5Csim%20Gumbel%280%2C1%29eq?%5Cxi表示sigmoid,eq?s表示温度,它是一个超参数,用于管理离散分布和连续分类密度之间的插值过程,给定值为0.5。此外,eq?P%5E%7Bt%7D_%7Bij%7D表示节点eq?ieq?j在时间窗口eq?t上的概率链接。为了推导概率eq?P%5E%7Bt%7D_%7Bij%7D,利用通道注意力(SENet)和一个链接预测器。前者自适应地确定三个学习到的边权重的比例,后者生成链路概率。具体来说,该过程的计算公式如下:eq?%5Ctilde%7Bu%7D%5E%7Bt%7D_%7Bij%7D%3D%5Cxi%20%28F_%7Bex%7D%28F_%7Bsq%7D%28u%5E%7Bt%7D_%7Bij%7D%29%29%29%5Ccdot%20u%5E%7Bt%7D_%7Bij%7D。其中eq?u%5E%7Bt%7D_%7Bij%7D%3D%5B%5Cbar%7BS%7D_%7Bij%7D%2C%5Ccheck%7BS%7D%5E%7Bt%7D_%7Bij%7D%2C%5Cwidehat%7BS%7D%5E%7Bt%7D_%7Bij%7D%5Deq?F_%7Bex%7Deq?F_%7Bsq%7D是压缩和激活操作,eq?%5Ccdot为通道相乘。链接预测,沿着通道尺寸进行卷积,即eq?%5Cwidetilde%7BP%7D%5E%7Bt%7D_%7Bij%7D%3DConv%28ReLU%28Conv%28%5Ctilde%7Bu%7D%5E%7Bt%7D_%7Bij%7D%29%29%29。链接预测器的输出一个标量,指示节点eq?ieq?j之间的连接概率,最后激活函数可以在一个sigmoid,例如eq?P%5E%7Bt%7D_%7Bij%7D%3DSigmoid%28%5Cwidetilde%7BP%7D%5E%7Bt%7D_%7Bij%7D%29。类似于之前的研究,例如NRIGTS,直接使用eq?%5Cwidetilde%7BP%7D%5E%7Bt%7D_%7Bij%7D近似eq?%5Ctheta%20%5E%7Bt%7D_%7Bij%7D来代替概率eq?P%5E%7Bt%7D_%7Bij%7D。因此,最终优化方程可以表述如下:

s%29                                                                                  (6)

2.2.2 时间卷积模块(Temporal Convolution Module,TC Module)

  本文在时间卷积模块中采用了一种基于CNN的方法,提供了并行计算和稳定的梯度。为了促进长期依赖性,引入了空洞卷积,通过以指数方式扩展层的深度来增强感受野。更准确地说,给定输入序列eq?X_%7Bi%7D,它可以在数学上定义为:

eq?X_%7Bi%7D%5Cstar%20f_%7B1%20%5Ctimes%20%5Ctau%20%7D%28t%29%20%3D%20%5Csum_%7Bs%3D0%7D%5E%7B%5Ctau-1%7Df_%7B1%20%5Ctimes%20%5Ctau%7D%28s%29X_%7Bi%7D%28t-q%5Ctimes%20s%29                                                                   (7)

其中eq?q代表用于管理跳跃距离大小的膨胀因子,eq?f_%7B1%5Ctimes%20%5Ctau%20%7D指大小为eq?%5Ctaueq?1D卷积卷积核。为了同时捕获跨多个尺度的时间依赖性,采用了多个卷积核,每个卷积核具有不同的大小,利用扩张的inception层方法。特别地,使用了4个不同大小的卷积核来捕获不同的时间模式。扩张的inception层通过Eq.(8)表示。

eq?%5Cwidetilde%7BX%7D_%7Bi%7D%3Dconcat%28X_%7Bi%7D%5Cstar%20f_%7B1%20%5Ctimes2%7D%2CX_%7Bi%7D%5Cstar%20f_%7B1%20%5Ctimes3%7D%2CX_%7Bi%7D%5Cstar%20f_%7B1%20%5Ctimes6%7D%2CX_%7Bi%7D%5Cstar%20f_%7B1%20%5Ctimes7%7D%29                                             (8)

其中四个卷积核的输出被裁剪以匹配所使用的最大卷积核的长度。为了对跨网络层的信息流施加更大的控制,纳入了一种门控机制,称为门控TCN,其中包含了一个输出门。更具体地说,两个inception层的输出,eq?%5Cwidetilde%7BX%7D_%7Bi%2C1%7Deq?%5Cwidetilde%7BX%7D_%7Bi%2C2%7D,被传递到两个不同的映射函数中。这种门控机制的数学表达式如下:

eq?%5Cwidehat%7BX%7D_%7Bi%7D%3D%5Ctanh%20%28%5CTheta%20_%7B1%7D%5Cstar%20%5Cwidetilde%7BX%7D_%7Bi%2C1%7D+b%29%5Cbigodot%20Sigmoid%28%5CTheta%20_%7B2%7D%5Cstar%20%5Cwidetilde%7BX%7D_%7Bi%2C2%7D+c%29                                                 (9)

门控TCN方法中,有几个模型参数,包括eq?%5CTheta_%7B1%7Deq?%5CTheta_%7B2%7Deq?beq?c,而eq?%5Cbigodot表示元素乘积。门控TCN架构由两个卷积模块组成。第1层使用映射函数eq?%5Ctanh作为TC模块的输出,第2层通过sigmoid作为门控结构负责调整信息的输出量。

2.2.3 动态个性化图卷积模块(Dynamic Personalized Graph Convolution Module,DPGC Module)

  本文假设多元时间序列可以表示为一个非线性的自回归外源模型,其中变量受到外源序列及其固有的演化模式的影响。然而,目前的时空图神经网络往往忽略了变量的自演化模式。此外,外源序列和自进化模式对未来结果的影响是动态的和异构的。为了解决这些限制,设计了具有时空感知节点重启概率的动态个性化图卷积(DPGC),如公式(10)所示。

eq?Z%5E%7Bk+1%7D%3D%281-%5Calpha%20%5E%7Bt.k%7D%29%5Ccheck%7BA%7DZ%5E%7Bk%7D+%5Calpha%20%5E%7Bt.k%7D%5Cddot%7BX%7D%5E%7Bt%7D                                                                                     (10)

eq?Z%3D%5Csum_%7Bk%3D0%7D%5E%7BK-1%7D%5Ctheta%20_%7Bk%7DZ%5E%7Bk%7D

  其中,eq?%5Calpha%20%5E%7Bt.k%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%7D为节点自演化模式的影响力,eq?k%20%5Cin%20%5B0%2C%20K-1%5D为传播深度。eq?%5Ccheck%7BA%7D%5E%7Bt%7D%3DD%5E%7B-1%7DA%5E%7Bt%7D表示过渡矩阵,其中eq?A%5E%7Bt%7D来自Eq.(6),eq?D%5E%7B-1%7D表示度对角矩阵。eq?%5Cddot%7BX%7D%5E%7Bt%7D表示识别模块在时间窗口eq?t中捕获的节点自身的演化模式。该方法在信息传播的每一步衡量自身及其邻居节点的影响力。

  首先引入了节点的自进化模式eq?%5Cddot%7BX%7D%5E%7Bt%7D。受STID的启发,采用了由三个不同的可训练嵌入矩阵和多个全连接层组成的识别模块,如图2(b)所示。为简洁起见,全连接层简称为eq?FC%28%5Ccdot%29。首先使用全连接层对输入进行变换,即eq?H%5E%7Bt%7D_%7Bi%7D%3DFC%28X_%7Bi%7D%29,其中eq?H%5E%7Bt%7D_%7Bi%7D%5Cin%20%5Cmathbb%7BR%7D%5E%7BD%7Deq?D是隐藏维度。然后,通过使用定义四中的嵌入矩阵eq?%5Cwidehat%7BE%7D%20%5Cin%20%5Cmathbb%7BR%7D%20%5E%7BN%20%5Ctimes%20D%7Deq?%5Cwidehat%7BT%7D%20%5Cin%20%5Cmathbb%7BR%7D%20%5E%7BN_%7Bd%7D%5Ctimes%20D%7Deq?%5Cwidetilde%7BT%7D%20%5Cin%20%5Cmathbb%7BR%7D%20%5E%7BN_%7Bw%7D%5Ctimes%20D%7D,附加eq?%5Cwidehat%7BH%7D_%7Bi%7D%5E%7Bt%7D%3DH_%7Bi%7D%5E%7Bt%7D%5Cleft%20%5C%7C%20%5Cwidehat%7BE%7D_%7Bi%7D%20%5Cright%20%5C%7C%20%5Cwidehat%7BT%7D_%7Bi%7D%5E%7Bt%7D%7C%7C%5Cwidetilde%7BT%7D%5E%7Bt%7D_%7Bi%7D,其中eq?%5Cwidehat%7BH%7D%5E%7Bt%7D_%7Bi%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7B4D%7D表示包含自己的时间和空间特性的变量的表示。然后,使用eq?FC提取特征,如Eq.(11)所示。

eq?%5Cwidehat%7BH%7D%5E%7Bt%2Cl+1%7D_%7Bi%7D%20%3D%20FC%5E%7Bl%7D_%7B2%7D%28ReLU%28FC%5E%7Bl%7D_%7B1%7D%28%5Cwidehat%7BH%7D%5E%7Bt%2Cl%7D_%7Bi%7D%29%29%29+%5Cwidehat%7BH%7D%5E%7Bt%2Cl%7D_%7Bi%7D                                                                    (11)

  其中eq?l表示第eq?l层,eq?l%20%5Cin%20%5B1%2C%20L%5D。为了增强模型的可学习性,每一层都包含了残差连接。然后,将特征eq?%5Cwidehat%7BH%7D%5E%7Bt%2Cl+1%7D_%7Bi%7D投影到全连接层以得到eq?%5Cddot%7BX%7D%5E%7Bt%7D,即eq?%5Cddot%7BX%7D%5E%7Bt%7D%20%3D%20FC%28%5Cwidehat%7BH%7D%5E%7Bt%2CL%7D%29

  为了对自身模式eq?%5Cddot%7BX%7D%5E%7Bt%7D和外部影响eq?Z%5E%7Bk%7D的集成模式的动态性和异质性进行建模,采用注意力机制eq?att%28X%2C%5Cddot%7BX%7D%2CZ%29来学习相应的注意力eq?%5Cleft%20%28%20%5Calpha%20%5E%7Bt%2C%20k%7D_%7BZ%7D%2C%5Calpha%20%5E%7Bt%2C%20k%7D_%7B%5Cddot%7BX%7D%7D%20%5Cright%20%29,其中eq?%5Calpha%20%5E%7Bt%2C%20k%7D_%7BZ%7D%2C%5Calpha%20%5E%7Bt%2C%20k%7D_%7B%5Cddot%7BX%7D%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%7D表示eq?Zeq?%5Cddot%7BX%7D在第eq?k步传播时的注意力值。这里,eq?%5Calpha%20%5E%7Bt%2C%20k%7D_%7BZ%7D+%5Calpha%20%5E%7Bt%2C%20k%7D_%7B%5Cddot%7BX%7D%7D%20%3D1%2C1%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%7D表示所有的一个向量。以第eq?i个节点为例,其原始节点特征和聚合特征分别为eq?X%5E%7Bt%7D_%7Bi%7Deq?Z%5E%7Bt%2Ck%7D_i%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BF%7D

eq?w%5E%7Bt%2Ck%7D_%7BZ_%7Bi%7D%7D%3D%5Ctanh%20%28WX%5E%7Bt%7D_%7Bi%7D+U%5E%7Bk%7DZ%5E%7Bt%2Ck%7D_%7Bi%7D%29                                                                                          (12)

  如Eq.(12)所示,使用原始节点特征eq?X%5E%7Bt%7D_%7Bi%7D作为query,聚合特征eq?Z%5E%7Bt%2Ck%7D_i作为key,通过两个非线性变换(eq?Weq?U%5E%7Bk%7D)来提取特征。然后,将这两个特征相加,并通过激活函数eq?%5Ctanh得到eq?k步处eq?Z%5E%7Bt%7D_%7Bi%7D的权重eq?w%5E%7Bt%2Ck%7D_%7BZ_%7Bi%7D%7D。类似地,可以得到eq?k步处自进化模式的权重eq?w%5E%7Bt%2Ck%7D_%7B%5Cddot%7BX%7D_%7Bi%7D%7D。然后,使用softmax将权重eq?w%5E%7Bt%2Ck%7D_%7BZ_%7Bi%7D%7Deq?w%5E%7Bt%2Ck%7D_%7B%5Cddot%7BX%7D_%7Bi%7D%7D进行归一化,以获得最终的注意力值。

eq?%5Calpha%20%5E%7Bt%2Ck%7D_%7BZ_%7Bi%7D%7D%3D%20SoftMax%28w%5E%7Bt%2Ck%7D_%7BZ_%7Bi%7D%7D%29%20%3D%20%5Cfrac%7Bexp%28w%5E%7Bt%2Ck%7D_%7BZ_%7Bi%7D%7D%29%7D%7Bexp%28w%5E%7Bt%2Ck%7D_%7B%5Cddot%7BX%7D_%7Bi%7D%7D%29+exp%28w%5E%7Bt%2Ck%7D_%7BZ_%7Bi%7D%7D%29%7D                                                                  (13)

  eq?%5Calpha%20%5E%7Bt%2C%20k%7D_%7BZ_%7Bi%7D%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7BN%7D越大,表示节点eq?i对应的外部信息越重要。注意力权重的确定综合考虑了节点的自进化模式和聚合特征,以响应节点的动态时序特征和个性。结合Eq.(10),最终的图卷积如Eq.(14)所示。 

eq?Z%3D%5Csum_%7Bk%3D0%7D%5E%7BK-1%7D%5Ctheta%20_%7Bk%7D%28%5Calpha%20%5E%7Bt%2Ck%7D_%7BZ%7D%5Ccheck%7BA%7DZ%5E%7Bk%7D+%5Calpha%20%5E%7Bt%2Ck%7D_%7B%5Cddot%7BX%7D%7D%5Cddot%7BX%7D%5E%7Bt%7D%29                                                                                  (14)

2.2.4 优化目标(Optimization Objective)

  之前的研究表明,联合优化模型参数和图学习层是有好处的。为了在一个框架内同时学习节点自身和外部关联的演化模式,研究并比较了3种方法的性能。在第一种方法中,通过平均节点的自进化模式及其外部关联的预测结果来计算最终结果。在第二种方法中,网络使用多个损失进行训练,其中基于节点自进化模式的预测结果被视为辅助任务。最后一种,通过所提出的动态个性化图卷积模块优化非常简单的优化最终输出,如图2所示。实验测试表明,第三种方案的结果最优。

  所提出的框架利用残差连接将信息传输到由两个卷积层组成的输出模块,以将特征转换为所需的维度。该过程的数学表达式为eq?%5Cwidehat%7BY%7D%3DConv%28ReLU%28Conv%28%5Csum_%7Bi%3D0%7D%5E%7Bk%7D%5Cwidehat%7BX%7D%5E%7Bi%7D%29%29%29。输出尺寸根据预测要求确定。如果预测任务专注于预测未来的特定时间步长,则将其称为单步预测任务,并将期望输出维度设置为1。另一方面,如果要预测多个未来步骤,例如对于下一个P步的未来值,必须调整期望的输出维度并将其设置为P。根据优化目标更新模型权重,本文选择平均绝对误差(MAE)作为优化目标,定义如下:

eq?L%28X%5E%7Bt-H+1%3At%7D%3B%5CTheta%20%29%3D%5Cfrac%7B1%7D%7BTN%7D%5Csum_%7Bi%3D1%7D%5E%7Bi%3DT%7D%5Csum_%7Bj%3D1%7D%5E%7Bj%3DN%7D%20%5Cbegin%7Bvmatrix%7D%20%5Cwidehat%7BY%7D%5E%7Bt+i%7D_%7Bj%7D-Y%5E%7Bt+i%7D_%7Bj%7D%20%5Cend%7Bvmatrix%7D                                                      (15)

其中eq?%5CTheta表示TPGCN的所有可训练参数。

0b08a74e0fca463ebe41920913f8e962.png

Algorithm 1

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HNU-数据挖掘-实验2-数据降维与可视化

数据挖掘课程实验实验2 数据降维与可视化 计科210X 甘晴void 202108010XXX 文章目录 数据挖掘课程实验<br>实验2 数据降维与可视化实验背景实验目标实验数据集说明实验参考步骤实验过程1.对数据进行初步降维2.使用无监督数据降维方法&#xff0c;比如PCA&#xff0c;I…

网络要素服务(WFS)详解

文章目录 1. 概述2. GetCapabilities3. DescribeFeatureType4. GetFeature4.1 Get访问方式4.2 Post访问方式 5. Transaction5.1 Insert5.2 Replace5.3 Update5.4 Delete 6 注意事项 1. 概述 前置文章&#xff1a; 地图服务器GeoServer的安装与配置 GeoServer发布地图服务&#…

外汇天眼:每一个骗局的背后,可能是倾家荡产!

在网络科技还没有发达的以前&#xff0c;骗子主要通过线下揽客的方式推荐各类虚假的投资理财项目&#xff0c;有的甚至打着专门的理财咨询机构吸引了一大批新手投资者。在当时&#xff0c;外汇投资还不为多数人知道&#xff0c;随便忽悠“高利益保本”就有投资者上当受骗。 现如…

LINUX常用工具之sudo权限控制

一、Sudo基本介绍 sudo是Linux 中用于允许特定用户以超级用户或其他特权用户的身份执行特定的命令或任务。sudo 提供了一种安全的方法&#xff0c;使用户能够临时获取额外的权限&#xff0c;而不需要以完全超级用户的身份登录系统。sudo也可以用了设置黑名单命令清单&#xff…

多列匹配,根据对应状态、排序字段

多列匹配&#xff0c;根据对应状态、排序字段 数据&#xff1a; 查询:

Golang leetcode28 找出字符串中第一个匹配项的下标 KMP算法详解

文章目录 找出字符串中第一个匹配项的下标 leetcode28 串的模式匹配问题暴力求解使用KMP模式匹配算法KMP算法简述 KMP算法的代码实现 找出字符串中第一个匹配项的下标 leetcode28 串的模式匹配问题 暴力求解 func strStr(haystack string, needle string) int { L : len(need…

大模型笔记【3】 gem5 运行模型框架LLama

一 LLama.cpp LLama.cpp 支持x86&#xff0c;arm&#xff0c;gpu的编译。 1. github 下载llama.cpp https://github.com/ggerganov/llama.cpp.git 2. gem5支持arm架构比较好&#xff0c;所以我们使用编译LLama.cpp。 以下是我对Makefile的修改 开始编译&#xff1a; make UNAME…

用pandas实现用前一行的excel的值填充后一行

今天接到一份数据需要分析&#xff0c;数据在一个excel文件里&#xff0c;内容大概形式如下&#xff1a; 后面空的格子里的值就是默认是前面的非空的值&#xff0c;由于数据分析的需要需要对重复的数据进行去重&#xff0c;去重就需要把控的cell的值补上&#xff0c;然后根据几…

2024 前端高频面试题之 JS 篇

JS 篇&#xff08;持续更新中&#xff09; 1、什么是原型、原型链&#xff1f;2、什么是继承&#xff1f;说一说有哪些&#xff1f;继承组合的原理及优点&#xff1f;3、new 操作符具体干了什么&#xff1f;4、js 有哪些方法改变 this 指向&#xff1f;5、bind 有哪些实现的注意…

时空预测网络ST-Resnet 代码复现

ST-ResNet&#xff08;Spatio-Temporal Residual Network&#xff09;是一种用于处理时空数据的深度学习模型&#xff0c;特别适用于视频、时间序列等具有时空结构的数据。下面是一个简单的使用PyTorch搭建ST-ResNet的示例代码。请注意&#xff0c;这只是一个基本的示例&#x…

一文了解国密算法SSL证书

国密算法是中国国家密码管理局发布的一组密码算法标准&#xff0c;用于替代国际上的一些加密算法。在SSL证书中&#xff0c;使用国密算法的证书通常称为"国密SSL证书"。 国密SSL证书与传统的SSL证书在加密算法上有所不同。传统SSL证书通常使用的是RSA或者ECC&#xf…

QQ失效的图片怎么恢复?这3种方法送给大家!

在我们使用QQ时&#xff0c;难免会遇到QQ图片失效的情况。或许是因为误删了聊天记录&#xff0c;又或许是因为没有及时保存而导致失效。 那么&#xff0c;面对这些失效的图片&#xff0c;我们该如何恢复呢&#xff1f;qq失效的图片怎么恢复&#xff1f;今天&#xff0c;小编将…

一起读《奔跑吧Linux内核(第2版)卷1:基础架构》- 了解kmalloc、vmalloc、malloc

大家好&#xff0c;我是硬核王同学&#xff0c;最近在做免费的嵌入式知识分享&#xff0c;帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作&#xff01; 移步飞书获得更好阅读体验&#xff1a; Docs Hello&#xff0c;大家好我是硬核王同学&#xff0c;是一名刚刚工作一年…

开源无代码应用程序生成器Saltcorn

什么是 Saltcorn &#xff1f; Saltcorn 是一个无需编写任何代码即可构建数据库 Web 应用程序的平台。它配备了一个吸睛的仪表板&#xff0c;丰富的生态系统、视图生成器以及支持主题的界面&#xff0c;使用直观的点击、拖放用户界面来构建整个应用程序。 软件的特点&#xff1…

上位机图像处理和嵌入式模块部署(流程)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;传统图像处理的方法&#xff0c;一般就是pccamera的处理方式。camera本身只是提供基本的raw data数据&#xff0c;所有的…

SpringBoot - SpringBoot手写模拟SpringBoot启动过程

依赖 建一个工程&#xff0c;两个Module: 1. springboot模块&#xff0c;表示springboot框架的源码实现 2. user包&#xff0c;表示用户业务系统&#xff0c;用来写业务代码来测试我们所模拟出来的SpringBoot 首先&#xff0c;SpringBoot是基于的Spring&#xff0c;所以我…

140:leaflet加载here地图(v2软件多种形式)

第140个 点击查看专栏目录 本示例介绍如何在vue+leaflet中添加HERE地图(v2版本的软件),并且含多种的表现形式。包括地图类型,文字标记的设置、语言的选择、PPI的设定。 v3版本和v2版本有很大的区别,关键是引用方法上,请参考文章尾部的API链接。 直接复制下面的 vue+leaf…

spring boot学习第八篇:kafka监听消费

为了实现监听器功能 pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc…

开发者的瑞士军刀!一款适用于开发者的工具集合!

大家好&#xff0c;我是 Java陈序员。 俗话说“工欲善其事必先利其器”&#xff0c;有一个好的工具可以事半功倍。 编程开发亦是如此。 今天&#xff0c;给大家介绍一款离线的 Windows 应用程序&#xff0c;该应用涵盖常见的开发工具集合&#xff0c;旨在提高工作效率&#…

【Coding】寒假每日一题Day.5.三国游戏

题目来源 题目来自于AcWing平台&#xff1a;https://www.acwing.com/problem/content/description/4968/。 以blog的形式记录程序设计算法学习的过程&#xff0c;仅做学习记录之用。 题目描述 输入输出格式与数据范围 样例 思路 思路参考自题解&#xff1a;https://www.acwi…