当前课程知识点:微软亚洲研究院大数据系列讲座 > 第四讲:城市计算中的大数据研究(下)(郑宇) > 能源交通和环境污染(traffic energy and pollution) > 能源交通和环境污染(traffic energy and pollution)
大家好,我是微软研究院的郑宇。
在这次课中,我将向你们展示大数据和计算技术
如何帮助推断交通能源和污染。
更具体地,我们的目标是推断整个城市的
汽车的汽油消耗和污染物排放。
在开始介绍我们的方法之前,问你们两个问题。
在过去一小时中,全市的汽车
消耗了多少升汽油?
这听起来好像微软的面试题。
如果我不做研究的话,我真的不知道这个问题的答案。
第二个问题与第一个问题相关。
相应的,产生了多少PM 2.5呢?
我想很多人都急于知道这两个问题的答案。
在KDD上做了一个关于这个项目的展示之后,
我们在联合国秘书长旗下的官方博客United Nations Global Pulse上获得了一份报告。
进一步来说,我们想基于
一组汽车样本的GPS轨迹,
根据一个路段上行驶的汽车的数量
推断行驶速度、交通流量、汽油消费和空气污染排放。
这里我想强调两个关键词。
首先,这是一个城市范围内的估计,
而不是一个单一路段上的估计,那非常容易。
其次,我们要
实时作出这类推断。
也就是说,给定过去十分钟的数据,
就能在几秒钟或者几分钟之内返回结果。
在大规模路网和实时推断之间
存在冲突。
更进一步,我们使用
出租车的GPS轨迹作为输入。
但是,并不一定是出租车的轨迹。
也可以是任意车辆或者任意带GPS的手机的踪迹。
我们的方法包括三个步骤。
首先,我们基于一个汽车样本产生的GPS轨迹
估计每个路段上的行驶速度。
这一步是使用耦合的
矩阵分解方法完成的,后面我会详细介绍这个方法。
在第二步中,我们基于行驶速度、兴趣点数据、
路网数据和天气条件
来推断每个路段的交通流量。
这里,交通流量是在一个给定时间段内
通过每个路段的汽车数量。
交通流量和行驶速度密切相关,
但是并不等于行驶速度。
交通流量也与交通密度相关。
而且,不同结构、
容量和限速的路段,其交通流量
也是不同的。这并不简单。这个问题
是使用贝叶斯网络解决的。
在第三步中,
在知道每个路段的行驶速度和交通流量之后,我们可以
借用传统的环境理论来计算
每辆车的汽油消耗以及
各种空气污染物的污染排放。
我们需要一些关于城市中的车辆行驶的统计数据。
例如,在北京,平均容量,汽车油箱的平均容量
是1.4升~2.0升。
这些汽车使用欧3排放标准,其平均使用时间是5年。
基于这些信息,
我们可以选择相应的公式来计算
每辆车的汽油消耗。
我们也知道
每个路段上的交通流量,所以我们可以在统计上计算
每个路段上的汽油消耗和污染排放。
让我们来看看第一个模型,即行驶速度估算。
我们有一些在一个路段上行驶的
汽车样本产生的轨迹。
如果我们有
一个路段上的数据,这就非常容易。我们可以计算
两个点之间的距离,就像这两个点。
用距离除以时间间隔,
我们可以得到速度,或者说行驶速度。
然后,我们可以作出一个矩阵,其中每一行代表一个时间段,
如下午2:00、下午2:10、下午2:20,
每一列代表一个路段,
如r1、r2、r3,矩阵中的每个条目
代表在这个特定时间段中,这个路段上
的汽车的行驶速度。
如果在相同的时间段内
有多辆汽车驶过一个路段,
那么就可以计算平均行驶速度。
但是,这个矩阵必然是非常稀疏的,
因为我们只有一个汽车样本的数据。例如,
北京有6万辆出租车。
但是,北京有成百上千条路段,
而且大部分出租车都在
主要道路上行驶。因此,
在给定的时间段内,95%的路段上都没有
出租车在行驶。所以,这是一个非常稀疏的矩阵。
目标是填充这些路段上的缺失值,特别是,
这行,这意味着tj表示当前的时间段。
有一些方法可以
帮助我们填充矩阵中的缺失值,如
矩阵分解。但是,只有5%的条目有值。
所以我们需要考虑更多的信息。这里我们保存了
长期的数据,如过去三个月的数据。
我们能够计算一个相似性矩阵,其中每一行
和每一列都有一个跟这个矩阵相似的含义。
区别在于,Mr中的每个条目表示
在这个特定时间段中
这个路段上历史的平均行驶速度。
所以,矩阵Mr比这个更密。
两个矩阵的对应条目
之间的区别
表示当前时间和历史模式的交通差异。
我们也有地理数据,如兴趣点数据
和路网数据。我们构建另一个矩阵,
其中,行表示路段,列
表示特征,如这个路段的
行驶速度限制、容量、车道数量或者
入度和出度。我们还可以计算每个路段端点周围的
兴趣点分布,如这个路段周围
有五家餐馆和两所学校。
假设具有相似的路网结构
和相似的兴趣点分布的路段
在相同的时间段内具有相似的交通模式。
第三,我们还需要考虑节假日期间
整个城市的交通模式。大部分人会在
假期离开城市去度假,所以城市
的整体交通流量会比平时更少。
为了解决这个问题,我们把城市分成一些大的网格。
例如,我们把北京分成4*4的网格。
我的意思是16个网格。然后我们
把最近接收到的GPS轨迹投射到
网格上去作,出另一个矩阵,其中行
表示时间段,列表示网格。
矩阵中的每个条目表示在这个特定时间段内
这个网格中行驶的汽车的数量。
我们还可以把在过去三个月中积累的历史数据投射
到这些网格上去并作出
另一个相似度矩阵,其中列
和行的含义与这个矩阵相似。
二者的区别在于,Mg中的每个条目是
历史平均值,即这个时间段内在这个网格中行驶的
汽车的平均数量。
这两个矩阵中的两个条目的差异
表示当前的交通流量模式与
历史的交通流量模式的区别。这是
高层的城市交通流量模式。
然后,我们把这三个矩阵结合起来
并在一个协同过滤的框架中对它们进行分解。
这里,第一个条目表示我们想要最小化
分解后的子矩阵。
最小化Y和分解后的子矩阵
之间的差异。这里是
想要最小化X的矩阵分解误差,
这个是想要最小化Z的矩阵分解误差。
这个是为避免过拟合所做的正则化。
通过最小化这个目标函数,
我们可以填充矩阵的缺失值。
为什么它们能够帮助改进矩阵的缺失值填充呢?
因为,首先,我们把路段之间的
地理信息和时间上的相关性结合在了一起。
其次,我们把实时信息
和历史信息结合在了一起。
第三,我们把细粒度的信息和
高层次的信息结合在了一起。所以,这里有三个结合。
因此,我们可以改进每个路段的
行驶速度的估计,从而获得更好的估计准确度。
第二步是推断每个路段的交通流量。
这里,交通流量是指在一个给定时间段内
通过一个路段的车辆的数量。
有很多因素会影响路段的交通流量。
行驶速度只是其中的一个因素。我们还需要考虑
路段的长度、形状和容量,甚至是天气条件。
我想强调,我们不能
仅仅基于我们在一个路段上观察到的
车辆样本的数量来计算交通流量。例如,我们不能只是
把在一个路段上观察到的出租车的数量
乘以一个因子,因为一个路段上的
出租车的数量可能与私家车的数量相差很大。
在私家车分布和出租车的分布之间
存在偏差分布。
在一些路段上,我们可能观察到很多
出租车和很少的私家车。相反的,
在另一些路段上,我们可能观察到很多私家车,
和很少的出租车。所以,我们需要
一个模型来推断每个路段上的交通流量。
但是,我们不能使用一个非常复杂的模型。一些复杂的模型可能会把每个
路段看成一个节点。
然后,我们可以把每个路段作为一个节点并把这些节点连接起来
从而建立一个非常非常大的马尔可夫网络。
因此,我们得到了一个巨大的网络,
但是却不能正确地估计
网络的参数。这里我们有另一个方法。我们基于非监督的模型
为每类路段训练一个贝叶斯网络。
每个路段与一个路网相关连,
如0表示高速公路,
1表示环路。我们为每个层次的路段训练一个模型。
让我先来详细介绍这个模型。这里fr表示一个路段的
特征,fg表示这个路段
所在的网格。记住,我们把
一个城市分为4*4,也就是北京有
16个网格。所以,这里fg表示网格的ID。
假设我们需要
考虑细粒度的信息,一个路段的地理特征,
我们还需要考虑路段的位置。
具有相似特征的路段是相似的。
特征相似,区域也相似的路段就更相似。
假设是这样的。
fp表示兴趣点数据的分布,Np表示兴趣点的总数。
这两个因素决定了兴趣点的一个隐变量。
路网数据和兴趣点数据
决定了一个地方的地理特征。
这里,θ是一个位置的隐变量。
Na是车辆的总数,
即我们需要估计的一个路段上的交通流量。
t是当前的时间段,即一天中的时间。
Nt是出租车的数量,即我们观察到的
车辆样本的数量。w是天气。
这里,v是在第一步的基础上估计的平均行驶速度。
dv表示一个路段上车辆行驶速度的方差。
所以,我们可以观察到Nt、
214
v and w, dv.
v、w和dv。
我们想要估计Na。
这里我们使用EM算法。我们可以
基于观察到的数据找到最大化可能性的结果。
这是一个非监督的学习方法。
使用非监督的学习方法的原因是我们还没有
足够的训练数据。在第三步中,我们已经知道
每个路段的行驶速度,我们也知道了上面提到的信息,
包括欧3标准、平均车辆容量,然后我们就可以选择
相应的方程来计算
一辆汽车在不同行驶速度时的
汽油消耗和污染排放。接下来,知道了每个路段的交通流量,
我们就可以计算一个路段上总的汽油消耗量
和机动车排放。
我们基于四类数据
对我们的方法进行了评估,包括路网数据、
兴趣点数据、36000量出租车产生的GPS轨迹,
以及气象数据,如晴天、刮风、下雨。
首先,我们对行驶速度估计进行了评估。
我们需要验证路网结构
的附加信息,
此时,历史数据能够提供很大的帮助。
我们使用两种方法来评估这一步。
首先,我们移除一些带有值的条目,
假设不知道这个路段的行驶速度。
然后,我们可以推断这个路段的行驶速度。
接下来,我们使用真实值
来测量我们的估计值。
可以看到,通过增加额外的信息,如Z、Mg,
我们可以获得改进。这意味着,你们可以看到,误差在减少。
TSE是我们的方法。
我们还把我们的方法与Kriging和KNN方法进行表。
Kriging是一种插值方法。这意味着,我们可以基于
一个路段的相邻路段的行驶速度,使用插值方法
来获得这个路段的行驶速度。
评价这一步的第二种方法是,
我真的带着GPS记录仪来开车,
记录我的行驶速度。
然后,我们可以看看,
与GPS记录仪所记录的实际行驶速度相比,
我们估计得怎么样。因此,在总体上,
误差少于10%。
第二步是评估交通流量,
因为我们的贡献在于第一步和第二步,
即行驶速度估计和交通流量预测。这里,
我们让学生
在一天中的不同时间段
使用手机
记录几百条路段的
真实交通流量。我们总共记录了
最近,我们有1000多段
录像片段。然后他们手工计算
通过每个路段的车辆的数量。
我们可以使用这些作为真实情况。然后,我们基于我们的模型
推断每个路段上的交通流量。然后再评测这些推断的准确度。
总的来说,我们的错差少于30%。也就是说,正确率大于70%。
所以,从统计上来说,我们的方法是非常有用的。
我们可以公开这些数据。
你们可以从我的主页上下载这些数据,
并重复或者复制我们的实验。
正如我所提到的,有很多路段需要推断,
我们需要非常快地完成这个推断。我是指马上。
这里,我们展示了
我们的方法中的每个部分消耗的时间。
这里,我没有提到
管理数据的索引结构,这一结构使得我们能够
非常有效地处理数据。你们可以参考这里展示的论文
来获得更多有关
数据管理计数的详细信息。简言之,
给定过去十分钟的数据,如果只使用一台机器,
我们可以在五分钟之内完成数据处理并返回结果。如果有
十台机器,我们就可以在一分钟之内完成数据处理并返回结果。
如果想了解更多有关城市计算的数据,你们可以访问我的主页或者
在互联网上搜索“城市计算”。你们也可以参考
我在ACM TIST上发表的综述论文。谢谢大家。
-什么是大数据(What is big data?)
-为什么大数据是当前热点(Why big data is a nature phenomenon?)
--为什么大数据是当前热点(Why big data is a nature phenomenon?)
-新的计算基础设施和工具(New Infrastructure and tools)
--新的计算基础设施和工具(New Infrastructure and tools)
-课程简介(Course Introduction)
-基础设施,机器学习和可视化(Infrastructure,Machine Learning and Visualization)
--基础设施,机器学习和可视化(Infrastructure,Machine Learning and Visualization)
-大数据与传统商业智能的区别(Big data:different from traditional BI)
--大数据与传统商业智能的区别(Big data:different from traditional BI)
-Quiz
--Quiz--作业
-大规模超文本网络搜索引擎的解析(the anatomy of a large scale hypertextual web search engine)
--大规模超文本网络搜索引擎的解析(the anatomy of a large scale hypertextual web search engine)
-搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)
--搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)
-探寻搜索的多个维度(finding dimensions for queries)
--探寻搜索的多个维度(finding dimensions for queries)
-Quiz
--Quiz--作业
-背景介绍(background)
-用户移动规律的理解-1(user mobility understanding-1)
--用户移动规律的理解-1(user mobility understanding-1)
-用户移动规律的理解-2(user mobility understanding-2)
--用户移动规律的理解-2(user mobility understanding-2)
-用户画像与个人隐私-1(user profiling and privacy-1)
--用户画像与个人隐私-1(user profiling and privacy-1)
-用户画像与个人隐私-2(user profiling and privacy-2)
--用户画像与个人隐私-2(user profiling and privacy-2)
-Quiz
--Quiz--作业
-城市计算中的大数据研究简介(introduction to urban big data)
--城市计算中的大数据研究简介(introduction to urban big data)
-概念,框架和挑战(concepts,framework and chanlleges)
--概念,框架和挑战(concepts,framework and chanlleges)
-基础技术(fundamental techniques)
--基础技术(fundamental techniques)
-城市规划(urban planning)
-识别特定区域(indentify functional regions)
--识别特定区域(indentify functional regions)
-城市空气质量与大数据研究(urban air quality meets big data)
--城市空气质量与大数据研究(urban air quality meets big data)
-能源交通和环境污染(traffic energy and pollution)
--能源交通和环境污染(traffic energy and pollution)
-大数据在城市噪音处理中的应用(diagnose urban noise with big data)
--大数据在城市噪音处理中的应用(diagnose urban noise with big data)
-Quiz
--Quiz--作业
-软件分析的概念(the concepts of software analytics)
--软件分析的概念(the concepts of software analytics)
-软件分析的实例(examples of software analytics)
--软件分析的实例(examples of software analytics)
-传统的数据可视化(Traditional information visualization)
--传统的数据可视化(traditional information visualization)
-同质数据的可视化分析-1(Visual Analytics of Homogeneous Data-1)
--同质数据的可视化分析-1(Visual Analytics of Homogeneous Data-1)
-同质数据的可视化分析-2(Visual Analytics of Homogeneous Data-2)
--同质数据的可视化分析-2(Visual Analytics of Homogeneous Data-2)
-异质数据的可视化分析(Visual Analytics of Heterogeneous Data)
--异质数据的可视化分析(Visual Analytics of Heterogeneous Data)
-Quiz
--Quiz--作业