《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于非加權(quán)圖的大型社會網(wǎng)絡(luò)檢測算法研究
基于非加權(quán)圖的大型社會網(wǎng)絡(luò)檢測算法研究
2018年電子技術(shù)應(yīng)用第2期
崔俊明1,李 勇1,李躍新2
1.河北地質(zhì)職工大學(xué),河北 石家莊050081;2.湖北大學(xué) 計算機科學(xué)與工程學(xué)院,湖北 武漢430000
摘要: 社區(qū)檢測和劃分已經(jīng)成為大規(guī)模社會網(wǎng)絡(luò)中一個非常關(guān)鍵的問題。然而,大多數(shù)現(xiàn)有的算法受限于計算成本,其適用性十分有限。為了提高社區(qū)劃分質(zhì)量和計算效率,提出了一種基于非加權(quán)圖的社區(qū)網(wǎng)絡(luò)檢測算法。首先,算法采用兩個新的參數(shù)來度量社區(qū)并實現(xiàn)社區(qū)檢測,即聚類系數(shù)和共同的鄰居相似性,并通過理論分析和公式推導(dǎo)證明其有效性。最后采用真實社會網(wǎng)絡(luò)數(shù)據(jù)集進(jìn)行了大量的模擬,實驗結(jié)果表明,與傳統(tǒng)的生成樹算法以及CBCD算法相比,提出的方法更加有效,且計算運行時間具有線性復(fù)雜度,適用于大規(guī)模社會網(wǎng)絡(luò)的社區(qū)檢測。
中圖分類號: TP393
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.174204
中文引用格式: 崔俊明,李勇,李躍新. 基于非加權(quán)圖的大型社會網(wǎng)絡(luò)檢測算法研究[J].電子技術(shù)應(yīng)用,2018,44(2):80-83,87.
英文引用格式: Cui Junming,Li Yong,Li Yuexin. Research on a large scale community detection algorithm based on non-weighted graph[J]. Application of Electronic Technique,2018,44(2):80-83,87.

Research on a large scale community detection algorithm based on non-weighted graph
Cui Junming1,Li Yong1,Li Yuexin2
1.Hebei Vocational College of Geology,Shijiazhuang 050081,China; 2.School of Computer Science and Engineering,Hubei University,Wuhan 430000,China
Abstract: Community detection and partitioning has become a critical issue in large-scale social networks. However, the applicability of most existing methods is limited by computational costs. In order to improve the quality of community division and calculation efficiency, a community detection algorithm based on un-weighted graphs is proposed. This algorithm uses two parameters to measure the community to achieve community discovery, which is clustering coefficient and common neighbor similarity, and its effectiveness is proved by the academic formula. Experimental analysis is carried out using a real social network dataset, and compared with other algorithms proposed two methods. The experimental results show that the proposed method is more efficient and the computation time is linear. It is suitable for community detection in large-scale social networks.
Key words : social network;community detection;non-weighted graph;modularity;clustering coefficient

