0. 摘要
目前所有對時間序列數(shù)據(jù)進行分析的算法都是以相似度搜索為基本框架的,這樣就導致目前所有的時間序列挖掘算法都是以相似度搜索為瓶頸。這就導致所有的時間序列挖掘算法能處理的數(shù)據(jù)量都在百萬這個量級,但是實際上工業(yè)界和科研的需求都已經(jīng)達到了十億這個級別。本論文首創(chuàng)在更大量級上進行數(shù)據(jù)挖掘的方法。這個有點違反直覺,但是使用dtw進行大數(shù)據(jù)搜索,比目前最前沿的技術(shù):歐氏距離搜索算法更有效率。我們論文所基于的實驗使用的數(shù)據(jù)量超過了以往所有同類論文的總和(那可不,以往的論文數(shù)據(jù)量在百萬,即使以前有一萬篇相似論文,數(shù)據(jù)總量加起來也才百億而已,當然遠不如萬億這個量級,這有點找角度嚇唬人的感覺),這表明dtw這個方法很棒,可以用于解決更高級的時序挖掘問題,如motif 發(fā)現(xiàn),大數(shù)據(jù)聚類。除了用于處理大數(shù)據(jù)之外,該方法還可以用于實時監(jiān)控數(shù)據(jù)流,還可以更高效的處理數(shù)據(jù),降低對設(shè)備的需求。
1. 引言
傳統(tǒng)的DTW算法應(yīng)用于眾多領(lǐng)域:機器人、醫(yī)藥、生物測量、音樂/演講處理、大氣、航空、手勢識別、交互界面、歷史手稿挖掘、地理、天文學、太空探索、野生動物監(jiān)控。以往使用dtw做的研究肯定挺多的,但是都會認為這個方法計算代價太高,不實用。但是實際上經(jīng)過我們的UCR四件套的改造,可以使計算效率得到極大的提高,不過這UCR四件套挺難證明的。改造后的DTW算法快目前所有的近似搜索和索引搜索算法。作者還舉了幾個例子。
文獻28中說:長度為1000的查詢,用dtw可以獲得95% 的準確率,在百萬數(shù)據(jù)集上用隨機游走的方式,耗時5.65秒。而本文的dtw只需要3.8秒(同數(shù)據(jù)集、同配置的機器)。
另一篇基于內(nèi)積來求dtw下界的方法,進行“文本中新詞發(fā)現(xiàn)”任務(wù)的研究,作者聲稱用dtw-knn方法大概需要2分鐘。而用我們的方法,只需要不到1秒。
另一篇比較出名的多點觸屏的手勢識別領(lǐng)域的論文中說:dtw需要花費128.26分鐘來對160個手勢進行14400個測試。而用我們的方法,只需要3秒。
1.1 萬億量級問題簡述
整整一段的吹牛,不翻譯了。
1.2 問題假設(shè)
A 時間序列必須是正則化的
同樣的方法,處理非正則化的數(shù)據(jù)和正則化數(shù)據(jù),兩者正確率的區(qū)別很大(50%和5% 的區(qū)別)
B DTW是最好的測量方式
在其他論文中早有聲明:dtw是最好的方法,只是因為效率太低。
C 任意長度的查詢是不能被索引化的
D 有些數(shù)據(jù)挖掘問題的還是值得我們等個幾小時的。
6. 總結(jié)
一大段的吹牛,說自己的UCR-DTW算法效率高。還跟最近的state of art EBSM作對比。說自己需要的準備工作少,適用范圍廣,計算速度快。
又“謙虛”的說近似搜索算法的發(fā)展空間很大,未來可能追上自己的研究,但是又委婉的指出自己目前的上限已經(jīng)很高了,想追上也不容易呢。
然后說自己的研究比目前的各種的state of art都要快N倍(N取決于數(shù)據(jù)集和查詢條件),然后證明了2個問題:
1. 認為DTW不行的悲觀論者可以歇歇了(因為本論文提出了非常NB的UCR-DTW算法,在下界相關(guān)的技術(shù)上,DTW可以用于挺多問題的)
2. 再就是UCR-DTW和UCR-歐氏距離比當前的state of art快很多。
然后又惋惜的說限于篇幅不能貼完整的偽代碼了,請移步43這個文獻,觀看下集(對!就是一項研究騙兩個論文!)。
5. 實驗結(jié)果
為了保證論文可復(fù)現(xiàn),作者做了以下工作:
1. 原始問題:所有子序列都z正則化,使用歐氏距離進行dtw計算
2. sota:所有子序列z正則化,使用提前終止技術(shù),使用lb_keogh做dtw下界。
3. UCR套件:用了所有可能的加速技巧。像dtw的r=5%拉 ,能用遞歸就不用遍歷拉。保證大家的對比絕不是因為這些小的細節(jié),而是因為根本的設(shè)計思想不同。
5.1 隨機游走的基線
可以看到,長度為128的查詢中,UCR改造過的方法,運行速度比sota快多了。尤其是sota-dtw和ucr-dtw的對比,impressive呢!
對于dtw的三個變種,可以看到,越長的查詢,三者差距越明顯。
跟goal相比,ucr所花時間/goal說話的時間 = 1.41。這暗示著我們的算法已經(jīng)非常接近極限了,可能不存在繼續(xù)優(yōu)化的空間了。
再就是ucr-ed和ucr-dtw相差很少,只差1.18倍(?這是咋計算出來的?),這跟近年來的研究并不一致。
5.2 長查詢:EEG(腦電圖)
這是倆醫(yī)生收集的腦電圖數(shù)據(jù),然后用兩種算法去算,看看時間
可以看到,對比很明顯。
后面就不看了,反正就是效果不錯。
3. 背景與聲明
3.1 定義
1. 時間序列T是一個有序的列表,T= t1,t2,t3…..因為原始數(shù)據(jù)的長度會很長,所以我們總是用其子序列去進行比對。
2. Tik代表從i數(shù)長度為k的子序列。Tik可能用C來表示,說這是一個Candidate的意思。Q表示查詢。|Q| 記為n(查詢的長度為n)
3. 當|Q| =|C|, 時,Q和C之間的ED距離定義如下:
如下圖所示:
ED是兩段序列的一一映射距離,可以視作dtw的一個特例。當使用dtw來對齊兩個序列時,需要先構(gòu)建n·n的矩陣。
表示qi和cj之間的距離。
P就是一個規(guī)整之后的軌跡。p的第t個元素記為pt=(i,j)t,所以P表示為:
同時P有一些約束,必須是對角線,必須是相鄰點連接,并且p上的點必須是單調(diào)的(只能遞增,不能先增后減)。還定義了可以偏離對角線的程度,一個典型的約束就是Sakoe-Chiba Band,表明不能偏離R的寬度。
4. 算法
4.1 已知的各種優(yōu)化
4.1.1 使用平方距離
因為平方和距離MSE 和平方和再開方距離 RMSE相對大小是一致的。都是單調(diào)的凸函數(shù),而且mse更容易優(yōu)化。
4.1.2 下確界
DTW這類計算代價較高的算法,常用的優(yōu)化手段就是通過尋找下確界來進行“剪枝”(減少待選的計算量)。下圖就是兩種簡化計算的例子,其中一種是本文采用的。
4.1.3 early abandon(ED和LB_keogh)
如果已經(jīng)計算得到的歐氏距離或者LB_keogh下界超過了best-so-far,那就停止計算,因為這肯定不是最優(yōu)的路徑距離了。
4.1.4 DTW的early abandon
當計算LB_Keogh的時候,有時必須得先全量計算歐氏距離,但是仍有一個小技巧來提高計算速度。我們可以從左到右增量計算DTW,當我們計算1k時,我們可以計算部分的(從k+1n)DTW的LB_Keogh累加和。
這個累加和是真正的DTW距離的一個下界。這個是可以推導出來的。如果這個和超過了best-so-far,就可以進行剪枝。
4.1.5 并行計算
多核并行可以線性的提高計算速度,下一節(jié)就是講多線程的。
4.2 新優(yōu)化:UCR套件
基礎(chǔ)這些工作,我們還做了以下原創(chuàng)性的工作。
4.2.1 z正則化的early abandon
據(jù)我們了解,還沒人試過在正則化上進行優(yōu)化。這讓人有點意外,因為這個過程所花的時間比計算歐式距離還要久。
我們對z正則化的過程進行了early abandon,就是我們在增量計算z正則化時,也增量計算了歐氏距離(或者LB_Keogh距離),如果我們進行了剪枝,那么同時也就減去了很多z正則化的計算。
均值和方差的計算可以通過一次遍歷得到,計算公式如下:
在相似度搜索中,所有的子序列在與查詢進行比對前需要先正則化。子序列的均值可以通過維持兩個累加和,兩個累加和之間有m個點的延遲。平方和的累加也可以用類似的方式得到,公式如下:
更高水平的算法偽代碼如下:
其中第11行允許在正則化這個步驟進行剪枝。在這個算法中,用循環(huán)遍歷X來存儲當前子序列與查詢Q的相似度。
4.2.2 重排序的early abandon
經(jīng)過測試,根據(jù)每個點對歐式距離的貢獻,對Ci進行由大到小的排序,按這個順序進行計算,可以加快速度,這是個基于經(jīng)驗的優(yōu)化,用心跳的那份實驗數(shù)據(jù)證明過。
4.2.3 在LB_Keogh計算中,反轉(zhuǎn)查詢和數(shù)據(jù)的角色
在4.1.2的舉例中,在查詢上做了一個envelope,一個我們用來討論LB_KeoghEQ的情況。這個步驟只需要做一次,可以節(jié)省額外的開銷。
當所有的剪枝手段都失效時,我們可以用實時計算的方式選擇性的計算LB_KeoghEC。考慮到LB_KeoghEQ ≠ LB_KeoghEC,平均來說每個都多花費了一半以上的時間。所以這種嘗試是很值得的。
4.2.4 流式計算的剪枝
通過比較所有剪枝方式的tightness和時間復(fù)雜度,我們得到一個結(jié)論,那就是看情況在流式計算中應(yīng)用所有的剪枝手段。