lstm处理时序数据结构图_主编推荐 | 图神经网络简介及其在交通流预测中的应用...

本文主要是介绍lstm处理时序数据结构图_主编推荐 | 图神经网络简介及其在交通流预测中的应用...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:主编推荐 | 图神经网络简介及其在交通流预测中的应用编者按:图神经网络(GNN)作为一项新兴的图数据学习技术,近年来受到了广泛的关注。2018年年末,图数据学习领域不仅同时发表了三篇综述论文,而且由DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家联名发表论文推广GNN。本文带领大家先看GNN是什么,然后介绍其在交通领域的应用。

图数据一直就是机器学习领域里最重要的数据结构。与图像数据和文本数据相比,神经网络在图数据上的大规模应用最近几年才大量出现,然而已经呈现出井喷的趋势,在学术界和工业界都产生了巨大的影响。想要系统掌握的话,不仅要知道原理,更要懂得代码细节,以及亲手实战具体项目,了解近年来来一系列模型的发展脉络。想要全面地学习这些知识点的话,可以学习 bienlearn 上的图神经网络专栏。

这个图神经网络专栏由大厂高级算法工程师丁雨山&彬斌主笔,帮助新手以及有一定基础的同学快速入门图神经网络,既包括原理、代码的解读,还有对图网络底层设计思想的理解与项目实操。不管是准备面试、项目实战还是比赛刷分,都可以找到对应的内容。

目前在限时优惠,更详细的内容大家可以点击下方卡片查看

Bienlearn​www.bienlearn.com
445eb12efa93ae49b35d02166d2413c8.png

正文开始:

1 火爆的图神经网络究竟什么来路?
最近几年,作为一项新兴的图数据学习技术,图神经网络(GNN)受到了广泛的关注。2018年年末,发生了两件特殊的事情。图数据学习领域同时发表了三篇综述论文,这种现象体现了学术界对该项技术的高度认可;更有众多工业界与学术界的大佬联名上书,支持GNN。由DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同发表了一篇论文Relational inductive biases, deep learning, and graph networks,提出了图网络(graph network)的概念。让深度学习也能因果推理。

ade16815eabd331e056f561013a2a4be.png


图1 27位科学家联名综述[1]
知道它这么厉害,总要先知道它是什么吧,首先我们来看看图神经网络究竟是什么样子的。 下面我们通过两张图说明普通卷积与图神经网络卷积的含义与不同。

b3408fef5cb5f093b801a665c97c2ff2.png


图2 普通卷积网络
如图2所示,普通卷积神经网络使用的卷积核一般是固定大小的(如图中为3*3大小)。它的应用一般面向的对象是序列或者是图像这种规则化的数据结构,这就是为什么现在神经网络在图像处理与自然语言处理领域应用的如此火爆。

77f1331ef551c193c6779268db90baed.png


图3 图卷积神经网络
图卷积神经网络也是卷积,如图3所示,我们卷积产生的结果Z3就是来自X1,X2,X3,X4,简单的说就是邻域节点的特征对于自己有没有帮助,进行一定的吸收,吸收之后重新产生一个新的图。图卷积的功能与传统卷积神经网络是相同的,提取高维特征,找到更加粗粒度的表示,例如图中存在的社团,簇等等。但是卷积的时候由于受限于邻居节点数量不同的问题。图神经网络卷积核的选取往往比较困难。
看完了对比,我们发现普通神经网络主要是依靠固定的卷积核组合出高维特征。图神经网络使用特别设计的卷积核来提取泛图数据中的高维特征。卷积核的设计一般有两种方式,后续我们会聊到。
有人说就这模样,就人工智能2.0了,你骗钱呐吧!别急,我们往下看,自2012年以来,深度学习理论及其所需的硬件计算能力取得了很大的发展,然后它在很多的领域取得了极大的发展。尤其在计算机视觉以及自然语言处理两个领域取得了巨大的成功。深度学习的杰出代表就是CNN,RNN。俩兄弟一个处理图片,一个处理序列,分工明确,各司其职(但是我告诉你们一个秘密,最近又出了个temporal convolutional neural network,这两个兄弟要打架了,CNN要抢RNN的饭碗啊)。言归正传,我觉得题目中所说的图神经网络(GNN)将会是第三个杰出代表,为什么这么说呐?主要有两个核心原因。