0 引言

    近年來,隨著信息交互和數(shù)據(jù)共享的不斷增加,社交網(wǎng)絡(luò)的數(shù)量顯著提高。在分析此類網(wǎng)絡(luò)時,圖論提供了一個重要的建模模型。當(dāng)節(jié)點代表用戶,邊表示互聯(lián)時,可以將此類網(wǎng)絡(luò)定義為一張圖[1-3],該圖中的節(jié)點可以是直接或間接相連的。在分析社交網(wǎng)絡(luò)數(shù)據(jù)時,定義和計算社區(qū)是最關(guān)鍵的步驟。同時,社區(qū)可以被看作是對整個網(wǎng)絡(luò)的概要表示(Summarization),因此,在社區(qū)檢測中需要使用這種概要設(shè)計理念[4]

    當(dāng)前對于社區(qū)網(wǎng)絡(luò)劃分研究已取得了很多研究成果,特別是社會網(wǎng)絡(luò)分析,但其仍然是一項具有挑戰(zhàn)性和吸引力的研究。因為在給定的圖中進(jìn)行社區(qū)檢測,可以用于搜索潛在的合作者,用于優(yōu)化社會關(guān)系,或在不同的社區(qū)中搜索一個關(guān)鍵人物等[5]。

    基于圖論的原理,已經(jīng)提出了不少方法用來解決社區(qū)檢測的問題,如譜分析方法[6],其代表了一種非常特殊的社區(qū)檢測技術(shù)。這種方法的特殊性表現(xiàn)在其分類性能上,并以拉普拉斯矩陣的特征向量為基礎(chǔ)。使用這樣一個矩陣在時間和內(nèi)存方面需要付出很高的代價。此外,在時間復(fù)雜度上,k個特征向量的計算復(fù)雜度為O(n3)。雖然,很容易計算出給定矩陣的特征向量,但是不方便計算大型拉普拉斯矩陣。這個方法的第二個缺點是假設(shè)社區(qū)的數(shù)量必須是已知的,但是在實際的大型社交網(wǎng)絡(luò)中很難獲得這一信息。文獻(xiàn)[7]提出了一種基于聚類概念的社區(qū)檢測方法。這種技術(shù)的優(yōu)點是它能夠提供豐富的結(jié)果,使用這種方法發(fā)現(xiàn)的社區(qū)節(jié)點之間相互連接非常緊密。然而,在時間和內(nèi)存方面代價很高,而且非常復(fù)雜。BASUCHOWDHURI P等人[8]提出了一種基于最大生成樹的并發(fā)方法。該方法使用共同鄰居的相似性作為邊的權(quán)重。將每個節(jié)點都與鄰居相連接,共享了大量的共同鄰居,從而建造了最大生成樹。與文獻(xiàn)[7]的方法相比較,這種方法在占用內(nèi)存方面效果較好,但是其時間運行成本還是較高。文獻(xiàn)[9]提出了一種基于節(jié)點和邊的檢測社區(qū)方法,可廣泛用于查找網(wǎng)橋和服務(wù)供應(yīng)商。但是,對于大型的社交網(wǎng)絡(luò)而言,這些方法的適用性均較差。

    在以上文獻(xiàn)提出的方法中,運行時間的復(fù)雜度和內(nèi)存的使用成本問題仍然存在。因此,它們的適用性具有一定的局限。為了解決這些問題,本文提出了一種有效的社區(qū)檢測算法方法,該方法基于聚類系數(shù)和共同鄰居指標(biāo)。實驗結(jié)果表明,在大規(guī)模社會網(wǎng)絡(luò)數(shù)據(jù)集中提出的方法提供了較高質(zhì)量的社區(qū)劃分結(jié)果,并具備線性運行時間的復(fù)雜度特性。

1 模型和指標(biāo)定義

1.1 問題描述

    在一個網(wǎng)絡(luò)模型中,一張圖G由有限集合(V,E)構(gòu)成,其中V表示節(jié)點集合(網(wǎng)絡(luò)的用戶),E表示邊或節(jié)點之間相互聯(lián)系的集合,V={vi|i=1,…,n},E={eij|vi,vj∈V},n=|V|為節(jié)點總數(shù),m=|E|為邊的總數(shù)。此外,當(dāng)圖G′中節(jié)點的集合E′和邊的集合V′都是圖G中V和E的子集tx4-t1-s1.gif時,G′表示G的子圖。社交網(wǎng)絡(luò)可以建模為一個有向圖或一個無向圖,其中節(jié)點表示個體,邊表示節(jié)點之間的關(guān)系。本文重點是在社交網(wǎng)絡(luò)中進(jìn)行社區(qū)檢測,它可以用一個無向圖來表示。這個社區(qū)可以被定義為節(jié)點的一個子集,與網(wǎng)絡(luò)的其他節(jié)點相比較,這些節(jié)點更有可能連接在一起。圖1顯示了一張具有3個社區(qū)的信息圖。

