基于Map-Reduce的高維數(shù)據(jù)相似性連接方法和裝置制造方法
【專利摘要】本發(fā)明提出了一種基于Map-Reduce的高維數(shù)據(jù)相似性連接方法和裝置。根據(jù)本發(fā)明,采用分段累積近似方法,對(duì)多個(gè)d維數(shù)據(jù)向量中的每一個(gè)數(shù)據(jù)向量進(jìn)行降維處理,轉(zhuǎn)換為d′維數(shù)據(jù)向量;采用符號(hào)化累積近似方法,將每一個(gè)d′維數(shù)據(jù)向量轉(zhuǎn)換為d′維符號(hào)向量;兩兩計(jì)算符號(hào)向量-數(shù)據(jù)向量列表中的每一對(duì)符號(hào)向量之間的符號(hào)間距離,保留符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì),按照每個(gè)d′維符號(hào)向量進(jìn)行匯總,得到符號(hào)向量-符號(hào)向量列表;以每個(gè)d′維符號(hào)向量作為鍵值,以符號(hào)向量-數(shù)據(jù)向量列表和符號(hào)向量-符號(hào)向量列表中的數(shù)據(jù)向量列表和符號(hào)向量列表作為數(shù)值,構(gòu)建散列表;采用Map-Reduce框架,對(duì)所構(gòu)建的散列表進(jìn)行處理,輸出歐氏距離小于所述預(yù)定閾值的d維數(shù)據(jù)向量對(duì)。
【專利說明】基于Map-Reduce的高維數(shù)據(jù)相似性連接方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地,涉及一種基于Map-Reduce的高維數(shù)據(jù)相似性連接方法和裝置。
【背景技術(shù)】
[0002]在很多應(yīng)用領(lǐng)域中,對(duì)高維數(shù)據(jù)的相似性連接處理都是很重要的一個(gè)環(huán)節(jié)。例如,軌跡數(shù)據(jù)分析、時(shí)間序列數(shù)據(jù)分析、圖像搜索、人臉識(shí)別等。
[0003]高維數(shù)據(jù)的相似性連接運(yùn)算量很大,尤其是當(dāng)數(shù)據(jù)規(guī)模非常大、維度非常高時(shí)。目前,已經(jīng)提出了很多方法來(lái)提高運(yùn)算效率,例如,索引方式、降維方式等。
【發(fā)明內(nèi)容】
[0004]為了提高高維數(shù)據(jù)相似性連接的運(yùn)算效率,本發(fā)明提出了一種基于Map-Reduce的高維數(shù)據(jù)相似性連接解決方案,采用分段累積近似(Piecewise AggregateApproximat1n, PAA)和符號(hào)化累積近似(Symbolic Aggregate Approximat1n, SAX)方法來(lái)降低數(shù)據(jù)的維度,并采用Map-Reduce框架來(lái)實(shí)現(xiàn)并行處理。
[0005]根據(jù)本發(fā)明的第一方案,提出了一種高維數(shù)據(jù)相似性連接裝置,包括:
[0006]分段累積近似單元,用于采用分段累積近似方法,對(duì)多個(gè)d維數(shù)據(jù)向量中的每一個(gè)數(shù)據(jù)向量X= (χ1; x2, -,xd)進(jìn)行降維處理,按照每組λ個(gè)維度,將每一個(gè)d維數(shù)據(jù)向量X轉(zhuǎn)換為d'維數(shù)據(jù)向量A =(&,&,...,&,),其中d' =d/A,d、d'和λ是正整數(shù),&,是數(shù)據(jù)向量X在維度集合Di上的算術(shù)平均值;
[0007]符號(hào)化累積近似單元,用于采用符號(hào)化累積近似方法,保留符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì),所述符號(hào)化累積近似單元
[0008]將維度標(biāo)準(zhǔn)化值區(qū)間劃分為多個(gè)子區(qū)間,每個(gè)子區(qū)間由一個(gè)符號(hào)來(lái)表示,將每一個(gè)d'維數(shù)據(jù)向量Px轉(zhuǎn)換為d'維符號(hào)向量\,…
[0009]對(duì)d'維符號(hào)向量相同的d維數(shù)據(jù)向量進(jìn)行匯總,得到符號(hào)向量-數(shù)據(jù)向量列表Sx[X,…],SY[Y,…],…,其中Y表示d維數(shù)據(jù)向量Y =…,yd),SY表示d'維符號(hào)向量5^ =(少巧,ys,,…,Vsd.);
[0010]兩兩計(jì)算符號(hào)向量-數(shù)據(jù)向量列表中的每一對(duì)符號(hào)向量S5^PSy之間的符號(hào)間距離 Dists (Sx, Sy):
【權(quán)利要求】
1.一種高維數(shù)據(jù)相似性連接裝置,包括: 分段累積近似單元,用于采用分段累積近似方法,對(duì)多個(gè)d維數(shù)據(jù)向量中的每一個(gè)數(shù)據(jù)向量X= (X1, X2,…,Xd)進(jìn)行降維處理,按照每組λ個(gè)維度,將每一個(gè)d維數(shù)據(jù)向量X轉(zhuǎn)換為d'維數(shù)據(jù)向量^ =(&,&,...,,其中d' =d/A,d、d'和λ是正整數(shù),是數(shù)據(jù)向量X在維度集合Di上的算術(shù)平均值; 符號(hào)化累積近似單元,用于采用符號(hào)化累積近似方法,保留符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì),所述符號(hào)化累積近似單元 將維度標(biāo)準(zhǔn)化值區(qū)間劃分為多個(gè)子區(qū)間,每個(gè)子區(qū)間由一個(gè)符號(hào)來(lái)表示,將每一個(gè)d'維數(shù)據(jù)向量Px轉(zhuǎn)換為d'維符號(hào)向量& 對(duì)d'維符號(hào)向量相同的d維數(shù)據(jù)向量進(jìn)行匯總,得到符號(hào)向量-數(shù)據(jù)向量列表Sx [X,.“],SY[Y,…],...,其中Y表示d維數(shù)據(jù)向量Y = (y1;y2, "^yd),Sy表示d'維符號(hào)向量&=...,?); 兩兩計(jì)算符號(hào)向量-數(shù)據(jù)向量列表中的每一對(duì)符號(hào)向量Sx和Sy之間的符號(hào)間距離Dists(Sx, Sy):
I~之' -2 ~ Dists(Sx,SY)= (dist(xS1-ySt)),
Vi=l L」 保留符號(hào)間距離Dists(Sx,Sy)不大于預(yù)定閾值的符號(hào)對(duì),按照每個(gè)d'維符號(hào)向量進(jìn)行匯總,得到符號(hào)向量-符號(hào)向量列表Sx {SY,…},SY{SX,…...,其中dist(xS1-ySi)表示符號(hào)Xsi和ySi之間的最小距離; 散列表構(gòu)建單元,用于以每個(gè)d'維符號(hào)向量&作為鍵值,以符號(hào)向量-數(shù)據(jù)向量列表Sx[X,…]和符號(hào)向量-符號(hào)向量列表Sx{SY,…}中的數(shù)據(jù)向量列表和符號(hào)向量列表作為數(shù)值,構(gòu)建散列表
h(Sx) = ([X,…],{SY,...}),
h(SY) = ([Y,…],{Sx,…}), Map-Reduce單元,用于采用Map-Reduce框架,對(duì)所構(gòu)建的散列表進(jìn)行處理,輸出歐氏距離小于所述預(yù)定閾值的d維數(shù)據(jù)向量對(duì)。
2.根據(jù)權(quán)利要求1所述的高維數(shù)據(jù)相似性連接裝置,還包括: 預(yù)處理單元,用于對(duì)維度進(jìn)行排序,對(duì)輸入高維數(shù)據(jù)進(jìn)行預(yù)處理,生成多個(gè)d維數(shù)據(jù)向量。
3.根據(jù)權(quán)利要求2所述的高維數(shù)據(jù)相似性連接裝置,其中 所述預(yù)處理單元采用采樣方法,對(duì)維度進(jìn)行排序。
4.根據(jù)權(quán)利要求2所述的高維數(shù)據(jù)相似性連接裝置,其中 所述預(yù)處理單元采用補(bǔ)零方法,生成滿足d' =?/λ以及d、d'和λ是正整數(shù)的多個(gè)d維數(shù)據(jù)向量。
5.根據(jù)權(quán)利要求1所述的高維數(shù)據(jù)相似性連接裝置,其中所述Map-Reduce單元 將所構(gòu)建的散列表分成多個(gè)數(shù)據(jù)片,針對(duì)每個(gè)數(shù)據(jù)片,依次讀取所構(gòu)建的散列表中的每條散列項(xiàng),將鍵值依次與該散列項(xiàng)的符號(hào)向量列表中的每個(gè)符號(hào)向量組成一對(duì),作為一條輸出散列項(xiàng)的鍵值,將該散列項(xiàng)的數(shù)據(jù)向量列表作為每條輸出散列項(xiàng)的數(shù)值,構(gòu)建映射輸出
h(Sx, SY) = (X,…),
h(Sx,…)=(X,…),
h(SY,Sx) = h(Sx,SY) =(Y,…) h(SY,…)=(Y,…), 對(duì)鍵值相同的輸出散列項(xiàng)進(jìn)行匯總,對(duì)匯總后的輸出散列項(xiàng)的數(shù)值所包含的所有數(shù)據(jù)向量,兩兩計(jì)算匯總后的每一對(duì)數(shù)據(jù)向量間的歐氏距離,輸出歐氏距離小于所述預(yù)定閾值的d維數(shù)據(jù)向量對(duì)。
6.根據(jù)權(quán)利要求1所述的高維數(shù)據(jù)相似性連接裝置,其中所述符號(hào)化累積近似單元迭代執(zhí)行采用符號(hào)化累積近似方法、保留符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì)的處理,每次迭代處理以前次迭代處理的輸出作為輸入,將前次迭代處理的子區(qū)間進(jìn)一步劃分為多個(gè)更細(xì)粒度的子區(qū)間,并僅保留在更細(xì)粒度的子區(qū)間中的符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì)。
7.根據(jù)權(quán)利要求1所述的高維數(shù)據(jù)相似性連接裝置,其中每個(gè)子區(qū)間的大小相同,或者至少一個(gè)子區(qū)間的大小不同于其他子區(qū)間。
8.一種高維數(shù)據(jù)相似性連接方法,包括: 采用分段累積近似方法,對(duì)多個(gè)d維數(shù)據(jù)向量中的每一個(gè)數(shù)據(jù)向量X= (x1; x2,…,xd)進(jìn)行降維處理,按照每組λ個(gè)維度,將每一個(gè)d維數(shù)據(jù)向量X轉(zhuǎn)換為d'維數(shù)據(jù)向量& =(?,&,...,),其中d' =d/A,d、d'和λ是正整數(shù),&是數(shù)據(jù)向量X在維度集合Di上的算術(shù)平均值; 采用符號(hào)化累積近似方法,保留符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì),包括: 將維度標(biāo)準(zhǔn)化值區(qū)間劃分為多個(gè)子區(qū)間,每個(gè)子區(qū)間由一個(gè)符號(hào)來(lái)表示,將每一個(gè)d'維數(shù)據(jù)向量Px轉(zhuǎn)換為d'維符號(hào)向量& = ,%,...,xSd ); 對(duì)d'維符號(hào)向量相同的d維數(shù)據(jù)向量進(jìn)行匯總,得到符號(hào)向量-數(shù)據(jù)向量列表Sx[X,…],SY[Y,…],…,其中Y表示d維數(shù)據(jù)向量Y =…,yd),SY表示d'維符號(hào)向量= (3?,少士,…,7?,); 兩兩計(jì)算符號(hào)向量-數(shù)據(jù)向量列表中的每一對(duì)符號(hào)向量Sx和Sy之間的符號(hào)間距離Dists(Sx, Sy): I^~ Dists (SY,Sy)=(dist(xS1-ySi)f,
V 2=1 L- 保留符號(hào)間距離Dists(Sx,Sy)不大于預(yù)定閾值的符號(hào)對(duì),按照每個(gè)d'維符號(hào)向量進(jìn)行匯總,得到符號(hào)向量-符號(hào)向量列表Sx {SY,…},SY{SX,…...,其中dist(xS1-ySi)表示符號(hào)Xsi和ySi之間的最小距離; 以每個(gè)d'維符號(hào)向量Sx作為鍵值,以符號(hào)向量-數(shù)據(jù)向量列表Sx[X,…]和符號(hào)向量-符號(hào)向量列表Sx {SY,…}中的數(shù)據(jù)向量列表和符號(hào)向量列表作為數(shù)值,構(gòu)建散列表h(Sx) = ([X,…],{SY,...}),h(SY) = ([Y,…],{Sx,…}), 采用Map-Reduce框架,對(duì)所構(gòu)建的散列表進(jìn)行處理,輸出歐氏距離小于所述預(yù)定閾值的d維數(shù)據(jù)向量對(duì)。
9.根據(jù)權(quán)利要求8所述的高維數(shù)據(jù)相似性連接方法,還包括: 對(duì)維度進(jìn)行排序,對(duì)輸入高維數(shù)據(jù)進(jìn)行預(yù)處理,生成多個(gè)d維數(shù)據(jù)向量。
10.根據(jù)權(quán)利要求9所述的高維數(shù)據(jù)相似性連接方法,其中 采用采樣方法,對(duì)維度進(jìn)行排序。
11.根據(jù)權(quán)利要求9所述的高維數(shù)據(jù)相似性連接方法,其中 采用補(bǔ)零方法,生成滿足d' =?/λ以及d、d'和λ是正整數(shù)的多個(gè)d維數(shù)據(jù)向量。
12.根據(jù)權(quán)利要求8所述的高維數(shù)據(jù)相似性連接方法,其中采用Map-Reduce框架,對(duì)所構(gòu)建的散列表進(jìn)行處理包括: 將所構(gòu)建的散列表分成多個(gè)數(shù)據(jù)片,針對(duì)每個(gè)數(shù)據(jù)片,依次讀取所構(gòu)建的散列表中的每條散列項(xiàng),將鍵值依次與該散列項(xiàng)的符號(hào)向量列表中的每個(gè)符號(hào)向量組成一對(duì),作為一條輸出散列項(xiàng)的鍵值,將該散列項(xiàng)的數(shù)據(jù)向量列表作為每條輸出散列項(xiàng)的數(shù)值,構(gòu)建映射輸出
h(Sx, SY) = (X,…),
h(Sx,…)=(X,…),
h(SY,Sx) = h(Sx,SY) =(Y,…) h(SY,…)=(Y,…), 對(duì)鍵值相同的輸出散列項(xiàng)進(jìn)行匯總,對(duì)匯總后的輸出散列項(xiàng)的數(shù)值所包含的所有數(shù)據(jù)向量,兩兩計(jì)算匯總后的每一對(duì)數(shù)據(jù)向量間的歐氏距離,輸出歐氏距離小于所述預(yù)定閾值的d維數(shù)據(jù)向量對(duì)。
13.根據(jù)權(quán)利要求8所述的高維數(shù)據(jù)相似性連接方法,其中迭代執(zhí)行采用符號(hào)化累積近似方法、保留符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì)的步驟,每次迭代處理以前次迭代處理的輸出作為輸入,將前次迭代處理的子區(qū)間進(jìn)一步劃分為多個(gè)更細(xì)粒度的子區(qū)間,并僅保留在更細(xì)粒度的子區(qū)間中的符號(hào)間距離不大于預(yù)定閾值的符號(hào)對(duì)。
14.根據(jù)權(quán)利要求8所述的高維數(shù)據(jù)相似性連接方法,其中每個(gè)子區(qū)間的大小相同,或者至少一個(gè)子區(qū)間的大小不同于其他子區(qū)間。
【文檔編號(hào)】G06F17/30GK104182411SQ201310198463
【公開日】2014年12月3日 申請(qǐng)日期:2013年5月24日 優(yōu)先權(quán)日:2013年5月24日
【發(fā)明者】王少亞, 李曼 申請(qǐng)人:日電(中國(guó))有限公司