GeoMAN:多层Attention网络用于地理传感器的时序性预测

做者: 魏祖昌html

1 简介

在咱们现实生活中,已经部署大量的传感器(好比气象站点)。每个传感器都有本身独特的地理空间位置,而且不断的产生时间序列读数。一组传感器共同监测一个空间的环境,这些读数之间就会有空间相关性,咱们称这些传感器的读数为地理感知时间序列。此外,当不一样空间位置用同一种传感器来监测, 一般会产生多种地理感知的时间序列。例如,如图1(a)所示,道路上的环形探测器会及时报告过往车辆的读数以及它们的行驶速度。图1(b)表示传感器每5分钟产生三个不一样的水质化学指标。除了监测以外,对地理感知时间序列预测(如交通预测)的需求也在不断增加。前端

image.png

图1:(a)-(b)地理传感器时序性数据的例子算法

然而,对地理感知时间序列进行预测是很是复杂的,主要受如下两个复杂因素的影响:网络

  1. 动态的时空相关性。
  2. 外部因素。传感器的读数也受到周围环境的影响,如气象(如强风),一天中的时间(如高峰时间)和土地使用状况。

为了解决这些挑战,该论文提出了一个多层次的Attention网络(GeoMAN)来预测将来几个小时内地理传感器的读数。该论文的研究有三方面的贡献:app

  • 多层attention机制 咱们构建了一个多层attention机制来建模时空动态关联。尤为是在第一层,该论文提出了一种创新的attention机制(由local spatial attention和global spatial attention组成)来捕获不一样传感器时序性序列之间的复杂空间联系(好比传感器内部之间的联系)。在第二层,应用了一个temporal attention来建模在时间序列中不一样时间间隔的动态时间关联(好比传感器之间的联系)。
  • 外部因素抽取模块 该模块设计了一个通用抽取模块来整合来自不一样领域的外部参数。而后抽取出来的潜在表明性因素输入到多层attention网络中来加强这些外部因素的重要性。

2 多层Attention网络

图2展现了该片论文的整个框架。依据encoder-decoder框架,咱们利用两个分离LSTM网络,一个用于对输入序列(好比地理传感器的历史时间序列)进行encoder,另外一个则用于预测的输出序列。更具体的来讲,论文中的GeoMAN模型主要是由两部分组成:框架

  1. 多层attention机制。它的encoder部分用了两种spatial attention机制,decoder用了一个temporal attention机制。论文中在encoder层中用的两种不一样attention机制(local spatial attention和global spatial attention)正如图2所示,它能经过encoder以前的隐藏状态,传感器的历史数据和空间信息(好比传感器网络)来捕获每一个时间间隔之间的传感器内部之间的复杂关系。在decoder层中,使用了一个temporal attention来自动选择以前类似的时间间隔来进行预测。
  2. 外部因素抽取。这个模块用于处理外部因素的影响,而且将其输入到decoder层,做为其输入的一部分。这里咱们用ht和st来分别表示encoder层在t时刻的hidden state和cell state。相似的用dt和s'来表示decoder层的这两部分

framework.png

图2:该论文的框架。Attn: attention. Local: local spatial attention. Global: global spatial attention. Concat: concatenation层. \hat{y}^{i}_{t}: 在t时刻的predicting value. ct: 在t时刻的context vectors. h0: encoder的初始值.函数

2.1 Spatial Attention

2.1.1 Local Spatial Attention

该论文是首次引入了local spatial attention机制。对于某个传感器来讲,其的局部时间序列之间存在复杂的相关性。好比,一个空气质量监测站报告不一样物质的时间序列,如PM2.5(特定物质),NO和SO2。实际上,PM2.5浓度一般受其余时间序列的影响,包括其余空气污染物和当地的天气情况。为了解决这个问题,给定第i个传感器的第k个局部特征向量(即x_{i,k}),咱们利用attention机制自适应地捕捉目标序列与每一个局部特征之间的动态相关性,其公式为:性能

image.png

其中[ ·; ·]是合并操做,\mathbf{v}_l,\mathbf{b}_l \in \mathbb{R}^T, \mathbf{w}_l \in \mathbb{R}^{T \times 2m} and  \mathbf{U}_l \in \mathbb{R}^{T \times T}是学习来的参数。attention的权重的局部特征值是由输入的局部特征和encoder层中的历史状态(即 h_{t-1}, s_{t-1})共同决定的,这个权重值表明着每个局部特征的重要性。一旦咱们得到了attention的权值,就能够经过下面的公式算出在t时刻的local spatial atttention的输出向量:学习

image.png

2.1.2 Global Spatial Attention