tx4-t1.gif

1.2 采用的度量標(biāo)準(zhǔn)

    本文采用共同鄰居的相似性來衡量兩個節(jié)點的相似度,這意味著,當(dāng)此度量指標(biāo)較高時,節(jié)點更有可能是在同一個社區(qū)內(nèi)。相比應(yīng)用平均聚類系數(shù)來衡量集群的方法,本文提出的結(jié)果準(zhǔn)確性更高。本文采用了兩種度量標(biāo)準(zhǔn):

    (1)共同鄰居的相似性:在參考文獻(xiàn)[8]和[10]中使用共同的鄰居來定義節(jié)點之間的相似性。如果兩個節(jié)點有大量的共同鄰居,那么它們更相似。這個指標(biāo)由以下公式進(jìn)行計算。

    tx4-gs1.gif

式中,A表示鄰居相似性。

    (2)聚類系數(shù):采用此類度量標(biāo)準(zhǔn)的目的是評估節(jié)點在一個集群中的集群化趨勢。其中最受歡迎的一個測量標(biāo)準(zhǔn)是模塊性最大化,但是它存在兩個問題:①它合并小型子圖,當(dāng)分辨率較低時,它占主導(dǎo)地位;②它分裂大型子圖,當(dāng)分辨率較高時,它占主導(dǎo)地位。另一種被廣泛使用的度量稱為聚類系數(shù)[10-11],在一個社區(qū)內(nèi)提供了一個強大的鄰居結(jié)構(gòu)。這項標(biāo)準(zhǔn)被廣泛應(yīng)用于社會網(wǎng)絡(luò)分析中,它被定義為封閉的三聯(lián)體(三角形)數(shù)量和給定圖的三聯(lián)體數(shù)量之間的比率,式(2)給出了其定義[2]

    tx4-gs2.gif

式中,C表示聚類系數(shù)。

2 提出的權(quán)重系數(shù)

    本研究的目的是研究社區(qū)之間的邊所存在的一些性質(zhì),最后提取新的社區(qū)。

    引理1:假設(shè)G是一張無向非加權(quán)圖,E表示G的邊集合,V表示G的節(jié)點集合,得到如下公式:

     tx4-gs3-4.gif

其中,L表示節(jié)點vi鄰居之間的關(guān)聯(lián)數(shù)量。

    論證:假設(shè)G為一張圖,僅僅包含一個三角形T,本文假設(shè)它由3個節(jié)點組成(v1,v2,v3)。

    如果計算L(v1),則發(fā)現(xiàn)一對關(guān)聯(lián)(v2和v3);如果計算v2的這一度量,則發(fā)現(xiàn)v1和v3之間的關(guān)聯(lián);最后計算v3,得到了v1和v2之間的關(guān)聯(lián)。之后,如果計算總和L(v1)+L(v2)+L(v3),那么得到的結(jié)果是3對關(guān)聯(lián)??傊?,當(dāng)本文計算一張圖中每個節(jié)點與其鄰居之間的關(guān)聯(lián)數(shù)量時,對同一個三角形計算了3次。

    圖2闡釋了一張無向圖,由7個節(jié)點和10條邊構(gòu)成。該圖由3個三角形組成。當(dāng)本文計算這7個節(jié)點鄰居之間的關(guān)聯(lián)數(shù)量總和時,得到表1所示結(jié)果。

tx4-t2.gif

