PromptCast:基于提示学习的时序预测模型!

目前时序预测的SOTA模型大多基于Transformer架构,以数值序列为输入,如下图的上半部分所示,通过多重编码融合历史数据信息,预测未来一定窗口内的序列数值。

受到大语言模型提示工程技术的启发,文章提出了一种时序预测新范式,即通过一定的提示词模版将数值输入转化为语句,利用大语言模型进行预测,把时序预测转变成了一个对话任务,如下图的下半部分所示。同时,文章公开了数据集(PISA)用于评估所提出算法的性能。

文章地址:https://arxiv.org/pdf/2210.08964.pdf

代码地址:https://github.com/HaoUNSW/PISA
图片

技术交流

技术要学会分享、交流,不建议闭门造车。一个人走的很快、一堆人可以走的更远。

大模型学习资料、数据代码、技术交流提升, 均可加知识星球交流群获取,群友已超过2000人,添加时切记的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流

在这里插入图片描述
数据集介绍

PISA数据集包含三个实际场景的数据,分别是:天气预报数据、电力负荷预测数据和人类活动预测数据。

  • 天气预报数据集来自网站:https://academic.udayton.edu/kissock/http/Weather/default.htm,PISA从中随机选择了110个城市的每日平均温度(以华氏度为单位)。

  • 电力负荷数据(ECL)来自网站:https://archive.ics.uci.edu/ml/datasets/ElectricityLoadDiagrams20112014,原始数据包含321个用户每小时的电力消耗数据(以千瓦时为单位),作者剔除了那些记录不完整的用户数据,并从中随机选择了50个记录完整的用户数据。

  • SafeGraph人类活动数据(SG)来自SafeGraph Weekly Patterns3记录的每日访问POI的访客数,随机选择了324个记录完整的POI15个月的访客数。

图片

作者依次将上述数据集按照7:1:2的比例,沿时间轴划分成了训练、验证和测试数据集,同时采用滑窗的方式构建样本(基于15个历史样本预测下一个时刻的值)。为了区分数值数据和为语言模型处理的基于语言的数据集,通过上述滑动窗口处理的数值序列称作PISA-numerical,整个数据集包含三十万左右的样本点。作者对所有的数据都进行了脱敏处理,避免信息泄漏。

此时构建的PISA-numerical并不能直接送入语言模型中进行预测,文章进一步利用templeta实现data-to-text的转变,具体使用的模版如下,这里就不过多阐述。可以看到通过如下的转变,预测样本转变了一问一答的形式,符合语言模型输入输出的形式。

图片

模型与实验

文章的实验设计围绕如下两个问题展开:

  • RQ1: 能否使用语言模型在PromptCast任务设置下预测时间序列?与传统基于数值的时间序列预测方法相比,基于语言模型的性能如何?

  • RQ2: 使用提示以及语言生成模型进行时间序列预测能否实现更好的泛化能力?

除了使用RMSE和MAE作为评价指标,文章考虑到语言模型的推理过程存在不确定性,无法保证每个测试实例都能能解码出数值引入了缺失率作为一项评估指标,定义为,其中和分别是测试集中的实例总数和能成功解码预测值的实例数,缺失率越小对应更好的性能。

在语言模型部分,文章选取了10个语言模型进行对比验证,包括T5、Bart、BERT、RoBERTa、Electra、Bigbird、ProphetNet、LED、Blenderbot和Pegasus。传统数值预测方法部分,文章选取了3种简单的预测方法:复制昨天(CY)、历史平均(HA)和复制上周(CLW)。基于深度学习的数值预测模型:文章选取了AutoARIMA,LSTM,TCN,vanilia Transformer,Informer、Autoformer,FEDformer。

数值模型和语言模型的结果如下:

图片其中只有基于transformer的模型可以采用不同的方式构造temporal embedding(position embedding),这里文章对比了三种不同temporal embedding的效果,其中fixed embedding展现出最好的效果。

图片

