Radflow:时间序列网络的递归、聚合和可分解模型

本人依照对论文的理解对用pytorch在交通数据上复现了这篇论文,结果和论文给出的结果有一点出入,因为是个人理解所以难免有出入。如果大家发现错误请一定告知我,感谢!复现链接:https://github.com/stanli124/Radflow-Pytorch

摘要

我们提出了一种新的相互影响的时间序列网络模型。时间序列中的图形结构存在于不同的领域,例如受超链接影响的网络流量、受推荐影响的产品销售或受道路网络和天气影响的城市交通量。最近在图形建模和时间序列预测方面分别取得了一些进展,但目前还不存在一种用于序列网络的表达性和可伸缩性方法。我们引入Radflow,一种新的模型,它包含三个关键思想:一个用于获得依赖时间的节点嵌入的递归神经网络,用多头注意力聚集来自相邻节点的影响流,以及时间序列的多层分解。Radflow自然会考虑节点和边随时间变化的动态网络,并可用于预测和数据插补任务。在几百到几十万个节点的真实数据集上,我们观察到Radflow变体是各种设置中性能最好的模型。Radflow中的循环分量也优于最先进的时间序列模型N-BEATS。我们证明了Radflow可以学习不同的趋势和季节模式,它对缺失节点和边缘具有鲁棒性,并且网络邻居之间的相关时间模式反映了影响强度。我们策划了WikiTraffic,这是最大的时间序列动态网络,拥有366K个节点和2200万个时间相关链接,时间跨度五年。该数据集为开发该领域的模型提供了一个开放的基准,其中包括优化web资源的应用程序。更广泛地说,Radflow有潜力改进相关时间序列网络(如股票市场)的预测,并在地理上分散的自然现象网络中估算缺失的测量值。

1 介绍

预测时间序列是一个长期存在的研究问题,适用于计量经济学、市场营销、天文学、海洋科学等领域。同样,网络也是积极被研究的对象,网络与交通、互联网基础设施、生物过程中的信号和在线媒体等领域具有广泛的相关性。在本文中,我们关注相互影响的时间序列网络之间的预测。解决此问题的工具将有助于回答有关复杂系统在上述应用领域及其他领域随时间演化的问题。
从时间序列和大型网络的端到端学习的最新进展来看,有三个突出的挑战。第一个是表达能力,即构建模型以表示更丰富的功能类。最近在预测图书销量[6]和在线视频浏览量[38]方面的工作采用了对传入节点的最后观察值的简单聚合[6]或线性组合[38]。
最近的图神经网络[8,14,35]提供了网络邻居之间的灵活聚合,但不容易应用于时间序列。N-BEATS[21]是时间序列基准测试中的最新模型,使用一组神经模块分解历史值;但是,由于神经模块没有明确编码数据的时间结构,因此这种结构不能为序列网络提供可用的表示。自然语言处理(NLP)领域中考虑了几种图到序列的任务[4,39],但时间序列网络问题,用这种术语来说,是序列图到序列图。
第二个挑战是规模。我们的目标是建立纵向(即每日)跨越几年的时间序列,以及数十万个节点的大型网络。这需要时间序列组件、图组件及其交互的可伸缩性。例如,最近提出的T-GCN模型[40]将一个图神经网络嵌套在一个递归神经网络中,该网络在空间和时间复杂度上都受到限制,因此无法扩展到web规模的网络。评估中使用的网络仅包含几百个节点。
第三是网络中连接和节点的动态特性。例如,Wu等人[38]报告说,50%的在线视频推荐链接出现在63天的观察中不到5天,我们观察到,仅2020年上半年就创建了超过10万个新维基百科页面。动态网络是图神经网络关注的一个活跃话题[18,22,33],但这些现有算法设计用于链路预测和节点分类,而不是时间序列预测。
我们提出了一种新的时间序列神经网络模型来解决这三个挑战。我们采用一种递归结构,在时间序列分解原理的基础上提供对时间敏感的网络流聚合;因此命名为Radflow。
它比n-beats更具表大能力,因为它可以生成节点嵌入来处理图形输入。它比T-GCN更具可扩展性,因为它可以通过网络注意力和重要性加权节点采样处理数十万个节点。Radflow的结构允许它以动态变化的节点和边作为输入,允许缺失数据,适用于多变量时间序列。此外,它的多头注意策略和分层分解提供了对网络影响和时间的解释。
Radflow在四个数据集上进行评估。两个是由几百个节点组成的城市交通;另外两个是大型数据集VevoMusic,包含61K个视频[38],和新策划的WikiTraffic数据集,包含366K页面和2200万个动态链接。在VevoMusic和WikiTraffic上,没有网络信息的Radflow始终优于可比的N-beats[21]。在具有网络信息的模型中,Radflow变体在插补和预测任务中表现最好。特别是,Radflow在VevoMusic上的SMAPE分数比最先进的ARNet[38]高出19%。我们发现,循环分量中的层捕捉到不同的季节性和趋势,而网络上的注意力捕捉到了来自相邻节点的时间变化影响。图1示出了基于该页面的历史流量和相邻页面的流量来预测黄色背心运动的28天观看次数的任务。Radflow正确预测了测试期间观察到的急剧下降。
主要贡献点:
1.Radflow,一种用于多变量时间序列动态网络的端到端神经预测模型,可扩展到数十万个节点。
2.通过分层分解对时间序列模式的可解释预测,以及通过多头注意力对网络邻居的可解释预测。
3.在各种任务的真实数据集上,始终优于最先进的时间序列预测模型和网络序列预测模型。
4.WikiTraffic,时间序列中最大的动态网络,包含来自366K个维基百科页面的多维度流量数据和五年内的22M动态链接。GitHub1上提供了数据集、代码和预处理模型。