tx4-b1.gif

    根據(jù)這些結(jié)果,3個三角形共計算了3次,這意味著3×(在G1中的三角形數(shù)量)等于在G1中每個節(jié)點鄰居之間的關(guān)聯(lián)數(shù)量總和。

    性質(zhì)1:運用式(1),本文可以得出結(jié)論:兩個社區(qū)之間的一條邊的節(jié)點是不同的。它們沒有或僅有少數(shù)幾個共同的鄰居。

    性質(zhì)2:本文研究的重點在于在社區(qū)內(nèi)最大化聚類系數(shù)(式(2))。為了達(dá)到這一目標(biāo),三角形的數(shù)量以及式(4)中的度量必須盡可能地最大化。實際上,在一個社區(qū)中每個節(jié)點鄰居之間的關(guān)聯(lián)數(shù)量必須最大化。這意味著對于具有較高聚類系數(shù)(大量三角形)的兩個社區(qū)之間的節(jié)點,其鄰居之間的關(guān)聯(lián)數(shù)量較大。

    引理2:假設(shè)G是一張無向非加權(quán)的圖。在兩個社區(qū)之間一條邊e(vi,vj)的節(jié)點沒有或有幾個共同鄰居,節(jié)點vi和vj具有較高的度量L。

    論據(jù):通過使用性質(zhì)1和性質(zhì)2獲得引理2。

    本文將節(jié)點鄰居之間的關(guān)聯(lián)數(shù)量標(biāo)準(zhǔn)化。由以下方程來定義標(biāo)準(zhǔn)化:

    tx4-gs5.gif

式中,B表示的是節(jié)點鄰居關(guān)聯(lián)數(shù)據(jù)標(biāo)準(zhǔn)。

    通過式(1)可知節(jié)點之間共同鄰居的數(shù)量。從引理2可以得知,本文的目標(biāo)是找到這些邊e(vi,vj),它們在鄰居i和j之間的關(guān)聯(lián)數(shù)量較大(見式(5)),而在i和j之間的共同鄰居數(shù)量較少(見式(1))。因此,以這些邊為基礎(chǔ),所提方法的目標(biāo)是找到度量W,W可以由如下公式定義:

    tx4-gs6.gif

3 本文提出的方法

    在過去的幾年中,在社交網(wǎng)絡(luò)中進(jìn)行社區(qū)檢測已經(jīng)吸引了很多研究人員,但它仍是一項具有挑戰(zhàn)性的任務(wù)。事實上,大多數(shù)現(xiàn)有方法的適用性受限于它們的計算成本。本文提出的方法通過刪除在未加權(quán)圖中的社區(qū)之間的邊,從社交網(wǎng)絡(luò)中找到社區(qū)。本文假設(shè)一個社區(qū)必須至少有4個節(jié)點,如參考文獻(xiàn)[2]所使用的社區(qū)。刪除邊是為了最小化每條邊節(jié)點之間的共同鄰居數(shù)量(少于共同鄰居的20%),并且提高社區(qū)劃分的質(zhì)量。下面介紹算法步驟和實例分析。

3.1 算法描述

    本文提出的方法使用了以下步驟:

    輸入:無向非加權(quán)的網(wǎng)絡(luò)G(V,E)

    輸出:n個社區(qū),Gs={Gs1,Gs2,…,Gsn}

    (1)首先,本文計算在圖G中每個節(jié)點鄰居之間的關(guān)聯(lián)數(shù)量L(vi)。然后,本文計算每條邊e共同聚類數(shù)量C,以及這條邊的節(jié)點之間鄰居U的結(jié)合情況。之后,設(shè)L=L(vi)+L(vj)和S=|鄰居(vi)+鄰居(vj)|,其中vi、vj表示由邊e相連的兩個節(jié)點。

     tx4-gs7.gif

    (2)本文使用W在表格T中以遞減順序?qū)呥M(jìn)行分類。一旦這個操作完成,就按照在T中的順序找到第一條邊e(vi,vj)。如果在刪除這條邊之后,vi鄰居的數(shù)量和vj鄰居的數(shù)量均會超過0,那么將這條邊從G中刪除,否則不刪除。本文需要對T中的其他邊重復(fù)測試,直到表格T是空為止。

    (3)本文應(yīng)用了一個社區(qū)必須至少包含4個節(jié)點的假設(shè)。為了確保該假設(shè)成立,需要把每張少于4個節(jié)點的子圖G′加入到在步驟(2)中已經(jīng)被分離的最后一張子圖中。

