AI论文速读 | UniST:提示赋能通用模型用于城市时空预测
本文是时空领域的统一模型——UniST,无独有偶,时序有个统一模型新工作——UniTS,感兴趣的读者也可以阅读今天发布的另外一条。
论文标题:UniST: A Prompt-Empowered Universal Model for Urban Spatio-Temporal Prediction
作者:Yuan Yuan(苑苑), Jingtao Ding(丁璟韬), Jie Feng(冯杰), Depeng Jin(金德鹏), Yong Li(李勇)
机构:清华大学
论文链接:https://arxiv.org/abs/2402.11838
Cool Paper:https://papers.cool/arxiv/2402.11838
TL,; DR:本文提出了UniST,一个基于提示的通用模型,通过灵活处理多样化时空数据、有效的生成预训练和时空知识引导的提示,实现了在多个城市和领域中的卓越泛化能力和城市时空预测性能。
关键词:时空预测,通用模型,预训练,提示微调,零样本学习,小样本学习
🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘!🚀
欢迎大家关注时空探索之旅

摘要
城市时空预测对于交通管理、资源优化和城市规划等明智决策至关重要。 尽管预训练基础模型在自然语言已经取得了显着的突破,其中通用模型可以处理跨不同领域的多项任务,但城市时空建模仍然落后。 现有的城市预测方法通常是针对特定的时空场景量身定制的,需要特定于任务的模型设计和广泛的域内训练数据。 在这项工作中,提出了一种用于城市时空预测的通用模型 UniST。 从大语言模型中汲取灵感,UniST 通过以下方式取得成功:(i) 针对不同时空数据特征的灵活性,(ii) 通过精心设计的掩码(mask)策略进行有效的生成预训练,以捕获复杂的时空关系,(iii) 时空关系知识引导的提示,可以跨场景对齐和利用内在的和共享的知识。 这些设计共同释放了具有强大泛化能力的时空预测的全能(one-for-all)模型的潜力。 在 15 个城市和 6 个领域进行的广泛实验证明了 UniST 在提升最先进的预测性能方面的普遍性,特别是在小样本和零样本场景中。

Q: 这篇论文试图解决什么问题?
A: 这篇论文提出了一个名为UniST的通用模型,旨在解决城市时空预测的问题。城市时空预测对于诸如交通管理、资源优化和城市规划等知情决策至关重要。尽管自然语言的预训练基础模型在处理多种任务方面取得了显著突破,但城市时空建模领域尚未经历类似的进步。现有的城市预测方法通常针对特定的时空场景定制,需要特定任务的模型设计和大量的领域内训练数据。UniST模型通过以下几个方面来解决这些问题:
- 灵活性:UniST能够适应多样化的时空数据特征。
- 有效的生成预训练:通过精心设计的掩码策略来捕捉复杂的时空关系。
- 时空知识引导的提示(Spatio-Temporal Knowledge-Guided Prompts):通过这些提示在不同场景之间对齐和利用内在的共享知识。
这些设计共同解锁了一个适用于所有场景的通用模型的潜力,该模型具有强大的泛化能力。通过在15个城市和6个领域的广泛实验,论文展示了UniST在推进最先进的预测性能方面的普遍性,特别是在小样本(few-shot)和零样本(zero-shot)场景中。
Q: 有哪些相关研究?
A: 这篇论文中提到的相关研究主要集中在以下几个方面:
- 城市时空预测(Urban Spatio-Temporal Prediction):
- 利用深度学习技术进行城市活动动态模式的建模和预测,包括CNN、RNN、ResNet、GNN、Transformer、MLP和扩散模型等架构。
- 基础模型(Foundation Models):
- 探索自然语言处理(NLP)和计算机视觉(CV)领域的基础模型在城市场景中的应用,如TransGPT、CityGPT、TrafficGPT等,它们在处理基于语言的时空任务方面表现出色。
- 提示微调技术(Prompt Tuning Techniques):
- 在NLP和CV领域中,提示技术已被证明能够增强预训练模型在特定任务或领域的泛化能力。这项研究与提示微调相一致,其中时空提示根据时空属性通过提示网络自适应生成。
- 时空数据和时间序列:
- 研究了基础模型在时间序列建模中的应用,尽管时间序列通常具有简单的1D结构,但时空数据在空间和时间维度上呈现更复杂的性质。
- 迁移学习和元学习(Transfer Learning and Meta-Learning):
- 一些研究探索了在城市之间进行转移学习的方法,但这些方法通常仍需要目标城市中的一定量的训练样本。
- 模型泛化(Model Generalization):
- 论文中提出的UniST模型旨在实现跨不同城市和领域的训练和预测,提供通用解决方案,这与现有解决方案相比是一个重大突破。
这些相关研究为UniST模型的提出提供了背景和基础,UniST模型通过结合这些领域的最新进展,旨在提高城市时空预测的准确性和泛化能力。
Q: 论文如何解决这个问题?

