本發(fā)明屬于數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體涉及的是一種利用節(jié)點(diǎn)權(quán)重對(duì)信息傳播接收標(biāo)簽方法。
背景技術(shù):
近年來,隨著互聯(lián)網(wǎng)應(yīng)用的不斷推廣,人們?cè)絹碓蕉嗟膮⑴c到社交網(wǎng)絡(luò)中,人們不再局限于地域的差異而緊密聯(lián)系在一起。因此,人們對(duì)社區(qū)發(fā)現(xiàn)的研究也越來越深入。隨著社交網(wǎng)絡(luò)的迅猛發(fā)展,研究學(xué)者對(duì)社區(qū)發(fā)現(xiàn)的研究方法與技術(shù)也在不斷完善和提高。復(fù)雜網(wǎng)絡(luò)就是一個(gè)聚寶盆,富含著各種大量的有用信息。比如,我們可以根據(jù)網(wǎng)絡(luò)中用戶的興趣、愛好、關(guān)注點(diǎn)以及其他相似特征,得出關(guān)于該用戶的價(jià)值觀、興趣、活動(dòng)等重要信息。我們可以根據(jù)這些屬性將多個(gè)用戶劃分在同一個(gè)社區(qū),方便統(tǒng)一為該社區(qū)用戶推送相關(guān)信息,降低成本。然而,隨著網(wǎng)絡(luò)用戶信息與關(guān)系的不斷更新與變化,需要處理的數(shù)據(jù)復(fù)雜度不斷增加。現(xiàn)有的方法中大多數(shù)采用模塊度進(jìn)行判斷,但是這個(gè)方法無法避免分辨率限制問題,即在社區(qū)發(fā)現(xiàn)過程中,有時(shí)偏愛小社區(qū),有時(shí)偏愛大社區(qū)。為了解決這個(gè)問題,提出了模塊度密度這個(gè)概念,對(duì)復(fù)雜網(wǎng)絡(luò)的社區(qū)發(fā)現(xiàn)具有重要意義。
lifanghe等在2016年kdd會(huì)議上提出了基于和諧模塊度的聯(lián)合社區(qū)和結(jié)構(gòu)洞發(fā)現(xiàn)算法。該算法主要分為兩大部分,首先進(jìn)行結(jié)構(gòu)洞發(fā)現(xiàn),并在此基礎(chǔ)上進(jìn)行社區(qū)發(fā)現(xiàn),尋找最優(yōu)的社區(qū)發(fā)現(xiàn)結(jié)果。它主要是將定義的和諧方程轉(zhuǎn)化為對(duì)l范式的求解。根據(jù)大量的對(duì)比實(shí)驗(yàn)發(fā)現(xiàn),大多數(shù)算法對(duì)結(jié)構(gòu)洞的定義理解具有偏差,從而導(dǎo)致結(jié)果的千差萬別,但是根據(jù)去除結(jié)構(gòu)洞節(jié)點(diǎn)前后的社區(qū)發(fā)現(xiàn)結(jié)果對(duì)比發(fā)現(xiàn),后來的效果明顯要好于先前。
本發(fā)明是根據(jù)分析該文章的方法,將結(jié)構(gòu)洞引申到重疊節(jié)點(diǎn),涉及一種基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn),能夠更加快速有效的進(jìn)行社區(qū)發(fā)現(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是在標(biāo)簽傳播過程中對(duì)重疊節(jié)點(diǎn)的發(fā)現(xiàn)以及重疊節(jié)點(diǎn)的選擇,使得具有較低權(quán)重的重疊節(jié)點(diǎn)被發(fā)現(xiàn),使得去除掉這些重疊節(jié)點(diǎn)后社區(qū)的結(jié)構(gòu)特征更加明顯,提高社區(qū)發(fā)現(xiàn)的正確性。
技術(shù)方案如下:
基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)方法,包括以下步驟:
步驟1),初始化整個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)分配唯一的一個(gè)標(biāo)簽,以其標(biāo)簽初始化節(jié)點(diǎn)內(nèi)存;
步驟2),信息接收者挑選,在步驟1)得到的初始化的節(jié)點(diǎn),隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為信息接收者;
步驟3),信息傳播,在步驟2)中確定一個(gè)節(jié)點(diǎn)信息接收者,該節(jié)點(diǎn)的每一個(gè)鄰居節(jié)點(diǎn)根據(jù)傳播規(guī)則發(fā)送一個(gè)標(biāo)簽;
步驟4),信息接收,信息接收者根據(jù)接收規(guī)則接受在步驟3)中發(fā)送來的一個(gè)標(biāo)簽。再執(zhí)行步驟2),直到滿足停止條件;
步驟5),重疊節(jié)點(diǎn)發(fā)現(xiàn),在這個(gè)階段,把具有多個(gè)不同標(biāo)簽的節(jié)點(diǎn)記錄下來即為重疊節(jié)點(diǎn);
步驟6),節(jié)點(diǎn)權(quán)重,根據(jù)步驟5),獲得重疊節(jié)點(diǎn),計(jì)算這些節(jié)點(diǎn)的權(quán)重;
步驟7),k重疊節(jié)點(diǎn)的選擇,根據(jù)步驟6),將節(jié)點(diǎn)的權(quán)重按升序排列,從中選擇前k個(gè)重疊節(jié)點(diǎn);
步驟8),社區(qū)發(fā)現(xiàn),分別對(duì)移除k個(gè)重疊節(jié)點(diǎn)前后的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行社區(qū)發(fā)現(xiàn)。
進(jìn)一步的,基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法,步驟1),初始化網(wǎng)絡(luò)圖結(jié)構(gòu),給網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)分配一個(gè)標(biāo)簽,每個(gè)節(jié)點(diǎn)的標(biāo)簽必須有且僅有一個(gè),根據(jù)節(jié)點(diǎn)的標(biāo)簽進(jìn)行內(nèi)存初始化。
進(jìn)一步的,基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法,步驟3),信息傳播,根據(jù)傳播規(guī)則選擇一個(gè)標(biāo)簽進(jìn)行傳播。其傳播規(guī)則為從其存儲(chǔ)器中選擇隨機(jī)標(biāo)簽,其概率與存儲(chǔ)器中該標(biāo)簽出現(xiàn)的頻率成比例。
進(jìn)一步的,基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法,步驟4),信息接收,信息接收者根據(jù)接收規(guī)則接受發(fā)送來的一個(gè)標(biāo)簽。其接收規(guī)則為從當(dāng)前步驟中挑選最受歡迎即出現(xiàn)頻率最高的標(biāo)簽。
進(jìn)一步的,基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法,步驟5),重疊節(jié)點(diǎn)發(fā)現(xiàn)。當(dāng)?shù)V购螅瑢?duì)每一個(gè)節(jié)點(diǎn)歷史標(biāo)簽序列中各標(biāo)簽出現(xiàn)的頻率做統(tǒng)計(jì),與一個(gè)給定閾值γ(γ=0.5)相比較,如果小于γ,則刪除節(jié)點(diǎn)的此標(biāo)簽信息,否則保留,最終具有多個(gè)不同標(biāo)簽的節(jié)點(diǎn)即為重疊節(jié)點(diǎn)。
終止條件包括:
(1)達(dá)到迭代次數(shù);
(2)收集到充分的信息后任意時(shí)間均可停止。
進(jìn)一步的,基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法,步驟6),重疊節(jié)點(diǎn)權(quán)重,其用于衡量節(jié)點(diǎn)在網(wǎng)絡(luò)中的影響力,它的值越大表明節(jié)點(diǎn)的影響力越大,反之亦然。計(jì)算重疊節(jié)點(diǎn)權(quán)重,其定義為:
其中,節(jié)點(diǎn)集合v={v1,v2,...,vn},集合ti={ti1,ti2,...,tik}為與節(jié)點(diǎn)i相連接節(jié)點(diǎn)的集合,函數(shù)g(vi)為節(jié)點(diǎn)的度。d為阻尼系數(shù),取值在0~1之間,每個(gè)節(jié)點(diǎn)權(quán)重的求解主要采用迭代的方式進(jìn)行。
進(jìn)一步的,基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法,步驟7),k重疊節(jié)點(diǎn)的選擇,根據(jù)步驟6)計(jì)算重疊節(jié)點(diǎn)的權(quán)重,將其按升序排列,并根據(jù)網(wǎng)絡(luò)大小以及重疊節(jié)點(diǎn)個(gè)數(shù)確定k的值,從重疊節(jié)點(diǎn)權(quán)重序列中選擇前k個(gè),得到所對(duì)應(yīng)的重疊節(jié)點(diǎn)即所求的節(jié)點(diǎn)。
進(jìn)一步的,基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法,步驟8),社區(qū)發(fā)現(xiàn),通過現(xiàn)有的多種社區(qū)發(fā)現(xiàn)算法比較移除k個(gè)重疊節(jié)點(diǎn)前后的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果。
其評(píng)價(jià)模型方法如下:
1)互信息用來衡量兩個(gè)變量之間共享的信息?;バ畔⒅翟酱蟊砻鲀蓚€(gè)變量之間共享的信息越多,反之則越少。其定義如下:
2)模塊度(modularity)用于衡量網(wǎng)絡(luò)的社區(qū)劃分是否得到好的結(jié)果。模塊度的值越大表明社區(qū)發(fā)現(xiàn)的結(jié)果越好,反之則越少。其定義如下:
有益效果
本發(fā)明能夠讓具有較低權(quán)重的節(jié)點(diǎn)具有更高的被選中的概率,從而使得網(wǎng)絡(luò)影響力高的重疊節(jié)點(diǎn)被保留下來。加快重疊節(jié)點(diǎn)的選擇,且其有明確的定義,具有一定的傾向性和目的性,簡化了初始復(fù)雜網(wǎng)絡(luò),使得社區(qū)發(fā)現(xiàn)的結(jié)果更加準(zhǔn)確。
附圖說明
圖1為基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法的特征選擇流程圖。
具體實(shí)施方式
結(jié)合流程圖及實(shí)施案例對(duì)本發(fā)明所述的基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法作進(jìn)一步的詳細(xì)描述。
本實(shí)施案例采用基于重疊節(jié)點(diǎn)的復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn),如圖1所示,本方法包含如下步驟:
步驟10,初始化整個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)分配唯一的一個(gè)標(biāo)簽,每一個(gè)節(jié)點(diǎn)的內(nèi)存都用節(jié)點(diǎn)的id(即標(biāo)簽)初始化。
步驟20,信息接收者挑選。每一個(gè)節(jié)點(diǎn)都可以作為信息接收者或者信息傳播者,取決于這個(gè)節(jié)點(diǎn)在網(wǎng)絡(luò)中充當(dāng)?shù)慕巧?,而?duì)于一個(gè)復(fù)雜網(wǎng)絡(luò),網(wǎng)絡(luò)中的節(jié)點(diǎn)往往即進(jìn)行信息傳播又進(jìn)行信息接收,因此,隨機(jī)挑選一個(gè)節(jié)點(diǎn)作為信息接收者。
步驟30,信息傳播。根據(jù)步驟20,確定一個(gè)節(jié)點(diǎn)作為信息接收者,由于每一個(gè)節(jié)點(diǎn)能夠容納盡可能多的節(jié)點(diǎn)標(biāo)簽,節(jié)點(diǎn)能夠累積在底層網(wǎng)絡(luò)隨機(jī)過程中接收到的節(jié)點(diǎn)標(biāo)簽信息,且不會(huì)出現(xiàn)信息的擦除與丟失。
步驟301,判斷出該節(jié)點(diǎn)所有的鄰居節(jié)點(diǎn)。
步驟302,該節(jié)點(diǎn)的每一個(gè)鄰居節(jié)點(diǎn)根據(jù)所接收到的標(biāo)簽的重復(fù)次數(shù),挑選出現(xiàn)頻率最高的標(biāo)簽進(jìn)行傳播,如果具有多個(gè)出現(xiàn)頻率最高的節(jié)點(diǎn)標(biāo)簽,則隨機(jī)選擇其中一個(gè)標(biāo)簽進(jìn)行傳播。
步驟40,信息接收。該步驟與步驟30類似,從所有鄰居節(jié)點(diǎn)傳播來的標(biāo)簽中選擇出現(xiàn)頻率最高的節(jié)點(diǎn)標(biāo)簽進(jìn)行接收,并將該標(biāo)簽存儲(chǔ)在該節(jié)點(diǎn)所在的內(nèi)存中。如果具有多個(gè)相同的最高頻率的節(jié)點(diǎn)標(biāo)簽,則選取最先傳播過來的標(biāo)簽。再執(zhí)行步驟20,直到滿足停止條件。
步驟50,重疊節(jié)點(diǎn)發(fā)現(xiàn)。由于每個(gè)節(jié)點(diǎn)可以容納多個(gè)標(biāo)簽信息,從而使得該節(jié)點(diǎn)能夠分屬于多個(gè)社區(qū)。在這個(gè)過程中,就是把具有多個(gè)不同標(biāo)簽的節(jié)點(diǎn)記錄下來。
步驟501,在這個(gè)過程中,每一次迭代,節(jié)點(diǎn)的內(nèi)存中都會(huì)添加一個(gè)節(jié)點(diǎn)標(biāo)簽;迭代結(jié)束后,每個(gè)節(jié)點(diǎn)內(nèi)存中存儲(chǔ)t(迭代次數(shù))個(gè)節(jié)點(diǎn)標(biāo)簽,形成一個(gè)歷史標(biāo)簽序列,對(duì)每個(gè)節(jié)點(diǎn)歷史標(biāo)簽序列中各標(biāo)簽出現(xiàn)的頻率做統(tǒng)計(jì)。
步驟502,判斷這些節(jié)點(diǎn)標(biāo)簽在整個(gè)過程中出現(xiàn)的概率是否小于閾值γ,如果是,則刪除這個(gè)節(jié)點(diǎn)的該標(biāo)簽信息,否則保留。此時(shí),具有多個(gè)標(biāo)簽的節(jié)點(diǎn)即為重疊節(jié)點(diǎn),用于進(jìn)一步的操作。其中,閾值γ∈[0,1],由于閾值的變動(dòng),可能導(dǎo)致重疊社區(qū)與非重疊社區(qū)的變動(dòng),所以,設(shè)定γ=0.5。
步驟60,重疊節(jié)點(diǎn)權(quán)重。根據(jù)步驟50,獲得社區(qū)發(fā)現(xiàn)后的重疊節(jié)點(diǎn),根據(jù)公式,計(jì)算重疊節(jié)點(diǎn)對(duì)應(yīng)的權(quán)重。
步驟70,k個(gè)重疊節(jié)點(diǎn)的選擇。根據(jù)步驟60,將節(jié)點(diǎn)所對(duì)應(yīng)的權(quán)重按升序排列,從中選擇前k個(gè)值,并分別對(duì)應(yīng)到相應(yīng)的重疊節(jié)點(diǎn)。其中,k的值根據(jù)網(wǎng)絡(luò)的大小以及重疊節(jié)點(diǎn)的個(gè)數(shù)來確定。
步驟80,社區(qū)發(fā)現(xiàn),采用多種社區(qū)發(fā)現(xiàn)算法以及多個(gè)數(shù)據(jù)集進(jìn)行結(jié)果對(duì)比實(shí)驗(yàn),利用互信息和模塊度的值來判斷結(jié)果是否有改善。
步驟801,對(duì)原始的網(wǎng)絡(luò)進(jìn)行社區(qū)發(fā)現(xiàn)。
步驟802,對(duì)移除前k個(gè)重疊節(jié)點(diǎn)后的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行社區(qū)發(fā)現(xiàn)。
步驟803,比較移除前k個(gè)重疊節(jié)點(diǎn)前后的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行社區(qū)發(fā)現(xiàn)的結(jié)果。
以上所述的具體實(shí)施方案,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步的詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方案而已,并非用以限定本發(fā)明的范圍,任何本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的構(gòu)思和原則的前提下所做出的等同變化與修改,均應(yīng)屬于本發(fā)明保護(hù)的范圍。