王澤奧,吳 斌,吳心宇,張子興
北京郵電大學(xué) 計(jì)算機(jī)學(xué)院,北京 100080
大規(guī)模多維網(wǎng)絡(luò)數(shù)據(jù)分析框架的研究與實(shí)現(xiàn)*
王澤奧+,吳 斌,吳心宇,張子興
北京郵電大學(xué) 計(jì)算機(jī)學(xué)院,北京 100080
隨著互聯(lián)網(wǎng)的快速發(fā)展和計(jì)算機(jī)應(yīng)用的不斷增加,大量的圖數(shù)據(jù)特別是社會(huì)網(wǎng)絡(luò)數(shù)據(jù)不斷生成。多維信息網(wǎng)絡(luò)已經(jīng)成為表示這些圖數(shù)據(jù)的通用方式。但是在多維信息網(wǎng)絡(luò)中,節(jié)點(diǎn)的類(lèi)型多種多樣,節(jié)點(diǎn)的屬性也不盡相同,如何對(duì)多維信息網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行多角度多粒度的分析,挖掘其中的隱藏信息,成為人們關(guān)注的焦點(diǎn)。圖聯(lián)機(jī)分析處理技術(shù)(graph online analytical processing,GraphOLAP)可以對(duì)圖數(shù)據(jù)進(jìn)行快速的聯(lián)機(jī)分析以及查詢(xún)操作。借助于GraphOLAP的現(xiàn)有成果,針對(duì)多維信息網(wǎng)絡(luò)的特點(diǎn),提出了新的數(shù)據(jù)立方體框架。引入主節(jié)點(diǎn)的概念來(lái)指導(dǎo)元路徑的生成,通過(guò)元路徑指導(dǎo)網(wǎng)絡(luò)的上卷下鉆,提出屬性轉(zhuǎn)化和同質(zhì)轉(zhuǎn)化來(lái)豐富OLAP操作。最后討論了優(yōu)化的物化策略,使用并行計(jì)算框架Spark來(lái)實(shí)現(xiàn)算法,通過(guò)多個(gè)數(shù)據(jù)集驗(yàn)證了框架的有效性和高效性。
GraphOLAP;數(shù)據(jù)立方體;元路徑;Spark
近年來(lái)隨著社交網(wǎng)絡(luò)、生物網(wǎng)絡(luò)以及化合物網(wǎng)絡(luò)等領(lǐng)域的不斷發(fā)展,出現(xiàn)了大量的多屬性圖數(shù)據(jù)。研究如何對(duì)圖數(shù)據(jù)進(jìn)行多層次多角度的分析有著重要的意義。這些網(wǎng)絡(luò)如DBLP合作網(wǎng)絡(luò)、社交網(wǎng)絡(luò)FACEBOOK、IMDB電影合作網(wǎng)絡(luò)等,其中蘊(yùn)含大量的實(shí)體信息以及實(shí)體之間的關(guān)聯(lián)信息,深層次挖掘此類(lèi)信息是非常有必要的。實(shí)體類(lèi)型和聯(lián)系的多元化是分析和挖掘此類(lèi)信息網(wǎng)絡(luò)的難點(diǎn)。聯(lián)機(jī)分析處理技術(shù)(online analytical processing,OLAP)能夠提供用戶從不同維度、不同粒度觀察對(duì)象的視圖,是數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)挖掘領(lǐng)域的核心技術(shù)之一,近年來(lái)得到了廣泛的研究應(yīng)用。但是OLAP基于的傳統(tǒng)數(shù)據(jù)立方體是同一種實(shí)體類(lèi)型的多維數(shù)據(jù)模型,不能有效契合圖數(shù)據(jù)分析的需求。
圖聯(lián)機(jī)分析處理技術(shù)(graph online analytical processing,GraphOLAP)結(jié)合了復(fù)雜網(wǎng)絡(luò)分析與聯(lián)機(jī)分析處理技術(shù),將數(shù)據(jù)倉(cāng)庫(kù)中專(zhuān)門(mén)用于分析多維數(shù)據(jù)的聯(lián)機(jī)分析處理技術(shù)引入到復(fù)雜網(wǎng)絡(luò)分析當(dāng)中,用來(lái)解決復(fù)雜網(wǎng)絡(luò)中的多維度多角度分析問(wèn)題,從而展示不同層次和不同粒度上的網(wǎng)絡(luò)結(jié)構(gòu)和特性。
在傳統(tǒng)信息模型中,信息存儲(chǔ)為事實(shí)表和維度表。事實(shí)表中包含所有實(shí)體及其之間的關(guān)系,維度表中包含數(shù)據(jù)的多維屬性。通過(guò)立方體來(lái)指導(dǎo)OLAP的維度操作,通過(guò)聚集函數(shù)來(lái)描述不同維度聚集時(shí)的聚集方式,通過(guò)度量來(lái)描述不同維度下的分析結(jié)果。對(duì)于多屬性圖數(shù)據(jù)來(lái)說(shuō),數(shù)據(jù)與數(shù)據(jù)之間存在關(guān)聯(lián),這些關(guān)聯(lián)蘊(yùn)含著許多隱藏信息有待挖掘與分析。但是傳統(tǒng)的數(shù)據(jù)是記錄的形式,數(shù)據(jù)之間沒(méi)有關(guān)聯(lián),利用傳統(tǒng)OLAP分析會(huì)丟掉這些關(guān)聯(lián)關(guān)系,不能對(duì)圖進(jìn)行充分有效的挖掘與分析。
對(duì)于多屬性圖的分析,除了傳統(tǒng)圖分析方法如最短路徑、中介行、模式匹配等,采用OLAP查詢(xún)來(lái)進(jìn)行信息發(fā)現(xiàn)和決策制定也有很大的發(fā)揮空間。這里根據(jù)用戶可能感興趣的點(diǎn)舉幾個(gè)簡(jiǎn)單的例子:
查詢(xún)1獲取點(diǎn)屬性或邊屬性信息。這些查詢(xún)往往能夠通過(guò)對(duì)點(diǎn)屬性或邊屬性的簡(jiǎn)單查詢(xún)得到。如“用戶群體中有多少中國(guó)人”或者是“電影都有哪些類(lèi)型”。
查詢(xún)2獲取點(diǎn)和邊的屬性組合之后的聚集信息,這些查詢(xún)需要將實(shí)體節(jié)點(diǎn)按照某一維度進(jìn)行聚集操作之后得到結(jié)果。如“有多少男人喜歡看喜劇片”“演員國(guó)籍與電影類(lèi)別之間的網(wǎng)絡(luò)結(jié)構(gòu)是什么樣子的”。
查詢(xún)3查詢(xún)特定實(shí)體關(guān)系的網(wǎng)絡(luò)屬性信息。這些查詢(xún)需要合并實(shí)體間的關(guān)系,形成新的實(shí)體關(guān)系以及新網(wǎng)絡(luò)。如“男人喜歡的電影是由哪個(gè)國(guó)家的演員參演的”。
對(duì)于查詢(xún)1,可以直接在節(jié)點(diǎn)表中進(jìn)行查詢(xún),得到節(jié)點(diǎn)的維度屬性。查詢(xún)2需要將原圖中的一些節(jié)點(diǎn)按照需要進(jìn)行聚集操作得到新的聚集網(wǎng)絡(luò)。查詢(xún)3關(guān)注的是不同實(shí)體間的相互關(guān)系,根據(jù)異質(zhì)網(wǎng)絡(luò)元路徑聚集進(jìn)一步得到新的實(shí)體關(guān)系。
傳統(tǒng)的基于RDB(relation data base)的OLAP系統(tǒng)已經(jīng)難以滿足這些查詢(xún)需求,除了查詢(xún)1中的實(shí)體類(lèi)型查詢(xún)可以基于節(jié)點(diǎn)的維度表進(jìn)行查詢(xún),其他查詢(xún)操作都要經(jīng)過(guò)多表連接操作。當(dāng)數(shù)據(jù)量很大時(shí),數(shù)據(jù)庫(kù)的多表連接經(jīng)常會(huì)成為數(shù)據(jù)庫(kù)計(jì)算的瓶頸。而且傳統(tǒng)的數(shù)據(jù)立方體也不能很好地表現(xiàn)圖的結(jié)構(gòu)以及圖的復(fù)雜網(wǎng)絡(luò)屬性。因此設(shè)計(jì)適合大規(guī)模多維信息網(wǎng)絡(luò)的立方體,建立多維信息網(wǎng)絡(luò)的OLAP操作是十分有必要的。
隨著社交網(wǎng)絡(luò)的興起,網(wǎng)絡(luò)數(shù)據(jù)的規(guī)模也在不斷增加。傳統(tǒng)的集中式計(jì)算已經(jīng)不能滿足需求,引入并行化計(jì)算框架是非常有意義的。目前,常用的并行計(jì)算框架有Hadoop、Spark,并行圖計(jì)算框架有HAMA、GraphX、GraphLab等。這些并行圖計(jì)算框架對(duì)于圖類(lèi)型數(shù)據(jù)的迭代操作有很好的優(yōu)化,能有效地計(jì)算圖的相關(guān)結(jié)構(gòu)特征,如pagerank、shortest path、bipartite matching、semi-clustering等。但是對(duì)于多維信息網(wǎng)絡(luò)的OLAP操作會(huì)導(dǎo)致節(jié)點(diǎn)數(shù)量、屬性以及節(jié)點(diǎn)間的聯(lián)系發(fā)生改變,這種改變會(huì)進(jìn)一步導(dǎo)致網(wǎng)絡(luò)結(jié)構(gòu)改變以及網(wǎng)絡(luò)類(lèi)型改變?,F(xiàn)有的圖計(jì)算框架更適用于圖遍歷的迭代操作和圖分隔的優(yōu)化操作,對(duì)于圖中節(jié)點(diǎn)類(lèi)型以及拓?fù)浣Y(jié)構(gòu)發(fā)生重大變化的支持并不是很好。傳統(tǒng)的并行計(jì)算框架Hadoop和Spark雖然不是專(zhuān)門(mén)為了圖計(jì)算設(shè)計(jì),但是通過(guò)建立合適的圖立方體模型,也可以進(jìn)行圖的挖掘分析[1]。因此選用Spark來(lái)完成對(duì)于立方體的相關(guān)操作。
在這些需求的引導(dǎo)下,本文提出了一種新的數(shù)據(jù)立方體模型,引入了主節(jié)點(diǎn)的概念,融入異質(zhì)網(wǎng)絡(luò)特性,并基于新的數(shù)據(jù)立方體模型賦予傳統(tǒng)的上卷下鉆新的含義。針對(duì)新的模型,設(shè)計(jì)了更多新的OLAP操作,為豐富查詢(xún)提供了模型上的支持。為了挖掘圖中的隱藏信息,設(shè)計(jì)了帶多維層次聚類(lèi)算法來(lái)進(jìn)行群體劃分和特征分析。為了提高查詢(xún)效率,設(shè)計(jì)了優(yōu)化的物化策略。模型是用并行化計(jì)算框架Spark完成的,支持大規(guī)模多維信息網(wǎng)絡(luò)的分析處理。通過(guò)多個(gè)真實(shí)網(wǎng)絡(luò)數(shù)據(jù)集實(shí)驗(yàn),驗(yàn)證了模型的有效性和高效性。
本文的貢獻(xiàn)如下:
(1)定義了新的數(shù)據(jù)立方體模型StarGraphCube,將主節(jié)點(diǎn)的概念引入進(jìn)來(lái)指導(dǎo)網(wǎng)絡(luò)元路徑的生成,由網(wǎng)絡(luò)元路徑指導(dǎo)OLAP操作的進(jìn)行。并且根據(jù)立方體模型,豐富了GraphOLAP的操作,使得網(wǎng)絡(luò)分析更加多樣性。
(2)針對(duì)新的模型,提出了優(yōu)化的物化策略,使得維度操作的效率更高。
(3)使用并行計(jì)算框架實(shí)現(xiàn),通過(guò)對(duì)大規(guī)模真實(shí)數(shù)據(jù)的實(shí)驗(yàn),驗(yàn)證了模型對(duì)大規(guī)模數(shù)據(jù)能夠進(jìn)行有效并且高效的分析。
本文組織結(jié)構(gòu)如下:第2章定義了StarGraph-Cube模型以及一些新的OLAP分析操作;第3章討論了優(yōu)化的物化策略;第4章是模型在大規(guī)模數(shù)據(jù)集上的實(shí)驗(yàn);第5章介紹相關(guān)工作;第6章總結(jié)全文。
和傳統(tǒng)的OLAP立方體模型一樣,GraphOLAP需要通過(guò)數(shù)據(jù)立方體模型建立圖和數(shù)據(jù)倉(cāng)庫(kù)之間的關(guān)聯(lián)[2]。本文建立StarGraphCube模型,引入主節(jié)點(diǎn)的概念指導(dǎo)網(wǎng)絡(luò)元路徑的生成,能夠分析挖掘更多的潛在信息。
首先定義一些概念來(lái)清晰地描述本文的模型。由于現(xiàn)實(shí)中很多網(wǎng)絡(luò)可以被抽象成多維異質(zhì)信息網(wǎng)絡(luò),可以定義如下。
定義1(多維異質(zhì)信息網(wǎng)絡(luò))一個(gè)多維異質(zhì)信息網(wǎng)絡(luò)N表示為N=(V,E,T,A),其中V表示節(jié)點(diǎn)的集合;E?V×V表示邊集合;T={T1,T2,…,Tn}表示節(jié)點(diǎn)的類(lèi)型集合,?u∈V,由于T(u)=Ti,1≤i≤n,即每個(gè)節(jié)點(diǎn),只能取值一種節(jié)點(diǎn)類(lèi)型,當(dāng)n>1時(shí),網(wǎng)絡(luò)為異質(zhì)網(wǎng)絡(luò);A={A1,A2,…,An}表示不同類(lèi)型節(jié)點(diǎn)的維度屬性集合,與節(jié)點(diǎn)類(lèi)型對(duì)應(yīng),每一種節(jié)點(diǎn)類(lèi)型Ti有相應(yīng)的維度屬性集合Ai=(Ai1,Ai2,…,Aim)。對(duì)于?v∈V,T(v)=Tj,1≤j≤n,都有一個(gè)維度元組A(v)=(Aj1(v),Aj2(v),…,Ajm(v)),其中Ajk(v)表示節(jié)點(diǎn)v上的第k個(gè)屬性,即節(jié)點(diǎn)的第k維,1≤k≤m。
定義2(二元關(guān)系元路徑)對(duì)于多維異質(zhì)信息網(wǎng)絡(luò)模型N=(V,E,T,A),V是節(jié)點(diǎn)集合,E是節(jié)點(diǎn)的關(guān)系集合,T為節(jié)點(diǎn)的類(lèi)型集合,A為節(jié)點(diǎn)的維度屬性集合。二元關(guān)系元路徑可表示為P(T1,Tn,list)=T1→T2→…→Ti→…→Tn,其中T1表示二元關(guān)系元路徑的起點(diǎn),Tn表示二元關(guān)系元路徑的終點(diǎn),Ti表示元路徑中第i個(gè)節(jié)點(diǎn)類(lèi)型,list表示二元關(guān)系路徑起點(diǎn)與終點(diǎn)間的路徑節(jié)點(diǎn)列表,路徑長(zhǎng)度為|list|+1;Ti→Ti+1是異質(zhì)網(wǎng)絡(luò)Schema的一條連通路徑。當(dāng)關(guān)系元路徑確定時(shí),可以用P(T1,Tn)來(lái)代表P(T1,Tn,list)。為了簡(jiǎn)化問(wèn)題,不允許除了起點(diǎn)和終點(diǎn)的路徑上存在環(huán)。
關(guān)系元路徑代表了不同類(lèi)型節(jié)點(diǎn)之間的關(guān)系連接。兩個(gè)不同類(lèi)型的節(jié)點(diǎn)實(shí)體的關(guān)系路徑可能會(huì)存在多條,定義二元關(guān)系元路徑集合來(lái)表示這些起點(diǎn)和終點(diǎn)相同的元路徑集合。
定義3(二元關(guān)系元路徑集合)關(guān)系元路徑的定義基于異質(zhì)信息網(wǎng)絡(luò)模型N=(V,E,T,A),V是節(jié)點(diǎn)集合,E是節(jié)點(diǎn)的關(guān)系集合,T為節(jié)點(diǎn)的類(lèi)型集合,A為節(jié)點(diǎn)的維度屬性集合。對(duì)于給定的兩個(gè)實(shí)體T1與Tn,兩個(gè)實(shí)體間可能存在多條可達(dá)路徑(規(guī)定除去起點(diǎn)與終點(diǎn)的路徑中不存在環(huán)),這些路徑的集合為二元關(guān)系元路徑集合,表示為Pset(T1,Tn)={P(T1,Tn,list1),P(T1,Tn,list2),…,P(T1,Tn,listn)}。
定義4(n元關(guān)系元路徑)基于異質(zhì)信息網(wǎng)絡(luò)模型N=(V,E,T,A),V是節(jié)點(diǎn)集合,E是節(jié)點(diǎn)的關(guān)系集合,T為節(jié)點(diǎn)的類(lèi)型集合,A為節(jié)點(diǎn)的維度屬性集合。n元關(guān)系元路徑可表示為P(T1,T2,…,Ti,…,Tn,list)=T1→T2→…→Ti→…→Tn,其中Ti表示n元中的第i元節(jié)點(diǎn)類(lèi)型,list記錄了n元關(guān)系路徑除去起點(diǎn)T1與終點(diǎn)Tn的路徑序列。最終的n元關(guān)系元路徑是異質(zhì)網(wǎng)絡(luò)Schema的一條路徑,并且該路徑依次經(jīng)過(guò)T1,T2,…,Ti,…,Tn。同樣,規(guī)定相鄰類(lèi)型之間的路徑不存在環(huán),即Ti→…→Ti+1的路徑中不存在環(huán)。當(dāng)n=2時(shí),n元關(guān)系元路徑為二元關(guān)系元路徑。
定義5(n元關(guān)系元路徑集合)基于異質(zhì)信息網(wǎng)絡(luò)模型N=(V,E,T,A)與n元關(guān)系元路徑的定義,對(duì)于給定的n個(gè)實(shí)體的序列,在異質(zhì)網(wǎng)絡(luò)Schema中可能會(huì)存在多條通過(guò)這些類(lèi)型節(jié)點(diǎn)的n元關(guān)系元路徑,所有路徑形成的集合為n元關(guān)系元路徑集合,表示為Pset(T1,T2,…,Tn)={P(T1,T2,…,Tn,list1),P(T1,T2,…,Tn,list2),…,P(T1,T2,…,Tn,listn)}。n=2時(shí),n元關(guān)系元路徑集合為二元關(guān)系元路徑集合。
定義6(實(shí)體類(lèi)型主節(jié)點(diǎn))給定一個(gè)異質(zhì)信息網(wǎng)絡(luò)N=(V,E,T,A),其中T={Ti|i=1,2,…,n}。針對(duì)每個(gè)節(jié)點(diǎn)類(lèi)型Ti,引入主節(jié)點(diǎn)VTi={Vi|T=Ti}代表同類(lèi)型的所有節(jié)點(diǎn)。用R表示所有主節(jié)點(diǎn)的集合,V′=V∪R,E′=E,A′=A,則異質(zhì)信息網(wǎng)絡(luò)可以表示為N′=(V′,E′,A′)。
引入主節(jié)點(diǎn)之后可以指導(dǎo)網(wǎng)絡(luò)元路徑的生成。對(duì)于n元關(guān)系元路徑P(T1,T2,…,Ti,…,Tn,list)=T1→T2→…→Ti→…→Tn的生成,可以分為兩步進(jìn)行:第一步,用主節(jié)點(diǎn)來(lái)構(gòu)建元路徑;第二步在每個(gè)主節(jié)點(diǎn)中VTi=V1→V2→…→Vi→…→Vn。
定義7(二元關(guān)系元路徑聚集網(wǎng)絡(luò))給定一個(gè)異質(zhì)信息網(wǎng)絡(luò)N=(V,E,T,A)以及一條二元關(guān)系元路徑P(T1,T2,…,Ti,…,Tn,list)=T1→T2→ … →Ti→ … →Tn。在二元關(guān)系元路徑的指導(dǎo)下,將T1→T2→…→Ti→…→Tn轉(zhuǎn)換為;再合并為,形成聚集網(wǎng)絡(luò)N′=(V′,E′,T′,A′),其中T′={T1,Tn},A′={A1,An},V′是類(lèi)型為T(mén)1、Tn的節(jié)點(diǎn)集合,E′是合并形成的節(jié)點(diǎn)的邊集合。
定義8(n元關(guān)系元路徑聚集網(wǎng)絡(luò))給定一個(gè)異質(zhì)信息網(wǎng)絡(luò)N=(V,E,T,A)以及一條n元關(guān)系元路徑P(T1,T2,…,Ti,…,Tn,list),在n元關(guān)系元路徑的作用下,與二元關(guān)系元路徑網(wǎng)絡(luò)的聚集方式相同,將網(wǎng)絡(luò)中不同節(jié)點(diǎn)的類(lèi)型按照關(guān)系元路徑P(T1,T2,…,Ti,…,Tn,list)合并成聚集網(wǎng)絡(luò)N′=(V′,E′,T′,A′),其中T′={T1,T2,…,Tn},A′={A1,A2,…,An},V′是類(lèi)型為T(mén)1,T2,…,Tn的節(jié)點(diǎn)集合,E′是合并形成的節(jié)點(diǎn)的邊集合。
對(duì)于由原始網(wǎng)絡(luò)可以得到的n元關(guān)系元路徑聚集網(wǎng)絡(luò)Nn與n+1元關(guān)系元路徑聚集網(wǎng)絡(luò)Nn+1,由Nn+1不一定能夠得到n元關(guān)系元路徑聚集網(wǎng)絡(luò)Nn。
本文提出StarGraphCube模型,能夠?qū)Χ嗑S異質(zhì)信息網(wǎng)絡(luò)進(jìn)行更加豐富的OLAP操作。
定義9(StarGraphCube)給定一個(gè)多維異質(zhì)信息網(wǎng)絡(luò)N=(V,E,T,A),網(wǎng)絡(luò)中一共有n種不同類(lèi)型的節(jié)點(diǎn),對(duì)于第Ti種類(lèi)型的節(jié)點(diǎn)共有|Ai|種不同的維度屬性,通過(guò)這些不同類(lèi)型節(jié)點(diǎn)以及不同維度進(jìn)行所有可能的聚集組合得到。將聚合操作分成兩步:第一步通過(guò)主節(jié)點(diǎn)構(gòu)建n元關(guān)系元路徑P(T1,T2,…,Ti,…,Tn,list),得到n元關(guān)系元路徑聚集網(wǎng)絡(luò);第二步通過(guò)在主節(jié)點(diǎn)內(nèi)進(jìn)行某一維度的聚集,選定特定的維度集合A′,得到最終的聚集網(wǎng)絡(luò)。通過(guò)對(duì)聚集網(wǎng)絡(luò)進(jìn)行查詢(xún)操作,能夠便于OLAP操作,對(duì)于進(jìn)一步處理有著重要的意義。
StarGraphCube首先根據(jù)關(guān)系元路徑的指導(dǎo)在主節(jié)點(diǎn)構(gòu)成實(shí)體立方體,立方體的每個(gè)方體是對(duì)應(yīng)的n元關(guān)系元路徑合集,每一個(gè)實(shí)體方體可以產(chǎn)生2|T|-1個(gè)聚集方體,每個(gè)方體對(duì)應(yīng)的n元關(guān)系元路徑集合包含的關(guān)系元路徑不確定,因此聚集網(wǎng)絡(luò)的數(shù)量不能確定。對(duì)于聚集得到的實(shí)體方體,在n元關(guān)系元路徑的指導(dǎo)下進(jìn)一步聚集,有n種節(jié)點(diǎn)類(lèi)型T1,T2,…,Tn,對(duì)應(yīng)維度A1,A2,…,An一共有個(gè)聚集立方體。
圖1(a)展示了異質(zhì)網(wǎng)絡(luò)的架構(gòu)。一共有3種實(shí)體A、B、C。A對(duì)應(yīng)于User,B對(duì)應(yīng)于Movie,C對(duì)應(yīng)于Actor。A有1個(gè)維度屬性,B有兩個(gè)維度屬性,C有兩個(gè)維度屬性。該多維異質(zhì)網(wǎng)絡(luò)形成的實(shí)體關(guān)系體模型如圖1(b)所示,共可以形成23-1=7個(gè)聚集方體,其中<*,*,*>為特殊方體,每個(gè)方體中可能包括多條元路徑,如方體