包含两部分:
- 大规模时空预训练
- 时空知识引导的提示微调

A: 论文通过提出UniST模型来解决城市时空预测的问题,具体方法如下:
- 数据收集与处理:
- 收集来自多个城市和领域的丰富时空数据,以确保模型能够从多样化的数据中学习。
- 使用时空标记器(Spatio-Temporal Tokenizers)将不同形状的数据转换为统一的序列格式,以便利用Transformer架构。
- 模型架构设计:
- 采用基于Transformer的编码器-解码器架构作为基础模型。
- 引入时空自监督预训练(Spatio-temporal Self-supervised Pretraining),通过不同的掩码策略来增强模型捕捉时空关系的能力。
- 预训练策略:
- 采用掩码token建模(Masked Token Modeling)作为预训练策略,使用不同的掩码策略来捕捉多级别的时空关系。
- 包括随机掩码、管道掩码(Tube masking)、块掩码(Block masking)和时间掩码(Temporal Masking)。
- 时空知识引导的提示微调:
- 引入一个提示网络(Prompt Network),该网络根据时空域知识生成有用的提示。
- 定义了空间记忆池和时间记忆池,用于存储有关时空域知识的有价值信息。
- 通过优化这些记忆池,模型能够自适应地选择对预测最有用的信息。
- 实验验证:
- 在15个城市和6个领域的数据集上进行了广泛的实验,验证了UniST模型在多种预测任务上的性能。
- 特别是在小样本和零样本场景下,UniST展示了其优越的可转移性。
通过这些方法,UniST模型能够在不同的城市和领域中实现强大的泛化能力,即使在只有有限或没有训练数据的情况下也能进行有效的预测。这标志着从传统的独立方法向预训练基础模型转变的一个重要步骤。

Q: 论文做了哪些实验?

短时预测:预测6步(参考Time-LLM和PatchTST)

长时预测:预测64步(参考Time-LLM和PatchTST)

