当前位置: 首页 > 编程日记 > 正文

交通图网络太大太复杂,没法处理?DMVST-Net巧妙处理

640?wx_fmt=jpeg

参加「CTA 核心技术及应用峰会」,请扫码报名 ↑↑↑


作者 | Huaxiu Yao, Fei Wu, Jintao Ke, Xianfeng Tang等

译者 | 一步一步望着天上星

编辑 | Jane

出品 | AI科技大本营(id:rgznai100)


【导语】自 2018 年 6 月 DeepMind 发表论文“Relational inductive biases, deep learning, and graph networks”至今,深度图网络火的一塌糊涂,然而在交通领域等需要构建大型图网络的应用中,深度图网络似乎“举步维艰”。大型图网络建模往往需要大量的计算资源,这无论是在研究中还是在工业生产中,都是难以逾越的障碍。然而AAAI 2018 收录的一篇论文,从交通领域出发,巧妙给出了这个问题的解决办法。


摘要


在智慧城市的建设中,出租车需求预测是一个及其重要的问题。准确的预测需求能够帮助城市预分配交通资源,提前避免交通拥堵,从而缓解交通压力,同时降低出租车空载率,提高出租车司机收入。传统的出租车需求预测往往基于时序预测技术(time series forcasting techniques),无法对复杂的非线性时空关系进行建模。深度学习技术的突破为交通预测问题带来了曙光,但是现存的深度学习网络架构,往往只单一考虑了时间关系或者空间关系,没有把两者结合起来进行建模。


本文提出了 DMVST-Net(Deep Multi-View Spatial-Temporal Network),同时对时间关系和空间更新进行建模。更具体地,该模型同时从三个角度出发(分别是 temporal view, spatial view,semantic view),综合考虑了出租车需求在路网上分布的时空关系,并利用语义信息,对相似区域的时空模式进行了建模。


值得一提的是,本文运用图网络 和 Local CNN 的方法,对由数万路段组成的大型道路交通网,进行了特征提取,这一举措,将图网络的运用拓宽到一个新的层次,使得大型交通网的建模有了新的解决思路。


主要贡献


1、提出了一个多视角模型,该模型同时考虑了 spatial,temporal 和 semantic 信息。


2、提出了 Local CNN 的方法,用于捕获区域的局部特征,该特征受到所捕获区域邻近区域的影响。


3、基于不同区域之间的时空模式的相似性,构建了一个 region graph,用于表达区域特征的语义信息。


4、利用滴滴出行的出租车订单数据进行实验,验证了模型的有效性和先进性

模型架构(DMVST-Net)。


在介绍模型之前,先用通俗易懂的语言介绍一下论文的主要思路,先用一个易理解的例子来说明:


小明想预测整个广州市对出租车的使用需求,可是掐指一算,整个广州市有几万条道路,简单的用一维向量去表示它的话,会丢失空间关系;用图网络去构建交通网的话,得到的图尺寸相当大,瞅瞅自己只有四块 GPU,怕是带不动;转念一想啊,好多前辈都是用一个个规则的格网来表示城市的不同区域,再用 CNN 时空图像处理的方法建模,可是前辈们做了呀,这可咋整呢。于是小明想了一个办法:我用传统的格网去表示城市区域,每个格网的值就代表这个区域出租车的需求量,但是我分别对每个格网构建一个CNN网络。我再用图网络的方法,把城市中每个格网给连接起来,这样不就能够表示每个格网(城市区域)之间的联系了吗?


模型架构(DMVST-Net)


给小明同学鼓个掌,下面就是小明同学提出的模型。


640?wx_fmt=png      

DMVST-Net 分为三个部分,分别是 Spatial View,Temporal View 和 Semantic View。


Spatial View:Local CNN


什么是Local CNN呢?举个例子,如下图所示,我要对 (a)提取特征,最常见的一种方式是把(a)这整张图像送入到CNN中,进行卷积运算;而另一种方式就是把(a)分块,把划分后的每一小块分别送入到CNN中,也就是每次只对(b)进行卷积运算,最后把每个部分的结果进行综合,这就是 Local CNN。


