一種基于gpu集群的多維大數(shù)據(jù)因子化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信號(hào)分析技術(shù)領(lǐng)域,涉及一種多維大數(shù)據(jù)分析方法,尤其涉及一種基 于GPU集群的高效多維大數(shù)據(jù)因子化方法。
【背景技術(shù)】
[0002] 基于數(shù)據(jù)分析的復(fù)雜應(yīng)用中,要在分解過程中反映大規(guī)模張量的動(dòng)力學(xué)特性,同 時(shí)還不引起大的數(shù)據(jù)形變,在數(shù)據(jù)規(guī)模與數(shù)據(jù)維度不斷增加的今天面臨越來越大的挑戰(zhàn)。 從多維數(shù)據(jù)中找到數(shù)據(jù)的有用信息在如今的科學(xué)和工程中越來越重要,如特征提取、降維 處理。二維數(shù)據(jù)分解方法,如奇異值分解法(SVD),主成分分析法(PCA),獨(dú)立成分分析法 (ICA),直接把這些方法應(yīng)用于高維數(shù)據(jù)的分解會(huì)丟失不同維度間的對(duì)應(yīng)關(guān)系。相對(duì)地,平 行因子分析(PARAFAC),規(guī)范多階分解(CPD) ,Tucker模型更適用于三維或者更高維數(shù)據(jù)的 分解,并都能通過ALS方法求解。PARAFAC相比Tucker更易解釋,避免了二維方式中典型的 的旋轉(zhuǎn)自由問題,同時(shí)保證解是獨(dú)立的。
[0003] 為了提高高維數(shù)據(jù)的張量分解效果,研究者作了兩類探索,優(yōu)化計(jì)算因子的過程 以及用高性能計(jì)算設(shè)備促進(jìn)分解過程。最顯著的工作有:[文獻(xiàn)l]Rajih提出的ELS能加 速收斂,其基本思想是尋找最佳松弛因子。[文獻(xiàn)2、文獻(xiàn)3]計(jì)算Hadmard內(nèi)積和小矩陣而 非Khatri-Rao內(nèi)積以及大矩陣相乘,基于平行框架,該方法能處理大規(guī)模數(shù)據(jù)。
[0004] PARAFAC能對(duì)任意大小和維度的數(shù)據(jù)進(jìn)行分析,然而它的計(jì)算復(fù)雜度高,對(duì)計(jì)算機(jī) 的性能要求也高,因此用滑動(dòng)窗分割整個(gè)數(shù)據(jù),并用PARAFAC對(duì)某個(gè)維度上的數(shù)據(jù)進(jìn)行逐 個(gè)分析便得以應(yīng)用,這奠定了大數(shù)據(jù)動(dòng)態(tài)張量分析的基礎(chǔ),該理論下數(shù)據(jù)的直接融合使得 數(shù)據(jù)間的相關(guān)性部分丟失,得到的因果聯(lián)合因子難以反映原始數(shù)據(jù)的動(dòng)力學(xué)特性。
[0005] 為了解決大規(guī)模數(shù)據(jù)的問題,PARAFAC數(shù)學(xué)理論有了一定創(chuàng)新,將大規(guī)模數(shù)據(jù)看作 小數(shù)據(jù)的網(wǎng)格化,即grid PARAFAC ([文獻(xiàn)4]),該方法將張量的分解轉(zhuǎn)化為獨(dú)立的張量子 集的分解,融合張量子集結(jié)果的輸出能得到張量的全部因子,這種方式是有效的,但是面臨 兩大問題,計(jì)算資源不足以及張量子集分割引起的結(jié)果分化。
[0006] [文獻(xiàn) 1]M. Rajih,P. Comon,and R. A. Harshman,"Enhanced line search:Anovel method to accelerate parafac,''SIAM Journal on Matrix Analysisand Applications, vol. 30, no. 3, pp. 1128 - 1147, 2008.
[0007] [文獻(xiàn) 2] A. H. Phan and A. Cichocki,"Advances in parafac using parallelbl ock decomposition,',in Neural Information Processing, ser.NeuralInformation Processing. Springer Berlin Heidelberg, 2009, pp. 323 - 330.
[0008] [文獻(xiàn) 3] A. Huy Phan and A. Cichocki,"Parafac algorithms for large-scale problems,''Neurocomputing,vol. 74, no. 11,pp. 1970 - 1984, 2011.
[0009] [文獻(xiàn) 4]R. A. Harshman and M. E. Lundy,"Parafac:Parallel factor analysis, ''Computational Statistics&Data Analysis, vol. 18, no. I, pp. 39 - 72,1994.
【發(fā)明內(nèi)容】
[0010] 針對(duì)現(xiàn)有方法的不足,本發(fā)明提出了一種基于GPU集群的高效多維大數(shù)據(jù)因子化 方法,即H-PARAFAC框架,該框架基于grid PARAFAC,包含由一個(gè)粗粒度模型下整合張量子 集的過程以及細(xì)粒度模型下計(jì)算每個(gè)張量子集和并行融合因子子集的過程。該框架在由多 個(gè)節(jié)點(diǎn)組成的集群上運(yùn)行,每個(gè)節(jié)點(diǎn)包含多臺(tái)GPU?;贕PU設(shè)備上的張量分解充分應(yīng)用其 強(qiáng)大的并行計(jì)算能力和并行化資源,可以大大減少獲得張量因子的執(zhí)行時(shí)間,提高大規(guī)模 數(shù)據(jù)處理能力,很好的解決計(jì)算資源不足等問題。
[0011] 本發(fā)明所采用的技術(shù)方案是:一種基于GPU集群的多維大數(shù)據(jù)因子化方法,其特 征在于,包括以下步驟:
[0012] 步驟1 :搭建PARAFAC模型;
[0013] PARAFAC模型基于初始化模型由矩陣A,B,C給出,張量由λ表示,公式如下:
[0015] 步驟2 :搭建網(wǎng)格PARAFAC模型和m-ALS ;
[0016] 網(wǎng)格PARAFAC模型把張量Y看做張量子集#的組合:
是張量的η模式內(nèi)積,A ^和 Uw是第N號(hào)張量的第η個(gè)因子,是:?的第i個(gè)數(shù);
[0020] 張量Y的全因子A(1)能用m-ALS從因子子集碑> 得到:
[0022] 所有的張量子集;首先被傳統(tǒng)ALS方法分解并獲得其因子:
[0024] 中間變量P和Q由張量子集的因子初始化:
[0027] 其中:?表示 Hadmard 積;
[0028] 步驟3 :搭建層次化平行因子分析模型Η-PARAFAC ;
[0029] 層次化平行因子分析模型Η-PARAFAC在由多個(gè)節(jié)點(diǎn)組成的集群上運(yùn)行,每個(gè)節(jié)點(diǎn) 包含多核CPU和多個(gè)GPU;所述的集群為分布式共享系統(tǒng)DSM,節(jié)點(diǎn)間通過無線寬帶連接,通 過MPI彼此反饋,在該集群上運(yùn)行的粗粒度模型管理該計(jì)算進(jìn)程;
[0030] 所述的層次化平行因子分析模型Η-PARAFAC含多POSIX線程處理,每個(gè)線程分配 一臺(tái)GPU設(shè)備,并以多共發(fā)CUDA模式給GPU分配數(shù)據(jù)和計(jì)算任務(wù),層次化平行因子分析模 型Η-PARAFAC在設(shè)備和節(jié)點(diǎn)間同步更新數(shù)據(jù);所有的計(jì)算任務(wù)由細(xì)粒度模型在GPUs上執(zhí) 行,所述的層次化平行因子分析模型H-PARAFAC以并行方式分解張量子集和實(shí)現(xiàn)m-ALS算 法,并行Hadamard運(yùn)算方式使得m-ALS算法能并行獲得全部的張量;
[0031] 步驟4 :搭建粗粒度模型;
[0032] 所述的粗粒度模型在分布式共享存儲(chǔ)結(jié)構(gòu)上運(yùn)行,所述的層次化平行因子分析模 型H-PARAFAC作為能實(shí)現(xiàn)用戶透明的一種功能,該功能通過隱藏具體的潛在的多點(diǎn)接口 MPI、通用并行計(jì)算架構(gòu)CUDA中間軟件和其它硬件實(shí)現(xiàn);主要包括粗粒度模型驅(qū)動(dòng)的層次 化平行因子分析模型H-PARAFAC的執(zhí)行和張量分割方法;
[0033] 步驟5 :搭建精煉并行模型;
[0034] 精煉并行模型用CUDA線程負(fù)責(zé)張量子集因子的評(píng)估,主要包括因子子集的初始 化、對(duì)稱數(shù)據(jù)傳輸、并行Hadmard積的計(jì)算和智能分割。
[0035] 作為優(yōu)選,步驟2中所述的m-ALS具體計(jì)算,它通過梯度代價(jià)函數(shù)最小標(biāo)準(zhǔn)歐式距 離從而連接水平方向的>,在m-ALS迭代過程中,在算第i維度時(shí),張量子集的因子都 能算到,同一塊的張量子集因子組合成,當(dāng)所有維度都迭代過一次,因子子集由下述公 式連接:
表選擇,所有因子子集更新后,中間張量P和Q 也將更新,以備下次迭代:
[0041] 作為優(yōu)選,步驟4中所述的粗粒度模型驅(qū)動(dòng)的層次化平行因子分析模型 H-PARAFAC的執(zhí)行,其具體實(shí)現(xiàn)包括以下子步驟:
[0042] (1)初始化 GPUs ;
[0043] (2)評(píng)估公式(5)中張量子集U的因子;
[0044] (3)通過公式(6)和(7)中的學(xué)習(xí)規(guī)則計(jì)算中間張量(P,Q);
[0045] (4)計(jì)算每維的塊:主機(jī)端的線程控制設(shè)備;
[0046] ①由公式(8) (9)的學(xué)習(xí)法則結(jié)合塊間因子T,S ;
[0047] ②由公式(10)的學(xué)習(xí)法則更新因子子集A ;
[0048] ③由公式(11)的學(xué)習(xí)法則更新張量(P,Q);
[0049] (5)從設(shè)備端獲取因子子集A ;
[0050] (6)通過無線寬帶和MPI全局更新因子子集A和中間張量(P,Q);
[