2 第三个杰出代表,why?传统神经网络无法逾越的鸿沟
CNN无法处理非欧几里得结构(Non Euclidean Structure)数据,学术上的表达是传统的离散卷积在非欧几里得结构的数据上无法保持平移不变性。通俗的理解就是在拓扑图中每个顶点的相邻节点数目可能不同,所以根本无法用一个同样尺寸的卷积核来进行卷积运算。

77f1331ef551c193c6779268db90baed.png


图4 图卷积神经网络
我们还是来看这张图片,我们会发现X3有三个邻居,但是X1,X2只有一个邻居,所以我们再卷积的时候卷积的大小究竟是1?还是3?这个情况CNN是hold不住的啊。
由于传统神经网络的大兄弟CNN无法处理非欧几里得结构的数据,又希望在这样的数据结构(拓扑图)上有效地提取空间特征来进行机器学习,所以GCN成为了研究的重点。面向对象广
既然能够处理非欧几里得结构数据,那这种数据究竟有什么用处呐?其实现实的问题当中还存在大量的该结构数据,如社交多媒体网络(Social Network)数据,化学成分(Chemical Compound)结构数据,生物基因蛋白(Protein)数据以及知识图谱(Knowledge Graphs)数据等均可以抽象出图谱,同时图也是一种典型的非欧几里得结构数据。图神经网络能够解决该结构数据的卷积,因此它有很大的应用空间。3 GNN如此厉害,有何具体的操作?
按照我们上面介绍的图神经网络理论思路,它有两种方式,这两种方式其实也比较简单,继续向下看吧。空域(spatial domain)卷积
简单说就是提取拓扑图上的空间特征,然后把每个顶点相邻的节点(邻域)找出来,我把你拼成规则的数据结构,然后进行卷积[2]。
具体的操作方法包含三个步骤:
1.从图中选择一个固定长度的节点序列;
2.对序列中的每个节点,收集固定大小的邻域集合;
3.对由当前节点及其对应的邻域构成的子图进行规范化,作为卷积结构的输入,后面就是传统神经网络的常规操作了。频域(spectral domain)卷积
这种思路就是希望借助图谱的理论来实现拓扑图上的卷积操作。从整个研究的时间进程来看:首先研究谱图论(graph signal processing)的学者定义了graph上的Fourier Transformation,进而定义了graph上的convolution,最后与深度学习结合提出了Graph Convolutional Network。其实核心概念就是借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质。什么是拉普拉斯矩阵呢?拉普拉斯矩阵就是长下面这个样子(最右侧),它就是包含了每个节点自身与其邻域节点连接信息的矩阵。

a48e90ceba2ee81a5b39087f53cb11c5.png


图5 拉普拉斯矩阵(引自维基百科)
其实使用的时候非常的简单,我们继续向下看:最后我们编程使用的就是AXW,基本上所有使用GCN的论文都可以看到这个公式的身影,最多就是变形些。其中A是标准化的邻接矩阵,X是每个节点的特征矩阵,就是每个节点有什么属性,举个简单的例子,比如图像处理中,图片的每个像素有RGB值,如果把每个像素看作一个节点,那RGB值就是三个属性。W是学习的参数,就是神经网络要训练优化的参数。再牛一些的公式就是A(AXW)W,它是一个两层的图卷积网络,一般的图卷积网络由于计算量比较大,除非经过特殊的改良,否则实验只操作到两层。
从上面我们可以看出来,目前设计图卷积核的方式主要是两个,第一种设计的卷积核是确定的,比如空域。对于不同的图,如果每个节点的邻居数量不同,要去规范化一个卷积核,,那就选取固定数量的邻居,这样就能够使用一个固定大小的卷积核。第2种就是频域的卷积核设计,我将所有的节点都考虑,但是在卷积的时候,我根据拉普拉斯矩阵的特征进行选择,只选择部分与节点相关的邻域进行卷积。

空域卷积其实是将问题简单化,卷积前先进行剪枝邻域,所以计算速度一般较快。频域的卷积是先将所有的节点考虑,然后在卷积时依靠拉普拉斯矩阵进行筛选,由于考虑了所有节点,所以这种计算速度明显的要慢一些。