3.2 實例分析

    設(shè)一個網(wǎng)絡(luò)N1結(jié)構(gòu)如圖3所示,圖4體現(xiàn)了提出的方法應(yīng)用于網(wǎng)絡(luò)N1的結(jié)果。首先,運用步驟(1)在未加權(quán)的圖中計算每條邊的W值。然后,本文選擇符合以下條件的邊e(vi,vj):在節(jié)點vi和vj之間共同鄰居的數(shù)量較低(少于20%)。

tx4-t3.gif

tx4-t4.gif

    本文運用W值對這些邊進(jìn)行分類,按照遞減順序?qū)⑦@些邊儲存在表格T中。重復(fù)步驟(2)中邊的刪除操作,直到為空白為止。注意,大小小于2的群組不可以被分為獨立的群組。

    最后,本文將少于4個節(jié)點的每張子圖G′加入到已經(jīng)被分離的最后一張子圖中。

4 實驗結(jié)果與分析

    為了驗證本算法的有效性,采用真實的較大規(guī)模社會網(wǎng)絡(luò)數(shù)據(jù)集進(jìn)行實驗分析,并與生成樹算法[8]、CBCD算法[12]進(jìn)行比較分析。

    實驗環(huán)境中服務(wù)器設(shè)備參數(shù)為:Xeon E7-4820雙核處理器,2.5 GHz CPU頻率,16 GB內(nèi)存,Windows Server 2012系統(tǒng)。本文在核心圖社區(qū)檢測時采用GN算法(Girvan-Newman)。

    本文采用模塊性Q函數(shù)[13]來評價劃分出的模塊性,采用NMI[13]來評價劃分結(jié)果的相似性,兩個評價指標(biāo)的數(shù)值越接近1,說明算法劃分的效果和質(zhì)量越高。實驗采用的4個較大社會網(wǎng)絡(luò)數(shù)據(jù)集的具體參數(shù)如表2所示。

tx4-b2.gif

4.1 結(jié)果分析

    采用生成樹算法、CBCD算法和本文提出算法在以上4個社會網(wǎng)絡(luò)數(shù)據(jù)集上分別進(jìn)行了100次運行測試,實驗結(jié)果的平均指標(biāo)數(shù)據(jù)如表3所示。

tx4-b3.gif

    通過表3可以看出,在Q函數(shù)指標(biāo)結(jié)果上,本文提出算法比其他兩種算法都表現(xiàn)更好,即社會發(fā)現(xiàn)更有效,更好地體現(xiàn)了社區(qū)結(jié)構(gòu)的劃分。在NMI指標(biāo)結(jié)果上,相比其他兩種算法,本文算法的數(shù)值更接近于1,即劃分結(jié)果和真實的劃分更相似。

    從表4中可以看出,本文算法在4個社會網(wǎng)絡(luò)數(shù)據(jù)集上的運行時間均比其他兩種算法少,即相比其他兩種算法,本算法具有更高的效率。

tx4-b4.gif

4.2 復(fù)雜度分析

    該方法不是對所有的邊進(jìn)行分類,而僅僅對共同鄰居少于20%的邊進(jìn)行分類。例如,在Ca-CondMat網(wǎng)絡(luò)中,包含186 936條邊,本文僅僅對其中的67 297條邊進(jìn)行分類。同樣,本文在Cit-HepTh網(wǎng)絡(luò)中僅僅對352 807條邊中的176 403條邊進(jìn)行分類。

    在步驟(2)中,本文對一部分共同鄰居少于20%的邊進(jìn)行分類。如果本文假設(shè)這些邊的數(shù)量為k,那么復(fù)雜度為O(k·log(k)),即具有線性復(fù)雜度。在本算法的實施過程中,運用了python 3.3分類算法。如果假設(shè)在步驟(3)的操作之后發(fā)現(xiàn)子圖的數(shù)量為c,由少于4個節(jié)點構(gòu)成的子圖數(shù)量為c1,那么復(fù)雜度為O(c1·log2(c))。因為O(c1·log2(c))<<O(N),根據(jù)所選擇的網(wǎng)絡(luò),本文得到出算法的復(fù)雜度取決于O(k·log(k))。因此,本文提出的算法具有線性復(fù)雜度,即使在運行時間最壞的情況下,復(fù)雜度為O(k·log(k))。