对于所有的语言模型,均使用的是由HuggingFace提供的现成的预训练权重进行初始化。其中,这些预训练权重是用通用英语语料库数据集,如BookCorpus、CC-News和OpenWebText等训练的,这些数据集通常收集的是一般文章,并不包括时间序列的数据,PISA虽是公开数据集,但仅可在线获取csv格式数据,这保证了语言模型预训练过程中没有使用PISA数据集,避免了文本泄漏。在实验中,每个语言模型均使用了PISA中对对应的训练集进行微调。对比不同的语言模型,Bigbird展现出最佳性能。对比数值模型和语言模型,语言模型在CT和ECL子集均展现出更好的性能,在SG上也达到了与数值模型差不多的结果。除了BERT、Electra、Bigbird、ProphetNet,其他语言模型的缺失率均为0,成功解码出包含数值的回复。这部分实验回复了作者提出的第一个问题,即通过promptcast的方式,语言模型是能够进行时间序列预测任务,并且能够达到跟数值预测模型不相上下的结果。

接着作者进一步测试了在零样本(用两个数据集训练或微调,用另一个数据集做测试)和从头开始用PISA数据集训练语言模型两种不同设定下,数值模型和语言模型的对比效果。

图片

大部分数值模型在零样本设定下表现出较差的性能,相反不论是从头开始训练还是零样本微调,三个语言模型都表现出不错的效果,具有更好的泛化性能。

总结

文章将时序数据转变成文本数据,将时序预测任务转变成对话预测任务,利用语言模型实现了时序数据预测,也通过不同实验验证了语言模型在时序预测任务的有效性和泛化性。同时,文章构建了首个基于提示词的时序预测任务数据集。

为什么语言模型能够进行时序预测,作者认为通过提示词,语言模型可以很好地使用辅助信息,如一天中的时间和场景语义信息,同时更好地理解这些辅助信息与时序数据间的关系,有助于提升预测性能。

同时,作者也希望本文的探索能够为其他研究者提供有关后续研究的启发,例如如何生成适合数值数据的文本提示,固定的模板可能导致偏见。为此,是否可以通过语言模型自动生成对时序数据的描述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis小计(3)

目录 redis为什么是单线程模型和为什么不推荐使用"keys *"指令 redis为什么是单线程模型和为什么不推荐使用"keys *"指令 单线程模型可以避免线程安全问题,即并发访问导致的数据冲突。当大量客户端发来请求时,redis服务器只能一个一…

排序之冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 思路: 左边大于右边交…

Mobileperf:优化移动应用性能的关键工具

引言: 随着移动设备的普及和功能的不断增强,移动应用在人们的日常生活中扮演着越来越重要的角色。然而,由于移动设备资源有限,如处理器、内存和电池等,移动应用的性能问题也日益突出。为了提高用户体验和满足用户需求&…

单机部署Rancher

上次已经安装完毕了k8s了,但是想要界面化的管理,离不开界面工具,首推就是rancher,本文介绍安装rancher的安装,也可以将之前安装的k8s管理起来。 已经安装完毕docker和docker-ce的可以直接从第三部分开始。 一、基础准…

【数据库原理】(10)数据定义功能

SQL 数据定义功能包括定义模式、定义表、定义索引和定义视图,其语句如表所示。 一.创建、删除模式 1.创建模式 (Create Schema) 用途:创建模式是为了在数据库中定义一个新的命名空间,它可以包含多个数据库对象。 语法: CREATE SCHEMA &…

json.stringify()详解

json.stringify()详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一同深入探讨在JavaScript中常用的JSON处理方法——JSON.stringify()&…

数据库期末重点

第一章: 1.数据库发展的三个阶段 第一代数据库系统、第二代数据库系统、新一代数据库系统 2.数据库系统发展的三个里程碑 IMS系统、DBTG报告、关系数据库系统 3.数据管理技术三个阶段 人工管理阶段(40年代中-50年代中) 文件系统阶段(50年代末-60年代中) 数据…

选择排序!!!基础排序详解 C语言版

目录 1.什么是选择排序 2.选择排序源代码 3.优化代码 1.什么是选择排序 这是一个选择排序的流程图,其实很简单,就是每次挑选数字中最小的作为第一个 ,直到整个数据有序就结束了 顾名思义,选择,那就是选取&#xff0c…

