共计 6457 个字符,预计需要花费 17 分钟才能阅读完成。
GeoMAN:多层 Attention 网络用于地理传感器的时序性预测
作者:魏祖昌
1 简介
在我们现实生活中,已经部署大量的传感器(比如气象站点)。每一个传感器都有自己独特的地理空间位置,并且不断的产生时间序列读数。一组传感器共同监测一个空间的环境,这些读数之间就会有空间相关性,我们称这些传感器的读数为 地理感知时间序列 。此外,当不同空间位置用同一种传感器来监测,通常会产生多种地理感知的时间序列。例如,如图 1(a) 所示,道路上的环形探测器会及时报告过往车辆的读数以及它们的行驶速度。图 1(b)表示传感器每 5 分钟产生三个不同的水质化学指标。除了监测之外,对地理感知时间序列预测 (如交通预测) 的需求也在不断增长。
图 1:(a)-(b)地理传感器时序性数据的例子
然而,对地理感知时间序列进行预测是非常复杂的,主要受以下两个复杂因素的影响:
- 动态的时空相关性。
- 外部因素。传感器的读数也受到周围环境的影响,如气象(如强风),一天中的时间(如高峰时间)和土地使用情况。
为了解决这些挑战,该论文提出了一个多层次的 Attention 网络 (GeoMAN) 来预测未来几个小时内地理传感器的读数。该论文的研究有三方面的贡献:
- 多层 attention 机制 我们构建了一个多层 attention 机制来建模时空动态关联。尤其是在第一层,该论文提出了一种创新的 attention 机制(由 local spatial attention 和 global spatial attention 组成)来捕获不同传感器时序性序列之间的复杂空间联系(比如传感器内部之间的联系)。在第二层,应用了一个 temporal attention 来建模在时间序列中不同时间间隔的动态时间关联(比如传感器之间的联系)。
- 外部因素抽取模块 该模块设计了一个通用抽取模块来整合来自不同领域的外部参数。然后抽取出来的潜在代表性因素输入到多层 attention 网络中来增强这些外部因素的重要性。
2 多层 Attention 网络
图 2 展示了该片论文的整个框架。依据 encoder-decoder 框架,我们利用两个分离 LSTM 网络,一个用于对输入序列(比如地理传感器的历史时间序列)进行 encoder,另一个则用于预测的输出序列。更具体的来说,论文中的 GeoMAN 模型主要是由两部分组成:
- 多层 attention 机制。它的 encoder 部分用了两种 spatial attention 机制,decoder 用了一个 temporal attention 机制。论文中在 encoder 层中用的两种不同 attention 机制(local spatial attention 和 global spatial attention)正如图 2 所示,它能通过 encoder 之前的隐藏状态,传感器的历史数据和空间信息(比如传感器网络)来捕获每个时间间隔之间的传感器内部之间的复杂关系。在 decoder 层中,使用了一个 temporal attention 来自动选择之前相似的时间间隔来进行预测。
- 外部因素抽取。这个模块用于处理外部因素的影响,并且将其输入到 decoder 层,作为其输入的一部分。这里我们用 ht 和 st 来分别表示 encoder 层在 t 时刻的 hidden state 和 cell state。类似的用 dt 和 s ’ 来表示 decoder 层的这两部分
图 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 机制自适应地捕捉目标序列与每个局部特征之间的动态相关性,其公式为:
其中 [·; ·] 是合并操作,$\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 的输出向量:
2.1.2 Global Spatial Attention
其他传感器所监测的历史时间序列对将要预测出来的序列,会有直接的影响。然而,影响的权重是高度动态,是随时间变化的。由于会有很多不相关的序列,所以直接用所有的时间序列输入到 encoder 层来捕获不同传感器之间的相关性会导致非常高的计算成本并且降低性能。注意,这种影响的权重是受其他传感器的局部条件影响的。比如,当一股风从很远的地方吹来的时候,某些地区的空气质量会比之前更受这些地方的影响。受此启发,构建了一种新型的 attention 机制来捕获不同传感器之间的动态变化。给定第 i 个传感器作为我们的预测的对象,其他的传感器为 l,我们就可以计算他们之间的 attention 权值(即影响权重),公式如下:
其中 $\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,结合考虑地理空间相似性得出如下的公式:
其中 $\lambda$ 是一个可调的超参数。如果 $\lambda$ 很大,这个公式就会使 attention 的权重和地理空间相似度一样大。通过这些 attention 权值,我们就可以计算出 global spatial attention 的如下输出向量:
2.2 Temporal Attention
由于随着编码长度的增加,encoder-decoder 结构的性能会迅速下降,所以增添一个 temporal attention 机制可以自适应地选择 encoder 层的相关 hidden states 来产生输出序列,即,对预测序列中不同时间间隔之间的动态时间相关性进行建模。具体来说,为了计算 encoder 每个 hidden
state 下每个输出时间 t‘处的 attention 向量,我们定义:
其中 和都是学习得来的。这些值被一个 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 简单汇总成:
我们把连接而成的 $\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,公式如下:
其中 $f_d$ 是使用在 decoder 层中 LSTM 单元。然后,我们再把先前的环境向量 $\mathbf{c}_{t’}$ 和现在得到的 hidden state$\mathbf{d}_{t’}$ 结合起来,成为新的 hidden state 来做如下的最终的预测:
最后,我们使用一个线性变换来产生最后的输出。
因为这个方法是光滑可谓的,所以是可以通过反向传播算法来进行训练的模型的。在这个训练阶段,我们使用的 Adam 优化器来最小化传感器 i 的预测向量 $\hat{\mathbf{y}}^i$ 和实际测量值 $\mathbf{y}^i$ 之间的 MSE 来训练这个模型:
其中 $\theta$ 都是在所提出的模型中学习来的。
3 实验
3.1 实验数据
该论文中用了两个数据集分别来训练该模型,数据集的详细内容如图 3 所示:
图 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 中给出了不同参数设置下每种方法的最佳性能。
图 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 两个指标获得了最佳的性能。
项目地址:https://momodel.cn/workspace/5d96ed18673496721b0792fb?type=app
6 参考资料
- 论文:GeoMAN: Multi-level Attention Networks for Geo-sensory Time Series Prediction
- 博客:softmax 详解
- 博客:attention 介绍
- 博客:Adam 优化器
关于我们
Mo(网址:https://momodel.cn)是一个支持 Python 的 人工智能在线建模平台,能帮助你快速开发、训练并部署模型。
Mo 人工智能俱乐部 是由网站的研发与产品设计团队发起、致力于降低人工智能开发与使用门槛的俱乐部。团队具备大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具备从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。
目前俱乐部每两周在杭州举办线下论文分享与学术交流。希望能汇聚来自各行各业对人工智能感兴趣的朋友,不断交流共同成长,推动人工智能民主化、应用普及化。