快速的城市化导致了许多大城市的扩张,在使生活变得现代化的同时,也带来了巨大的挑战,如空气污染、能源消耗和交通拥堵等。考虑到城市的复杂和动态环境,几年前要应对这些挑战似乎是不可能的。而现在,感知技术和大规模计算基础设施已经产生了各种大数据,如人类流动、气象、交通模式和地理数据等。了解相应的大数据意味着对一座城市有了充分的了解。如果对大数据的使用得当,将有助于我们应对这些挑战。此外,云计算和人工智能等计算技术的兴起为我们提供了前所未有的数据处理能力。
在这种情况下,城市计算作为一个跨学科领域蓬勃发展,并将计算机科学与传统的城市相关领域(如城市规划、交通、环境科学、能源工程、经济学和社会学等)相结合。城市计算旨在释放城市数据中的知识力量,解决城市中的重大问题,从而实现人、城市运营系统和环境之间的三赢。简而言之,城市计算将通过大数据、云计算、人工智能等先进计算技术来应对城市挑战。
多年来,人们一直在讨论智慧城市的愿景,希望整合多种信息和通信技术来源来提高生活质量。然而,目前尚不清楚如何实现这样一个广阔的愿景。城市计算没有停留在对智慧城市愿景无休止的讨论中,而是在以数据为中心的计算框架中通过具体的方法来应对特定的城市挑战,该框架包括城市感知、城市数据管理、城市数据分析及所提供服务。
尽管已有其他几本关于城市信息学的书,但这是一本专门研究城市计算的书,涵盖范围广泛,叙述严谨。本书从计算机科学的角度介绍了城市计算的一般框架、关键研究问题、方法和应用。具体地,本书专注于数据和计算,将城市计算与基于经典模型和经验假设的传统城市科学区分开来。
本书面向高年级本科生、研究生、研究人员和专业人士,涵盖了城市计算领域的主要基础知识和关键高级主题。每一章都是一个教程,介绍城市计算的一个重要方面,并为相关研究提供许多有价值的参考。本书为研究人员和应用程序开发人员全面讲解了城市感知、城市数据管理、城市数据分析及所提供服务的一般概念、技术和应用,帮助读者探索这一领域并开发新的方法和应用程序,最终实现更绿色、更智能的城市。本书也为研究生和其他感兴趣的读者提供了城市计算研究领域的最新进展。
本书根据城市计算的框架进行组织,如下图所示,由四个部分组成:概念和框架、城市感知与数据采集、城市数据管理、城市数据分析。
图 城市计算框架
本书的第一部分(第1章和第2章)给出城市计算的概述。
第1章介绍了城市计算的关键概念和框架,从计算机科学的角度讨论了框架各层面临的主要挑战。介绍了城市的数据来源,根据数据结构和时空特性将城市数据分为六类。该章末尾列出了一些公共数据集。
第2章介绍了城市计算在不同领域的典型应用,包括交通、城市规划、环境保护、能源、经济、公共安全以及社交和娱乐领域。这些应用拓宽了我们的视野,提出了新的研究课题,也激发了新的想法。
本书的第二部分(第3章)介绍了数据的来源和收集方法。
第3章介绍了城市感知的四种范式,包括静态感知、移动感知、被动人群感知和主动人群感知。前两种范式属于以传感器为中心的感知,后两种范式属于以人为中心的感知。对于以传感器为中心的感知模式,介绍了四种传感器部署模型。对于以人为中心的感知范式,提出了参与者招募和任务设计的技术。最后介绍了三类模型,包括空间模型、时间模型和时空模型,用于填补地质传感器数据中的缺失值。
本书的第三部分由第4~6章组成,介绍了空间数据和时空数据的数据管理。从基本的索引和检索算法开始,讨论了使用云计算平台来管理空间数据和时空数据的技术。
第4章首先从建立索引、服务时空范围查询、服务最近邻查询和更新索引四个角度介绍了四种广泛使用的空间数据索引结构,包括基于网格的索引、基于四叉树的索引、k-d树和R树。然后介绍了管理时空数据的技术,包括移动对象数据库和轨迹数据管理。前者更关心移动对象在(通常是最近的)时间戳上的具体位置,后者涉及移动对象在给定时间间隔内经过的连续运动(例如路径)。关于移动对象数据库,描述了三种查询和两种索引方法。一种索引方法在每个时间戳上建立一个空间索引,并在连续的时间间隔内重用索引的未更改子结构。另一种索引方法将时间视为第三维度,将空间索引结构从管理二维空间数据扩展到管理三维时空数据。关于轨迹数据管理,提出了三种类型的查询,包括范围查询、 k 近邻查询和路径查询,还为轨迹数据设计了不同距离度量。最后介绍了用于管理多个数据集的混合索引结构。
第5章从存储、计算和应用程序接口的角度介绍了云计算平台中的主要组件。使用Microsoft Azure作为示例平台来描述每个组件的框架和一般使用过程。Microsoft Azure中的存储进一步由SQL Server、Azure存储和Redis组成。Microsoft Azure计算资源包括虚拟机、云服务和HDInsight。HDInsight是Microsoft Azure中的一个分布式计算组件,用于执行大规模数据预处理、管理和挖掘,并包含广泛使用的Hadoop、Spark和Storm。Azure提供的应用程序接口由Web应用程序、移动应用程序和API应用程序组成。这些组件确保了城市计算应用程序的顺利和可靠实现。
第6章介绍了分别为六种类型的时空数据设计的数据管理方案,这些方案使当前的云计算平台能够以最小的工作量管理海量和动态的时空数据。对于每种类型的数据,根据是否使用空间索引或时空索引以及是否将其部署在分布式系统上,提出了四种数据管理方案。不是从根本上重建一个新的平台,而是利用当前云上的现有资源和架构,如云存储和HDInsight,为空间数据和时空数据创建一个增强的数据管理平台。四种方案中最高级的数据管理方案将空间索引和时空索引(例如,基于网格的索引、R树和3D R树)集成到分布式计算系统中,如HDInsight中的Spark和Storm。这种高级的方案结合了双方的优势,使我们能够更高效地处理更大规模的时空数据,同时使用更少的计算资源。
本书的第四部分由第7~10章组成,介绍了从城市数据中挖掘知识的基本技术和高级主题。从基本的数据挖掘算法开始,介绍了针对时空数据设计的高级机器学习技术以及跨领域知识融合方法。最后讨论了城市计算的一些高级主题,如选择有用的数据集、轨迹数据挖掘、将数据管理与机器学习相结合以及交互式视觉数据分析等。
第7章介绍了数据挖掘的一般框架,包括两个主要部分:数据预处理和数据分析。数据预处理部分又包括数据清洗、数据转换和数据集成。数据分析由各种数据挖掘模型、结果表示和评估组成。根据模型要完成的任务,数据挖掘模型可以分为五大类:频繁模式挖掘、聚类、分类、回归和异常值检测。对于每一类模型,该章在从空间数据和时空数据中挖掘知识的背景下介绍了其总体思想和具体示例。
第8章首先讨论了时空数据与图像和文本数据相比的不同性质。空间属性包括空间距离和空间层次。时间属性由时间接近度、周期和趋势组成。这些独特的属性使得需要专门为时空数据设计高级机器学习算法。然后,该章介绍了时空数据背景下六类机器学习算法(包括协同过滤、矩阵分解、张量分解、概率图模型、深度学习和强化学习)的原理,并提供了丰富的实例来展示这些机器学习算法应该如何适应时空数据。例如,耦合矩阵分解被设计为能够进行位置推荐和交通状况估计。贝叶斯网络用于推断交通量、进行地图匹配和发现区域的潜在功能。特定的马尔可夫随机场用于预测用户的交通方式和一个地方的空气质量。最后提出了一个独特的专门用于预测城市中每个地区的人群流量的深度学习模型。
传统的数据挖掘通常处理来自单个域的数据。在大数据时代,我们面临着来自不同领域不同来源的无数数据集。这些数据集由多个模态组成,每个模态都有不同的表示、分布、规模和密度。融合多个数据集的目的包括填充缺失值、预测未来、推断因果关系、分析对象、排序和检测异常。在大数据研究中,能够释放多个不同(但可能有关)数据集中知识的能量至关重要,这从本质上区分了大数据和传统的数据挖掘任务。这就需要高级的技术,以在机器学习和数据挖掘任务中有机地融合来自各种数据集的知识。第9章介绍了三类知识融合方法,包括基于阶段的方法、基于特征的方法和基于语义意义的方法。最后一类融合方法进一步分为四组:基于多视图、基于相似性、基于概率依赖和基于迁移学习的方法。这些方法侧重于知识融合,而不是模式映射和数据合并,显著区分了跨领域数据融合和数据库社区中研究的传统数据融合。该章不仅介绍了每一类方法的原理,还介绍了使用这些技术处理真实大数据问题的有价值的示例。此外,该章将现有的研究放在一个框架内,探讨了不同知识融合方法之间的关系和差异。
第10章在前几章介绍的基本技术的基础上讨论了一些城市数据分析的高级主题。第一,给定一个城市计算问题,通常需要确定应该选择哪些数据集来解决给定问题。通过选择正确的数据集,我们更有可能高效地解决问题。第二,轨迹数据具有复杂的数据模型,包含了关于移动对象的丰富知识,从而需要独特的数据挖掘技术。第三,从大规模数据集中提取具有深远意义的知识需要高效的数据管理技术和有效的机器学习模型,这两种技术的有机结合对于完成城市计算任务是必不可少的。第四,解决城市计算问题需要数据科学知识和领域知识。如何将人类智能与机器智能相结合是一个值得讨论的前沿课题。交互式视觉数据分析可能是解决这一问题的一种方法。
对于年轻且不断发展的城市计算领域,希望本书能提供有益的参考并且是一本实用的教程。
郑宇