2 相关工作

2.1 时间序列模型

时间序列建模有大量的文献,跨越许多领域。经典方法[11]包括指数平滑和自回归综合移动平均(ARIMA)模型。指数平滑使用过去观测值的指数衰减权重,而扩展可以结合趋势和季节性[3,10,36]。ARIMA [2]模型旨在使用过去观测值和预测误差的线性组合来描述时间序列中的自相关,扩展也可以包含季节性。近年来,神经网络方法变得更加流行。吴等[37]利用transformers预测流感活动。朱和拉普捷夫[42]使用贝叶斯神经网络来建模预测中的不确定性。
Oreshkin等人[21]首次证明,在基准数据集M3[16]、M4[17]和tourism[1]上,没有任一时间序列特定组件的纯神经网络模型可以优于现有的统计技术。他们提出的模型N-BEATS将时间序列预测视为一个非线性多元回归问题,输出一个固定长度的向量作为预测。N-BEATS的关键建模组件是层的叠加,每个层都将前一层计算的剩余时间序列作为输入。然而,N-BEATS仅适用于一维时间序列,并且不会在每一步生成时间序列表示向量,这使得它难以用于具有动态网络信息的设置中。我们通过采用在任何时间步产生时间序列表示(我们称之为嵌入)的循环网络结构来解决这些缺点,同时仍然利用N-beats的剩余叠加思想。
另一类时间序列是连续时间内发生的离散事件,通常由时间点过程描述。使用点过程的预测方法[19]要求数据包含单个事件的详细信息,而不是由于隐私和存储限制而在大规模web数据中更常见的聚合统计信息。点过程估计模型通常是事件数量的二次型,这对于VevoMusic和WikiTraffic等大规模数据来说过于昂贵。

2.2 网络上的预测

在线服务中的网络影响是一个活跃的研究领域,研究在线项目之间的链接如何决定可见性、影响和未来行为等属性。社交网络和信息网络经常在这种背景下被研究。在Twitter上,Su等人[29]指出,新的基于网络的推荐系统的引入导致了网络结构的实质性变化,加剧了“富人越来越富”的现象。在维基百科上,链接结构被用来跟踪新兴主题的演变[12]和由外部事件引起的流量[41]。Zhu等人[41]表明,当维基百科文章从外部事件中获得注意力时,它会导致下游超链接文章的关注大幅增加。Kämpf等人[12]表明,使用维基百科的页面浏览量和内部链接可以跟踪和预测一个新兴主题的演变。亚马逊上的产品推荐网络已被证明会影响购买决策[20]。Wu等人[38]指出,YouTube的推荐系统所诱导的网络导致了音乐视频之间的影响流。
对网络影响建模的一种最新方法是使用图神经网络生成图中节点的低维嵌入。早期的方法,如node2vec[7]和DeepWalk[24]都是直推式的,主要设计用于处理固定图。最新的模型可以应用于需要为训练期间未看到的节点生成嵌入的归纳设置。例如,这是通过在GraphSage[8]中从局部邻域中采样和聚合节点特征来实现的。已经提出了各种聚合方法,包括最大池[8]和平均池[14]。Veličković等人[35]提出了图注意力网络(GAT),该网络使用了一种改进的多头注意力[34]来聚合邻域。在我们提出的架构中,网络嵌入和聚合是关键组件。可以使用多种网络聚合机制(参见第4.2节和第6节)。我们建议的聚合机制类似于GAT,但相反,我们使用了多头注意力的原始且更常见的点积公式。

