矩阵分解就能击败深度学习!MIT发布时序数据库tspDB:用SQL做机器学习

简介: 矩阵分解就能击败深度学习!MIT发布时序数据库tspDB:用SQL做机器学习
【新智元导读】时间序列预测问题通常比普通机器学习更棘手,不仅需要维持一个增量数据库,还需要实时预测的性能。最近MIT的研究人员发布了一个可以通过SQL创建机器学习模型的数据库,不用再发愁时序数据管理了!


人类从历史中学到的唯一教训,就是人类无法从历史中学到任何教训。

 

「但机器可以学到。」 ——沃兹基硕德


 

无论是预测明天的天气,预测未来的股票价格,识别合适的机会,还是估计病人的患病风险,都可能对时间序列数据进行解释,数据的收集则是在一段时间内对观察结果的记录。

 

但使用时间序列数据进行预测通常需要多个数据预处理的步骤,并且需要用到复杂的机器学习算法,对于非专业人士来说,了解这些算法的原理和使用场景是一件不容易的事。

 

 

最近,来自麻省理工学院的研究人员开发了一个强大的系统工具tspDB方便用户处理时序数据,能够在现有的时间序列数据库之上直接整合预测功能。系统包含了很多复杂的模型,即使非专家也能在几秒钟之内完成一次预测。在执行预测未来值和填补缺失数据点这两项任务时,新系统比最先进的深度学习方法更准确、更高效。论文发表在ACM SIGMETRICS会议上。

 

论文地址:http://proceedings.mlr.press/v133/agarwal21a/agarwal21a.pdf


tspDB性能提升的主要原因是它采用了一种新颖的时间序列预测算法,这种算法在对多变量时间序列数据进行预测时特别有效。多变量指的是数据有一个以上的时间依赖变量,例如在天气数据库中,温度、露点和云量的当前值都依赖于其各自的过去值。

 

该算法还可以估计多变量时间序列的波动性,以便为用户提供模型预测准确度的confidence

 

作者表示,即使时间序列数据变得越来越复杂,这个算法也能有效地捕捉到时间序列结构。

 

文章作者Anish Agarwal博士毕业于麻省理工,主要研究兴趣包括因果推理和机器学习的相互作用;高维统计;数据经济学。2022年1月作为博士后研究员加入加州大学伯克利分校的西蒙斯研究所。

 

 

处理时序数据的正确姿势


目前机器学习工作流程的一个主要瓶颈是数据处理太耗费时间,并且中间流程也很容易出错。开发人员需要从数据存储或数据库中先获取数据,然后应用机器学习算法进行训练和预测,这个过程中需要大量的人工来做数据处理。

 

 

现在这种情况越来越严重了,因为机器学习需要吞进去的数据越来越多,更不好管理了。尤其是在实时预测领域,特别是在各种时间序列的应用场景中,比如金融和实时控制更需要好好管理数据。

 

要是能直接在数据库上进行预测,不就省了取数据这步了吗?

 

 

但这种在数据库上的预测集成系统不仅需要提供一个直观的预测查询界面,防止重复数据工程;同时还需要确保准确率可以达到sota,支持增量的模型更新,比较短的训练时间和较低的预测延迟。

 

tspDB就是直接与PostgreSQL集成,内部原生支持多个机器学习算法,例如广义线性模型、随机森林、神经网络,在训练模型的时候也可以在数据库里调节超参数。

 

和其他数据库不同的是,tspDB的一个重要出发点「终端用户」如何与系统对接来获得预测值。

 

为了让机器学习的接口更通用,tspDB采用了一种不同的方法:把机器学习模型从用户中抽象出来,争取只用一个单一的界面来响应标准的数据库查询和预测查询,也就是都用SQL来查询。

 

在tspDB中,预测性查询的形式与标准SELECT查询相同。预测性查询和普通查询的区别就是一个是模型预测,另一个是检索。

 

比如数据库里只有100条数据,想预测第101天的值,就用PREDICT关键词,WHERE day = 101即可;而WHERE day = 10时就会被解析第10天的股票价格的估算值/去噪值,所以PREDICT还可以用于预测缺失值。

 

 

