劉瑞雪,李 文,劉 芳,杜守國
(1.上海對外經(jīng)貿(mào)大學(xué)統(tǒng)計與信息學(xué)院,上海 201620;2.上海市大數(shù)據(jù)中心,上海 200072)
隨著各項技術(shù)的日益成熟,人們經(jīng)常需要存儲、處理和分析規(guī)模更大、維度更高和結(jié)構(gòu)更復(fù)雜的數(shù)據(jù),如人臉圖像數(shù)據(jù)、監(jiān)控視頻數(shù)據(jù)、生物信息數(shù)據(jù)等。為了挖掘這些高維數(shù)據(jù)中蘊藏的信息,可以使用張量這種具有多個通道的數(shù)據(jù)結(jié)構(gòu)來表達數(shù)據(jù)內(nèi)部結(jié)構(gòu)信息。張量時間序列又被稱作共同演化的時間序列,這種時間序列的每個時間點的切片可以自然地形成一個多維數(shù)組,也就是張量。例如,視頻作為一種特殊的時間序列數(shù)據(jù),其維度為N1×N2×N3×N4,其中N1、N2、N3和N4分別為視頻每一幀圖片的高度、寬度、顏色深度和視頻的時間戳。張量時間序列在提供更豐富的信息的同時,也帶來了一些新的挑戰(zhàn)。
對于這類具有多個特征或通道的時間序列進行預(yù)測是一個非常熱門的領(lǐng)域。為了解決高維時間序列的預(yù)測問題,Yu 等人[1]提出了一種時間正則化矩陣分解框架(TRMF),框架中包含了許多現(xiàn)有的時間序列分析方法,該框架支持數(shù)據(jù)驅(qū)動的時間序列預(yù)測。Faloutsos 等人[2]對現(xiàn)有的時間序列經(jīng)典算法以及可擴展的張量方法和用于預(yù)測的深度學(xué)習(xí)3 個相關(guān)領(lǐng)域的研究進行了綜述,并通過案例說明的方法和實際問題的直觀概述,為這些強大工具提出了一些背后的技術(shù)細節(jié)。Jing 等人[3]針對張量分解框架下的高維時間序列預(yù)測問題,基于Tucker分解和張量自回歸模型開發(fā)出了多線性正交自回歸和多線性約束自回歸2 個新穎的多線性模型,從而實現(xiàn)了高維時間序列的預(yù)測問題。Shi 等人[4]受文獻[3]的啟發(fā),將ARIMA 模型推廣到高維,利用多路延遲嵌入變換技術(shù)(MDT)將多元時間序列變換成三維張量(BHT),應(yīng)用Tucker 分解技術(shù)和廣義張量自回歸綜合移動平均模型對時間序列進行預(yù)測,有效地解決了短小時間序列的預(yù)測問題。Ma 等人[5]通過對大規(guī)模用戶的訪問數(shù)據(jù)進行深入分析,提出了一種新穎的深時空張量因式分解框架,為高維時間序列預(yù)測提供了總體的設(shè)計。受線性動力系統(tǒng)LDS 的啟發(fā),Rogers 等人[6]開發(fā)了多線性動力系統(tǒng)(MLDS)[7]方法,通過結(jié)合概率圖形框架和多線性代數(shù),同時處理時間信息和數(shù)據(jù)結(jié)構(gòu)。此外,一些工作將張量分解與深度學(xué)習(xí)相結(jié)合,別金金[8]將循環(huán)神經(jīng)網(wǎng)絡(luò)中線性層轉(zhuǎn)換成TTL 層,提出了張量列循環(huán)神經(jīng)網(wǎng)絡(luò)。
Jing 等人[3]指出,對張量時間序列進行預(yù)測時,面臨著前后約束、時間平滑性和高階這3 個方面突出的挑戰(zhàn)。其中前后約束表明觀察到的時間序列數(shù)據(jù)經(jīng)常受到噪聲和缺失值的影響。缺失值的估計問題是計算機視覺和圖像領(lǐng)域所要解決的關(guān)鍵問題。Liu等人[9]在矩陣核范數(shù)研究的基礎(chǔ)上提出了張量核范數(shù)的定義,并為實現(xiàn)張量補全提出了3 個有效的算法。Gandy 等人[10]介紹了一種可處理的n 秩凸松弛,并提出了有效的算法,以數(shù)值的方式求解低n 秩張量恢復(fù)問題。受Tucker 分解的啟發(fā),劉園園[11]提出了基于核心張量核范數(shù)最小化的補全算法,將原來的大規(guī)模核范數(shù)問題轉(zhuǎn)換為小規(guī)模問題。Song 等人[13]從大數(shù)據(jù)分析的角度,對張量補全算法的最新進展進行了現(xiàn)代概述,總結(jié)了張量補全的流形方法,以促進未來的研究和應(yīng)用。受張量核范數(shù)的啟發(fā),Zhou 等人[14]提出了一種新型的低秩張量分解方法,可以有效地求解3 路張量的補全問題。Chen 等人[15]為解決具有缺失元素的多元時間序列的預(yù)測問題,提出了一種低秩自回歸張量補全框架,通過分解張量的維度,將原始的多元時間序列矩陣擴展到張量的結(jié)構(gòu),將時間序列預(yù)測和缺失數(shù)據(jù)的插補問題轉(zhuǎn)換成具有低秩張量結(jié)構(gòu)的補全問題。進一步地,Chen 等人[16]還提出了一種貝葉斯矩陣分解框架,將低秩矩陣和向量自回歸過程集成到單個概率圖形模型中,從而實現(xiàn)具有缺失值的多元時間序列的預(yù)測工作。受卷積核范數(shù)[17]的啟發(fā),朱浩華[18]將張量補全應(yīng)用于降雨預(yù)測任務(wù)中,通過與中央氣象臺的預(yù)報指導(dǎo)產(chǎn)品和各省預(yù)報產(chǎn)品對比,驗證了所提算法的有效性。
為了實現(xiàn)具有缺失值的張量時間序列的工作,本文綜合張量補全和張量時間序列預(yù)測現(xiàn)有的研究成果,提出一種張量自回歸補全框架,為對具有缺失值的張量時間序列的預(yù)測問題提供了一個新的思路和方法。通過在多個公開數(shù)據(jù)集上進行實驗驗證了算法的有效性,表明將算法應(yīng)用于實際的可能性。
本文的主要創(chuàng)新點有以下3點:
1)提出張量自回歸補全算法,在高精度低秩張量補全算法(HaLRTC)的基礎(chǔ)上加入了張量自回歸范數(shù)項,利用張量核范數(shù)捕捉時間序列的長期趨勢,利用張量自回歸范數(shù)捕捉時間序列的短期趨勢,更好地捕捉了每個維度之間的時間相關(guān)性。
2)本文首先利用張量自回歸補全算法對高維數(shù)據(jù)中的缺失元素進行補全,接著將自回歸模型推廣到張量維度,對經(jīng)過補全后的數(shù)據(jù)利用張量自回歸模型進行預(yù)測,為解決具有缺失值的張量時間序列的預(yù)測問題提供一個新的方法。
3)為了驗證所提算法的有效性,本文另外提出3 個用于消融實驗的算法,通過消融實驗以及與其他現(xiàn)有方法的對比實驗,驗證本文所提算法的有效性。
在本章中,主要總結(jié)張量的一些基本符號和操作,并回顧張量自回歸模型的定義和低秩矩陣補全的定義。本文使用小寫字母表示向量,如x;使用大寫字母表示矩陣,如X;使用花體字母表示張量,如χ。首先給出本文使用的基本的張量符號及其表示,如表1所示。
表1 基本的張量符號及其表示
張量在不同的研究領(lǐng)域有著不同的定義,在物理學(xué)中,張量被定義為不隨坐標系變化而變化的量。而本文使用的是張量在數(shù)學(xué)領(lǐng)域的定義,將其看作二維矩陣的推廣[19]。數(shù)據(jù)沿相同方向的排列稱為一路陣列,易得到標量是零路陣列,向量是一路陣列,矩陣是數(shù)據(jù)沿水平和垂直2 個方向排列的二路陣列,作為矩陣的推廣,張量是數(shù)據(jù)的多路陣列表示。圖1 給出了一個三階張量的圖像表示。
圖1 三階張量χ∈?I1× I2× I3
作為最常用的張量分解技術(shù)之一,Tucker 分解[20]常用于提取張量中的潛在變量或分量。這些潛在變量和分量可以捕獲張量數(shù)據(jù)中最重要的特征,Tucker分解去除了原始數(shù)據(jù)的冗余,保留了數(shù)據(jù)最重要的特征。對于一個張量X∈,給定一系列投影矩陣U1,U2,…,UN,Tucker分解可以表示為:
其 中,C∈是 核 心 張 量,J1 圖2 三階張量的Tucker分解圖例 用×1表示為1-模式矩陣積,對于一個N階張量X∈,它與一個Jn×In矩陣Un的n-模式(矩陣)積用符號X×nUn表示。這是一個I1×…×In-1×Jn×In+1×…×IN張量,其元素定義為: 時間序列中的自回歸模型[21]使用變量過去值的線性組合來預(yù)測變量在未來某些點的值,自回歸模型在處理靜態(tài)數(shù)據(jù)方面顯示出顯著的有效性和優(yōu)越性。對于一個p階自回歸模型,其定義為: 其中,?k,k= 0,1,2,…,p是AR(p)模型的參數(shù),εt為白噪聲序列。將自回歸模型推廣到高階即可得到張量自回歸模型,其定義為: 低秩矩陣補全,顧名思義是將一個含有缺失值的矩陣通過矩陣的低秩結(jié)構(gòu)將其恢復(fù)成一個完全的矩陣[22]。如果矩陣的秩遠小于矩陣的行數(shù)和列數(shù),那么該矩陣就是一個低秩的矩陣。低秩矩陣的行和列之間存在著線性相關(guān)性,因此低秩矩陣包含很多冗余的信息,為了借助矩陣中已有的觀測到的數(shù)據(jù)來對矩陣進行恢復(fù),恰恰需要這種冗余來完成。低秩矩陣補全問題可以表現(xiàn)成秩最小化問題,即: 其中,X∈為觀測的不完整矩陣,Ω是指標集,即表示觀測到的矩陣元素位置。Z是待恢復(fù)的矩陣。rank(X)表示矩陣X的秩函數(shù)。PΩ(·)是投影算子,定義為: 這樣的一個秩最小化問題不是一個凸優(yōu)化問題,屬于NP-難問題的范疇,Recht 等人[23]發(fā)現(xiàn)矩陣的核范數(shù)是矩陣的秩函數(shù)最近似的一個凸優(yōu)化近似。因此,利用矩陣的核范數(shù)來代替秩函數(shù),將求解秩最小化問題轉(zhuǎn)換成求解矩陣核范數(shù)最小化問題,即: 其中,矩陣的核范數(shù)等于矩陣所有奇異值之和。 類似于張量是矩陣的推廣,低秩張量補全問題是低秩矩陣補全問題的推廣,通過求解如下的優(yōu)化問題將低秩矩陣補全推廣到更高階的張量的結(jié)構(gòu)中,即: 對于張量的核范數(shù),Liu等人[9]給出了如下定義: 其中,αi是常數(shù)項,且滿足αi≥0,X(i)表示張量X的模式i展開矩陣。 也就是說,Liu 等人[9]將張量的核范數(shù)定義為張量每個模式展開的所有矩陣的核范數(shù)的線性組合。故原來的張量核范數(shù)的凸優(yōu)化問題等價于: 由于張量的模展開矩陣之間不是相互獨立的,存在多線性約束關(guān)系,直接的對凸優(yōu)化問題進行求解是非常困難的,Liu 等人[9]進一步提出了高精度低秩張量補全算法(HaLRTC),通過引入N個額外的輔助矩陣的張量形式,得到如下的優(yōu)化模型: 并利用交替方向乘子法,對每個變量進行更新。 現(xiàn)實中的許多時間序列數(shù)據(jù),例如交通數(shù)據(jù)和用電量數(shù)據(jù),都包含著長期趨勢和短期趨勢。長期趨勢通常體現(xiàn)為時間序列的周期性和季節(jié)性,短期趨勢通常體現(xiàn)為偏離長期趨勢的隨機波動/擾動。為了補全帶有缺失值的張量時間序列數(shù)據(jù),本文在高精度低秩張量補全的基礎(chǔ)上加入了張量自回歸范數(shù)項,從而利用張量核范數(shù)捕捉時間序列的長期趨勢,利用張量自回歸范數(shù)捕捉時間序列的短期趨勢,提出張量自回歸補全算法(TARC)。本文所提出的方法主要由2 個步驟組成: 步驟1 補全缺失數(shù)據(jù)。 其優(yōu)化模型為: 其中,λ是控制目標函數(shù)中2項之間權(quán)衡的權(quán)重系數(shù)。是張量自回歸模型的系數(shù)。根據(jù)張量的核范數(shù)定義,相應(yīng)的優(yōu)化模型為: 為了消除模展開矩陣之間的相關(guān)性,引入N個輔助張量Vi,得到等價的優(yōu)化模型為: 構(gòu)造增廣拉格朗日函數(shù)為: 其中,ρ>0為懲罰因子,Yi表示為拉格朗日乘子,<·,·>表示矩陣的內(nèi)積。本文采用交替方向乘子法[24]對每個變量分別進行更新,通過求解如下子問題來分別更新X k+1、V k+1i、Yk+1i: 其中,符號Dαi/ρ(·)表示具有收縮參數(shù)αi/ρ的奇異值閾值的運算符。foldi(·)是折疊運算符,表示將矩陣轉(zhuǎn)換成三階張量,有上述等式滿足引理1所示的奇異值閾值。 引 理1 對 于 任 意 的α,ρ>0,問 題的全局最優(yōu)解由奇異值閾值給出: 其中,Z=Udiag(σ(Z))VT是Z的奇異值分解,符號[·]+表示0處的正截斷,滿足 對于變量X k+1,可以通過求解以下子問題: 上述優(yōu)化模型是一個光滑可微的凸模型,利用一階必要條件,可直接求得如下的解: 最后更新拉格朗日乘子,得到如下的乘子更新規(guī)則: 步驟2 預(yù)測。 在對張量時間序列的缺失值進行補全后,本文利用張量自回歸模型對數(shù)據(jù)進行預(yù)測: 進一步地,本文可以在最后的步驟中使用先前的預(yù)測值來進行長期預(yù)測。該算法的偽代碼如算法1所示。 算法1 TARC 本文對張量自回歸補全算法的張量核范數(shù)項和張量自回歸范數(shù)項均進行Tucker分解處理,提出核心自回歸張量補全算法(CCAR),該方法同樣由2 個步驟組成: 步驟1 補全缺失數(shù)據(jù)。 其優(yōu)化問題如下所示: 步驟2 預(yù)測。 對張量時間序列的缺失值進行補全后,本文利用核心張量自回歸模型對數(shù)據(jù)進行預(yù)測: 接著使用Tucker 逆分解得到原始數(shù)據(jù)的預(yù)測結(jié)果,其Tucker逆分解為: 該算法的偽代碼如算法2所示。 算法2 CCAR 對張量自回歸補全算法的張量核范數(shù)項進行Tucker 分解處理,得到核心張量自回歸補全算法CTAR。該方法同樣由2個步驟組成: 步驟1 補全缺失數(shù)據(jù)。 優(yōu)化問題可以表示為: 步驟2 預(yù)測。 在對張量時間序列的缺失值進行補全后,利用張量自回歸模型對數(shù)據(jù)進行預(yù)測: 該算法的偽代碼如算法3所示。 算法3 CTAR 對張量自回歸補全算法的張量自回歸范數(shù)項進行Tucker 分解處理,得到張量核心自回歸補全算法TCAR。該方法同樣由2個步驟組成: 步驟1 補全缺失數(shù)據(jù)。 優(yōu)化問題表示為: 步驟2 預(yù)測。 對張量時間序列的缺失值進行補全后,本文利用核心張量自回歸模型對數(shù)據(jù)進行預(yù)測,即: 接著,使用Tucker逆分解得到原始數(shù)據(jù)的預(yù)測結(jié)果,其Tucker逆分解為: 該算法的偽代碼如算法4所示。 算法4 TCAR 在迭代求解張量自回歸補全算法(TARC)的過程中,主要的計算量為輔助張量Vi的模式i展開矩陣的奇異值分解。對于一個維度為m×n的矩陣X,奇異值分解的時間復(fù)雜度為O(m2n)[25]。輔助張量共有n個模展開矩陣,其模式-1 展開矩陣的時間復(fù)雜度為O,模式-2 展開矩陣的時間復(fù)雜度為In)…,故n個模展開矩陣的奇異值分解的時間復(fù)雜度為因此總的時間復(fù)雜度為,其中t為算法的迭代次數(shù)。同理,核心自回歸張量補全算法(CCAR)的時間復(fù)雜度為、核心張量自回歸補全算法(CTAR)的時間復(fù)雜度為、張量核心自回歸補全(TCAR)算法的時間復(fù)雜度為 在迭代求解張量自回歸補全算法(TARC)的過程中,主要占用空間的是輔助張量Vi,共有n個維度為I1×I2×In的輔助張量,故空間復(fù)雜度為O(tnI1I2…In),其中t為算法的迭代次數(shù)。同理,CCAR 的空間復(fù)雜度為O(tnJ1J2…Jn),CTAR算法的空間復(fù)雜度為O(tnJ1J2…Jn),TCAR算法的空間復(fù)雜度為O(tnI1I2…In)。 本文通過5 個真實世界的數(shù)據(jù)集來評估提出的TARC算法的性能,具體說明如下: 1)加州交通局性能評估系統(tǒng)(PeMS)[26]的交通速度數(shù)據(jù)集,數(shù)據(jù)集中包含288 個探測器,探測器在每天以5 min 的頻率產(chǎn)生288 個時間點,選取44 天的數(shù)據(jù),構(gòu)成了228×288×44的張量時間序列。 2)廣州的交通數(shù)據(jù)集,該數(shù)據(jù)集記錄了214 個匿名路段每天以10 min的頻率產(chǎn)生144個時間點,選取61天的數(shù)據(jù),構(gòu)成了214×61×144的張量時間序列。 3)用電量交易數(shù)據(jù)集,該數(shù)據(jù)集記錄了321 名客戶每天以1 h 的頻率產(chǎn)生24 個時間點,選取35 天的數(shù)據(jù),構(gòu)成了321×24×35的張量時間序列。 4)NOAA[27]天氣數(shù)據(jù)集,該數(shù)據(jù)集記錄了76 個氣象站在1990 年的日氣候數(shù)據(jù),包括每日最高溫度、最低溫度和露點溫度,均以華氏度為單位,構(gòu)成了76×3×365的張量時間序列。 5)NASDAQ 股票數(shù)據(jù)集,該數(shù)據(jù)集記錄了美國航空(AAL)、蘋果(APPL)、Adobe(ADBE)、亞德諾半導(dǎo)體(ADI)、自動數(shù)據(jù)處理(ADP)這5 只股票在2016年7 月26 日9:30 分到2016 年8 月2 日15:58 分共2000 個時間點的收盤價、開盤價、最高價和最低價數(shù)據(jù),構(gòu)成了5×4×2000的張量時間序列。 本文首先使用PeMS 交通數(shù)據(jù)集、廣州交通數(shù)據(jù)集以及用電量交易數(shù)據(jù)集在本文提出的TARC 算法、CCAR 算法、CTAR 算法、TCAR 算法上比較預(yù)測效果,從4 種算法中找到預(yù)測效果最好的算法,并將該算法與現(xiàn)有的方法進行比較。包括: 1)時間正則化矩陣因式分解(TRMF)方法。 2)貝葉斯時間矩陣分解(BTMF)方法。 3)高精度低秩張量補全(HaLRTC)算法。 4)低秩自回歸張量補全(LATC)算法。 5)長短時記憶網(wǎng)絡(luò)(LSTM)模型。 6)門控循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU)模型。 實驗涵蓋了對高維缺失數(shù)據(jù)的預(yù)測任務(wù),通過消融實驗以及與其他算法的對比實驗,驗證了本文提出的算法的有效性。 為了評估預(yù)測的準確性,使用平均絕對誤差MAE 來衡量。同時,為了評估模型的計算代價和運算效率,本文還考慮每種算法完成預(yù)測任務(wù)時所消耗的時間Time(單位為s)。 1)消融實驗。 由于PeMS 交通數(shù)據(jù)集、廣州交通數(shù)據(jù)集以及用電量交易數(shù)據(jù)集都進行了5%、10%、20%和40%的隨機缺失處理,在這些經(jīng)過隨機缺失處理的數(shù)據(jù)集上比較了本文提出的TARC 算法、CCAR 算法、CTAR 算法、TCAR 算法的預(yù)測時間和預(yù)測誤差,實驗結(jié)果如表2 所示,表中G 表示廣州交通數(shù)據(jù)集、P 表示PeMS交通數(shù)據(jù)集、E表示用電量交易數(shù)據(jù)集。 表2 TARC算法與CCAR算法和CTAR算法以及TCAR算法在數(shù)據(jù)集上的預(yù)測效果對比 從表2 中給出的預(yù)測結(jié)果可以看出,在進行實驗的3 個數(shù)據(jù)集中,不管進行多少比例的缺失,本文提出的TARC 算法都表現(xiàn)出了明顯的優(yōu)勢,同時4 種算法運行時間幾乎一樣,都小于1 s,體現(xiàn)了算法的高效性。預(yù)測結(jié)果也表明,無論對張量的核范數(shù)項進行Tucker 分解還是對張量自回歸范數(shù)項進行Tucker 分解,都會影響模型的預(yù)測精度,這說明在對張量進行Tucker分解的過程中,不可避免地會損失原始張量的部分信息,從而對具有缺失值的張量時間序列的預(yù)測任務(wù)造成影響。 2)對比實驗。 本文在另外2 個數(shù)據(jù)集,NASDAQ 股票數(shù)據(jù)和NOAA 天氣數(shù)據(jù)集上都進行5%、10%、20%和40%的隨機缺失處理,在20 個經(jīng)過隨機缺失處理的數(shù)據(jù)集上比較了本文提出的TARC 算法與現(xiàn)有的LATC 算法、HaLRTC 算法、BTMF 算法和TRMF 算法、LSTM 算法和GRU算法的預(yù)測時間和預(yù)測誤差,結(jié)果如表3所示。其中G 表示廣州交通數(shù)據(jù)集、P 表示PeMS 交通數(shù)據(jù)集、E 表示用電量交易數(shù)據(jù)集、Q 表示NASDAQ股票數(shù)據(jù)、A表示NOAA天氣數(shù)據(jù)。 表3 TARC算法與對比算法的預(yù)測效果對比 從表3給出的預(yù)測結(jié)果可以看出,在進行實驗的5個數(shù)據(jù)集中,在大多數(shù)情況下,對數(shù)據(jù)進行5%、10%、20%和40%比例的隨機缺失處理時,本文提出的TARC 算法都表現(xiàn)出了明顯的優(yōu)勢,同時本文所提出的TARC算法的運行時間都小于1 s,體現(xiàn)了算法的高效性。預(yù)測結(jié)果也表明,在數(shù)據(jù)缺失比例較小的情況下,本文提出的TARC算法展現(xiàn)出了良好的預(yù)測優(yōu)勢。 為了預(yù)測具有缺失值的張量時間序列,本文提出了張量自回歸補全(TARC)算法。受高精度低秩張量補全算法的啟發(fā),本文利用張量核范數(shù)項以及張量自回歸范數(shù)項對缺失數(shù)據(jù)進行補全,利用張量核范數(shù)捕捉時間序列的長期趨勢,利用張量自回歸范數(shù)捕捉時間序列的短期趨勢,通過利用張量時間序列數(shù)據(jù)中所有維度的信息,對具有缺失值的張量時間序列數(shù)據(jù)進行補全工作,進一步地,利用張量自回歸來對補全后的張量時間序列進行預(yù)測,從而實現(xiàn)具有缺失值的張量時間序列的預(yù)測任務(wù)。同時,本文還基于Tucker分解提出了用于消融實驗的3 個算法,通過消融實驗以及與其他現(xiàn)有方法的對比實驗,體現(xiàn)了本文所提算法的高效性和有效性。實驗結(jié)果表明,在數(shù)據(jù)缺失比例較小的情況下,本文所提出的算法具有比較明顯的預(yù)測優(yōu)勢。1.2 張量自回歸模型
1.3 低秩矩陣補全
1.4 高精度低秩張量補全
2 模型構(gòu)建
2.1 張量自回歸補全算法
2.2 核心自回歸張量補全算法
2.3 核心張量自回歸補全算法
2.4 張量核心自回歸補全算法
2.5 復(fù)雜度分析
3 實 驗
3.1 數(shù)據(jù)集
3.2 比較方法
3.3 實驗結(jié)果與分析
4 結(jié)束語