1%和5%的小样本,零样本类似于迁移
A: 论文中进行了一系列实验来验证UniST模型的性能和通用性,具体包括:
- 短期预测(Short-Term Prediction):
- 在多个时空数据集上评估UniST模型的短期预测性能。
- 将UniST与其他先进的时空预测模型进行比较,包括基于启发式的方法(如历史平均HA和ARIMA)、深度城市预测方法(如STResNet、ACFM等)、视频预测方法(如PredRNN、MAU等)和多变量时间序列预测方法(如PatchTST、iTransformer等)。
- 长期预测(Long-Term Prediction):
- 扩展输入步长和预测范围,以评估模型在捕捉长期依赖性方面的能力。
- 同样与其他模型进行比较,以展示UniST在长期预测任务上的性能。
- 小样本预测(Few-Shot Prediction):
- 在训练过程中,仅使用1%、5%和10%的训练数据,以测试模型在小样本情况下的泛化能力。
- 与具有相对较好性能的基线模型进行比较,以及与元学习基线(如MAML和MetaST)和预训练微调方法(如PatchTST)进行比较。
- 零样本预测(Zero-Shot Prediction):
- 在未见过的数据集上评估UniST模型,以测试其在没有目标城市训练数据的情况下的适应能力。
- 与小样本预测设置下的基线模型进行比较,以展示UniST的零样本学习能力。
- 消融研究(Ablation Study):
- 研究了UniST模型中不同组件的影响,特别是空间和时间提示对最终性能的贡献。
- 通过移除提示中的特定时空属性(如空间接近性、空间层次性、时间周期性和时间接近性)来评估每个属性的重要性。
- 提示学习器分析(Prompt Learner Analysis):
- 对提示学习器进行深入分析,包括使用t-SNE可视化空间和时间记忆池中的嵌入,以及分析记忆池中嵌入的模式。
- 可扩展性分析(Scalability Analysis):
- 分析模型参数大小对训练损失和预测性能的影响,以评估UniST模型的可扩展性。
这些实验结果表明,UniST在多种预测任务中均取得了先进的性能,特别是在小样本和零样本场景下,证明了其作为一种通用模型的有效性和适用性。
Q: 有什么可以进一步探索的点?
A: 论文提出的UniST模型虽然在城市时空预测方面取得了显著的成果,但仍有一些方向可以进行进一步的探索:
- 多样化的时空数据格式:
- 目前UniST主要依赖于基于网格的空间划分。未来的研究可以探索如何整合不同类型的时空数据,例如基于序列的数据、基于图的数据以及其他非结构化数据。
- 更复杂的时空关系建模:
- 尽管UniST通过不同的掩码策略捕捉了多尺度的时空关系,但仍有可能通过更先进的图网络、注意力机制或其他创新的神经网络架构来进一步提升模型的时空建模能力。
- 跨领域和跨城市的泛化能力:
- 尽管UniST在多个城市和领域展示了良好的泛化能力,但进一步研究如何提高模型在面对更大范围、更多种类的城市数据时的泛化性和适应性仍然是一个有趣的方向。
- 实时预测和动态更新:
- 研究如何将UniST应用于实时预测场景,并探索如何有效地对模型进行动态更新,以适应城市动态变化的环境。
- 解释性和可解释性:
- 提高模型的解释性,使决策者能够理解模型的预测结果背后的原理,这对于实际应用中的模型部署至关重要。
- 模型效率和优化:
- 探索如何减少模型的计算成本和提高运行效率,使其能够在资源受限的环境中使用,例如移动设备或边缘计算设备。
- 多任务学习和持续学习:
- 研究UniST在多任务学习设置下的性能,以及如何通过持续学习来适应新的数据分布和预测任务。
- 模型鲁棒性和健壮性:
- 研究模型在面对数据噪声、缺失数据和异常值时的鲁棒性,并探索提高模型健壮性的方法。
- 实际部署和应用:
- 将UniST应用于实际的城市管理系统,评估其在真实世界中的性能,并探索与现有城市基础设施的集成方法。
这些方向不仅有助于推动城市时空预测领域的研究进展,还可能为城市规划、交通管理和资源优化等实际应用带来新的解决方案。
Q: 总结一下论文的主要内容
A: 这篇论文的主要内容可以总结如下:
- 问题定义:论文针对城市时空预测问题,提出了一种通用模型UniST,旨在解决现有方法在泛化能力和适应性方面的不足。
- 模型设计:UniST模型采用了基于Transformer的编码器-解码器架构,并通过时空标记器(Spatio-Temporal Tokenizers)处理多维时空数据。模型包括两个阶段:大规模时空预训练和时空知识引导的提示微调。
- 预训练策略:UniST使用多种掩码策略进行自监督预训练,以捕捉复杂的时空关系,包括随机掩码、管道掩码、块掩码和时间掩码。
- 提示微调:引入了一种创新的提示机制,利用时空知识引导提示的生成,以适应不同的时空数据分布和预测任务。
- 实验验证:在多个城市和领域的15个数据集上进行了广泛的实验,包括短期和长期预测、小样本和零样本预测,证明了UniST在各种预测任务上的优越性能。
- 消融研究和分析:通过消融研究评估了模型中不同组件的贡献,并深入分析了提示学习器的行为和模型的可扩展性。
- 未来方向:论文讨论了模型的局限性和未来可能的研究方向,包括整合多种时空数据格式、提高模型的解释性、鲁棒性和实际应用部署。
总体而言,UniST模型通过结合大型语言模型的关键特性,提出了一种新的范式,用于城市时空预测,展示了在多个城市和领域中的强大泛化能力和适应性。
完整实验结果
数据集相关信息


短程预测完整实验结果


两张表对应不同城市数据集
长程预测,少样本与零样本




🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘!🚀
欢迎大家关注时空探索之旅
相关文章:
AI论文速读 | UniST:提示赋能通用模型用于城市时空预测
本文是时空领域的统一模型——UniST,无独有偶,时序有个统一模型新工作——UniTS,感兴趣的读者也可以阅读今天发布的另外一条。 论文标题:UniST: A Prompt-Empowered Universal Model for Urban Spatio-Temporal Prediction 作者&…...
rabbitmq-spring-boot-start配置使用手册
rabbitmq-spring-boot-start配置使用手册 文章目录 1.yaml配置如下2.引入pom依赖如下2.1 引入项目resources下libs中的jar包依赖如下2.2引入maven私服依赖如下 3.启动类配置如下4.项目中测试发送消息如下5.项目中消费消息代码示例6.mq管理后台交换机队列创建及路由绑定关系如下…...
操作系统知识-操作系统作用+进程管理-嵌入式系统设计师备考笔记
0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。 本章的主要内容见下图: 1、操作系统的作用…...
Go语言中的锁与管道的运用
目录 1.前言 2.锁解决方案 3.管道解决方案 4.总结 1.前言 在写H5小游戏的时候,由于需要对多个WebSocket连接进行增、删、查的管理和对已经建立连接的WebSocket通过服务端进行游戏数据交换的需求。于是定义了一个全局的map集合进行连接的管理,让所有…...
前端 - 基础 表单标签 -- 表单元素( input - type属性) 文本框和密码框
表单元素 : 在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或选择 的内容控件。 表单元素的外观也各不一样,有小圆圈,有正方形,也有方框,乱七八糟的,各种各样…...
关于MySQL模糊搜索不区分大小写
在我们日常使用ORM框架进行模糊查询时,会发现,搜索的结果是不区分关键字的英文大小写的,那这是为什么呢? 原因是MySQL的like本就不区分大小写;如果在建表的时候,没有设置好字段区分大小 //包含j和J的都会被…...
论文阅读——MoCo
Momentum Contrast for Unsupervised Visual Representation Learning 动量在数学上理解为加权移动平均: yt-1是上一时刻输出,xt是当前时刻输入,m是动量,不想让当前时刻输出只依赖于当前时刻的输入,m很大时࿰…...
ARM 寄存器学习:(一)arm多种模式下得寄存器
一.ARM7种状态以及每种状态的寄存器: ARM 处理器共有 7 种不同的处理器模式,在每一种处理器模式中可见的寄存器包括 15 个通用寄存器( R0~R14)、一个或两个(User和Sys不是异常模式,没有spsr寄存器)状态寄存器(cpsr和spsr&…...
【nfs报错】rpc mount export: RPC: Unable to receive; errno = No route to host
NFS错误 问题现象解决方法 写在前面 这两天搭建几台服务器,需要使用nfs服务,于是六台选其一做服务端,其余做客户端,搭建过程写在centos7离线搭建NFS共享文件,但是访问共享时出现报错:rpc mount export: RPC…...
备战蓝桥杯---牛客寒假训练营2VP
题挺好的,收获了许多 1.暴力枚举(许多巧妙地处理细节方法) n是1--9,于是我们可以直接暴力,对于1注意特判开头0但N!1,对于情报4,我们可以把a,b,c,d的所有取值枚举一遍,那么如何判断有…...
QCustomPlot-绘制X轴为日期的折线图
主要代码如下: void Widget::InitQLineXDateAddData() {customPlot new QCustomPlot(this);// 创建日期时间类型的刻度生成器QSharedPointer<QCPAxisTickerDateTime> dateTimeTicker(new QCPAxisTickerDateTime);dateTimeTicker->setDateTimeFormat(&quo…...
腾讯春招后端一面(算法篇)
前言: 哈喽大家好,前段时间在小红书和牛客上发了面试的经验贴,很多同学留言问算法的具体解法,今天就详细写个帖子回复大家。 因为csdn是写的比较详细,所以更新比较慢,大家见谅~~ 就题目而言,…...
Filebeat rpm方式安装及配置
一、使用服务器root用户、filebeat8.11.1版本,rpm安装方式进行安装 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.1-x86_64.rpm sudo rpm -vi filebeat-8.11.1-x86_64.rpm 二、配置核心的采集文件、使用inputs热更方式、配置filebeat本身…...
深入挖掘C语言之——枚举
目录 1. 枚举的定义 2. 枚举常量的赋值 3. 枚举的使用示例 4. 注意事项 在C语言中,枚举(Enum)是一种用户定义的数据类型,用于定义一组具名的整型常量。枚举常常用于提高代码的可读性和可维护性,使程序更易于理解。…...
【源码阅读】EVMⅢ
参考[link](https://blog.csdn.net/weixin_43563956/article/details/127725385 大致流程如下: 编写合约 > 生成abi > 解析abi得出指令集 > 指令通过opcode来映射成操作码集 > 生成一个operation 以太坊虚拟机的工作流程: 由solidity语言编…...
.Net Core 中间件验签
文章目录 为什么是用中间件而不是筛选器?代码实现技术要点context.Request.EnableBuffering()指针问题 小结 为什么是用中间件而不是筛选器? 为什么要用中间件验签,而不是筛选器去验签? 1、根据上图我们可以看到,中间件在筛选器之…...
Elasticsearch:从 Java High Level Rest Client 切换到新的 Java API Client
作者:David Pilato 我经常在讨论中看到与 Java API 客户端使用相关的问题。 为此,我在 2019 年启动了一个 GitHub 存储库,以提供一些实际有效的代码示例并回答社区提出的问题。 从那时起,高级 Rest 客户端 (High Level Rest Clie…...
七:分布式
一、Nginx nginx安装 【1】安装pcre依赖 1.下载压缩包:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz 2.解压压缩包:tar -xvf pcre-8.37.tar.gz 3.安装gcc:yum install gcc 4.安装gcc:yum ins…...
1-postgresql数据库高可用脚本详解
问题: pgrep -f postgres > /dev/null && echo 0 || pkill keepalived 这是什么意思 建议换成 pgrep -f postmaster > /dev/null && echo 0 || pkill keepalived 回答 这条命令是一个复合命令,包含条件执行和重定向的元素。让我们…...
【亲测】Onlyfans年龄认证怎么办?Onlyfans需要年龄验证?
1. 引言 什么是OnlyFans:OnlyFans是一种内容订阅服务,成立于2016年,允许内容创作者从用户那里获得资金,用户需要支付订阅费用才能查看他们的内容。它在多个领域受到欢迎,包括音乐、健身、摄影,以及成人内容…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