为了实现PREDICT查询,用户需要利用现有的多元时间序列数据先建立一个预测模型。CREATE的关键字可以用于在tspDB中建立预测模型,输入的特征也可以是多个数据列。

 

tspDB与PostgreSQL DB相比,在标准的多变量时间序列数据集上,在tspDB中创建预测模型所需的时间是PostgreSQL批量插入时间的0.58倍-1.52倍。在查询延迟方面,在tspDB中回答一个PREDICT查询所需的时间是回答一个标准的PREDICT查询的1.6到2.8倍,与回答一个标准的SELECT查询相比,要高出1.6到2.8倍。

 

从绝对值来看,这相当于回答一个SELECT查询需要1.32毫秒,而回答一个预测查询需要3.5毫秒,回答一个归纳/预测查询需要3.36/3.45毫秒。

 

 

也就是说,tspDB的计算性能接近于从PostgreSQL插入和读取数据所需的时间,基本上可以用于实时预测系统。

 

因为tspDB还只是一个概念的验证,相当于是PostgreSQL的一个扩展,用户可以对单列或多列创建预测查询;在时间序列关系上创建单列或多列的预测查询,并提供预测区间的估计值。最重要的是,代码是开源的。

 

代码链接:https://github.com/AbdullahO/tspdb

 

文章中还提出一个基于时间序列算法的矩阵分解算法,通过将多变量时序数据Page Matrix堆叠起来后,使用SVD算法进行分解,在子矩阵中移除最后一列作为预测值,使用线性回归对目标值进行预测即可。

 

 

对于不断涌入的时序数据,算法还支持增量的模型更新。

 

 

为了对算法进行性能测试,研究人员选择了三个现实世界的数据集,包括电力(Electricity)、交通(Traffic)和金融(Finance)。评价指标采用Normalized Root Mean Square Error (NRMSE)作为准确率。为了量化不同方法的统计准确性,研究人员还加了一个标准Borda Count (WBC)的变体作为评价指标,0.5的值意味着算法的表现和其他算法相比就是平均水平,1代表相比其他算法具有绝对优势,0代表绝对劣势。

 

将tspDB的预测性能与学术界和工业界最流行的时间序列库如LSTM、DeepAR、TRMF和Prophet进行比较后可以发现,tspDB的表现与深度学习算法(DeepAR和LSTM)相比都相差不多,并且超过了TRMF和Prophet。

 

 

当改变缺失值的比例和添加的噪声时,tspDB在50%的实验中是表现最好的方法,在80%的实验中至少是表现第二好的。使用WBC和NRMSE这两个指标,tspDB在电力、金融数据集中的表现优于其他所有算法,而在交通数据集中的表现可与DeepAR和LSTM匹敌。

 

在方差估计上,因为我们无法获得现实世界数据中真正的基础时变方差,所以研究人员将分析限制在合成数据上。合成数据集II包括了九组多变量时间序列,每组都有不同的时间序列动态加性组合和不同的噪声观测模型(高斯、泊松、伯努利噪声)。

 

 

实验结果中可以发现,除了一个实验之外,tspDB在所有的实验中都比TRMF和DeepAR(用于预测)具有更高的性能(>98%)。

 

总的来说,这些实验显示了tspDB的稳健性,即在估计时间序列的均值和方差时,可以消除部分噪声的影响。


参考资料:

https://news.mit.edu/2022/tensor-predicting-future-0328

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
803 152
|
3月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
418 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
2月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
216 6
|
7月前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
447 1
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
7月前
|
机器学习/深度学习 人工智能 供应链
从概念到商业价值:AI、机器学习与深度学习全景指南
在这个科技飞速发展的时代🚀,人工智能正以惊人的速度渗透到我们的生活和工作中👀。但面对铺天盖地的AI术语和概念,很多人感到困惑不已😣。"AI"、"机器学习"、"深度学习"和"神经网络"到底有什么区别?它们如何相互关联?如何利用这些技术提升工作效率和创造价值?
|
8月前
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
3月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
338 8
|
4月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
526 8
|
6月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
505 62

热门文章

最新文章