基于節(jié)點(diǎn)屬性傳遞函數(shù)的圖布局方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)的圖形顯示方法。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)數(shù)據(jù)是指可以表示為圖結(jié)構(gòu)的數(shù)據(jù),這些數(shù)據(jù)在社交媒體、金融交易、生物網(wǎng) 絡(luò)等領(lǐng)域廣泛存在。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,這些網(wǎng)絡(luò)數(shù)據(jù)越來(lái)越多。為了更好地了 解這些數(shù)據(jù),從中獲取有價(jià)值的信息,需要有恰當(dāng)?shù)姆椒ㄑ芯窟@些數(shù)據(jù)。網(wǎng)絡(luò)可視化技術(shù)作 為信息處理的重要手段,一直是人們研究的重點(diǎn),它充分利用人類視覺(jué)感知系統(tǒng),將網(wǎng)絡(luò)數(shù) 據(jù)以圖的方式展示出來(lái),快速直觀地解釋及概覽網(wǎng)絡(luò)結(jié)構(gòu)數(shù)據(jù)。網(wǎng)絡(luò)可視化主要采用基于 節(jié)點(diǎn)連接圖的圖布局方法展示數(shù)據(jù)之間的關(guān)系。通過(guò)有效的圖布局算法,可以得到反應(yīng)數(shù) 據(jù)分布關(guān)系的圖布局結(jié)果,從而快速發(fā)現(xiàn)數(shù)據(jù)的規(guī)律或知識(shí)。力導(dǎo)引布局方法是對(duì)節(jié)點(diǎn)連 接圖進(jìn)行布局的經(jīng)典方法,通過(guò)傳統(tǒng)的力導(dǎo)引布局算法可以產(chǎn)生邊長(zhǎng)和頂點(diǎn)分布較均勻的 符合美學(xué)標(biāo)準(zhǔn)的圖布局結(jié)果。
[0003] 現(xiàn)實(shí)世界的網(wǎng)絡(luò)數(shù)據(jù)有多屬性特點(diǎn),節(jié)點(diǎn)都有各自的多個(gè)屬性。例如社交網(wǎng)絡(luò)中, 每個(gè)節(jié)點(diǎn)表示一個(gè)用戶,該用戶有年齡、性別、興趣愛(ài)好等屬性?,F(xiàn)有的對(duì)屬性圖的研究主 要有以下幾類方法:多重協(xié)調(diào)視圖(Multiple Coordinated Views):將多個(gè)視圖組合在一 起。這種方法可以對(duì)特定的視圖和數(shù)據(jù)集選擇最合適的方法,但會(huì)因?yàn)樵氐目臻g分離導(dǎo) 致數(shù)據(jù)被分離。集成方法(Integrated Approaches):將屬性和布局放在一個(gè)視圖中。集 成視圖可以節(jié)省顯示空間,但由于所有的數(shù)據(jù)都被放在一起,增加了用戶對(duì)圖的理解。語(yǔ)義 基板(Semantic Substrates):為了避免在多屬性網(wǎng)絡(luò)可視化中產(chǎn)生混亂,研究者們提出了 所謂的語(yǔ)義基板的想法一一節(jié)點(diǎn)根據(jù)不同的屬性,被放置在不重疊的區(qū)域。屬性驅(qū)動(dòng)的布 局(Attribute-Driven Layouts):根據(jù)節(jié)點(diǎn)的屬性來(lái)布局,這種方法類似于語(yǔ)義基板,但是 它沒(méi)有將節(jié)點(diǎn)放置到特定的區(qū)域,而是根據(jù)節(jié)點(diǎn)的屬性,通過(guò)計(jì)算來(lái)放置節(jié)點(diǎn)。但是這種方 法對(duì)聚類有著一定的局限性。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要克服現(xiàn)有技術(shù)的缺點(diǎn),提供一種基于節(jié)點(diǎn)屬性傳遞函數(shù)的圖布局方法, 以解決多屬性網(wǎng)絡(luò)圖布局問(wèn)題,可以根據(jù)節(jié)點(diǎn)的數(shù)據(jù)屬性,得到反映節(jié)點(diǎn)屬性之間關(guān)系的 圖布局結(jié)果,從而更好地理解節(jié)點(diǎn)所扮演的角色和節(jié)點(diǎn)之間的關(guān)系。
[0005] 現(xiàn)有方法中,大多數(shù)強(qiáng)調(diào)的是如何更好地將屬性展示,而本發(fā)明提出的基于傳遞 函數(shù)的圖布局方法,在布局的同時(shí),考慮節(jié)點(diǎn)的數(shù)據(jù)屬性。將節(jié)點(diǎn)間的屬性距離映射為力導(dǎo) 引布局算法中和力有關(guān)的參數(shù),因此,改變傳遞函數(shù)或者節(jié)點(diǎn)屬性就能得到不同的布局結(jié) 果。因此節(jié)點(diǎn)數(shù)據(jù)屬性影響圖布局結(jié)果,圖布局的結(jié)果可以反映出節(jié)點(diǎn)屬性之間的關(guān)系,也 能得到分布清晰的節(jié)點(diǎn)子群集合。
[0006] 本發(fā)明的技術(shù)方案共分三個(gè)步驟:第一步,確定圖中節(jié)點(diǎn)對(duì)之間作用力的計(jì)算方 式;第二步,基于節(jié)點(diǎn)屬性傳遞函數(shù)確定節(jié)點(diǎn)屬性值與圖布局中力的映射關(guān)系;第三步,根 據(jù)不同的屬性類別,設(shè)計(jì)不同的傳遞函數(shù)。
[0007] -種基于節(jié)點(diǎn)屬性傳遞函數(shù)的圖布局方法,步驟如下:
[0008] 1.確定節(jié)點(diǎn)對(duì)之間作用力的計(jì)算。
[0009] 基于傳遞函數(shù)的圖布局方法是對(duì)傳統(tǒng)力導(dǎo)引布局算法的改進(jìn)。用HI(V1)表示 頂點(diǎn)Vi的質(zhì)量,K表示彈簧的彈性系數(shù),L表示彈簧的原長(zhǎng),G表示萬(wàn)有引力常量,r = |p(Vl)_P(V]) I I表示頂]之間的距離,其中p(Vl)表示頂點(diǎn)'的位置,因此有如下 兩個(gè)公式計(jì)算兩個(gè)頂點(diǎn)\和V i間的力:
[0012] eij表示節(jié)點(diǎn)V 1與V i之間相連的邊,因此公式(1)計(jì)算兩個(gè)有邊相連的頂點(diǎn)間的 彈簧作用力,當(dāng)兩點(diǎn)之間距離大于彈簧原長(zhǎng),則兩點(diǎn)之間為吸引力,否則為斥力。公式(2) 計(jì)算任意兩點(diǎn)間的斥力。
[0013] 2.將節(jié)點(diǎn)的屬性值映射為圖布局中與力相關(guān)的參數(shù)。
[0014] 用A(Vi)表示頂點(diǎn)Vi的某個(gè)屬性值,引入函數(shù)δ (A(v IA(Vj))計(jì)算頂點(diǎn)vjP V 的屬性值的距離,該距離可以采用歐式距離等方法計(jì)算。G、K和L設(shè)計(jì)為基于δ的函數(shù), 從而得到三個(gè)力系數(shù)的線性傳遞函數(shù)F e( δ )、FK( δ )和FJ δ ),這三個(gè)函數(shù)與節(jié)點(diǎn)間的屬 性距離相關(guān),即為傳遞函數(shù),可以通過(guò)δ函數(shù)選擇不同的屬性計(jì)算兩節(jié)點(diǎn)之間的距離。因 此,公式(1)和(2)變?yōu)椋?br>[0017] 傳遞函數(shù)Ft(S)表示的三個(gè)線性函數(shù)中,F(xiàn)c(S)和?\(δ)是正比線性函數(shù), Fk(S)是一個(gè)反比線性函數(shù)。
[0018] T = FT( δ ) = δ +bT(T e {G, K, L}aG, aL>0, aK<0) (5)
[0019] 其中,aT、bT*別為線性函數(shù)的斜率和截距,都是常量;F e(S)、FK(S)和?\(δ)的 取值在[0, 1]之間。為了計(jì)算的方便,S的取值也在[0, 1]之間。
[0020] 3.根據(jù)不同屬性類別設(shè)計(jì)不同的傳遞函數(shù)。
[0021] 本發(fā)明考慮的節(jié)點(diǎn)屬性主要分為兩類:一類是節(jié)點(diǎn)的數(shù)據(jù)屬性,如社交網(wǎng)絡(luò)中用 戶的性別、年齡等屬性,另一類是與圖結(jié)構(gòu)相關(guān)的節(jié)點(diǎn)結(jié)構(gòu)屬性,如點(diǎn)度中心性(degree centrality:連接該節(jié)點(diǎn)邊的數(shù)目)、中介中心性(betweenness centrality:該節(jié)點(diǎn)位于 其它節(jié)點(diǎn)最短路徑上的次數(shù))等。
[0022] 下面給出了基于傳遞函數(shù)實(shí)現(xiàn)的三類不同節(jié)點(diǎn)屬性下的圖布局方法:即僅考慮數(shù) 據(jù)屬性的圖布局算法、考慮節(jié)點(diǎn)數(shù)據(jù)屬性和結(jié)構(gòu)屬性的圖布局算法以及同時(shí)考慮點(diǎn)屬性和 邊屬性的圖布局算法。對(duì)于每一類方法,設(shè)計(jì)不同的對(duì)應(yīng)力系數(shù)G、K、L的傳遞函數(shù)。
[0023] 3. 1僅考慮數(shù)據(jù)屬性的圖布局算法
[0024] 當(dāng)只考慮節(jié)點(diǎn)的數(shù)據(jù)屬性時(shí),G、K和L的取值由同一個(gè)與數(shù)據(jù)屬性相關(guān)的δ函數(shù) 控制。假設(shè)兩點(diǎn)的屬性值分別為ajP a j,則屬性距離函數(shù)δ = IIa1-BjIU G、K、L則對(duì)應(yīng) 為S的線性函數(shù),如公式(6)所示:
[0026] 線性函數(shù)Fe(S)、FK(S)、FjS)公式(5)所示,也可以根據(jù)具體的數(shù)據(jù),改變線性 函數(shù)的斜率,從而得到想要的結(jié)果。
[0027] 當(dāng)節(jié)點(diǎn)有多個(gè)屬性,并且希望這多個(gè)屬性影響圖布局的結(jié)果,可以采用下面的加 權(quán)求和的方式計(jì)算屬性距離函數(shù):
[0029] 公式中函數(shù)&表示兩節(jié)點(diǎn)的第k個(gè)屬性值執(zhí)行的操作,akl表示節(jié)點(diǎn)i的第k個(gè)屬 性值,a kj表示節(jié)點(diǎn)j的第k個(gè)屬性值,ε k為加權(quán)系數(shù),η表示屬性的個(gè)數(shù)。
[0030] 3. 2考慮節(jié)點(diǎn)數(shù)據(jù)屬性和結(jié)構(gòu)屬性的圖布局算法
[0031] 當(dāng)同時(shí)考慮節(jié)點(diǎn)的數(shù)據(jù)屬性和結(jié)構(gòu)屬性時(shí),可以設(shè)計(jì)兩個(gè)δ函數(shù)分別計(jì)算在數(shù) 據(jù)屬性空間和結(jié)構(gòu)屬性空間的距離。同時(shí),傳遞函數(shù)FpFjPh分別與不同的δ函數(shù)對(duì)應(yīng)。
[0032] 將任意兩點(diǎn)之間的傳遞函數(shù)Fti定義為與數(shù)據(jù)屬性距離相關(guān)的函數(shù),與邊相關(guān)的傳 遞函數(shù)匕和匕定義為與節(jié)點(diǎn)結(jié)構(gòu)屬性距離相關(guān)的函數(shù)。假設(shè)兩點(diǎn)V JP V ,的數(shù)據(jù)屬性為a i 和a_j,結(jié)構(gòu)屬性為山和d ,則控制G的數(shù)據(jù)屬性函數(shù)δ i= I I aI I,G = F(;( δ J,控制K 和L的結(jié)構(gòu)屬性函數(shù)δ 2= I I d「dj I I,K = FK( δ 2),L = Fj δ 2),因此傳遞函數(shù)為:
[0034] 3. 3考慮點(diǎn)屬性和邊屬性的圖布局算法
[0035] 在布局中也可以考慮邊的屬性,用邊的屬性來(lái)控制K和L的值,G還是由點(diǎn)的數(shù)據(jù) 屬性%控制。假設(shè)某條邊的屬性值為b i,則可以按下面的原則取K和L的值:當(dāng)Id1大于某 個(gè)閾值時(shí),K和L取某個(gè)值,否則取另一個(gè)值,如公式(9)所示:
[0037] 公式(9)中,δ函數(shù)求出兩節(jié)點(diǎn)屬性較大的值。k為一個(gè)常數(shù),minK、maxK、minL 和maxL為前面提到的K、L的最大值與最小值,在[0, 1]之間。
[0038] 4.根據(jù)步驟3的結(jié)果,制