本發(fā)明涉及網(wǎng)絡(luò)科學(xué)和鏈路預(yù)測領(lǐng)域,特別是指一種基于貝葉斯估計(jì)和種子節(jié)點(diǎn)鄰居集合的鏈路預(yù)測方法。
背景技術(shù):
現(xiàn)實(shí)生活中的復(fù)雜系統(tǒng)可以使用復(fù)雜網(wǎng)絡(luò)進(jìn)行研究,網(wǎng)絡(luò)中的節(jié)點(diǎn)代表復(fù)雜系統(tǒng)中的個(gè)體,連邊代表系統(tǒng)中節(jié)點(diǎn)之間的相互關(guān)系。鏈路預(yù)測是復(fù)雜網(wǎng)絡(luò)的重要研究領(lǐng)域之一,因?yàn)殒溌奉A(yù)測可以對網(wǎng)絡(luò)的演化過程中節(jié)點(diǎn)之間可能產(chǎn)生的鏈路進(jìn)行預(yù)測,所有可以提前預(yù)判出網(wǎng)絡(luò)的演化趨勢,并且可以判斷出網(wǎng)絡(luò)中并不存在的“幽靈邊”,能夠更好的幫助研究人員研究網(wǎng)絡(luò)的內(nèi)在規(guī)律。
鏈路預(yù)測問題受到研究人員的廣泛關(guān)注。相比較而言,基于網(wǎng)絡(luò)結(jié)構(gòu)的鏈路預(yù)測算法相對于基于網(wǎng)絡(luò)節(jié)點(diǎn)屬性信息的預(yù)測算法更加可靠、準(zhǔn)確。共同鄰居(cn)算法是一種基于網(wǎng)絡(luò)結(jié)構(gòu)的經(jīng)典鏈路預(yù)測算法,這種算法又被稱為結(jié)構(gòu)等價(jià)算法,即節(jié)點(diǎn)之間有很多的共同鄰居節(jié)點(diǎn),那么這兩個(gè)節(jié)點(diǎn)就越相似,在cn算法的基礎(chǔ)之上衍生出的鏈路預(yù)測算法有salton算法、jaccard算法、sorenson算法、hpi(大度節(jié)點(diǎn)有利指標(biāo))、hdi(大度節(jié)點(diǎn)不利指標(biāo))、lhn-i算法、aa算法和ra算法等等,其中salton算法又被稱為余弦相似性算法,sorenson算法常被用于生態(tài)學(xué)數(shù)據(jù)的研究,hpi算法常被用來分析新陳代謝網(wǎng)絡(luò)的拓?fù)湎嗨菩?,aa算法的思想是度小的共同鄰居節(jié)點(diǎn)的貢獻(xiàn)大于度大的共同鄰居節(jié)點(diǎn),ra算法是在aa算法的基礎(chǔ)之上,受資源分配過程的啟發(fā)而提出來的;基于路徑的相似性算法,主要包括了局部路徑指標(biāo)(localpath,lp)、katz算法lhn-ii算法,這些算法克服了cn算法使用的網(wǎng)絡(luò)有效信息過少的缺點(diǎn),從全局的角度利用網(wǎng)絡(luò)的有效信息,因此,一定程度上提高了鏈路預(yù)測的精確性。
上述的一些經(jīng)典算法主要考慮的是網(wǎng)絡(luò)中的拓?fù)浣Y(jié)構(gòu)特性,即兩個(gè)節(jié)點(diǎn)之間的網(wǎng)絡(luò)特征越相似,那么這兩個(gè)節(jié)點(diǎn)之間越有可能產(chǎn)生鏈路,這些方法在很多網(wǎng)絡(luò)中的仿真被證實(shí)是有效的,但是這些傳統(tǒng)的經(jīng)典算法大部分只考慮了沒有直接連邊的節(jié)點(diǎn)對之間長度為二的路徑的中間節(jié)點(diǎn)的度數(shù)信息,并沒有考慮長度大于二的路徑的中間節(jié)點(diǎn)的屬性,事實(shí)上網(wǎng)絡(luò)中的這些屬性對于節(jié)點(diǎn)對之間產(chǎn)生鏈路有很大的作用。傳統(tǒng)的基于種子節(jié)點(diǎn)鄰居集合的鏈路預(yù)測算法只是考慮了種子節(jié)點(diǎn)之間路徑長度等于2的路徑的中間節(jié)點(diǎn),而且只是統(tǒng)計(jì)了這些長度為2的路徑的中間節(jié)點(diǎn),對這些節(jié)點(diǎn)并沒有作出區(qū)分,所以無法區(qū)分這些中間節(jié)點(diǎn)的重要性。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有的基于種子節(jié)點(diǎn)鄰居集合的鏈路預(yù)測方法只考慮路徑長度等于2和3的路徑的中間節(jié)點(diǎn),并且,只考慮這些節(jié)點(diǎn)的度數(shù)而導(dǎo)致的預(yù)測精度不高的不足,本發(fā)明提出了一種準(zhǔn)確度較高的基于貝葉斯估計(jì)和種子節(jié)點(diǎn)鄰居集合的鏈路預(yù)測方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種基于貝葉斯估計(jì)和種子節(jié)點(diǎn)鄰居集合的鏈路預(yù)測方法,包括以下步驟:
步驟一:建立網(wǎng)絡(luò)模型g(v,e),v代表網(wǎng)絡(luò)中的節(jié)點(diǎn)集合,e代表網(wǎng)絡(luò)中的連邊集合,網(wǎng)絡(luò)的節(jié)點(diǎn)總數(shù)記為n,用u表示網(wǎng)絡(luò)中節(jié)點(diǎn)對的集合,|u|=n(n-1)/2表示網(wǎng)絡(luò)中節(jié)點(diǎn)對的總數(shù);
步驟二:任意選取網(wǎng)絡(luò)中的兩個(gè)節(jié)點(diǎn)x和y作為種子節(jié)點(diǎn),計(jì)算它們之間存在直接連邊的可能性:
其中,|e|表示網(wǎng)絡(luò)中實(shí)際存在的連邊總數(shù),a1表示x和y兩個(gè)節(jié)點(diǎn)之間存在直接連邊;
步驟三:計(jì)算網(wǎng)絡(luò)中任意兩個(gè)節(jié)點(diǎn)x和y之間不存在直接連邊的概率:
其中,a0表示x和y兩個(gè)節(jié)點(diǎn)之間不存在直接連邊;
步驟四:根據(jù)節(jié)點(diǎn)x和y之間長度為2或者3的路徑的一個(gè)中間節(jié)點(diǎn)vw的度信息,計(jì)算節(jié)點(diǎn)x和y之間產(chǎn)生連邊的概率:
p(a1|vw)=cw
其中,cw=2ew/kw(kw-1),kw表示節(jié)點(diǎn)vw的度數(shù),ew表示節(jié)點(diǎn)vw的kw個(gè)鄰居節(jié)點(diǎn)之間實(shí)際存在的邊數(shù);
步驟五:根據(jù)節(jié)點(diǎn)x和y之間長度為2或者3的路徑的一個(gè)中間節(jié)點(diǎn)vw的度信息,計(jì)算節(jié)點(diǎn)x和y之間不產(chǎn)生連邊的概率:
p(a0|vw)=1-cw;
步驟六:根據(jù)貝葉斯估計(jì)的方法,計(jì)算節(jié)點(diǎn)x和y之間長度為2和3的路徑的任意一個(gè)中間節(jié)點(diǎn)vw的似然值
步驟七:對節(jié)點(diǎn)x和y之間長度為2和3的路徑的每一個(gè)中間節(jié)點(diǎn),重復(fù)步驟四至步驟六,計(jì)算每一個(gè)中間節(jié)點(diǎn)的似然值
步驟八:計(jì)算節(jié)點(diǎn)x和y的相似性分?jǐn)?shù):
其中q表示節(jié)點(diǎn)x和y之間長度為2和3的所有路徑的中間節(jié)點(diǎn)的數(shù)量,mx表示節(jié)點(diǎn)x的一階和二階鄰居數(shù)量之和,x的一階鄰居指的是和x距離為1的節(jié)點(diǎn),x的二階鄰居指的是和x距離為2的節(jié)點(diǎn);my表示節(jié)點(diǎn)y的一階和二階鄰居數(shù)量之和;
步驟九:遍歷整個(gè)網(wǎng)絡(luò),對任意兩個(gè)未連接節(jié)點(diǎn),重復(fù)步驟二至步驟八,計(jì)算所有未連接節(jié)點(diǎn)對之間的相似性分?jǐn)?shù),并按照相似性分?jǐn)?shù)值從高到低排列順序,取前b個(gè)相似性分?jǐn)?shù)值對應(yīng)的節(jié)點(diǎn)對為預(yù)測連邊,其中,b為設(shè)定的一個(gè)正整數(shù),b≤d,d為網(wǎng)絡(luò)中所有未連接節(jié)點(diǎn)對的數(shù)量。
本發(fā)明的有益效果為:考慮網(wǎng)絡(luò)中兩個(gè)未連接節(jié)點(diǎn)之間路徑長度等于2或3的局部路徑,區(qū)分網(wǎng)絡(luò)中的中間節(jié)點(diǎn)的度數(shù)對產(chǎn)生鏈路的貢獻(xiàn),提出了一種基于貝葉斯估計(jì)和種子節(jié)點(diǎn)鄰居集合的鏈路預(yù)測方法,鏈路預(yù)測準(zhǔn)確度較高。
附圖說明
圖1為網(wǎng)絡(luò)中的任意一個(gè)不存在直接連邊的節(jié)點(diǎn)對之間的不同中間節(jié)點(diǎn)對這個(gè)節(jié)點(diǎn)對之間產(chǎn)生鏈路的影響。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明做進(jìn)一步說明。
參照圖1,一種基于貝葉斯估計(jì)和種子節(jié)點(diǎn)鄰居集合的鏈路預(yù)測方法,包括以下步驟:
步驟一:建立網(wǎng)絡(luò)模型g(v,e),v代表網(wǎng)絡(luò)中的節(jié)點(diǎn)集合,e代表網(wǎng)絡(luò)中的連邊集合,網(wǎng)絡(luò)的節(jié)點(diǎn)總數(shù)記為n,用u表示網(wǎng)絡(luò)中節(jié)點(diǎn)對的集合,|u|=n(n-1)/2表示網(wǎng)絡(luò)中節(jié)點(diǎn)對的總數(shù);
步驟二:任意選取網(wǎng)絡(luò)中的兩個(gè)節(jié)點(diǎn)x和y作為種子節(jié)點(diǎn),即圖1中黑色圓點(diǎn)表示,計(jì)算它們之間存在直接連邊的可能性:
其中,|e|表示網(wǎng)絡(luò)中實(shí)際存在的連邊總數(shù),a1表示x和y兩個(gè)節(jié)點(diǎn)之間存在直接連邊;
步驟三:計(jì)算網(wǎng)絡(luò)中任意兩個(gè)節(jié)點(diǎn)x和y之間不存在直接連邊的概率,如圖1所示:
其中,a0表示x和y兩個(gè)節(jié)點(diǎn)之間不存在直接連邊;
步驟四:根據(jù)節(jié)點(diǎn)x和y之間長度為2或者3的路徑的一個(gè)中間節(jié)點(diǎn)vw(如圖1所示)的度信息,計(jì)算節(jié)點(diǎn)x和y之間產(chǎn)生連邊的概率:
p(a1|vw)=cw
其中,cw=2ew/kw(kw-1),kw表示節(jié)點(diǎn)vw的度數(shù),ew表示節(jié)點(diǎn)vw的kw個(gè)鄰居節(jié)點(diǎn)之間實(shí)際存在的邊數(shù);
步驟五:根據(jù)節(jié)點(diǎn)x和y之間長度為2或者3的路徑的一個(gè)中間節(jié)點(diǎn)vw(如圖1所示)的度信息,計(jì)算節(jié)點(diǎn)x和y之間不產(chǎn)生連邊的概率:
p(a0|vw)=1-cw;
步驟六:根據(jù)貝葉斯估計(jì)的方法,計(jì)算節(jié)點(diǎn)x和y之間長度為2和3的路徑的任意一個(gè)中間節(jié)點(diǎn)vw的似然值
步驟七:對節(jié)點(diǎn)x和y之間長度為2和3的路徑的每一個(gè)中間節(jié)點(diǎn),重復(fù)步驟四至步驟六,計(jì)算每一個(gè)中間節(jié)點(diǎn)的似然值
步驟八:計(jì)算節(jié)點(diǎn)x和y的相似性分?jǐn)?shù):
其中q表示節(jié)點(diǎn)x和y之間長度為2和3的所有路徑的中間節(jié)點(diǎn)的數(shù)量,mx表示節(jié)點(diǎn)x的一階和二階鄰居數(shù)量之和,x的一階鄰居指的是和x距離為1的節(jié)點(diǎn),x的二階鄰居指的是和x距離為2的節(jié)點(diǎn);my表示節(jié)點(diǎn)y的一階和二階鄰居數(shù)量之和;
步驟九:遍歷整個(gè)網(wǎng)絡(luò),對任意兩個(gè)未連接節(jié)點(diǎn),重復(fù)步驟二至步驟八,計(jì)算所有未連接節(jié)點(diǎn)對之間的相似性分?jǐn)?shù),并按照相似性分?jǐn)?shù)值從高到低排列順序,取前b個(gè)相似性分?jǐn)?shù)值對應(yīng)的節(jié)點(diǎn)對為預(yù)測連邊,其中,b為設(shè)定的一個(gè)正整數(shù),b≤d,d為網(wǎng)絡(luò)中所有未連接節(jié)點(diǎn)對的數(shù)量。
如上所述,本專利實(shí)施的具體實(shí)現(xiàn)步驟使本發(fā)明更加清晰。在本發(fā)明的精神和權(quán)利要求的保護(hù)范圍內(nèi),對本發(fā)明作出的任何修改和改變,都落入本發(fā)明的保護(hù)范圍。