NeurIPS'23 Paper Digest | PromptTPP: Prompt Pool 与时序点过程模型的持续学习

简介: 我们完成了首个把 Prompt Pool 机制首次引入时间序列领域的工作。代码、数据均已经开源,并将集成进开源库 EasyTPP。

为期一周的人工智能和机器学习领域顶级会议 NeurIPS 已于当地时间 12 月 16 日圆满结束。蚂蚁集团有 20 篇论文被本届会议收录,其中《Prompt-augmented Temporal Point Process for Streaming Event Sequence》由蚂蚁集团研究并撰写,作者包括薛思乔、王言、褚志轩、师晓明、蒋才高、郝鸿延、蒋刚玮、冯晓云、James Y. Zhang、周俊。

0104.1.png

作者简介:薛思乔是这篇论文的主要作者,也是蚂蚁集团高级算法专家,主要研究方向是生成式序列模型 (sequential modeling),他的研究成果曾多次发表于主流机器学习相关会议 (NeurIPS/ICML/AAAI)。最近一年团队的主要工作聚焦于大语言模型与时间序列的交叉方向,在 NeurIPS'23 发表了事件序列预测模型的持续学习方法 "PromptTPP" 以及利用大语言模型支持事件序列预测的方法 "LAMP" 两篇论文。

本文中,薛思乔会带大家了解论文《Prompt-augmented Temporal Point Process for Streaming Event Sequence》的背景和主要研究成果,完整论文可点击阅读原文查看。

01 背景和动机

时间序列模型通常用于分析和预测具有明显时间顺序特征的序列数据。这些场景包括但不限于:
金融市场分析与预测: 如股票价格、汇率、商品期货等时间序列数据的趋势预测。
交通流量和运输: 预测车辆的行驶情况,从而改进城市交通规划和运营管理。

在真实的商业场景中,时间序列(本文特指事件序列, event sequence)通常是以流式 (stream) 的形式存在并且不断更新的。对这样的数据建模,我们通常有以下几个方法(图一):

预训练一个点过程模型,然后不再更新:最简单粗暴,但是因为它们在被部署后不会再进行学习或更新,从而导致它们在面对新的或者未见过的数据时性能下降,因为这些数据可能与训练集有所不同(这种现象称为分布漂移)。

每隔一段时间,针对固定窗口的数据重新训练一次点过程模型:这个方法会遇到灾难性遗忘的问题(图二),即忘记过去任务的重要信息。
点过程模型的在线学习版本:模型的维护并不容易,而且也会遇到灾难性遗忘的问题。

在这样的背景下,我们如何能更有效率、更有效果的进行模型的持续学习?我们在文章中 Prompt-augmented TPP 尝试解答了这个问题,并且被 NeurIPS'23 接收。

0104.2.png
图1:主要方法的示意图

0104.3.png
图2:在开源数据集事件序列上做的数据分析

02 问题定义

我们首先定义任务:与 NLP 领域不同,我们沿着时间轴定义任务 (task),以及任务的训练、验证和测试流程。然后,我们的问题是,一个点过程模型应该如何持续学习,使得它可以既能够及时适应分布变化,同时避免灾难性遗忘。另外,我们希望这个新的方法有足够的实用性,即是 task agnositic 的,不需要保存任务的信息(比如事件序列中事件的属性信息)即可进行预测。task agnostic 是持续学习方向常见的诉求,这种方法更有效率,而且也能满足隐私保护的要求(比如不能存储某些属性信息)。

0104.4.png
图3:任务的定义

03 方法

我们引入 NLP 领域的 prompt pool 改进。"Prompt pool"这个概念在中文中可以理解为“提示池”或者“命令池”机制。在机器学习的背景下,"prompt pool"机制指的是一组用于提升模型性能的提示或命令,这些提示会作为输入的一部分提供给模型,引导或激励模型生成预期的输出。

例如,在基于 transformer 的语言模型(如GPT-3)中,prompt pool 机制可以指代一个包含多种不同提示(questions,命令,或者情景描述等)的集合,用于激发模型针对不同场景或任务产生相对应的回应。此前主要用于 NLP 领域,我们是第一个把这个概念引入时序领域的研究人员。

04 思路

我们用一系列可学习的 prompt pool 来编码任务的信息,当新的任务来的时候,有一个抽取和匹配的机制。匹配的意义在于根据新的任务,找到编码相关信息的 prompt,来指导新的任务的学习。

