Predicting Path Failure In Time-Evolving Graphs 文章总结

该文章探讨了如何在时间演变的图中预测通信网络和交通网络中的路径是否畅通。提出了LRGCN(局部递归图卷积网络)和SAPE(自注意力路径嵌入)方法,LRGCN处理时间和空间相关性,SAPE解决任意长度道路的表示问题。在两个数据集上,模型表现优越,尤其在道路分类任务上达到了最先进的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚接触这个领域,做一些论文笔记 日后汇报、写毕业论文都会用到。如果文章中有理解错误的地方,大家可以一起讨论

摘要

主要是通过利用随时间变化的图,动态的捕捉数据之间的空间依赖性,解决通讯网络与交通网络中路径2分类问题——畅通/堵塞。模型上使用LRGCN与SAPE,其中LRGCN模块主要用来处理数据时间上和空间上的关联性,SAPE(self-attentive path embedding),用于解决不定长道路表示问题,用SAPE方法综合考虑了道路上节点权重问题,并且可以表示任意长的道路。

背景介绍

通讯网络:

  • 图的组成:节点为交换机,边是连接交换机的光纤

  • 图发生变化的原因:硬件故障导致的链路失效

交通网络:

  • 图的构成:节点是传感器(如摄像头),边就是路段

  • 图发生变化的原因:自然灾害/事故导致的道路封闭

前人工作:

以往的随时间变化图关注的都是节点分类任务,没有用到道路分类任务上;

任务的挑战:

  • 复杂的时间依赖性和结构的动态变化
  • 节点观测值的非静态性:季节上的周期性、当天的周期性(早高峰、晚高峰之类的)
  • 图结构变化:非常突然的交通事故,同时会伴随着节点上观测值的剧烈变化,如何捕捉这种剧烈的变化对于道路分类任务十分重要
  • 道路的长度是任意性的,一条道路可能包含2个路段,也可能包含50个路段。如何统一的表示任意长的道路

主要贡献:

  • 第一个研究基于时间演化图的道路分类问题,提出的LRGCN达到了SOTA的效果
  • 设计了一种道路表示方法self-attentive path embedding method called SAPE:
    • 可以表示任意长度的道路
    • 通过自注意力机制学习道路中重要的节点,融入到道路表示中。
  • 在两个数据集通讯网络和加利福尼亚州交通数据上,以Macro-F1为评价指标验证了模型优于对比的算法

问题定义:

  • 节点集合
    **节点集合**
  • 表示在时刻t时邻接矩阵的情况(有向图)

在这里插入图片描述

  • 特征表示,时刻t时 各个节点特征
    在这里插入图片描述

  • 序列图"快照"表示:
    在这里插入图片描述

path表示:

一系列节点的组合
在这里插入图片描述
时刻t下,道路节点对应的观测值
在这里插入图片描述

道路 available or not

通讯网络中,不一定是光纤被挖断了这种情况path才不可用,如果服务质量太差也会被认定为不可用。

损失函数

### Time-Series Transformer与标准Transformer架构之间的差异 #### 时间序列特定需求 时间序列分析面临独特的挑战,包括长期依赖捕捉、周期性和趋势建模以及处理缺失值等问题。标准Transformer最初设计用于自然语言处理任务,在这些方面可能不够充分[^1]。 #### 输入表示形式 对于时间序列数据而言,输入通常由连续数值构成,并带有时间戳信息。Time-Series Transformer会特别考虑如何编码时间和位置信息,除了常规的位置嵌入外,还可能会加入额外的时间特征(如小时、天、季节等),以便更好地理解时间模式。 #### 编码器-解码器结构适应性调整 虽然两者都采用类似的自注意力机制,但在实际应用中,针对时间序列预测的任务特性,Time-Series Transformer往往只使用编码器部分来进行单步或多步向前预测;而在某些情况下也可能构建不对称的编解码框架以优化对未来时刻状态估计的效果。 #### 自回归组件集成 为了增强短期记忆能力并改善局部动态变化的学习效率,一些版本的时间序列专用Transformers会在原有基础上增加AR (AutoRegressive) 组件或其他类型的循环神经网络单元(RNN),从而形成混合型架构,使得模型既具备全局视角又不失细节把控力。 ```python import torch.nn as nn class TimeSeriesTransformer(nn.Module): def __init__(self, input_dim, model_dim, num_heads, num_layers, output_dim): super(TimeSeriesTransformer, self).__init__() # Positional Encoding with additional temporal features self.positional_encoding = TemporalPositionalEncoding(model_dim) encoder_layer = nn.TransformerEncoderLayer(d_model=model_dim, nhead=num_heads) self.transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=num_layers) self.fc_out = nn.Linear(model_dim, output_dim) def forward(self, src, mask=None): src = self.positional_encoding(src) out = self.transformer_encoder(src, mask=mask) out = self.fc_out(out[:, -1, :]) # Predicting the next step based on all previous steps return out ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值