2.3 时间序列网络

作为一个新的研究领域,时间序列网络的预测方法很少,数据集数量有限。早期的方法忽略了网络结构,而是将每个节点视为一个独立的序列[25,30]。Wu等人[38]将局部网络结构整合进自回归时间序列模型,但该体系结构仅适用于静态图。Zhao等人[40]提出了一种新的递归神经网络(RNN)单元,称为T-GCN,该单元通过加入图卷积网络(GCN)组件来考虑静态图的结构。这两个组件的捆绑和缺乏邻域采样使得T-GCN在计算上过于昂贵,无法应用于超过几百个节点的图。
一个相关的问题是预测网络中的边是如何变化的,例如使用点过程[32,33]或图形和时间上的二维注意[27]。我们不处理这个问题;相反,我们假设动态图是观察到的(例如由推荐系统或crowd-sourcing生成),预测目标是每个节点上的时间序列,而不是图本身的演化。我们的工作是第一个为大型动态时间序列网络优化的预测模型。

3 问题陈述

考虑图的时间序列预测问题。输入为图 G = ( V , E ) G =(V,E) G=(V,E),又由N个节点组成,表示为 V = { v 1 , v 2 , . . . , v N } V=\{v^1,v^2,...,v^N\} V={ v1,v2,...,vN},另外还有M条边。每个节点 v j v^j vj与有T个观测值的多元时间序列相关联:
v j = [ v 1 j , v 2 j , . . . , v T j ] (1) \large v^j=[v_1^j,v_2^j,...,v_T^j] \tag 1 vj=[v1j,v2j,...,vTj](1)
其中 v t j ∈ R D v_t^j \in R^D vtjRD是节点vj在时间步t的d维观测值向量. 当时间序列在每个时间步只有一个值的时候D=1.我们使用 v t : s j v^j_{t:s} vt:sj表示vj从时间t到时间s的所有观测值的子序列,t小于s。
v [ t : s ] j = [ v t j , v t + 1 j , . . . , v s − 1 j , v s j ] (2) \large v_{[t:s]}^j=[v_t^j,v_{t+1}^j,...,v_{s-1}^j,v_s^j] \tag 2 v[t:s]j=[vtj,vt+1j,...,vs1j,vsj](2)
如果节点vi有可能直接影响节点vj在时间步t的时间序列,我们会添加一条从vi到vj的有向边 e t i j e^{ij}_t etij,vi就成为vj的邻居。我们定义 N t ( v j ) \mathcal{N_t}(v^j) Nt(vj)为vj在时间步t的邻域集合。边可能随着时间出现和消失,因此G是一个动态图。我们现在可以把G表示为一个邻接矩阵 A ∈ R N × N × T A \in R^{N \times N \times T} ARN×N×T。对于无权有向图,A中的实体 a i j t a_{ijt} aijt,如果边 e t i j e^{ij}_t etij存在其值为1,否则为0。
我们现在定义时间序列预测问题,因为它适用于动态图。预测长度F是模型将预测的未来时间步的数量,而过去长度B是可用于进行此类预测的过去观测数。假设我们当前处于时间t=0。为了预测节点vj(我们称之为ego节点)从时间步长1到F的时间序列,预测模型如下:
v ^ [ 1 , F ] j = F o r e c a s t M o d e l ( v [ − B + 1 : 0 ] j , V N ( v j ) ) (3) \large \hat v_{[1,F]}^j=ForecastModel(v_{[-B+1:0]}^j,\mathcal V^{ \mathcal N(v^j)}) \tag 3 v^[1,F]j=ForecastModel(v[B+1:0]j,VN(vj))(3)
预测模型会接受两个输入:vj的最近B个观测值以及来自vj邻域的信息。这导致了两个不同的设置,它们都会在章节7中评估。第一个是数据插补,这时我们在预测的同时观测邻域的真实值。这相当于在预测期内使用邻域的真实值。
V N ( v j ) = { v [ − B + 1 : F ] ′ ∣ v ′ ∈ N ( v j ) } (4) \large \mathcal V^{\mathcal N(v^j)}=\{v'_{[-B+1:F]} |v' \in \mathcal N(v^j)\} \tag 4 VN(vj)={ v[B+1:F]vN(vj)}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值