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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 矩阵分解就能击败深度学习!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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
9天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
32 11
|
22天前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
|
23天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
22天前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
1月前
|
SQL 关系型数据库 MySQL
体验使用DAS实现数据库SQL优化,完成任务可得羊羔绒加厚坐垫!
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
151 12
|
29天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
29天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
11天前
|
机器学习/深度学习 人工智能 算法
机器学习与深度学习:差异解析
机器学习与深度学习作为两大核心技术,各自拥有独特的魅力和应用价值。尽管它们紧密相连,但两者之间存在着显著的区别。本文将从定义、技术、数据需求、应用领域、模型复杂度以及计算资源等多个维度,对机器学习与深度学习进行深入对比,帮助您更好地理解它们之间的差异。
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
97 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型

热门文章

最新文章