本發(fā)明涉及一種結(jié)合節(jié)點信息和網(wǎng)絡結(jié)構(gòu)的社區(qū)發(fā)現(xiàn)方法,屬于網(wǎng)絡分析與挖掘領域。
背景技術(shù):
針對網(wǎng)絡的分析已成為最重要的交叉型研究領域之一,當前網(wǎng)絡研究中的一個熱點圍繞社區(qū)結(jié)構(gòu)展開。社區(qū)這一概念的原始定義是有相同特點或者興趣愛好的一類人組成的團體。當開始將網(wǎng)絡結(jié)構(gòu)作為反映真實世界復雜系統(tǒng)的模型,社區(qū)的概念已經(jīng)不僅僅局限于人類關系,逐步擴展到了各種各樣的網(wǎng)絡中。社區(qū)發(fā)現(xiàn)的任務就是識別檢測出網(wǎng)絡中由節(jié)點組成的一系列群體,這些群體內(nèi)部節(jié)點之間聯(lián)系緊密,而群體之間的節(jié)點連接則相對稀疏,而這些群體我們稱之為社區(qū)。
網(wǎng)絡分為無權(quán)網(wǎng)絡和有權(quán)網(wǎng)絡兩種。無權(quán)網(wǎng)絡中節(jié)點和節(jié)點之間的關系有“無關系”和“有關系”兩種狀態(tài),而有權(quán)網(wǎng)絡的權(quán)值則代表了節(jié)點之間相互作用的強度,網(wǎng)絡蘊含的信息也更加豐富?,F(xiàn)實社會中存在許多無權(quán)網(wǎng)絡和有權(quán)網(wǎng)絡的實例,相應地也誕生了許多處理無權(quán)網(wǎng)絡和有權(quán)網(wǎng)絡的社區(qū)發(fā)現(xiàn)算法。
對網(wǎng)絡結(jié)構(gòu)進行社區(qū)發(fā)現(xiàn)具有重要的意義,它不僅能直觀地表現(xiàn)出不同種類的網(wǎng)絡中模塊化的分組結(jié)構(gòu),還可以幫助人們認識網(wǎng)絡所代表的社會現(xiàn)象和系統(tǒng)、理解網(wǎng)絡的功能和作用、發(fā)現(xiàn)網(wǎng)絡中隱藏的信息和規(guī)律、預測網(wǎng)絡的行為和變化以及指導人們解決網(wǎng)絡所代表的現(xiàn)實問題等。
目前,社區(qū)發(fā)現(xiàn)主要分為兩大類。一類方法是基于節(jié)點信息,通過計算節(jié)點之間的相似度,利用聚類算法完成社區(qū)劃分。另一類方法是基于網(wǎng)絡結(jié)構(gòu),通過網(wǎng)絡節(jié)點之間的連接關系,利用社區(qū)發(fā)現(xiàn)算法完成社區(qū)劃分。雖然針對這兩種情況已經(jīng)誕生了許多社區(qū)發(fā)現(xiàn)算法,但是這兩種方法均具有局限性,它們往往只注重一方面的節(jié)點信息而忽略另一方面的重要性。第一類方法得到的社區(qū)成員之間一般會具有相似的特征信息然而相互之間連接不緊密,而第二類方法得到的社區(qū)成員之間關系連接緊密,卻不具有較多的共同特征。這正是因為這兩種方法不能合理地、完全地結(jié)合并利用網(wǎng)絡節(jié)點的有效信息,所以根據(jù)這兩種方法得到的社區(qū)發(fā)現(xiàn)結(jié)果并不理想。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種結(jié)合節(jié)點信息和網(wǎng)絡結(jié)構(gòu)的社區(qū)發(fā)現(xiàn)方法;
術(shù)語解釋
無向網(wǎng)絡、有向網(wǎng)絡:所謂網(wǎng)絡,是由一些基本的單元和它們之間的連接所組成。根據(jù)這些連接邊是否有確定的方向,我們可以將網(wǎng)絡分為有向網(wǎng)絡和無向網(wǎng)絡兩類。
網(wǎng)絡結(jié)構(gòu),由節(jié)點與節(jié)點之間的連接邊組成。在網(wǎng)絡結(jié)構(gòu)中,節(jié)點一般代表用戶,而邊則代表用戶之間的相互關系。除此之外,一般情況下每個用戶都會有用來描述用戶屬性的信息,這些信息由許多特征組成。我們一般用這些特征組成的向量來描述用戶的屬性,稱為特征向量。每個用戶都對應一個特征向量,根據(jù)不同用戶的不同特征設置特征向量的值。假設學生小明是一個節(jié)點,小明具有籍貫、年齡、性別、成績等特征。我們用0、1來表示這些特征。例如根據(jù)籍貫是否為山東、年齡是否在18-23之間、性別是否為男、考試成績是否及格這些特征,用0表示否,1表示是。那么,小明的特征向量可以表示為(1,1,0,1)。
本發(fā)明的技術(shù)方案為:
一種結(jié)合節(jié)點信息和網(wǎng)絡結(jié)構(gòu)的社區(qū)發(fā)現(xiàn)方法,具體步驟包括:
(1)根據(jù)節(jié)點特征對社區(qū)劃分的影響程度,對節(jié)點特征進行分類;
(2)根據(jù)節(jié)點特征對節(jié)點進行內(nèi)容相似度計算;
(3)根據(jù)網(wǎng)絡結(jié)構(gòu),得到網(wǎng)絡的鄰接矩陣A;
(4)設定閾值,更新網(wǎng)絡權(quán)重,生成有權(quán)網(wǎng)絡;
(5)根據(jù)實際需要設置參數(shù),選擇社區(qū)發(fā)現(xiàn)算法,對步驟(4)得到的有權(quán)網(wǎng)絡進行處理,得到最終社區(qū)劃分。
根據(jù)本發(fā)明優(yōu)選的,所述步驟(1),具體包括:
a、根據(jù)節(jié)點特征對社區(qū)劃分的影響程度,人為地為節(jié)點特征分類;設定將某一節(jié)點特征分為n類特征;
b、對社區(qū)劃分的影響程度比較大的節(jié)點的某類特征,為該類特征賦予較大的權(quán)值,對社區(qū)劃分影響程度比較小的節(jié)點的某類特征,則為該類特征賦予較小權(quán)值;
n類特征的權(quán)值依次設為n1,n2,...,nn,n1+n2+...+nn=1。
步驟(1)舉例說明如下:某在校大學生為節(jié)點,每個學生有性別、參加的社團、課程等節(jié)點特征,若想要社區(qū)劃分結(jié)果傾向于將愛好相同的學生分在一起,則將參加的社團這一節(jié)點特征賦予60%的權(quán)重,課程這一節(jié)點特征賦予30%的權(quán)重,性別這一節(jié)點特征賦予10%的權(quán)重;若劃分結(jié)果傾向于將同一班級的學生劃分在一起,則可以將課程這一節(jié)點特征賦予70%的權(quán)重,參加的社團這一節(jié)點特征賦予25%的權(quán)重,性別這一節(jié)點特征賦予5%的權(quán)重。
根據(jù)本發(fā)明優(yōu)選的,所述步驟(2),具體包括:
c、采用余弦相似度計算方法,分別計算節(jié)點的每一類特征的局部相似度,計算公式如式(Ⅰ)所示:
式(Ⅰ)中,Sij指網(wǎng)絡中節(jié)點i和節(jié)點j的相似度,分別是指節(jié)點i、節(jié)點j的節(jié)點特征組成的特征向量;
d、對節(jié)點的每一類特征的局部相似度加權(quán)求和,求出全局相似度,節(jié)點i、j的全局相似度計算公式如式(Ⅱ)所示:
Simij=n1Sim1+n2Sim2+...+nnSimn (Ⅱ)
式(Ⅱ)中,Sim1,Sim2,...,Simn分別代表n類節(jié)點特征的局部相似度;Simij是指節(jié)點i和節(jié)點j的總相似度,即全局相似度。
根據(jù)本發(fā)明優(yōu)選的,所述步驟(3),具體步驟包括:
對于無向網(wǎng)絡,若網(wǎng)絡中的任意兩個節(jié)點i,j之間有連接,則設置Aij=Aji=1,若無連接,則設置Aij=0,通過這種方式,得到網(wǎng)絡連接的鄰接矩陣A,Aij、Aji分別是指矩陣A中第i行j列的元素和第j行i列的元素。
根據(jù)本發(fā)明優(yōu)選的,所述步驟(4),具體步驟包括:
e、對于無向網(wǎng)絡,網(wǎng)絡中的任意兩個節(jié)點i,j之間連接邊的權(quán)重Qij設置公式如式(Ⅲ)所示:
Qij=kAij+(1-k)Simij (Ⅲ)
根據(jù)式(Ⅲ),得到網(wǎng)絡中所有節(jié)點兩兩之間的權(quán)重;
k為常數(shù),取值為(0,1)。通過設置不同的k值,調(diào)節(jié)節(jié)點特征和網(wǎng)絡結(jié)構(gòu)對社區(qū)劃分影響的貢獻度,k值越大則網(wǎng)絡結(jié)構(gòu)在社區(qū)劃分中起主導作用越明顯,k值越小則節(jié)點特征在社區(qū)劃分中起主導作用越明顯,在實際使用時,根據(jù)實際情況的具體需要,設定k值的大小。
f、根據(jù)權(quán)重Qij的取值范圍,設置閾值q,設置公式如式(Ⅳ)所示:
q=Qijmin+p*(Qijmax-Qijmin) (Ⅳ)
式(Ⅳ)中,p為百分數(shù),p的取值為(0,1),Qijmax、Qijmin分別指Qij取值的最大值和最小值;
舉例說明如下:q=Qijmin+15%*(Qijmax-Qijmin)代表將權(quán)重大于Qijmin+15%*(Qijmax-Qijmin)的邊保留,將權(quán)重低于總體水平的后15%部分邊刪除,從而達到簡化網(wǎng)絡結(jié)構(gòu)的效果。
設置閾值q的意義是因為在Qij的值非常小的情況下在i,j之間建立連接邊不僅對提高社區(qū)發(fā)現(xiàn)精度沒有積極作用,而且還會增大網(wǎng)絡的復雜度,增加社區(qū)發(fā)現(xiàn)過程的處理時間,所以此處設定閾值,將較小的權(quán)值排除,去除噪聲的干擾。
g、生成有權(quán)網(wǎng)絡,具體如下:
若Qij>q,則在節(jié)點i,j之間建立一條連接邊,并給這條邊賦予權(quán)重Qij,若Qij<q,則舍棄權(quán)重權(quán)重Qij,且節(jié)點i,j之間不建立連接邊,根據(jù)此規(guī)則,對原始網(wǎng)絡進行重建,生成有權(quán)網(wǎng)絡。
至此,就將原來的無權(quán)網(wǎng)絡變?yōu)橛袡?quán)網(wǎng)絡,并且該有權(quán)網(wǎng)絡包含了節(jié)點特征和網(wǎng)絡結(jié)構(gòu)兩方面的信息。
根據(jù)本發(fā)明優(yōu)選的,所述步驟(5),具體步驟包括:選擇社區(qū)發(fā)現(xiàn)算法,對該有權(quán)網(wǎng)絡進行處理,得到最終社區(qū)劃分。
首先,衡量實際操作中是網(wǎng)絡結(jié)構(gòu)還是節(jié)點信息主導,通過選擇參數(shù)k與q平衡其關系,然后,選擇社區(qū)發(fā)現(xiàn)算法對該有權(quán)網(wǎng)絡進行處理,得到最終社區(qū)劃分。
根據(jù)本發(fā)明優(yōu)選的,所述社區(qū)發(fā)現(xiàn)算法包括目前比較成熟的派系過濾算法、標簽傳播算法、GN算法等社區(qū)發(fā)現(xiàn)常用算法。
若實際操作中對時間要求比較嚴格,可以選擇時間復雜度相對低的算法如標簽傳播算法,若對時間復雜度要求不高卻對精度要求相對較高,那么可以選擇GN算法等。有的需要發(fā)現(xiàn)重疊社區(qū),有的需要發(fā)現(xiàn)非重疊社區(qū)。根據(jù)不同場景,靈活選擇合適的社區(qū)發(fā)現(xiàn)算法,完成社區(qū)發(fā)現(xiàn)過程。
本發(fā)明的有益效果為:
1、本發(fā)明在社區(qū)發(fā)現(xiàn)過程中結(jié)合了節(jié)點特征和網(wǎng)絡結(jié)構(gòu),通過對節(jié)點特征分類加權(quán)的方式,有效利用了節(jié)點信息,并通過設置參數(shù)k,調(diào)節(jié)節(jié)點信息和網(wǎng)絡結(jié)構(gòu)這兩部分在社區(qū)發(fā)現(xiàn)中的貢獻度。
2、本發(fā)明通過矩陣加和的形式,把節(jié)點特征與網(wǎng)絡結(jié)構(gòu)融合為權(quán)重的形式,將無權(quán)無向網(wǎng)絡轉(zhuǎn)變?yōu)橛袡?quán)無向網(wǎng)絡,除此之外又通過設定閾值的方式,減小了不必要的計算開銷,節(jié)省了社區(qū)發(fā)現(xiàn)過程的時間。
3、不針對特定場景,適合處理現(xiàn)實生活中存在的大部分網(wǎng)絡,并且可以根據(jù)實際需要(時間需要或精度需要等)選擇適合的社區(qū)發(fā)現(xiàn)算法,具有普適性和靈活性。
附圖說明
圖1為本發(fā)明所述方法的流程示意圖。
具體實施方式
下面結(jié)合說明書附圖和實施例對本發(fā)明作進一步限定,但不限于此。
實施例
網(wǎng)絡結(jié)構(gòu)是由節(jié)點與節(jié)點之間的連接邊組成。在網(wǎng)絡結(jié)構(gòu)中,節(jié)點一般代表用戶,而邊則代表用戶之間的相互關系。除此之外,一般情況下每個用戶都會有用來描述用戶屬性的信息,這些信息由許多特征組成。我們一般用這些特征組成的向量來描述用戶的屬性,稱為特征向量。每個用戶都對應一個特征向量,根據(jù)不同用戶的不同特征設置特征向量的值。
本實施例中,假設學生小明是一個節(jié)點,小明具有籍貫、年齡、性別、成績等節(jié)點特征。我們用0、1來表示這些節(jié)點特征。根據(jù)籍貫是否為山東、年齡是否在18-23之間、性別是否為男、考試成績是否及格這些節(jié)點特征,用0表示否,1表示是。那么,小明的特征向量可以表示為(1,1,0,1)。
一種結(jié)合節(jié)點信息和網(wǎng)絡結(jié)構(gòu)的社區(qū)發(fā)現(xiàn)方法,該方法的流程圖如圖1所示,具體步驟包括:
(1)根據(jù)節(jié)點特征對社區(qū)劃分的影響程度,對節(jié)點特征進行分類;
a、根據(jù)節(jié)點特征對社區(qū)劃分的影響程度,人為地為節(jié)點特征分類;設定將某一節(jié)點特征分為n類特征;
b、對社區(qū)劃分的影響程度比較大的節(jié)點的某類特征,為該類特征賦予較大的權(quán)值,對社區(qū)劃分影響程度比較小的節(jié)點的某類特征,則為該類特征賦予較小權(quán)值;
n類特征的權(quán)值依次設為n1,n2,...,nn,n1+n2+...+nn=1。
將小明所在的大學作為數(shù)據(jù)集,其學生為節(jié)點,那么,如果傾向于將來自山東本地的本科生分為一類,那么調(diào)高第一項和第二項節(jié)點特征的比重,將其設為40%籍貫、40%年齡,10%性別、10%成績,則對應的權(quán)重取值分類有兩類n1=80%,n2=20%。如果傾向于將能夠順利畢業(yè)的本科生分為一類,那么適當調(diào)高第二項和第四項特征的比重,將其設為10%籍貫、40%年齡,10%性別、40%成績,則對應的權(quán)重取值分為兩類n1=80%,n2=20%。
(2)根據(jù)節(jié)點特征對節(jié)點進行內(nèi)容相似度計算;
c、采用余弦相似度計算方法,分別計算節(jié)點的每一類特征的局部相似度,計算公式如式(Ⅰ)所示:
式(Ⅰ)中,Sij指網(wǎng)絡中節(jié)點i和節(jié)點j的相似度,分別是指節(jié)點i、節(jié)點j的節(jié)點特征組成的特征向量;
d、對節(jié)點的每一類特征的局部相似度加權(quán)求和,求出全局相似度,節(jié)點i、j的全局相似度計算公式如式(Ⅱ)所示:
Simij=n1Sim1+n2Sim2+...+nnSimn (Ⅱ)
式(Ⅱ)中,Sim1,Sim2,...,Simn分別代表n類節(jié)點特征的局部相似度;Simij是指節(jié)點i和節(jié)點j的總相似度,即全局相似度。
對應步驟(1)中n1=80%,n2=20%,得出Simij=80%*Sim1+20%*Sim2;
(3)根據(jù)網(wǎng)絡結(jié)構(gòu),得到網(wǎng)絡的鄰接矩陣A和權(quán)重矩陣Q;
e、對于無向網(wǎng)絡,若網(wǎng)絡中的任意兩個節(jié)點i,j之間有連接,則設置Aij=Aji=1,若無連接,則設置Aij=0,通過這種方式,得到網(wǎng)絡連接的鄰接矩陣A,其中Aij、Aji分別是指矩陣A中第i行j列的元素和第j行i列的元素。
對于無向網(wǎng)絡,網(wǎng)絡中的任意兩個節(jié)點i,j之間連接邊的權(quán)重Qij設置公式如式(Ⅲ)所示:
Qij=kAij+(1-k)Simij (Ⅲ)
根據(jù)式(Ⅲ),得到網(wǎng)絡中所有節(jié)點兩兩之間的權(quán)重;
(4)設定閾值,更新網(wǎng)絡權(quán)重,生成有權(quán)網(wǎng)絡;
f、根據(jù)權(quán)重Qij的取值范圍,設置閾值q,設置公式如式(Ⅳ)所示:
q=Qijmin+p*(Qijmax-Qijmin) (Ⅳ)
式(Ⅳ)中,p為百分數(shù),p的取值為(0,1),Qijmax、Qijmin分別指Qij取值的最大值和最小值;
g、生成有權(quán)網(wǎng)絡,具體如下:
若Qij>q,則在節(jié)點i,j之間建立一條連接邊,并給這條邊賦予權(quán)重Qij,若Qij<q,則舍棄權(quán)重權(quán)重Qij,且節(jié)點i,j之間不建立連接邊,根據(jù)此規(guī)則,對原始網(wǎng)絡進行重建,生成有權(quán)網(wǎng)絡。
(5)根據(jù)實際需要設置參數(shù),選擇社區(qū)發(fā)現(xiàn)算法,對步驟(4)得到的有權(quán)網(wǎng)絡進行處理,得到最終社區(qū)劃分。
具體步驟包括:選擇社區(qū)發(fā)現(xiàn)算法,對該有權(quán)網(wǎng)絡進行處理,得到最終社區(qū)劃分。所述社區(qū)發(fā)現(xiàn)算法包括目前較為成熟的派系過濾算法、標簽傳播算法、GN算法等社區(qū)發(fā)現(xiàn)常用算法。
若實際操作中對時間要求比較嚴格,可以選擇時間復雜度相對低的算法如標簽傳播算法,若對時間復雜度要求不高卻對精度要求相對較高,那么可以選擇GN算法等。有的需要發(fā)現(xiàn)重疊社區(qū),有的需要發(fā)現(xiàn)非重疊社區(qū)。根據(jù)不同場景,靈活選擇合適的社區(qū)發(fā)現(xiàn)算法,完成社區(qū)發(fā)現(xiàn)過程。