当前位置: 首页 > 科技观察

矩阵分解胜过深度学习!MIT发布时间序列数据库tspDB:MachinelearningwithSQL

时间:2023-03-17 23:59:26 科技观察

人类从历史中吸取的唯一教训是人类无法从历史中吸取任何教训。“但机器可以学习。”——WozkiSchout无论是预测明天的天气、预测未来的股票价格、识别合适的机会,还是估计患者患病的风险,都可以解释时间序列数据,数据收集是对一段时间内观察结果的记录。然而,使用时间序列数据进行预测通常需要多个数据预处理步骤和复杂的机器学习算法。对于非专业人士来说,理解这些算法的原理和使用场景并不容易。最近,麻省理工学院的研究人员开发了一个强大的系统工具tspDB,方便用户处理时间序列数据,可以直接在现有时间序列数据库之上集成预测功能。系统包含很多复杂的模型,即使是非专家也能在几秒内完成预测。在预测未来值和填补缺失数据点这两项任务上,新系统比最先进的深度学习方法更准确、更高效。该论文发表在ACMSIGMETRICS会议上。论文地址:http://proceedings.mlr.press/v133/agarwal21a/agarwal21a.pdftspDB性能提升的主要原因是它使用了一种新颖的时间序列预测算法,特别是用于预测多变量时间序列数据有效的。多变量是指具有多个时间相关变量的数据,例如在天气数据库中,温度、露点和云量的当前值都取决于它们各自的过去值。该算法还可以估计多元时间序列的波动性,让用户对模型的预测准确性充满信心。作者表示,即使时间序列数据变得越来越复杂,该算法也能有效捕捉时间序列结构。文章的作者AnishAgarwal博士毕业于麻省理工学院。他的主要研究兴趣包括因果推理与机器学习的交互;高维统计;数据经济学。2022年1月加入加州大学伯克利分校西蒙斯研究所,担任博士后研究员。处理时序数据的正确姿势当前机器学习工作流程的主要瓶颈之一是数据处理过于耗时,中间过程也容易出错。开发人员需要从数据存储或数据库中获取数据,然后应用机器学习算法进行训练和预测。这个过程需要大量的人工数据处理。现在这种情况越来越严重,因为机器学习需要吞噬越来越多的数据,这就更难管理了。尤其是在实时预测领域,尤其是各种时间序列的应用场景,比如金融、实时管控等,都需要做好数据管理。如果能直接在数据库上做预测,那岂不是省去了取数据的步骤?然而,这种基于数据库的预测集成系统,不仅需要提供直观的预测查询接口,防止重复的数据工程;还需要保证准确率能达到sota,支持增量模型更新,相对较短的训练时间和低预测延迟。tspDB直接与PostgreSQL集成。它原生支持多种机器学习算法,例如广义线性模型、随机森林和神经网络。训练模型时也可以在数据库中调整超参数。与其他数据库不同,tspDB的一个重要出发点是“终端用户”如何与系统连接以获得预测值。为了让机器学习接口更加通用,tspDB采取了不同的做法:从用户身上抽象出机器学习模型,力求只使用单一接口来响应标准数据库查询和预测查询,即使用SQL询问。在tspDB中,预测查询与标准SELECT查询具有相同的形式。预测查询和普通查询的区别在于,一个是模型预测,一个是检索。比如数据库中只有100条数据,如果要预测第101天的值,可以使用PREDICT关键字,WHEREday=101;而当WHEREday=10时,第10天股价的估计值将被分析/去噪声值,因此PREDICT也可以用来预测缺失值。为了实现PREDICT查询,用户需要首先使用现有的多变量时间序列数据构建预测模型。CREATE关键字可以用来在tspDB中建立一个预测模型,输入的特征也可以是多个数据列。与PostgreSQLDB相比,在标准的多变量时间序列数据集上,在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文章还提出了一种基于时间序列算法的矩阵分解算法。将多元时间序列数据PageMatrix堆叠后,使用SVD算法进行分解,在子矩阵中去掉最后一列作为预测值,使用线性回归预测目标值。针对不断涌入的时序数据,该算法还支持增量模型更新。为了对该算法进行性能测试,研究人员选择了三个真实世界的数据集,包括电力、交通和金融。评价指标以归一化均方根误差(NRMSE)作为准确率。为了量化不同方法的统计准确性,研究人员还添加了标准博尔达计数(WBC)的变体作为评估指标。值为0.5表示该算法的性能与其他算法相比处于平均水平,1表示与其他算法相比性能一般。该算法具有绝对优势,0代表绝对劣势。将tspDB的预测性能与学术界和工业界最流行的时间序列库如LSTM、DeepAR、TRMF和Prophet进行比较,可以发现tspDB的性能与深度学习算法(DeepAR和LSTM)相当,并超过了TRMF和Prophet。当改变缺失值和添加噪声的比例时,tspDB在50%的实验中是表现最好的方法,在80%的实验中至少是第二好的。使用WBC和NRMSE两个指标,tspDB在电力和金融数据集上优于所有其他算法,在流量数据集上与DeepAR和LSTM相媲美。对于方差估计,研究人员将他们的分析限制在合成数据上,因为我们无法获得真实数据中真正潜在的时变方差。SyntheticDatasetII包括九组多变量时间序列,每组具有时间序列动力学和不同噪声观测模型(高斯、泊松、伯努利噪声)的不同加性组合。从实验结果可以发现,除了一个实验外,tspDB在所有实验中都比TRMF和DeepAR(用于预测)具有更高的性能(>98%)。总体而言,这些实验显示了tspDB的稳健性,即在估计时间序列的均值和方差时能够部分消除噪声影响的能力。

猜你喜欢