發表日期 4/6/2022, 4:49:38 PM
新智元報道
編輯:LRS
【新智元導讀】時間序列預測問題通常比普通機器學習更棘手,不僅需要維持一個增量數據庫,還需要實時預測的性能。最近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