一種基于混合層次聚類的rdf數(shù)據(jù)平衡分割算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種基于混合層次聚類的RDF數(shù)據(jù)平衡分 割算法。
【背景技術(shù)】
[0002] RDF(resource description framework)是由WWW提出的對萬維網(wǎng)上信息進行描 述的一個框架,它為Web上的各種應(yīng)用提供信息描述規(guī)范。它用主語表示信息實體或概念, 謂語表示實體所具有的相關(guān)屬性,賓語表示對應(yīng)的屬性值。這種簡單的表述方式可以用來 表示W(wǎng)eb上的任意被標(biāo)識的信息,為在應(yīng)用程序之間交換數(shù)據(jù)提供了互操作性。因此,RDF 數(shù)據(jù)被廣泛應(yīng)用于多種領(lǐng)域的元數(shù)據(jù)描述。如Wikipedia,DBLP等都用RDF表達它們的元 數(shù)據(jù),IBM智慧地球的研究中也廣泛采用RDF數(shù)據(jù)描述和集成語義。
[0003] 隨著RDF數(shù)據(jù)的廣泛應(yīng)用,RDF數(shù)據(jù)規(guī)模急劇增加,原始的單機存儲RDF數(shù)據(jù)在存 儲和查詢上遇到了性能瓶頸,分布式的存儲方案是解決大規(guī)模RDF數(shù)據(jù)存儲的一種常用的 解決方案。而RDF數(shù)據(jù)的分布式存儲面臨的一個關(guān)鍵問題是RDF的數(shù)據(jù)分割,不同的數(shù)據(jù) 分割方式在數(shù)據(jù)的查詢性能和節(jié)點間通信上有很大差異。
[0004] 基于三元組的水平或垂直分割方式,在劃分?jǐn)?shù)據(jù)時忽略了元組間關(guān)聯(lián)性,因此在 執(zhí)行查詢時,存儲節(jié)點間需要傳遞大量信息完成子句的關(guān)聯(lián)查詢。
[0005] 基于圖的分割方式可以將邏輯上相連的數(shù)據(jù)劃分到一個存儲節(jié)點,使大部分查詢 子句的連接能夠在存儲節(jié)點內(nèi)部完成,減少了存儲節(jié)點間數(shù)據(jù)通信量,提高了數(shù)據(jù)并行查 詢可能性。
[0006] 基于圖的分割算法主要包括網(wǎng)格劃分算法、譜聚類算法、啟發(fā)式算法和多層劃分 算法。網(wǎng)格劃分根據(jù)統(tǒng)計和估算不同區(qū)域的網(wǎng)格單元個數(shù),使各區(qū)域的網(wǎng)格單元個數(shù)盡可 能相等,從而得到較平衡的劃分結(jié)果。由于網(wǎng)格劃分方法所依據(jù)的不是結(jié)點間的連接信息, 而是一個已有的網(wǎng)格單元組結(jié)構(gòu),因此網(wǎng)格劃分方法更適用于已知結(jié)點坐標(biāo)信息的情況, 盡管也有算法能夠根據(jù)結(jié)點的連接信息計算出結(jié)點的坐標(biāo),但是時間消耗太大。
[0007] 譜聚類算法建立在譜圖理論基礎(chǔ)上,與傳統(tǒng)的聚類算法相比,具有它能在任意形 狀的樣本空間上聚類且收斂于全局最優(yōu)解的優(yōu)點,其本質(zhì)是將聚類問題轉(zhuǎn)化為圖的最優(yōu)劃 分問題。該算法首先根據(jù)給定的樣本數(shù)據(jù)集定義一個描述成對數(shù)據(jù)點相似度的矩陣,并且 計算矩陣的特征值和特征向量,然后選擇合適的特征向量聚類不同的數(shù)據(jù)點。譜聚類算法 的聚類過程中需要求解矩陣的特征值與特征向量,處理大規(guī)模數(shù)據(jù)集的時候,求解過程不 但非常耗時,而且所需要的內(nèi)存空間也非常大,面臨著內(nèi)存溢出的危險,對計算機內(nèi)存容量 和處理速度都要求很高。
[0008]啟發(fā)式方法不關(guān)注區(qū)域網(wǎng)格單元的個數(shù),盡可能把連接關(guān)系密切的節(jié)點劃分在一 個區(qū)域,常用的啟發(fā)算法包括廣度優(yōu)先劃分、KL/FM方法。廣度優(yōu)先劃分方法從某一個結(jié)點 開始,通過加入相鄰的結(jié)點來逐漸增大所在區(qū)域,并盡可能地把相連的結(jié)點都劃分到同一 個區(qū)域。KL/FM算法是啟發(fā)式劃分方法中較為典型的算法。KL/FM方法本質(zhì)上是對圖的再 劃分。即已經(jīng)存在一個圖的初始劃分,或者是一個圖的隨機劃分,在此基礎(chǔ)之上進行較少次 數(shù)的節(jié)點調(diào)整,從而減少邊割數(shù)。啟發(fā)式方法對數(shù)據(jù)的初始化要求較高,因此要進行多次初 始化,從結(jié)果中選擇最好的劃分。
[0009] KL/FM算法通常只能處理IO4個頂點規(guī)模以內(nèi)的圖,為了處理規(guī)模較大的圖, Kumar、Hendrickson、Hauck等人都各自提出了多層次的圖劃分框METIS。METIS算法包括 三個階段:粗化,分割和反粗化。即首先通過粗化將大圖縮減成可接受的小圖,然后在小圖 上采用一定的分割算法進行劃分,劃分好后再通過反粗糙化將小圖上的劃分還原成原圖上 的劃分。METIS可以處理百萬規(guī)模以內(nèi)的大圖,為了處理更大規(guī)模的數(shù)據(jù),Kumar等人又提 出了并行版本的METIS-ParMetis,其能處理千萬頂點規(guī)模的大圖。METIS框架執(zhí)行圖分割 時效率非常高,但算法執(zhí)行前要對輸入數(shù)據(jù)進行轉(zhuǎn)換,此轉(zhuǎn)換效率非常高。
[0010] Shang等人在層次聚類思想基礎(chǔ)上,利用FS (Fast Sampling)算法在稀疏圖上選 擇圖中代表性的數(shù)據(jù)點,然后利用譜聚類算法對這些數(shù)據(jù)點進行分割,最后對分割圖進行 反粗化,但該算法沒有考慮圖分割平衡性問題。
[0011] 針對圖的分割算法很多,但這些算法都有各自的局限性,當(dāng)面臨大規(guī)模RDF數(shù)據(jù) 時,這些算法并沒有真正的從RDF數(shù)據(jù)本身特性出發(fā),實現(xiàn)有效性分割存儲。因此隨著RDF 數(shù)據(jù)的大量增長,RDF數(shù)據(jù)應(yīng)用范圍擴大,一種有效的RDF分割是十分有必要的。
【發(fā)明內(nèi)容】
[0012] 隨著RDF數(shù)據(jù)應(yīng)用領(lǐng)域的不斷擴大,其數(shù)據(jù)規(guī)模越來越大,由于內(nèi)存和CPU的限 制,單機存儲和查詢大規(guī)模RDF數(shù)據(jù)出現(xiàn)瓶頸,分布式存儲是一種解決大規(guī)模RDF數(shù)據(jù)存儲 和查詢的有效方法,有效的數(shù)據(jù)分割是實現(xiàn)分布式存儲的前提。本發(fā)明探究一種基于混合 層次聚類的RDF數(shù)據(jù)平衡分割算法,包括以下步驟:
[0013] 步驟1、基于節(jié)點合并和移除的RDF數(shù)據(jù)預(yù)處理;
[0014] 步驟2、基于鄰域和交互邊的兩種相似性度量方法;
[0015] 步驟3、基于AP的多層次聚類;
[0016] 步驟4、層次聚類的平衡調(diào)整;
[0017] 步驟5、基于κ-means的圖分割算法。
【附圖說明】
[0018] 圖1為混合層次聚類的RDF數(shù)據(jù)平衡分割算法框架圖。
[0019] 圖2為移除不同高度數(shù)節(jié)點的邊割比例變化情況。
[0020] 圖3為移除不同高度數(shù)節(jié)點算法執(zhí)行效率。
[0021] 圖4為平衡分割算法與FAP算法的邊割比對比。
[0022] 圖5為平衡分割算法與FAP算法的執(zhí)行效率對比。
【具體實施方式】
[0023] 下面結(jié)合附圖對本發(fā)明實施例做進一步說明。
[0024] 圖1為混合層次聚類的RDF數(shù)據(jù)平衡分割算法框架圖,本發(fā)明考慮RDF數(shù)據(jù)本身 特性,對于一個給定的RDF圖,其圖中節(jié)點分為資源節(jié)點和值節(jié)點兩類,其中有部分值節(jié)點 只屬于某一個資源節(jié)點,即資源節(jié)點存在一個屬性,其值在RDF圖中是唯一的,為了降低圖 分割時的計算量,本發(fā)明將此類節(jié)點合并到其資源節(jié)點中,邏輯上合成一個數(shù)據(jù)點實現(xiàn)圖 的壓縮。另外,RDF圖中高鄰域節(jié)點嚴(yán)重影響分割和查詢性能,因此本發(fā)明針對高鄰域節(jié)點 進行移除處理,該方法對于降低邊割比和分割執(zhí)行效率效果顯著。
[0025] RDF圖分割需要計算節(jié)點間相似性,本發(fā)明基于分割時邊割比的考慮,定義基于鄰 域和交互邊兩種不同的節(jié)點相似度計算方法,這兩種方法分別用于原始圖和數(shù)據(jù)塊兒頂點 圖兩種不同節(jié)點相似性的計算。初始時,對原始圖采用基于鄰域的節(jié)點相似度計算方法,當(dāng) 對圖粗化,圖的頂點聚類成數(shù)據(jù)塊兒后采用交互邊相似度計算方法。
[0026] 算法執(zhí)行首先采用AP聚類自動將聯(lián)系緊密的節(jié)點聚類成一個數(shù)據(jù)塊兒,由于 分布式存儲最終制定存儲節(jié)點數(shù)目,因此后繼聚類可以根據(jù)實際計算能力和需求采用 k-means聚類實現(xiàn)最終指定數(shù)目的分割。
[0027] 具有步驟如下:
[0028] 1、一種基于混合層次聚類的RDF數(shù)據(jù)平衡分割算法,包括如下步驟:
[0029] 步驟1、基于節(jié)點合并和移除的RDF數(shù)據(jù)預(yù)處理;
[0030] 步驟2、基于鄰域和交互邊的兩種相似性度量方法;
[0031] 步驟3、基于AP的多層次聚類;
[0032] 步驟4、層次聚類的平衡調(diào)整;
[0033] 步驟5、基于K-means的圖分割算法。
[0034] 步驟1、基于節(jié)點合并和移除的RDF數(shù)據(jù)預(yù)處理:
[0035] 以RDF圖節(jié)點壓縮和節(jié)點移除為基礎(chǔ)的數(shù)據(jù)預(yù)處理,節(jié)點壓縮針對唯一屬性值節(jié) 點,節(jié)點移除針對高鄰域節(jié)點,降低RDF圖中參與聚類節(jié)點數(shù)目。
[0036] 1)節(jié)點合并
[0037] 給定RDF圖G= (V,E),其中V = VeU V :表示圖中節(jié)點的集合,VeR表實體節(jié)點, V1表示屬性值節(jié)點。E= R(VhVj)IvDVje V} =E1^U Ea表示有向邊的集合,其中E/f戈表 關(guān)系邊,Ea代表屬性邊。
[0038] 在RDF有向圖中,如果屬性邊Ea所對應(yīng)的屬性值節(jié)點V V1只屬于指向它的主 語節(jié)點Vi e V ^,則節(jié)點Vj在數(shù)據(jù)分割時必然要與V ;劃分到同一存儲節(jié)點。因此針對這類 節(jié)點,將節(jié)點Vj與指向它的主語節(jié)點V i合并成一個節(jié)點。
[0039] 2)節(jié)點移除
[0040] 在RDF圖中,節(jié)點鄰域分布并不是均勻的,