本發(fā)明屬于社會(huì)網(wǎng)絡(luò)及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法。
背景技術(shù):
社會(huì)網(wǎng)絡(luò)(socialnetwork)是由許多節(jié)點(diǎn)和連邊構(gòu)成的網(wǎng)狀結(jié)構(gòu),節(jié)點(diǎn)可以對(duì)應(yīng)現(xiàn)實(shí)生活中的人以及各種社會(huì)組織機(jī)構(gòu),節(jié)點(diǎn)之間的連邊可以對(duì)應(yīng)日常生活中的各種交往關(guān)系,比如人與人之間的朋友、家人、同學(xué)等社會(huì)關(guān)系,也可以是微信、電話、郵件等聯(lián)絡(luò)關(guān)系。社區(qū)發(fā)現(xiàn)是包括社會(huì)網(wǎng)絡(luò)在內(nèi)的復(fù)雜網(wǎng)絡(luò)的一個(gè)重要研究方向,在電子商務(wù)、公共安全、生物學(xué)等領(lǐng)域都有著巨大的應(yīng)用價(jià)值。社區(qū)是指網(wǎng)絡(luò)中一些相互之間擁有較多共同特征,聯(lián)系比較多的節(jié)點(diǎn)聚類。網(wǎng)絡(luò)拓補(bǔ)結(jié)構(gòu)具體表現(xiàn)為同一社區(qū)的節(jié)點(diǎn)之間聯(lián)系比較緊密,而不屬于同一社區(qū)的節(jié)點(diǎn)之間聯(lián)系比較稀疏。社區(qū)發(fā)現(xiàn)是社會(huì)網(wǎng)絡(luò)分析的一個(gè)基本任務(wù),是對(duì)網(wǎng)絡(luò)中存在的社區(qū)結(jié)構(gòu)進(jìn)行挖掘,研究網(wǎng)絡(luò)的社區(qū)對(duì)理解整個(gè)網(wǎng)絡(luò)的結(jié)構(gòu)和功能具有至關(guān)重要的作用。一般對(duì)社會(huì)網(wǎng)絡(luò)的研究分析大都是對(duì)網(wǎng)絡(luò)中的一種關(guān)系進(jìn)行研究,而現(xiàn)實(shí)生活中的社會(huì)網(wǎng)絡(luò)個(gè)體之間都存在多種類型的關(guān)系,比如人與人之間存在著朋友、同學(xué)、家人等社會(huì)關(guān)系。而web2.0時(shí)代的到來(lái)更使人們之間存在的交流聯(lián)系方式變得多種多樣,除了傳統(tǒng)的電話和短信,還有微信、微博、人人facebook、twitter、youtube等多種基于互聯(lián)網(wǎng)的交流聯(lián)系也在社會(huì)網(wǎng)絡(luò)中普遍存在,甚至在同一種交流工具中也存在著多種交流方式,比如微博中人們之間可以通過(guò)評(píng)論、轉(zhuǎn)發(fā)、點(diǎn)贊等多種渠道來(lái)產(chǎn)生交流。多關(guān)系的社會(huì)網(wǎng)絡(luò)普遍存在于現(xiàn)實(shí)生活中。目前對(duì)社會(huì)網(wǎng)絡(luò)的社區(qū)發(fā)現(xiàn)方法基本都是基于一種關(guān)系的研究,而由于社會(huì)個(gè)體之間的交流方式存在一定主觀性,只采用一種關(guān)系不能充分掌握個(gè)體間的交流信息,很可能會(huì)因?yàn)樾畔⒉蝗鎸?dǎo)致社區(qū)劃分結(jié)果最終跟現(xiàn)實(shí)不對(duì)應(yīng)。同時(shí)某種交流方式可能會(huì)因?yàn)楦菀赘吧嘶蚱匠2皇煜さ娜税l(fā)生聯(lián)系而產(chǎn)生較多社交噪音,這些噪音也會(huì)掩蓋現(xiàn)實(shí)生活中真正的社區(qū)結(jié)構(gòu)?,F(xiàn)有的一部分多關(guān)系社區(qū)發(fā)現(xiàn)方法在對(duì)多關(guān)系網(wǎng)絡(luò)進(jìn)行社區(qū)發(fā)現(xiàn)時(shí),將各種關(guān)系組成的網(wǎng)絡(luò)都一視同仁,但實(shí)際多關(guān)系社會(huì)網(wǎng)絡(luò)中,由于交流方式的不同,每一種關(guān)系的社交噪音是不一樣的。這樣的方法雖然可以使各關(guān)系之間的社區(qū)信息互相補(bǔ)充,但同時(shí)也會(huì)引入各社交關(guān)系的噪音,在有些社交關(guān)系噪音比較大的情況下有可能會(huì)造成綜合考慮多種關(guān)系進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果反而不如只考慮單個(gè)關(guān)系進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果。
綜上所述,現(xiàn)有技術(shù)存在的問(wèn)題是:目前對(duì)社會(huì)網(wǎng)絡(luò)的社區(qū)發(fā)現(xiàn)方法時(shí)忽略了各關(guān)系的差異性,將各個(gè)關(guān)系所帶來(lái)的信息一視同仁,因此存在綜合各關(guān)系網(wǎng)絡(luò)的社區(qū)信息時(shí)也引入了各關(guān)系網(wǎng)絡(luò)所攜帶的社交噪音,造成社區(qū)發(fā)現(xiàn)準(zhǔn)確率不夠高,某些關(guān)系噪音較大時(shí)甚至?xí)斐删C合考慮多種關(guān)系進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果反而不如只考慮單個(gè)關(guān)系進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供了一種基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法。
本發(fā)明是這樣實(shí)現(xiàn)的,一種基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法,所述基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法通過(guò)多目標(biāo)優(yōu)化優(yōu)化網(wǎng)絡(luò)中各種關(guān)系的權(quán)重配比將多關(guān)系網(wǎng)絡(luò)融合成一個(gè)能有效綜合各關(guān)系社區(qū)信息的同時(shí)噪音低的單關(guān)系網(wǎng)絡(luò),然后綜合多關(guān)系網(wǎng)絡(luò)中各關(guān)系的社區(qū)劃分信息將在各個(gè)關(guān)系中都處于同一個(gè)社區(qū)的人群尋找出來(lái),以這些人群組成的小社區(qū)作為種子社區(qū),采用種子擴(kuò)張策略對(duì)多關(guān)系社會(huì)網(wǎng)絡(luò)進(jìn)行社區(qū)挖掘,得到準(zhǔn)確率更高的的社區(qū)結(jié)構(gòu)劃分;
所述權(quán)重配比優(yōu)化子目標(biāo)一采用模塊度作為衡量結(jié)果社區(qū)結(jié)構(gòu)強(qiáng)度和可靠性的指標(biāo),計(jì)算結(jié)果ca的模塊度qa,模塊度計(jì)算如下:
其中ai,j是整個(gè)網(wǎng)絡(luò)的鄰接矩陣,m是網(wǎng)絡(luò)中包含的邊的數(shù)目,ki和kj分別表示節(jié)點(diǎn)i和節(jié)點(diǎn)j的度數(shù),δ(ci,cj)的取值取決于i和j是否處于同一個(gè)社區(qū)內(nèi),是的話δ(ci,cj)取值為,否則話其取值為0;
所述權(quán)重配比優(yōu)化子目標(biāo)二采用nmi作為社區(qū)結(jié)構(gòu)信息相似性衡量標(biāo)準(zhǔn),按如下計(jì)算:
其中混淆矩陣h的行代表真實(shí)的社區(qū)劃分結(jié)果,h的列代表劃分算法畫(huà)出來(lái)的社區(qū)結(jié)果。ca和cb分別代表a,b兩個(gè)結(jié)果包含的社區(qū)個(gè)數(shù),hij代表應(yīng)該在社區(qū)i中卻出現(xiàn)在社區(qū)j中的節(jié)點(diǎn)個(gè)數(shù),hi.和h.j分別代表第i行和第j列的社區(qū)的節(jié)點(diǎn)數(shù)之和,n是整個(gè)網(wǎng)絡(luò)中所含的節(jié)點(diǎn)數(shù)目;當(dāng)nmi=1時(shí),代表a和b兩個(gè)結(jié)果的社區(qū)結(jié)構(gòu)完全相同,nmi=0,時(shí)代表完全不一樣;
所述種子擴(kuò)張策略選取節(jié)點(diǎn)數(shù)最多的社區(qū)si作為種子社區(qū);計(jì)算種子社區(qū)si與其余候選種子社區(qū)以及剩余節(jié)點(diǎn)的相似度,計(jì)算式子如下:
u和v分別是社區(qū)si,sj中的節(jié)點(diǎn),ni和nj分別是兩個(gè)社區(qū)中節(jié)點(diǎn)的數(shù)量,
進(jìn)一步,所述基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法包括以下步驟:
1)將多關(guān)系網(wǎng)絡(luò)的各關(guān)系直接按照相同比例來(lái)配置權(quán)重把多關(guān)系網(wǎng)絡(luò)合并成一個(gè)帶權(quán)的單關(guān)系網(wǎng)絡(luò)a;
2)采用一種單關(guān)系的社區(qū)劃分方法對(duì)網(wǎng)絡(luò)a進(jìn)行社區(qū)劃分,所得的社區(qū)劃分結(jié)果記為ca,接著采用一種衡量社區(qū)發(fā)現(xiàn)結(jié)果可靠性及結(jié)構(gòu)強(qiáng)度的指標(biāo)對(duì)結(jié)果ca進(jìn)行衡量,衡量出的值記為qa;
3)以各關(guān)系的權(quán)重配比作為決策變量,采用一種多目標(biāo)優(yōu)化方法同時(shí)對(duì)下列兩個(gè)子目標(biāo)進(jìn)行優(yōu)化來(lái)獲得一組最優(yōu)決策變量集;
優(yōu)化子目標(biāo)一:新的權(quán)重配比合并成的單關(guān)系網(wǎng)絡(luò)b與網(wǎng)絡(luò)a的社區(qū)劃分結(jié)果的結(jié)構(gòu)衡量指標(biāo)差值盡可能大;
優(yōu)化子目標(biāo)二:新的權(quán)重配比合并成的單關(guān)系網(wǎng)絡(luò)b與網(wǎng)絡(luò)a的社區(qū)劃分結(jié)果所顯示的社區(qū)結(jié)構(gòu)信息相似性盡可能大。
4)在步驟3)獲得的最優(yōu)決策變量集中選擇使子目標(biāo)一最大的權(quán)重配比將多關(guān)系網(wǎng)絡(luò)融合成單關(guān)系網(wǎng)絡(luò)m,并采用一種單關(guān)系社區(qū)發(fā)現(xiàn)方法對(duì)m進(jìn)行社區(qū)發(fā)現(xiàn),將所獲社區(qū)個(gè)數(shù)記為k;
5)采用一種單關(guān)系社區(qū)發(fā)現(xiàn)方法分別對(duì)每個(gè)關(guān)系組成的網(wǎng)絡(luò)進(jìn)行社區(qū)劃分;
6)設(shè)置迭代標(biāo)志l=0,對(duì)步驟5)各關(guān)系社區(qū)發(fā)現(xiàn)的結(jié)果進(jìn)行統(tǒng)計(jì),將在所有關(guān)系中都處于一個(gè)社區(qū)的節(jié)點(diǎn)作為種子社區(qū)放入種子社區(qū)集合cl中;
7)通過(guò)單關(guān)系網(wǎng)絡(luò)m通過(guò)一種相似度計(jì)算方法來(lái)計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)之間的相似度;
8)若l=0,令l=l+1,集合cl=cl-1,進(jìn)行下一步;若l>0,檢測(cè)集合cl與cl-1是否一樣,是則轉(zhuǎn)步驟11),否則令l=l+1,集合cl=cl-1進(jìn)行下一步;
9)將種子社區(qū)候選集合cl中的尚未參與過(guò)合并的社區(qū)按照社區(qū)包含的節(jié)點(diǎn)數(shù)量從大到小進(jìn)行排序,選取排序最高的社區(qū)si作為種子社區(qū);
10)通過(guò)步驟7)計(jì)算出來(lái)的相似度計(jì)算種子社區(qū)si與其余候選種子社區(qū)以及剩余節(jié)點(diǎn)的相似度記為sim;
11)選取與si相似度超過(guò)設(shè)定閾值β的社區(qū)和節(jié)點(diǎn)放入候選區(qū),通過(guò)一種局部適應(yīng)度計(jì)算方法計(jì)算si當(dāng)前適應(yīng)度f(wàn)以及候選區(qū)各社區(qū)的當(dāng)前適應(yīng)度f(wàn)h,然后分別計(jì)算候選合并區(qū)的社區(qū)和節(jié)點(diǎn)與si合并后的適應(yīng)度值記為fnew,接著計(jì)算fnew相對(duì)于si原來(lái)的適應(yīng)度f(wàn)的增長(zhǎng)率vs以及候選社區(qū)適應(yīng)度f(wàn)new的增長(zhǎng)率vh;
12)在vs和vh都大于增長(zhǎng)率閾值δ的前提下,選使vs+vh最大的候選社區(qū)sj與si合并成一個(gè)新社區(qū),更新si和種子社區(qū)集合cl,返回步驟10);若沒(méi)有符合條件的,則檢查集合cl中現(xiàn)有社區(qū)是否都已是合并過(guò)的,否的話返回步驟9),是的話將集合cl中所有社區(qū)的合并記錄清零,返回步驟8);
13)檢查網(wǎng)絡(luò)中社區(qū)數(shù)目,若小于等與k,則輸出結(jié)果,程序結(jié)束,輸出集合cl;若大于k,則執(zhí)行如下消除策略;以包含節(jié)點(diǎn)數(shù)目最多的前k個(gè)社區(qū)為目標(biāo),依次計(jì)算剩余社區(qū)及節(jié)點(diǎn)與他們的相似度,將剩余社區(qū)和節(jié)點(diǎn)歸并入跟他們相似度最高的前k個(gè)社區(qū),更新集合cl,最后輸出社區(qū)集合cl作為最終劃分結(jié)果。
進(jìn)一步,采用單關(guān)系社區(qū)發(fā)現(xiàn)算法bgll分別對(duì)四個(gè)關(guān)系組成的網(wǎng)絡(luò)進(jìn)行社區(qū)劃分,統(tǒng)計(jì)劃分結(jié)果根據(jù)式子
進(jìn)一步,通過(guò)單關(guān)系網(wǎng)絡(luò)m來(lái)計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)之間的相似度sim:
其中k表示i,j被劃為相同社區(qū)的維度個(gè)數(shù),n=4,δ增益因子為1,w(i,j)時(shí)節(jié)點(diǎn)i和節(jié)點(diǎn)j的連接邊權(quán)重,com(i,j)兩個(gè)節(jié)點(diǎn)鄰居節(jié)點(diǎn)交集,n(i,j)是兩個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)并集。
進(jìn)一步,選取與si相似度超過(guò)設(shè)定閾值γ=1的社區(qū)和節(jié)點(diǎn)放入候選區(qū),計(jì)算si當(dāng)前適應(yīng)度f(wàn)以及候選區(qū)各社區(qū)的當(dāng)前適應(yīng)度f(wàn)h,計(jì)算公式如下:
其中式子的
然后分別計(jì)算候選合并區(qū)的社區(qū)和節(jié)點(diǎn)與si合并后的適應(yīng)度值記為,然后計(jì)算fnew相對(duì)于si原來(lái)的適應(yīng)度f(wàn)的增長(zhǎng)率vs以及候選社區(qū)適應(yīng)度f(wàn)h的增長(zhǎng)率vh;
在vs和vh都大于增長(zhǎng)率閾值δ=0.1的前提下,選取vs+vh最大的那個(gè)社區(qū)與si合并成一個(gè)新社區(qū),更新si和種子社區(qū)集合cl;若沒(méi)有符合條件的,則檢查集合cl中現(xiàn)有社區(qū)是否都已是合并過(guò)的;是的話將集合cl中所有社區(qū)的合并記錄清零;
檢查社區(qū)數(shù)目,若小于等與k,則輸出結(jié)果,程序結(jié)束,輸出集合cl;若大于k,則以包含節(jié)點(diǎn)數(shù)目最多的前k個(gè)社區(qū)為目標(biāo),依次計(jì)算剩余社區(qū)與他們的相似度,將剩余社區(qū)和節(jié)點(diǎn)歸并入跟他們相似度最高的前k個(gè)社區(qū),更新集合cl,最后輸出社區(qū)集合cl作為最終劃分結(jié)果。
本發(fā)明的另一目的在于提供一種應(yīng)用所述基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法的社會(huì)網(wǎng)絡(luò)。
本發(fā)明的另一目的在于提供一種應(yīng)用所述基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法的計(jì)算機(jī)。
本發(fā)明的優(yōu)點(diǎn)及積極效果為:
1.本發(fā)明對(duì)多關(guān)系網(wǎng)絡(luò)中的各種關(guān)系通過(guò)權(quán)重配比來(lái)進(jìn)行組合優(yōu)化,能夠在綜合各關(guān)系網(wǎng)絡(luò)有效信息的同時(shí)更好地克服不同關(guān)系網(wǎng)絡(luò)帶來(lái)的社交噪音,在各關(guān)系噪音較大時(shí),依然能夠獲得比較準(zhǔn)確的社區(qū)劃分結(jié)果。本發(fā)明通過(guò)綜合多關(guān)系網(wǎng)絡(luò)中各關(guān)系的社區(qū)劃分信息將在各個(gè)關(guān)系中都處于同一個(gè)社區(qū)的人群尋找出來(lái),這些非常固定的社交圈子一般都處于所在社區(qū)的核心位置,以他們作為種子社區(qū)進(jìn)行擴(kuò)張更有利于發(fā)現(xiàn)出多關(guān)系網(wǎng)絡(luò)中隱含的真實(shí)社區(qū)。人工網(wǎng)絡(luò)實(shí)驗(yàn)表明,本發(fā)明的社區(qū)發(fā)現(xiàn)結(jié)果有的準(zhǔn)確性比傳統(tǒng)方法平均提高了越9%,具體效果見(jiàn)圖4。在各關(guān)系攜帶的噪音比例差距高達(dá)50%的惡劣情況下,傳統(tǒng)多關(guān)系方法受噪音影響社區(qū)發(fā)現(xiàn)結(jié)果準(zhǔn)確性降低到71%已不如單獨(dú)采用噪音最小的關(guān)系的82%,而這種情況下本發(fā)明的準(zhǔn)確性為86.3%,具體效果見(jiàn)圖5。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法流程圖。
圖2是本發(fā)明實(shí)施例提供的基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)實(shí)現(xiàn)流程圖。
圖3是本發(fā)明實(shí)施例提供的的結(jié)果與只采用一種關(guān)系進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果對(duì)比示意圖。
圖4是本發(fā)明實(shí)施例提供的與傳統(tǒng)多關(guān)系社區(qū)發(fā)現(xiàn)方法pmm在不同噪音下的結(jié)果對(duì)比示意圖。
圖5是本發(fā)明實(shí)施例提供的本發(fā)明具體效果示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
本發(fā)明實(shí)施例提供的基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法通過(guò)優(yōu)化網(wǎng)絡(luò)中各種關(guān)系的權(quán)重配比將多關(guān)系網(wǎng)絡(luò)融合成一個(gè)能有效綜合各關(guān)系社區(qū)信息的同時(shí)噪音低的單關(guān)系網(wǎng)絡(luò),然后綜合多關(guān)系網(wǎng)絡(luò)中各關(guān)系的社區(qū)劃分信息將在各個(gè)關(guān)系中都處于同一個(gè)社區(qū)的人群尋找出來(lái),以這些人群組成的小社區(qū)作為種子社區(qū),采用一種種子擴(kuò)張策略對(duì)多關(guān)系社會(huì)網(wǎng)絡(luò)進(jìn)行社區(qū)挖掘,從而得到準(zhǔn)確率更高的的社區(qū)結(jié)構(gòu)劃分。
如圖1所示,本發(fā)明實(shí)施例提供的基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法包括以下步驟:
s101:將多關(guān)系網(wǎng)絡(luò)的各關(guān)系直接按照1:1比例來(lái)配置權(quán)重將多關(guān)系網(wǎng)絡(luò)合并成一個(gè)帶權(quán)重的單關(guān)系網(wǎng)絡(luò);
s102:采用一種單關(guān)系社區(qū)劃分算法對(duì)該網(wǎng)絡(luò)進(jìn)行社區(qū)劃分,采用某種衡量指標(biāo)計(jì)算劃分結(jié)果社區(qū)結(jié)構(gòu)強(qiáng)度;
s103:采用一種多目標(biāo)進(jìn)化算法對(duì)各維度關(guān)系的權(quán)重組合配比進(jìn)行優(yōu)化優(yōu)化目標(biāo)一為的新權(quán)重合并成的網(wǎng)絡(luò)的社區(qū)劃分結(jié)果與最開(kāi)始1:1合并成的網(wǎng)絡(luò)社區(qū)劃分結(jié)果的社區(qū)結(jié)構(gòu)強(qiáng)度指標(biāo)之差盡可能大;優(yōu)化目標(biāo)二采用一種指標(biāo)衡量二者社區(qū)劃分結(jié)果相似度,使相似度盡可能高;
s104:用優(yōu)化后的權(quán)重配比將多關(guān)系網(wǎng)絡(luò)轉(zhuǎn)化成單關(guān)系網(wǎng)絡(luò);
s105:采用一種單關(guān)系社區(qū)發(fā)現(xiàn)算法分別對(duì)每個(gè)關(guān)系組成的網(wǎng)絡(luò)進(jìn)行社區(qū)劃分,統(tǒng)計(jì)關(guān)系社區(qū)發(fā)現(xiàn)的結(jié)果,將在所有關(guān)系中都處于一個(gè)社區(qū)的節(jié)點(diǎn)作為候選種子社區(qū);
s106:通過(guò)所選用的社區(qū)相似度函數(shù)和局部適應(yīng)度函數(shù)在種子社區(qū)和剩余節(jié)點(diǎn)間進(jìn)行合并;
s107:合并結(jié)束后檢測(cè)社區(qū)數(shù)目決定是否使用消除策略,輸出最終社區(qū)劃分結(jié)果。
本發(fā)明實(shí)施例提供的基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法具體包括以下步驟:
1)將多關(guān)系網(wǎng)絡(luò)的各關(guān)系直接按照相同比例來(lái)配置權(quán)重把多關(guān)系網(wǎng)絡(luò)合并成一個(gè)帶權(quán)的單關(guān)系網(wǎng)絡(luò)a。
2)采用一種單關(guān)系的社區(qū)劃分方法對(duì)網(wǎng)絡(luò)a進(jìn)行社區(qū)劃分,所得的社區(qū)劃分結(jié)果記為ca,接著采用一種衡量社區(qū)發(fā)現(xiàn)結(jié)果可靠性及結(jié)構(gòu)強(qiáng)度的指標(biāo)對(duì)結(jié)果ca進(jìn)行衡量,衡量出的值記為qa。
3)以各關(guān)系的權(quán)重配比作為決策變量,采用一種多目標(biāo)優(yōu)化方法同時(shí)對(duì)下列兩個(gè)子目標(biāo)進(jìn)行優(yōu)化來(lái)獲得一組最優(yōu)決策變量集;
優(yōu)化子目標(biāo)一:新的權(quán)重配比合并成的單關(guān)系網(wǎng)絡(luò)b與網(wǎng)絡(luò)a的社區(qū)劃分結(jié)果的結(jié)構(gòu)衡量指標(biāo)差值盡可能大;
優(yōu)化子目標(biāo)二:新的權(quán)重配比合并成的單關(guān)系網(wǎng)絡(luò)b與網(wǎng)絡(luò)a的社區(qū)劃分結(jié)果所顯示的社區(qū)結(jié)構(gòu)信息相似性盡可能大,二者社區(qū)結(jié)構(gòu)信息相似性可以用一些常用的指標(biāo),比如標(biāo)準(zhǔn)化互信息nmi。
4)在步驟3)獲得的最優(yōu)決策變量集中選擇使子目標(biāo)一最大的權(quán)重配比將多關(guān)系網(wǎng)絡(luò)融合成單關(guān)系網(wǎng)絡(luò)m,并采用一種單關(guān)系社區(qū)發(fā)現(xiàn)方法對(duì)m進(jìn)行社區(qū)發(fā)現(xiàn),將所獲社區(qū)個(gè)數(shù)記為k。
5)采用一種單關(guān)系社區(qū)發(fā)現(xiàn)方法分別對(duì)每個(gè)關(guān)系組成的網(wǎng)絡(luò)進(jìn)行社區(qū)劃分。
6)設(shè)置迭代標(biāo)志l=0,對(duì)步驟5)各關(guān)系社區(qū)發(fā)現(xiàn)的結(jié)果進(jìn)行統(tǒng)計(jì),將在所有關(guān)系中都處于一個(gè)社區(qū)的節(jié)點(diǎn)作為種子社區(qū)放入種子社區(qū)集合cl中。
7)通過(guò)單關(guān)系網(wǎng)絡(luò)m通過(guò)一種相似度計(jì)算方法來(lái)計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)之間的相似度。
8)若l=0,令l=l+1,集合cl=cl-1,進(jìn)行下一步;若l>0,檢測(cè)集合cl與cl-1是否一樣,是則轉(zhuǎn)步驟11),否則令l=l+1,集合cl=cl-1進(jìn)行下一步。
9)將種子社區(qū)候選集合cl中的尚未參與過(guò)合并的社區(qū)按照社區(qū)包含的節(jié)點(diǎn)數(shù)量從大到小進(jìn)行排序,選取排序最高的社區(qū)si作為種子社區(qū)。
10)通過(guò)步驟7)計(jì)算出來(lái)的相似度計(jì)算種子社區(qū)si與其余候選種子社區(qū)以及剩余節(jié)點(diǎn)的相似度記為sim。
11)選取與si相似度超過(guò)設(shè)定閾值β的社區(qū)和節(jié)點(diǎn)放入候選區(qū),通過(guò)一種局部適應(yīng)度計(jì)算方法計(jì)算si當(dāng)前適應(yīng)度f(wàn)以及候選區(qū)各社區(qū)的當(dāng)前適應(yīng)度f(wàn)h,然后分別計(jì)算候選合并區(qū)的社區(qū)和節(jié)點(diǎn)與si合并后的適應(yīng)度值記為fnew,接著計(jì)算fnew相對(duì)于si原來(lái)的適應(yīng)度f(wàn)的增長(zhǎng)率vs以及候選社區(qū)適應(yīng)度f(wàn)new的增長(zhǎng)率vh。
12)在vs和vh都大于增長(zhǎng)率閾值δ的前提下,選使vs+vh最大的候選社區(qū)sj與si合并成一個(gè)新社區(qū),更新si和種子社區(qū)集合cl,返回步驟10);若沒(méi)有符合條件的,則檢查集合cl中現(xiàn)有社區(qū)是否都已是合并過(guò)的,否的話返回步驟9),是的話將集合cl中所有社區(qū)的合并記錄清零,返回步驟8)。
13)檢查網(wǎng)絡(luò)中社區(qū)數(shù)目,若小于等與k,則輸出結(jié)果,程序結(jié)束,輸出集合cl;若大于k,則執(zhí)行如下消除策略;
以包含節(jié)點(diǎn)數(shù)目最多的前k個(gè)社區(qū)為目標(biāo),依次計(jì)算剩余社區(qū)及節(jié)點(diǎn)與他們的相似度,將剩余社區(qū)和節(jié)點(diǎn)歸并入跟他們相似度最高的前k個(gè)社區(qū),更新集合cl,最后輸出社區(qū)集合cl作為最終劃分結(jié)果。
下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作進(jìn)一步的描述。
本發(fā)明實(shí)施例提供的基于關(guān)系組合優(yōu)化和種子擴(kuò)張的多關(guān)系社區(qū)發(fā)現(xiàn)方法包括以下步驟:
步驟一:輸入多關(guān)系網(wǎng)絡(luò),并將各關(guān)系網(wǎng)絡(luò)處理成鄰接矩陣,輸入相似度閾值σ=1及增長(zhǎng)率閾值β=0.1;
采用的多關(guān)系網(wǎng)絡(luò)為人工生成網(wǎng)絡(luò),人造網(wǎng)絡(luò)的大小為350個(gè)節(jié)點(diǎn),包含三個(gè)社區(qū),每個(gè)社區(qū)分別包括50,100和200個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)之間存在四個(gè)維度的關(guān)系,即節(jié)點(diǎn)間存在著四種連接方式。同一社區(qū)間的節(jié)點(diǎn)以概率u進(jìn)行連接,不屬于同一社區(qū)的節(jié)點(diǎn)間的連接概率根據(jù)維度變化,即不同關(guān)系下的不同社區(qū)間節(jié)點(diǎn)的連接概率v不同。同時(shí)向網(wǎng)絡(luò)中加入了噪聲,噪聲產(chǎn)生的方法是網(wǎng)絡(luò)中所有節(jié)點(diǎn)之間以概率r進(jìn)行隨機(jī)連接。
步驟二:將多關(guān)系網(wǎng)絡(luò)的四個(gè)關(guān)系直接按照1:1比例來(lái)配置權(quán)重將多關(guān)系網(wǎng)絡(luò)合并成一個(gè)帶權(quán)重的單關(guān)系網(wǎng)絡(luò)a,本發(fā)明實(shí)施例選用單關(guān)系的社區(qū)劃分算法bgll對(duì)網(wǎng)絡(luò)a進(jìn)行社區(qū)劃分,所得的社區(qū)劃分結(jié)果記為ca,本發(fā)明實(shí)施例采用模塊度作為衡量結(jié)果社區(qū)結(jié)構(gòu)強(qiáng)度和可靠性的指標(biāo),計(jì)算結(jié)果ca的模塊度qa,模塊度計(jì)算如下:
其中ai,j是整個(gè)網(wǎng)絡(luò)的鄰接矩陣,m是網(wǎng)絡(luò)中包含的邊的數(shù)目,ki和kj分別表示節(jié)點(diǎn)i和節(jié)點(diǎn)j的度數(shù),δ(ci,cj)的取值取決于i和j是否處于同一個(gè)社區(qū)內(nèi),是的話δ(ci,cj)取值為,否則話其取值為0。
步驟三:以各關(guān)系的權(quán)重配比作為決策變量,采用一種多目標(biāo)優(yōu)化方法同時(shí)對(duì)下列兩個(gè)子目標(biāo)進(jìn)行優(yōu)化來(lái)獲得一組最優(yōu)決策變量集;
優(yōu)化子目標(biāo)一:新的權(quán)重配比合并成的單關(guān)系網(wǎng)絡(luò)b與網(wǎng)絡(luò)a的社區(qū)劃分結(jié)果的模塊度差值盡可能大,優(yōu)化子目標(biāo)二:新的權(quán)重配比合并成的單關(guān)系網(wǎng)絡(luò)b與網(wǎng)絡(luò)a的社區(qū)劃分結(jié)果所顯示的社區(qū)結(jié)構(gòu)信息相似性盡可能大,本實(shí)施案例使用標(biāo)準(zhǔn)化互信息nmi,按如下計(jì)算:
其中混淆矩陣h的行代表真實(shí)的社區(qū)劃分結(jié)果,h的列代表劃分算法畫(huà)出來(lái)的社區(qū)結(jié)果。ca和cb分別代表a,b兩個(gè)結(jié)果包含的社區(qū)個(gè)數(shù),hij代表應(yīng)該在社區(qū)i中卻出現(xiàn)在社區(qū)j中的節(jié)點(diǎn)個(gè)數(shù),hi.和h.j分別代表第i行和第j列的社區(qū)的節(jié)點(diǎn)數(shù)之和,n是整個(gè)網(wǎng)絡(luò)中所含的節(jié)點(diǎn)數(shù)目。當(dāng)nmi=1時(shí),代表a和b兩個(gè)結(jié)果的社區(qū)結(jié)構(gòu)完全相同,nmi=0,時(shí)代表完全不一樣。多目標(biāo)遺傳算法初始種群大小為50,交叉概率0.8,變異概率0.2,迭代次數(shù)300,編碼方式為實(shí)數(shù)編碼。
步驟四:在步驟三獲得的最優(yōu)解集中選擇使模塊度值最大的解作為最終解,根據(jù)最終解給出的權(quán)重配比將多關(guān)系網(wǎng)絡(luò)合并成單關(guān)系網(wǎng)絡(luò)m,并采用一種單關(guān)系社區(qū)發(fā)現(xiàn)算法對(duì)m進(jìn)行社區(qū)發(fā)現(xiàn),將所獲社區(qū)個(gè)數(shù)記為k,這里k=3。
步驟五:采用單關(guān)系社區(qū)發(fā)現(xiàn)算法bgll分別對(duì)四個(gè)關(guān)系組成的網(wǎng)絡(luò)進(jìn)行社區(qū)劃分,統(tǒng)計(jì)劃分結(jié)果根據(jù)式子
步驟六:通過(guò)單關(guān)系網(wǎng)絡(luò)m來(lái)計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)之間的相似度sim:
其中k表示i,j被劃為相同社區(qū)的維度個(gè)數(shù),n=4,δ增益因子為1,w(i,j)時(shí)節(jié)點(diǎn)i和節(jié)點(diǎn)j的連接邊權(quán)重,com(i,j)兩個(gè)節(jié)點(diǎn)鄰居節(jié)點(diǎn)交集,n(i,j)是兩個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)并集。
步驟七:若l=0,令l=l+1,集合cl=cl-1,進(jìn)行下一步;否的話檢測(cè)集合cl與cl-1是否一樣,是的話轉(zhuǎn)步驟十一,否則,令l=l+1,集合cl=cl-1進(jìn)行下一步。
步驟八:將種子社區(qū)候選集合cl中的尚未參與過(guò)合并的社區(qū)按照社區(qū)包含的節(jié)點(diǎn)個(gè)數(shù)多少排序,選取節(jié)點(diǎn)數(shù)最多的社區(qū)si作為種子社區(qū)。
步驟九:計(jì)算種子社區(qū)si與其余候選種子社區(qū)以及剩余節(jié)點(diǎn)的相似度,計(jì)算式子如下:
u和v分別是社區(qū)si,sj中的節(jié)點(diǎn),ni和nj分別是兩個(gè)社區(qū)中節(jié)點(diǎn)的數(shù)量,
步驟十:選取與si相似度超過(guò)設(shè)定閾值γ=1的社區(qū)和節(jié)點(diǎn)放入候選區(qū),計(jì)算si當(dāng)前適應(yīng)度f(wàn)以及候選區(qū)各社區(qū)的當(dāng)前適應(yīng)度f(wàn)h,計(jì)算公式如下:
其中式子的
然后分別計(jì)算候選合并區(qū)的社區(qū)和節(jié)點(diǎn)與si合并后的適應(yīng)度值記為,然后計(jì)算fnew相對(duì)于si原來(lái)的適應(yīng)度f(wàn)的增長(zhǎng)率vs以及候選社區(qū)適應(yīng)度f(wàn)h的增長(zhǎng)率vh。
步驟十一:在vs和vh都大于增長(zhǎng)率閾值δ=0.1的前提下,選取vs+vh最大的那個(gè)社區(qū)與si合并成一個(gè)新社區(qū),更新si和種子社區(qū)集合cl,返回步驟十;若沒(méi)有符合條件的,則檢查集合cl中現(xiàn)有社區(qū)是否都已是合并過(guò)的,否的話返回步驟九,是的話將集合cl中所有社區(qū)的合并記錄清零,返回步驟八。
步驟十二:檢查社區(qū)數(shù)目,若小于等與k,則輸出結(jié)果,程序結(jié)束,輸出集合cl;若大于k,則以包含節(jié)點(diǎn)數(shù)目最多的前k個(gè)社區(qū)為目標(biāo),依次計(jì)算剩余社區(qū)與他們的相似度,將剩余社區(qū)和節(jié)點(diǎn)歸并入跟他們相似度最高的前k個(gè)社區(qū),更新集合cl,最后輸出社區(qū)集合cl作為最終劃分結(jié)果。
下面結(jié)合仿真對(duì)本發(fā)明的應(yīng)用效果作詳細(xì)的描述。
仿真一為本發(fā)明實(shí)施案例中u=0.5,噪聲r(shí)=0.1的情況下本發(fā)明與只采用一種關(guān)系用bgll算法進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果對(duì)比,采用nmi值來(lái)驗(yàn)證實(shí)驗(yàn)結(jié)果與真實(shí)社區(qū)結(jié)構(gòu)的相似度,見(jiàn)圖3??梢钥闯霾捎枚喾N關(guān)系進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果優(yōu)于只采用一種關(guān)系的結(jié)果。
仿真二為本發(fā)明實(shí)施案例中不斷加大噪聲時(shí)(從0.1增加到0.4,每次增加0.05),本發(fā)明的檢測(cè)結(jié)果與傳統(tǒng)的pmm方法的對(duì)比,見(jiàn)圖4??梢钥闯霰景l(fā)明的方法的抗噪音效果比較強(qiáng)。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。