打造私域流量的知识付费小程序saas租户平台

当今信息爆炸的时代,知识管理已经成为了每个人必须面对的问题。然而,市面上的知识付费平台大多数都是通用的,无法满足个性化需求。 因此,明理信息科技提供了一款专属定制的适合个人的知识付费平台。核心产品能力如下:…

Visual Studio Code可以做到这一点:提示和技巧:Build 2018

Visual Studio Code火了。每个人都喜欢这个意想不到的文本编辑器,而且理由很充分:它可以做很多事情。它可以动态编译JavaScript模板,内联执行JavaScript,管理Mongo DB实例等等!在这个部分,我们将看到Visual…

数据结构OJ实验15-插入排序与交换排序

A. DS内排—直插排序 题目描述 给定一组数据,使用直插排序完成数据的升序排序。 --程序要求-- 若使用C只能include一个头文件iostream;若使用C语言只能include一个头文件stdio 程序中若include多过一个头文件,不看代码,作0分…

ubuntu 安装 anaconda

ubuntu 安装 anaconda 下载 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh安装 bash Anaconda3-2023.09-0-Linux-x86_64.sh2.1 回车继续 2.2 许可协议 输入 q 退出阅读许可协议 2.3 输入 yes 接受 许可协议 2.4 设置 anaconda 安装位置 如不需…

聚观早报 |谷歌起草“机器人宪法”;极越与福耀集团达成合作

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 1月6日消息 谷歌起草“机器人宪法” 极越与福耀集团达成合作 三星电子宣布与现代汽车集团合作 OpenAI下周将推GP…

18款Visual Studio实用插件(更新)

前言 俗话说的好工欲善其事必先利其器,安装一些Visual Studio实用插件对自己日常的开发和工作效率能够大大的提升,避免996从选一款好的IDE实用插件开始。以下是我认为比较实用的Visual Studio插件希望对大家有用,大家有更好的插件推荐可在文…

TSINGSEE青犀智能分析网关V4在智慧园区车辆违停检测场景中的应用

一、背景与需求 园区作为企业办公、生产制造的重要场所,主要道路车辆违停等违规行为会对园区的安全造成隐患,并且在上下班高峰期内,由于发现不及时,车辆违停行为会造成出入口拥堵现象,这也成为园区管理的棘手问题。为了…

“编程界的隐形斗篷:C语言作用域与生命周期的喜怒哀乐”

少年们,大家好。我是博主那一脸阳光。 前言:理解C语言作用域与生命周期,犹如掌握了变量在程序中的“活动地带”与“存活时刻”,有助于避免数据冲突、优化内存使用、提升代码质量和模块化程度,增强程序稳定性和安全性…

php-ffmpeg运用 合并视频,转码视频

下载 官网 windows 版本 添加环境变量 合并视频 public function test_that_true_is_true(): void{ini_set(memory_limit,-1); //没有内存限制set_time_limit(0);//不限制执行时间//ffmpeg配置$path [ffmpeg.binaries > D:\soft\ffmpeg\bin/ffmpeg.exe,ffprobe.binaries…

AlarmManager使用详解

AlarmManager使用详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起深入探讨在Android开发中常用的时间调度工具——AlarmManager的使…

使用ChatGPT midjourney 等AI智能工具,能为视觉营销做些什么?

使用ChatGPT、Midjourney等AI智能工具,可以极大地提升视觉营销的效率和创意水平。以下是这些工具在视觉营销中的一些具体应用: 内容创作与文案撰写(ChatGPT) 广告文案生成:根据产品特点和目标受众,生成吸…

[C#]winform部署PaddleDetection的yolo印章检测模型

【官方框架地址】 https://github.com/PaddlePaddle/PaddleDetection.git 【算法介绍】 PaddleDetection 是一个基于 PaddlePaddle(飞桨)深度学习框架的开源目标检测工具库。它提供了一系列先进的目标检测算法,包括但不限于 Faster R-CNN, …