4 图神经网络在交通领域中的应用
由于城市中道路网络具有着天然的网结构数据,图神经网络的应用是当然的选择。简单介绍背景:神经网络开始应用在交通领域是微软亚洲研究院(现为京东副总裁)的郑宇博士[3]。将地图的人流量与车流量转化为热力图,然后使用图片处理的方法解决。使用三个CNN模型分别去拟合周期性(period)、邻近性(closeness)和趋势性(trend),在CNN中使用12个残差单元,每个残差单元包含两个级联的ReLu和Conv模块,并使用shortcut降低梯度消失的问题。

1dbe983edce5a612673f57e5200b312f.png

简单介绍背景:图神经网络开始应用在交通领域是南加州大学的李亚光老师初次introduce的。与ConvLSTM[4]有异曲同工之妙,只是CNN换为GCN。在使用的时候就是使用图卷积(GCN)代替普通卷积(CNN),同时考虑的双向传输性。然后将卷积的结果输入到RNN或LSTM捕捉时序特征[5]。

a94ea15daa861b80941585dfb86f93e0.png


图6 双向卷积公式

f4921e32c51ff2db2b626f154e53d691.png


图7 DCRNN架构图
说到这里,我们介绍时空特征提取:交通流预测主要包含两个方面,一个是空间(spatial),另一个是时间(temporal)。

  1. Spatial的手段主要包括基于road network(如图8)的图卷积(GCN)与基于地图网格(如图9)的普通卷积(CNN);
  2. Temporal的手段主要是基于LSTM,GRU等序列建模的方式,现在对于更长期的序列建模也是研究的热点,一个是基于多个序列模型(如RNN,LSTM等)的聚合(如图11),来增加时间维度的感受野。一个是使用时间卷积网络(TCN)来增强时间维度的感受野(如图10)。基本主流论文中的方法大框架都是采用空间领域的图卷积与时间领域的GRU。

0a04e52071494d756c40d6c097cba2ec.png

图8 road network

e6932ca88b41ab4c9181a9b23a08712a.png

图9 map grid

af01d2570bcb2b25b4d2c8cf708be8bc.png

图10 TCN

146dae7da71a8c3483c3b07efc1e6db7.png

图11 多序列模型聚合
基于这些基础基础,还有这更加复杂的模型。基于真实的交通信息,使用注意力机制计算每个道路节点之间的变化相似度,得到一个节点特征相似性矩阵(similarity matrix)(描述道路节点之间的相似性),如图12(a)所示;使用道路结构信息(structure info)对相似性矩阵进行截断;然后通过图卷积(GCN)对特征进行聚合,最后通过全连接层输出更新系数与重置系数,如图12(b)所示。 我觉得创新主要有两点:1)使用attention的方式代替原来GCN中基于拉普拉斯矩阵进行聚合的方式,用来捕捉基于节点特征的网络结构动态性。2)使用新GCN重新设计原来GRU中的首个linear层(即更新门与重置门),如图12(c)所示;整个模型的训练流程如图13所示。

c115c95f59ea2c65093630db50398497.png


图12 AGCN cell结构图。其中(a)(b)共同构成了AGCN cell,(c)展示了基于AGCN cell的新GRU

a66f8cf6235893f63f17aeabba432794.png


图 13 模型训练框架图5 总结
看到这里相信你对图神经网络有了比较全面的认识。图神经网络有着如此大的应用市场,如智能交通,智慧物流,社交网络等复杂场景,又有如此简单的操作,相信以后可以大有作为。

更多相关专业文章,欢迎关注公众号【图与交通】!

可以添加微信(微信号: professor_huangdehua ),拉你进专业交流群。
参考文献:
[1] Battaglia, Peter W, Hamrick, Jessica B, Bapst, Victor,等. Relational inductive biases, deep learning, and graph networks[J].
[2] Niepert M , Ahmed M , Kutzkov K . Learning Convolutional Neural Networks for Graphs[J]. ICML ,2016.
[3]Zhang,Junbo, Zheng, Yu, Qi, Dekang. Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction[J].
[4]Shi X,Chen Z,Wang H, et al. Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting[J]. 2015:802-810.
[5]Li Y , Yu R , Shahabi C , et al. Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting[J]. 2017.

这篇关于lstm处理时序数据结构图_主编推荐 | 图神经网络简介及其在交通流预测中的应用...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624181

相关文章

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用