本發明涉及網絡技術領域,特別涉及一種網絡節點的相似度計算方法。
背景技術:
相似性的度量在復雜網絡、社區發現、推薦系統以及數據挖掘等領域有重要應用。近年來,節點間相似性的衡量取得了較大進展,目前已有的衡量節點相似性的方法主要集中在兩節點鄰域中所共有的節點特征的計算,大致可分為:Common-Neighbors相似度、Salton相似度、Jaccard相似度、Sorensen相似度、Hub Promoted相似度、Hub Depressed相似度、Leicht-Holme-Newman相似度、Preferential Attachment相似度、Adamic-Adar相似度等,這些相似度衡量方法主要通過衡量節點間所共有的鄰節點的度數或者直接是該節點本身的度數進行相似性的估算,而對于相鄰節點不能夠準確的衡量節點間的相似性。
研究發現,相鄰節點間的相似性衡量如果仍采用共有的相鄰節點特征進行衡量,那么會出現與二階鄰域節點的相似性高于直接相鄰的節點的相似性。鑒于已有相似性度量方法不能夠準確衡量相鄰節點間的相似性,本發明主要解決直接相鄰節點之間的相似度的準確衡量問題。
技術實現要素:
本發明實施例提供了一種網絡節點的相似度計算方法,用以解決現有技術中存在的問題。
一種網絡節點的相似度計算方法,包括:
采集網絡中的節點信息,將所述節點信息轉換為鄰接表,其中所述節點信息包括節點集V;
利用所述鄰接表計算所述節點集V中每個節點p的直接鄰接點集
利用所述鄰接表,使用Floyd算法計算所述節點集V中每個節點p的二階鄰接點集
將節點p作為代表點,將所述直接鄰接點集中任意一個節點u作為吸引鏈上的1跳節點,計算u的拓撲勢Ap←u;
將節點p作為代表點,將所述節點p依賴于節點u的二階鄰接點集中任意一個節點s作為吸引鏈上的2跳節點,計算s的拓撲勢Ap←s,其中,
計算所述拓撲勢Ap←u和總拓撲勢之間的比值Ru,s;
根據所述直接鄰接點集和節點s,計算節點p與二階鄰接點集中所有節點的總Adamic-Adar Index相似度Simp,s;
根據所述總Adamic-Adar Index相似度Simp,s和比值Ru,s計算節點p和u的Adamic-Adar Index相似度Simp,u=Ru,s×Simp,s;
判斷所述節點集V中每個節點和其直接相鄰節點之間的相似度是否計算完成,如果是則方法結束,否則重新計算所述節點集V中每個節點p的直接鄰接點集
優選地,計算所述節點集V中每個節點p的二階鄰接點集的方法包括:將所述鄰接表中節點和其鄰接節點直接相連的形式轉化為鄰接矩陣A[i,j]n×n,n表示節點總數,其中,節點i和節點j如果是直接相連的,那么A[i,j]=1,否則為0;然后,根據所述鄰接矩陣A[i,j]n×n,利用Floyd算法計算獲得最終的距離矩陣D[i,j]n×n,從距離矩陣D[i,j]n×n中獲取每個節點的二階鄰接點集
優選地,計算u的拓撲勢Ap←u的方法包括:將節點p以及所述直接鄰接點集所構成的集合定義為Γ(p),將節點p作為拓撲勢中的代表點,在其一條吸引鏈上第a跳節點pa,a為整數,對于代表點p的拓撲勢為那么節點u對于代表點p的拓撲勢為其中,σopt表示控制每個節點影響范圍的因子。
優選地,計算s的拓撲勢Ap←s的方法包括:根據所述鄰接表,將節點s及其直接鄰接點集所構成的集合定義為Γ(s),計算得到所述二階鄰接節點中節點的拓撲勢之和為并且節點s和節點u在相同的吸引鏈上。
優選地,計算得到的所述比值Ru,s的為
優選地,計算得到的所述總Adamic-Adar Index相似度Simp,s為其中,k(z)表示節點z的度數。
優選地,計算節點p和u的Adamic-Adar Index相似度的方法包括:
因此,
本發明的有益效果在于:本發明提供的網絡節點復雜度計算方法,主要利用節點的拓撲勢以及Adamic-Adar Index相似性,首先計算出各點的與其二階鄰節點之間的拓撲勢,然后將能夠通過某一直接相連節點訪問的所有二階鄰節點的拓撲勢求和,通過該一階鄰節點和其二階鄰節點拓撲勢之后的比值等價于一階鄰節點與其二階鄰節點相似度之后的比值,最終計算出節點與鄰節點之間的相似性。本發明提供的方法不僅能夠快速有效地衡量相鄰節點之間的相似性,還能避免節點間相似性的過度相同引起的節點間相似度無法區分問題。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種網絡節點的相似度計算方法的流程圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例提供了一種網絡節點的相似度計算方法,該方法包括:
步驟100,采集網絡的節點信息,所述節點信息包括節點集V和邊集E,將所述節點信息轉化成鄰接表;
步驟110,利用所述鄰接表計算所述節點集V中的每個節點p的直接鄰接點集
步驟120,將所述節點集V中節點和其鄰接節點直接相連的形式轉化為鄰接矩陣A[i,j]n×n,n表示節點總數。其中,節點i和節點j如果是直接相連的,那么A[i,j]=1,否則為0。然后,根據所述鄰接矩陣A[i,j]n×n,利用Floyd算法計算多源點之間的最短路徑,獲得最終的距離矩陣D[i,j]n×n,從所述距離矩陣D[i,j]n×n中獲取每個節點p的二階鄰接點集
步驟130,將節點p以及所述直接鄰接點集所構成的集合定義為節點集Γ(p)。將節點p作為拓撲勢中的代表點,所述拓撲勢的一條吸引鏈上第a跳(a為整數)節點pa對于代表點p的拓撲勢為簡稱為那么所述直接鄰接點集中的節點u對于代表點p的拓撲勢為簡稱為其中,σopt表示控制每個節點影響范圍的因子,節點的影響范圍通過l設置調整σopt因子來控制節點的影響范圍;
步驟140,依賴于節點u的吸引鏈上代表點p的二階鄰接點集為其中任意一個節點為s,即根據所述鄰接表,將節點s及其直接鄰接點集所構成的集合定義為節點集Γ(s)。計算得到所述二階鄰接點集中節點的拓撲勢之和簡稱為并且節點s和節點u在相同的吸引鏈上;
步驟150,利用所述拓撲勢Ap←u和依賴于節點u的節點p的二階鄰接點集的總拓撲勢計算節點u和二階鄰接點集中所有節點的總拓撲勢的比值
步驟160,根據所述直接鄰接點集以及節點s,計算節點p與二階鄰接點集中所有節點的總Adamic-Adar Index相似性度其中k(z)表示節點z的度數;
步驟170,根據所述相似度Simp,s以及所述比值Ru,s,計算節點p與u的Adamic-Adar Index相似性度Simp,u:
因此,
步驟180,判斷是否每個節點p和其直接相鄰節點u的相似度已經計算完成,如果是,則算法結束。如果不是,則返回步驟110重新計算。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。