640?wx_fmt=png      


提出该方法的动机是地理学第一定律——near things are more related than distant things。举个例子,相比于湖北省和河北省的人民,湖北省和湖南省的人民生活习惯要更相似,这是因为他俩靠的近。小明同学在这里把广州市分成了20 x 20个区域,每个区域是0.7km x 0.7km,用7 x 7的二维图像来表示每一个区域,图像中每个像素点的灰度值代表出租车的需求量。每张图像可以用 640?wx_fmt=png 表示,其中 S=7 。640?wx_fmt=png 经过K个卷积层后得到 640?wx_fmt=png,进行 flatten 操作得到 640?wx_fmt=png,最后进行降维得到 640?wx_fmt=png具体公式如下:


640?wx_fmt=png      

640?wx_fmt=png      


最终我们Spatial View的输出是  640?wx_fmt=png      。


Temporal View: LSTM


小明同学在这里学习了牛顿的思想:“站在巨人肩膀上”。在该部分,小明同学直接利用了传统的时序预测利器——LSTM。LSTM 网络是一种特殊的 RNN 网络,该网络的全称是 Long Short-Term Memory network(长短期记忆网络)。LSTM 网络可以说是为时序预测所量身打造的,该网络不仅能够捕获近期的时间关系,还能记忆长期的时间模式,由于遗忘机制的引入,可以使得 LSTM 网络对长时序列也有较好的处理能力。在这里,我们不做推导,直接把公式放出来,有兴趣的朋友们可以参见文末的相应链接【4】。


640?wx_fmt=png      


值得注意的是这里的 LSTM 网络的输入是 640?wx_fmt=png其中 640?wx_fmt=png 是 Spatial View 的输出,而 640?wx_fmt=png 是天气、节假日等元数据特征,640?wx_fmt=png 表示的是联合操作。最终我们 Temporal View 的输出是 640?wx_fmt=png


Semantic View: Structural Embedding


接下来到了我们最期待的一步,如何利用图网络的方法,构建城市各个区域的关系网络,从而给我们的深度学习任务提供更高层次的特征。首先,小明同学根据一个直觉:具有相同功能的地点应该具有相似的出租车需求模式,然而具有相同功能的地点在空间上不一定相邻。举个栗子,北京海淀区的一处 CBD 和朝阳区的一处 CBD 在很大程度上功能相似,但是这俩个地方隔得老远,可是却可能有着相似的出租车需求模式。基于这个直觉,小明同学构建了区域和区域之间的全连接网络 640?wx_fmt=png640?wx_fmt=png 代表节点(即区域,总数为 20 x 20),640?wx_fmt=png 代表每两个节点的边,640?wx_fmt=png为相似性矩阵,640?wx_fmt=png 代表节点 i 和 j 的相似性。


那么问题来了,这个相似性基于什么特征衡量呢?用什么方法去衡量呢?


我们的小明同学非常的聪明,他将每个节点的需求序列进行整合,计算每周的平均需求量,作为节点的特征,然后采用了动态时间规整(DTW)【5】的方法来衡量节点之间的相似性。


640?wx_fmt=png      


为了将每个节点的特征进行压缩,并同时维持网络的结构信息,小明同学又采用了graph embedding 的方法,将每个节点的特征压缩到更低的维度。为了构建一个端到端的神经网络模型,小明同学又将压缩后的特征送入到一个全连接层,最后得到了Semantic View 的输出 640?wx_fmt=png      。


请注意,这里的代表的是节点 i 的语义特征,也就是说,Semantic View提取整个网络的特征,但是只把单个节点所学习到的特征送到主体模型中。


模型综合