通过这个机制,我们把持续学习的概念引入到了时序模型中,以一种轻量级的方式让这个模型持续的学习,不断适应新的数据。

机器学习中的持续学习(Continuous Learning,也称为终身学习或增量学习)是指让机器学习模型在完成初始训练之后,继续学习新的数据,从而不断更新和改进其性能和知识库的能力。这种学习方式让模型能够模仿人类在持续不断地获取新知识和技能的过程中所表现出的学习行为。

0104.5.png
图四:整体思路

05 架构

0104.6.png
图五:模型结构

06 训练

与 NLP 里面的方法已知,我们使用联合训练的方式对点过程的基础模型以及 prompt 同时进行优化。

0104.7.png
图六:训练方法

07 预测

0104.8.png

08 实验

我们在三个开源数据集上完成了非常丰富的验证:
随着任务的累积,PromptTPP 整体性能依然维持高位,而其他多个基准模型的预测性能均出现了不同程度的下降。
prompt pool 的引入,只带来了较小比例参数量的提升,并且实现了 task agnostic。我们的方法是一个非常轻量级的持续学习方式。

文章中在实验方面有非常多的细节验证,在此不做赘述。
0104.9.png

09 结论

我们完成了首个把 Prompt Pool 机制首次引入时间序列领域的工作。代码、数据均已经开源,并将集成进开源库 EasyTPP。
EasyTPP GitHub:
https://github.com/ant-research/EasyTemporalPointProcess

关注我们 你将收获更多干货

微信公众号:金融机器智能
二维码_金融机器智能.jpg

OpenSPG:知识图谱/知识语义化
OpenAGL:图学习
OpenASCE:因果学习
LLM:大模型
官网:https://openasce.openfinai.org/
GitHub:https://github.com/Open-All-Scale-Causal-Engine/OpenASCE

相关文章
|
机器学习/深度学习 自然语言处理 搜索推荐
# GloVe词嵌入:全局词频矩阵的高效表示
在自然语言处理(NLP)领域,词嵌入技术作为连接离散文本与连续向量空间的桥梁,已经成为各种文本处理任务的基础。继Word2Vec之后,斯坦福大学在2014年提出的GloVe(Global Vectors for Word Representation)模型为词嵌入技术开辟了新的思路。与Word2Vec专注于局部上下文信息不同,GloVe通过分析词的全局共现统计信息来学习词向量表示,这种方法在捕捉词语间全局语义关系方面具有独特优势。
760 1
|
数据采集 人工智能 安全
5分钟,学会自建海外代理IP池
本文详解如何从0到1搭建实用的海外代理IP池,适合跨境、爬虫、AI数据等业务。摒弃免费IP风险与自建高成本,推荐使用成熟商业服务,结合Python实现IP自动获取、验证与管理,安全高效,新手友好。
|
机器学习/深度学习 存储 算法
DistilQwen2.5发布:通义千问蒸馏小模型再升级
为解决大语言模型在资源有限环境下的高计算成本和复杂性问题,阿里云推出了基于 Qwen2.5 的轻量化模型系列 DistilQwen2.5。该模型通过双层蒸馏框架、数据优化策略及参数融合技术,在保留性能的同时显著降低计算资源消耗。本文提供了详细的使用教程和代码示例,方便用户在 PAI 平台上调用。
|
Go 开发工具 git
【git】解决:Failed to connect to 127.0.0.1 port 7890: Connection refused
【git】解决:Failed to connect to 127.0.0.1 port 7890: Connection refused
6062 0
|
人工智能 边缘计算 自然语言处理
DistilQwen2:通义千问大模型的知识蒸馏实践
DistilQwen2 是基于 Qwen2大模型,通过知识蒸馏进行指令遵循效果增强的、参数较小的语言模型。本文将介绍DistilQwen2 的技术原理、效果评测,以及DistilQwen2 在阿里云人工智能平台 PAI 上的使用方法,和在各开源社区的下载使用教程。
|
JavaScript 前端开发
JavaScript基础知识-原型(prototype)
关于JavaScript基础知识中原型(prototype)概念的介绍。
340 1
列举 3 种强制类型转换和 2 种隐式类型转换
列举 3 种强制类型转换和 2 种隐式类型转换
将数组A中的内容和数组B中的内容进行交换。(数组一样大)
将数组A中的内容和数组B中的内容进行交换。(数组一样大)
304 0
将数组A中的内容和数组B中的内容进行交换。(数组一样大)
|
JSON 缓存 安全
fastjson反序列化历史与检测
fastjson反序列化历史与检测