5 結(jié)束語

    本文提出了一種適用于社交網(wǎng)絡(luò)的新型社區(qū)檢測新方法。該方法使用了兩個最重要的度量來定義社區(qū):(1)聚類系數(shù),用于定義社區(qū)的質(zhì)量;(2)屬于同一條邊的兩個節(jié)點共同鄰居的數(shù)量。實際上,與在不同社區(qū)中的兩個節(jié)點相比,在同一個社區(qū)中的兩個節(jié)點具有的共同鄰居數(shù)量較高?;谶@些度量,本文推導(dǎo)出一個公式,允許在社區(qū)之間查找邊。在這個迭代的算法中,運用一些查找社區(qū)的標(biāo)準(zhǔn)來刪除邊。最后,實驗結(jié)果表明,與傳統(tǒng)的算法相比,本文提出的方法提供的網(wǎng)絡(luò)數(shù)據(jù)集合劃分不但模塊性高,NMI指標(biāo)和運行效率也非常高。此外,該方法的運行時間具有線性復(fù)雜度,由此可以應(yīng)用于大型的社交網(wǎng)絡(luò)中。

參考文獻(xiàn)

[1] JIN J.Fast community detection by SCORE[J].Annals of Statistics,2014,43(2):672-674.

[2] LI Z,ZHANG S,ZHANG X.Mathematical model and algorithm for link community detection in bipartite networks[J].American Journal of Operations Research,2015,5(5):421-434.

[3] SONG X,GENG Y.Distributed community detection optimization algorithm for complex networks[J].Journal of Networks,2014,9(10):2758-2765.

[4] 張華健,王有權(quán),伍之昂,等.基于局部緊耦合結(jié)構(gòu)的模塊性優(yōu)化社區(qū)檢測方法[J].東南大學(xué)學(xué)報(自然科學(xué)版),2014,44(3):504-509.

[5] 吳大鵬,向小華,王汝言,等.節(jié)點歸屬性動態(tài)估計的機會網(wǎng)絡(luò)社區(qū)檢測策略[J].計算機工程與設(shè)計,2012,33(10):3673-3677.

[6] 安晶,徐森.基于譜聚類的動態(tài)網(wǎng)絡(luò)社區(qū)演化分析算法[J].信息與控制,2015,44(2):197-202.

[7] 龔尚福,陳婉璐,賈澎濤.層次聚類社區(qū)發(fā)現(xiàn)算法的研究[J].計算機應(yīng)用研究,2013,30(11):3216-3220.

[8] BASUCHOWDHURI P,ROY R,ANAND S,et al.Spanning tree-based fast community detection methods in social networks[J].Innovations in Systems and Software Engineering,2015,11(3):177-186.

[9] SANLI C,LAMBIOTTE R.Local variation of hashtag spike trains and popularity in Twitter[J].Plos One,2015,10(7):3-14.

[10] AGGARWAL C C,XIE Y,YU P S.A framework for dynamic link prediction in heterogeneous networks[J].Statistical Analysis & Data Mining the Asa Data Science Journal,2014,7(1):14-33.

[11] 許鵬遠(yuǎn),黨延忠.基于聚類系數(shù)的推薦算法[J].計算機應(yīng)用研究,2016,33(3):654-656.

[12] 張新猛,蔣盛益.基于核心圖增量聚類的復(fù)雜網(wǎng)絡(luò)劃分算法[J].自動化學(xué)報,2013,39(7):1117-1125.

[13] 林友芳,王天宇,唐銳,等.一種有效的社會網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)模型和算法[J].計算機研究與發(fā)展,2012,49(2):337-345.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。