最后就是模型综合部分了,简单的讲,就是把Spatial View,Temporal View 和 Semantic View 这三个部分的输出结果给联合起来,再通过一些神经网络层进一步提取特征,最后与真实值计算Loss,通过优化算法不断训练模型,最终得到一个较优的结果。这里简单列一下公式:


  • 三个部分特征的综合:640?wx_fmt=png      

  • 输出函数设计:640?wx_fmt=png      

  • 误差函数设计:640?wx_fmt=png      


这里的 Loss Function 设计比较有趣,该公式由两部分组成,第一部分是均方误差(MSE),第二部分是平均绝对百分误差(MAPE),MSE更多的和大值相关,而MAPE对大值和小值一视同仁,引入MAPE能够避免训练过程被大值的样本所主导。


模型训练算法


在这里,直接把算法贴出来,算法的主要思想就是每个区域的需求预测都使用相同的网络结构,但是每个区域对应的网络有着不同的参数,对所有的网络结构都进行训练,直到满足停止条件。这里的算法不是重点,就不再叙述了,有兴趣的朋友可以看一下原文。


640?wx_fmt=png      



实验

数据集


在这里,将文章的数据集描述进行了整理,方便大家快速阅读


640?wx_fmt=png      

评价矩阵


640?wx_fmt=png      


主要结果


小明同学将自己的模型和当前的主流模型进行了对比,其中包括 Historical average,ARIMA,Ordinary least square regression,Ridge regression,Lasso,Multiple layer perceptron,XGBoost,ST-ResNet。


640?wx_fmt=png      


从表中可以看出,DMVST-Net的效果在两种评价指标上均为最优,证明了模型的有效性和先进性。


除此之外,小明同学还计算了各模型从工作日到休息日,相关误差的增长(RIE):


640?wx_fmt=png      

可以看到DMVST-Net的RIE最小,证明了模型鲁棒性很高


分别展示了周一到周日各天的预误差结果:


640?wx_fmt=png      

可以看到DMVST-Net每天的预测误差(MAPE)都比其他模型小。


最后讨论了LSTM输入序列长度对模型结果的影响,及Local CNN输入图像尺寸的影响。


640?wx_fmt=png      

结语


这篇文章的作者说,该文的最大贡献在于从三个视角考虑了城市出租车的需求模式,提出了DMVST-Net,然而这种多视角的建模方式,早就老生常谈了。反到是对于图网络的巧妙运用,才成就了这篇论文:利用区域作为节点构图,而不是采用路段作为节点构图,不仅避免了城市尺度下图网络过大的问题,而且很好的利用图网络的特性,构建了不同区域之间的联系,从而提取了各区域的语义特征。这种大而化小的思想值得我们去学习,在图网络尚未解决计算复杂性的今天,或许这种小trick更加有利于加速产学研结合,将图网络应用到更多的地方!


参考文献


  • Deep Multi-View Spatial-Temporal Network for Taxi Demand Prediction

    https://arxiv.org/abs/1802.08714

  • Relational inductive biases, deep learning, and graph networks

    https://arxiv.org/abs/1806.01261

  • Graph Neural Networks: A Review of Methods and Applications

    https://arxiv.org/abs/1812.08434

  • Long short-term memory

    https://ieeexplore.ieee.org/document/6795963?denied=

  • Dynamic time warping

    https://en.wikipedia.org/wiki/Dynamic_time_warping