其余传感器所监测的历史时间序列对将要预测出来的序列,会有直接的影响。然而,影响的权重是高度动态,是随时间变化的。因为会有不少不相关的序列,因此直接用全部的时间序列输入到encoder层来捕获不一样传感器之间的相关性会致使很是高的计算成本而且下降性能。注意,这种影响的权重是受其余传感器的局部条件影响的。好比,当一股风从很远的地方吹来的时候,某些地区的空气质量会比以前更受这些地方的影响。受此启发,构建了一种新型的attention机制来捕获不一样传感器之间的动态变化。给定第i个传感器做为咱们的预测的对象,其余的传感器为l,咱们就能够计算他们之间的attention权值(即影响权重),公式以下:大数据

image.png

其中\mathbf{v}_g, \mathbf{u}_g, \mathbf{b}_g \in \mathbb{R}^{T \times 2m}, \mathbf{W}_g \in \mathbb{R}^{T \times 2m}, \mathbf{U}_g \in \mathbb{R}^{T \times T}\mathbf{W'}_g \in \mathbb{R}^{T \times N^t}是学习得来的参数。该attention机制经过参考目标序列和其余传感器的局部特征来自适应地选择相关传感器进行预测。同时,经过考虑编码器中先前hidden state: \mathbf{h}_{t-1}和cell state: \mathbf{s}_{t-1}来跨越时间步长传播历史信息。

注意,空间因素也会影响不一样传感器之间的相关性。通常来讲,地理传感器是经过显式或隐式进行相互链接的。这里,咱们使用矩阵\mathbf{P} \in \mathbb{R}^{N_g \times N_g}来表示地理空间的类似度,其中\mathbf{P}_{i,j}表示传感器i和j之间的类似度。与attention权值不一样的是,地理空间的类似度能够视做先验知识。尤为是,在若是\mathbf{N}_g太大,选择最近或类似的传感器会更好。而后,咱们使用一个softmax函数来保证全部的attention权值和为1,结合考虑地理空间类似性得出以下的公式:

image.png

其中 \lambda 是一个可调的超参数。若是 \lambda 很大,这个公式就会使attention的权重和地理空间类似度同样大。经过这些attention权值,咱们就能够计算出global spatial attention的以下输出向量:

image.png

2.2 Temporal Attention

因为随着编码长度的增长,encoder-decoder结构的性能会迅速降低,因此增添一个temporal attention机制能够自适应地选择encoder层的相关hidden states来产生输出序列,即,对预测序列中不一样时间间隔之间的动态时间相关性进行建模。具体来讲,为了计算encoder每一个hidden state下每一个输出时间t‘处的attention向量,咱们定义:

image.png
image.png

其中

image.png
image.png
都是学习得来的。这些值被一个softmax函数标准化,以建立encoder层隐藏状态上的attention掩码。

2.3 外部因素抽取

地理传感器的时间序列和空间因素(好比POIs和传感器网络之间)有很强的关系。形式上,这些因素共同决定了一个区域的功能。此外,还有不少时间因素(如气象和时间)在影响着传感器的读数。在受相关论文启发之下,该论文设计了一种简单有效的组建来处理这些因素。 正如上面的图2所示,首先合并了包括时间特征,气象特征和须要被预测传感器的SensorID等时间因素。因为将来时段的天气状况未知,咱们使用天气预报来提升咱们的性能。注意,这些因素大部分是分类的值,不能直接输入到神经网络中,咱们将每一个分类的属性分别输入到不一样的embedding层中,将它们转化为一个低维向量。在空间因素方面,咱们利用不一样类别的POIs密度做为POIs特征。因为传感器网络的特性取决于特定的环境,咱们就简单的利用了网络的结构特征(如居民和交叉口数量)。最后,咱们将获得的嵌入向量和空间特征向量链接起来做为该模块的输出,记为\mathbf{ex}_{t'} \in \mathbb{R}^{N_e} ,其中t'表示decoder层的将来时间步长。

2.4 Encoder-decoder和模型训练

在encoder层中,咱们将local spatial attention 和 the global spatial attention简单汇总成:

image.png
咱们把链接而成的 \tilde{\mathbf{x}}_t做为encoder层新的输入,而且用 \mathbf{h}_t = f_e(\mathbf{h}_{t-1}, \tilde{\mathbf{x}}_t)来更新t时刻的hidden state,其中 f_e是一个LSTM单元。 在decoder层中,一旦咱们得到了将来 t'时刻的 \mathbf{c}_{t'}的环境向量,咱们就能够把它和外部特征抽取模块的输出 \mathbf{ex}_{t'}和decoder层最后一个输出 \hat{y}^i_{t'-1}结合起来去更新decoder层的hidden state,公式以下:
image.png

其中f_d是使用在decoder层中LSTM单元。而后,咱们再把先前的环境向量\mathbf{c}_{t'}和如今获得的hidden state\mathbf{d}_{t'}结合起来,成为新的hidden state来作以下的最终的预测:

image.png
最后,咱们使用一个线性变换来产生最后的输出。 由于这个方法是光滑可谓的,因此是能够经过反向传播算法来进行训练的模型的。在这个训练阶段,咱们使用的Adam优化器来最小化传感器i的预测向量 \hat{\mathbf{y}}^i和实际测量值 \mathbf{y}^i之间的MSE来训练这个模型:
image.png
其中 \theta都是在所提出的模型中学习来的。

3 实验

3.1 实验数据

该论文中用了两个数据集分别来训练该模型,数据集的详细内容如图3所示:

image.png

图3:数据集的详细内容。

可是因为完整数据没有公开的问题,咱们后面复现是使用的是一个他提供的sample_data,便是他处理完以后获得的向量,因此这部分不作深刻介绍,若是对这部分还有疑问或者兴趣,能够自行参考论文相应部分。

3.2 评价指标

咱们使用多个标准来评估咱们的模型,包括根均方偏差(RMSE)和平均绝对偏差(MAE),这两个标准在回归任务中都被普遍使用。

3.3 超参数

鉴于先前的一些研究,该论文设置时间间隔为6天来作短时间预测。在训练过程当中,咱们设batch的大小为256,learning rate为0.001。在外部特征自动抽取模块,论文把SensorID嵌入到 \mathbb{R}^6中,把时间特征嵌入到 \mathbb{R}^{10}中。总的来讲,在这个模型中有4个超参数,其中权衡参数\lambda从经验上来讲是固定在0.1到0.5之间的。对于窗口长度T,咱们令T∈{6,12,24,36,48}。对了简单起见,咱们在encoder层和decoder层使用相同维度的hidden层,而且在{32, 64, 128, 256}上进行网格搜索。此外,咱们使用堆叠的LSTMs(层数记做q)做为encoder和decoder的单位,以提升咱们的性能。实验发现,在设置q=2,m=n=64,\lambda=0.2时在验证集表现的最好。

4 模型对比

在本节中,咱们将论文的模型与两个数据集上进行比较。为了公平起见,在图4中给出了不一样参数设置下每种方法的最佳性能。

image.png

图4:在不一样模型中的表现对比

在水质预测方面,咱们提出的方法在两个指标上都明显优于其余方法。特别地,GeoMAN在MAE和RMSE上分别以14.2%和13.5%超过了最早进的方法(DA-RNN)。另外一方面,因为residual chlorine(RC)的浓度遵循必定的周期规律,所以stDNN和RNN方法(即Seq2seq, DA-RNN和GeoMAN)经过考虑更长的时间关系,得到了比stMTMVL和FFA更好的性能。与LSTM对将来时间步长的预测相比,GeoMAN和Seq2seq因为解码器组件的积极做用而带来了显著的改进。值得注意的是,GBRT在大多数基线上都有较好的表现,这说明了集成方法的优越性。

与相对稳定的水质读数相比,PM2.5浓度波动较大,预测难度较大。图4是北京空气质量数据的综合比较。很容易看出,咱们的模型同时达到了MAE和RMSE的最佳性能。继以前的工做关注MAE以后,咱们主要讨论了这种度量。论文的方法比这些方法低了7.2%到63.5%,代表它在其余应用上有更好的泛化性能。另外一个有趣的观察结果是,stMTMVL在水质预测方面效果很好,但在这方面表现出了劣势,由于空气质量预测的联合学习任务的数量远远大于水质预测的联合学习任务的数量。

5 总结

这篇论文提出了一种基于多层attention的时间序列预测网络。在第一个层次,应用local和global spatial attention机制来捕获地理感知数据中的动态传感器间关联。在第二层,论文利用temporal attention自适应地选择相关的时间步长进行预测。此外,论文的模型考虑了外部因素的影响,使用通用的特征抽取模块。论文中使用在两类地理传感器的数据集上对论文的模型进行了评价,实验结果代表,论文的模型在和其余9个模型同时在RMSE和MAE两个指标得到了最佳的性能。

项目地址:momodel.cn/workspace/5…

6 参考资料

关于咱们

Mo(网址:https://momodel.cn)是一个支持 Python 的人工智能在线建模平台,能帮助你快速开发、训练并部署模型。


Mo 人工智能俱乐部 是由网站的研发与产品设计团队发起、致力于下降人工智能开发与使用门槛的俱乐部。团队具有大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具有从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。

目前俱乐部每两周在杭州举办线下论文分享与学术交流。但愿能汇聚来自各行各业对人工智能感兴趣的朋友,不断交流共同成长,推进人工智能民主化、应用普及化。

image.png
相关文章
相关标签/搜索