(本文为投稿文章,转载请微信联系1092722531



精彩推荐

5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开。首届CTA核心技术及应用峰会将围绕人工智能,邀请技术领航者与开发者共同探讨机器学习知识图谱的前沿研究及应用。


同时,我们推出会议双日开发者盲定票,仅售299元(原票价1099元),限量30张。扫描下方二维码,或添加小助手微信1731967109,备注【CTA】,了解大会详情以及票务问题


640?wx_fmt=png


推荐阅读

  • “你行你上”:有本事跟OpenAI Five打一把DOTA?

  • 以女大学生相亲为例,给你讲明白数据挖掘算法

  • Python分析《权力的游戏》最终季...... | 附源码

  • 谷歌大神Jeff Dean点赞网红博士论文:技术头条

  • 滴滴全链路压测解决之道 | 技术头条

  • 手机导航已死!

  • 如何嫁给年入百万的阿里人?

  • 《捕鱼达人》幕后的开发引擎玩起区块链, 区块链游戏的春天已近?| 人物志

  • 程序员如何向女友解释:为啥软件都要装C盘?


640?wx_fmt=png


点击“阅读原文”,直接参与大会报名

相关文章:

小程序这件事 撸起袖子加油干

写在前面的话&#xff1a; 初次接触小程序&#xff0c;便被它开发的简易与便捷所吸引。总按耐不住对未知的探索欲望&#xff0c;于是乎撸起袖子来干一个吧。附&#xff1a;小程序开发文档 项目介绍 艺龙酒店小程序实践 使用<swiper>标签实现网页轮播图的效果&#xff0c;…

mutt使用小技巧 指定发件人 添加附件

经常我们需要从linux服务器上直接发送一些邮件到自己&#xff0c;或者用户的邮箱里&#xff0c;mail命令固然重要&#xff0c;但是缺点是不能方便的进行插入附件。这里选择使用mutt&#xff0c;方便又好用。 实例&#xff1a; echo "邮件内容" | mutt -e "my_hd…

恶犬秒变萌汪:东京大学开源“治愈系”GAN图片拼贴工具 | 技术头条

参加「CTA 核心技术及应用峰会」&#xff0c;请扫码报名 ↑↑↑译者 | linstancy责编 | 琥珀出品 | AI科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;教新手画画&#xff1f;字体风格迁移&#xff1f;换明星“假脸”&#xff1f;毫无疑问&#xff0c;在图像生成中…

【视频】视频传输协议:RTSP、RTP、RTCP、RTMP、HTTP

一、RTSP、RTP、RTCP RTSP、RTP、RTCP是一组协议,其中RTSP在应用层、RTP和RTCP在传输层。RTP用于传输流媒体数据,而RTCP对RTP进行控制、同步。 二、RTSP、RTMP、HTTP 1、共同点 RTSP、RTMP、HTTP都是用在应用层。理论上这三种协议都可以做直播和点播,但直播一般用RTSP和…

ActiveMQ5.14.5配置参数详解

Activemq-.xml1.加载properties配置参数。下面加载是访问broker的身份信息&#xff0c;即用户名和密码 <bean class"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name"locations"><value>file:…

正则表达式实现最小匹配

正则表达式默认情况下实现的是最大化匹配&#xff0c;这在有些情况下是非常不愿意出现的&#xff0c;比如下面这段代码&#xff1a; # starting IndiaInventoryAPP.exe" ~~DisplayVariableValues "parameterGroup,mailRecipients,ModuleArgs"~DisplayVariableVa…

Azure系列2.1.15 —— SharedAccessBlobPolicy

&#xff08;小弟自学Azure&#xff0c;文中有不正确之处&#xff0c;请路过各位大神指正。&#xff09; 网上azure的资料较少&#xff0c;尤其是API&#xff0c;全是英文的&#xff0c;中文资料更是少之又少。这次由于公司项目需要使用Azure&#xff0c;所以对Azure的一些学习…

Facebook AI新架构:全景FPN,同时完成图像实例与语义分割 | 极客头条

参加「CTA 核心技术及应用峰会」&#xff0c;请扫码报名 ↑↑↑整理 | 刘旭坤、Jane出品 | AI科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;实例分割和语义分割长期以来都是运用不同的神经网络架构来完成的&#xff0c;虽然最近出现了将语义和实例分割进行结合的…

【经验】向word中插入格式化的代码块

参考博客&#xff1a;如何在word中插入代码块 1、打开http://www.planetb.ca/syntax-highlight-word网站 语法高亮显示Word文档中的代码 2、将你的代码复制进去&#xff0c;选择编译语言&#xff0c;点击“Show Highlighted” 3、复制格式化后的代码 4、直接在word中粘贴代…

用路由器限制局域网的带宽流量

有时在上班的时候&#xff0c;带宽并不是很高&#xff0c;但又因个别人过量占用带宽导致其它人正常上网的速度都很慢&#xff0c;正常的工作都无法开展&#xff0c;所以对局域网内主机带宽流量的管理就必不可少了。 公司并不是很多的电脑&#xff0c;且预算不是很多的&…

Lumen / Laravel 5.5 使用网易邮箱 SMTP 发送邮件

2019独角兽企业重金招聘Python工程师标准>>> Laravel 是目前最流行的PHP框架&#xff0c;而Lumen 是 Laravel 的精简版&#xff0c;主要用于接口开发。 Laravel 邮件发送服务基于 Symfony 组件 Swift Mailer。 本文记录了在 Lumen / Laravel 5 环境中&#xff0c;使…

终于有人把数据、信息、算法、统计、概率和数据挖掘都讲明白了!

插画设计&#xff1a;万娟01什么是数据数据是什么&#xff1f;这几乎成为一个我们熟视无睹的问题。有不少朋友脑子里可能会直接冒出一个词“数字”——“数字就是数据”&#xff0c;我相信会有一些朋友会斩钉截铁地这么告诉我。一些朋友会在稍作思考后回答“数字和字符、字母&a…

【经验】配置Anaconda源

配置清华源&#xff1a; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

oracle update批量修改sql语句编写

update Suncco_Tz_Tbl_Task t set t.taskname网络部储备&#xff08;室分&#xff09;土建 , t.tasktype交换-交换主设备-电路域设备 , t.taskbyarea思明 , t.addresscoding2422BG00003735 update SUNCCO_TZ_TBL_TASK task set task.taskname11 , task.type33 where task.TA…

深入卷积神经网络背后的数学原理 | 技术头条

参加「CTA 核心技术及应用峰会」&#xff0c;请扫码报名 ↑↑↑作者 | Piotr Skalski译者 | Monanfei编辑 | 十月Rachel、Jane出品 | AI科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;【导读】在计算机神经视觉技术的发展过程中&#xff0c;卷积神经网络成为了其中…

【AI】在win10上安装TensorFlow2,安装成功,但是import tensorflow时报错:pywrap_tensorflow.py“, line 58

目录一、问题描述二、原因分析三、处理过程四、解决方法五、安装2.1和2.0命令的不同点1、TensorFlow2.02、TensorFlow2.1六、使用TenforFlow2.0-GPU时&#xff0c;报错:cudart64_100.dll not found1、错误信息如下2、原因分析3、解决方法七、测试TensorFlow是否支持GPU1、测试对…

SpringMVC4.x源码分析(五):request请求寻址HandlerMethod原理

2019独角兽企业重金招聘Python工程师标准>>> mvc:annotation-driven会将每一个Controllor内的被RequestMapping注解标注的方法解析为HandlerMethod对象&#xff0c;并存储在RequestMappingHandlerMapping的MappingRegistry属性中&#xff0c;寻址就是根据request请求…

在ASP.NET中指定出错页面,不让代码外泄!

在ASP.NET中指定出错页面&#xff0c;不让代码外泄&#xff01;在ASP.NET中原始的出错页面会暴露部分源代码&#xff0c;由此带来了潜在的安全隐患。ASP.NET允许应用程序出错时显示用户指定的页面&#xff0c;方法是在web.config文件中修改配置信息。 <? xml version"…

【经验】提高github的下载(克隆)速度

原理&#xff1a; 利用码云来克隆GitHub项目&#xff0c;然后从码云下载。 参见博客&#xff1a; 最详细的图文教程帮你解决GitHub下载慢或下载失败问题&#xff08;2019.8.10亲测有效&#xff09;

Erlang之父给程序员的两点忠告 | 缅怀

整理 | 伍杏玲出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;北京时间 4月20日&#xff0c;据Erlang Solutions、Erlang Factories的创始人Francesco Cesarini的推特称&#xff0c;Erlang之父Joe Armstrong于4月20日去世&#xff0c;享年68岁。Francesco怀念道&am…

如何为你的博客文章自动添加版权信息?

转自:http://www.chinaz.com/web/2016/0616/541282.shtml https://www.feifanblog.com/ 好长时间没有分享关于网络技术的文章了&#xff0c;昨天有位朋友问我&#xff1a;“你博客每篇文章末尾的版权声明都是我自己手动添加的吗&#xff1f;”&#xff0c;看到这个问题我想很多…

2011-11-27

大三&#xff0c;这个关键时刻&#xff0c;目前自己正在写软件课程设计程序-教材订购系统&#xff0c;加油&#xff01;努力&#xff01;转载于:https://blog.51cto.com/3122770/728090

【Qt】Qt编码风格、命名约定

1、类名称以大写字母开头、函数名称以小写字母开头&#xff0c;并使用驼峰命名法&#xff1b;类名使用名词或名词短语、函数名使用动词或者动词短语&#xff1b; 2、常量应当大写并且尽可能在类的作用域内创建成枚举值&#xff0c;全局常量和宏通常是大写&#xff1b; 3、布尔变…

UC伯克利开源照片“隐写术”StegaStamp,打印照片能当二维码用!| 技术头条

参加「CTA 核心技术及应用峰会」&#xff0c;请扫码报名 ↑↑↑作者 |CV君来源 | 我爱计算机视觉&#xff08;id&#xff1a;aicvml&#xff09;要说目前最火的用到手机摄像头的应用是什么&#xff0c;毫无疑问非二维码识别莫属了。微信带起来的二维码热&#xff0c;几乎已经改…

你为世界杯而战,我为生活而战!

这什么23时直播揭幕战俄罗斯vs沙特 开始时间!很庆幸见到了本世界坏中第1个球!(四年一次比赛&#xff0c;四年一博!)接下来看看我在奋斗什么?(人生随时进行比赛&#xff0c;错了、对了、再错了、再对了、只要不放弃学习就有未来!)********************************************…

【C++】重载、重写、隐藏

1、重载&#xff1a;在同一个作用域中两个及以上的函数名相同但是参数个数或类型不同时构成重载&#xff0c;重载的本质是&#xff0c;编译后的函数会有不同的签名&#xff1b; 2、重写&#xff1a;这是类继承中的概念&#xff0c;基类中virtual标记的函数&#xff0c;在派生类…

有了它,AI甚至可以让你知道对方是否真的爱你?

“你到底爱不爱我&#xff1f;”这或许是恋爱双方出现频率最高的问题&#xff0c;想要知道对方大脑在想什么&#xff0c;并不是什么天方夜谭&#xff0c;通过科学技术还真的有望实现。不过&#xff0c;让如此大胆的想法变为现实&#xff0c;我们需要借助什么技术呢&#xff1f;…

基于jwt的用户登录认证

最近在app的开发过程中&#xff0c;做了一个基于token的用户登录认证&#xff0c;使用vuenodemongoDB进行的开发&#xff0c;前来总结一下。 token认证流程&#xff1a; 1&#xff1a;用户输入用户名和密码&#xff0c;进行登录操作&#xff0c;发送登录信息到服务器端。 2&…

跨平台网络游戏趋势和优势

跨平台网络游戏趋势和优势 前几年还是网页游戏蓬勃发展的状态&#xff0c;就有分析指出从明年开始网页游戏市场已经饱和&#xff0c;想想几年前客户端游戏也是同样的窘境&#xff0c;如果将桌面、移动设备、网页统称一个词汇的话&#xff0c;那就是终端&#xff0c;现在各种的终…

IAR生产HEX文件

刚刚接触IAR&#xff0c;编译默认生成的是.a90文件&#xff0c;但直接用avr studio下载时提示非正规HEX文件&#xff0c;不给我下载&#xff0c;郁闷了。 其实也简单&#xff0c;如下图所示配置文件后面加几行字就OK了。 //Output File -Ointel-extended,(XDATA).eep -Ointel-e…