專利名稱:一種基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)挖掘和信息檢索領(lǐng)域,尤其是涉及一種基于圖中 的塊結(jié)構(gòu)來高效計(jì)算《連接相似度的方法。
背景技術(shù):
在許多實(shí)際應(yīng)用中,對象之間的相似度需要用數(shù)值衡量。例如,
在一個(gè)典型的視頻網(wǎng)站中(如YouTube),針對用戶當(dāng)前正在觀看的視 頻,網(wǎng)站會給出與這個(gè)視頻相似的一個(gè)視頻節(jié)目單以推薦給用戶,這 其中的核心問題就是相似度的計(jì)算。相似度的計(jì)算方法,依據(jù)其所利 用的對象信息的不同,可分為內(nèi)容相似度計(jì)算和鏈接相似度計(jì)算兩種。 內(nèi)容的相似度計(jì)算,顧名思義,就是利用對象的內(nèi)容作為相似度的評 判依據(jù),主要的方法為向量空間模型(VSM)。以典型的文檔相似度計(jì)算 為例, 一篇文檔被視為一個(gè)包含術(shù)語(term)的向量(vector),通過合適的 建模,向量之間的余弦值得到計(jì)算,這個(gè)余弦值就是文檔之間的相似 度。然而,現(xiàn)實(shí)世界中的許多數(shù)據(jù),并沒有給出或者并不關(guān)注對象的 內(nèi)容,而是對對象之間的聯(lián)系特別感興趣,并籍此希望獲得對象之間 的相似度,這就是鏈接相似度計(jì)算面對的主要問題,也是本發(fā)明所面
向的4頁:威。
在鏈接相似度計(jì)算所面對的問題中,現(xiàn)實(shí)世界里的許多數(shù)據(jù)都可 以用一張圖來描述,其中對象可以對應(yīng)為圖中的節(jié)點(diǎn),而對象之間的 關(guān)系對應(yīng)為圖中節(jié)點(diǎn)之間的邊。給定一張這樣的圖, 一種行之有效的,
計(jì)算圖中各個(gè)節(jié)點(diǎn)之間相似度的方法是業(yè)界所需的。在2002年知識發(fā)現(xiàn)特別興趣組大會(SIGKDD 2002)上,美國斯坦福大學(xué)的兩位研究人員 Glen Jeh和Jennifer Widom提出了 一種計(jì)算鏈接相似度的方法,并給出 了基于鏈接的相似度的定義。這個(gè)定義基于一個(gè)通用的直覺兩個(gè)對 象相似,是因?yàn)樗鼈冞B到了另外兩個(gè)相似的對象上。這個(gè)定義并不依 賴于具體的某個(gè)領(lǐng)域。隨后,他們引入了隨機(jī)游走的數(shù)學(xué)模型,這個(gè)
模型模擬了一個(gè)漫無目的的游走者,在圖中的節(jié)點(diǎn)之間,沿著邊任意 的走動(dòng)。假設(shè)這樣的隨機(jī)游走者有兩個(gè),他們給出了基于鏈接的相似 度的定義,即節(jié)點(diǎn)A和節(jié)點(diǎn)B之間的相似度,是這兩個(gè)隨機(jī)游走者分 別從A和B出發(fā),最后石並面的積克率。
盡管斯坦福的研究者給出了基于鏈接的相似度計(jì)算,但是這個(gè)方 法也有一些顯而易見的缺陷。在現(xiàn)實(shí)世界的應(yīng)用中,需要計(jì)算相似度
的圖結(jié)構(gòu)的大小通常數(shù)以萬計(jì),在某些重要的應(yīng)用中,例如在信息檢 索中,計(jì)算網(wǎng)頁結(jié)構(gòu)圖中的相似度,是一個(gè)相當(dāng)耗時(shí)的工作,需要消 耗大量的CPU資源和內(nèi)存資源。例如,對于僅有5000個(gè)節(jié)點(diǎn)的圖, 如果需要得到節(jié)點(diǎn)兩兩之間相似度較為理想的結(jié)果, 一臺現(xiàn)代的PC機(jī) (例如CPU主頻2.0G)往往需要計(jì)算2小時(shí)以上。對于更大規(guī)模的圖結(jié) 構(gòu),這個(gè)算法將會無能為力。
本發(fā)明的關(guān)鍵之處在于前面關(guān)于鏈接相似度的直覺和定義將會 予以保留,這保證了本發(fā)明所得到的結(jié)果的合理性;同時(shí)通過對抽象 圖中的塊結(jié)構(gòu)(block)加以偵測,并利用這種塊結(jié)構(gòu)來估計(jì)塊中節(jié)點(diǎn)的 相似度,使性能有了大幅提高。
發(fā)明內(nèi)容
本發(fā)明是鑒于上述技術(shù)問題而產(chǎn)生的。本發(fā)明的 一 個(gè)目的是提出 一種基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的方法。
在一個(gè)方面中,根據(jù)本發(fā)明的基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的方法包括步驟A、輸入一個(gè)圖結(jié)構(gòu);B、對該圖結(jié)構(gòu)中的塊結(jié)構(gòu) 進(jìn)行偵測;C、通過迭代來計(jì)算塊間節(jié)點(diǎn)相似度;D、當(dāng)相鄰兩次計(jì)算 的結(jié)果收斂,或其接近程度已經(jīng)達(dá)到用戶的要求,終止迭代循環(huán)過程。
在這個(gè)方面中,其中步驟C進(jìn)一步包括Cl、計(jì)算塊的相似度; C2、計(jì)算塊內(nèi)節(jié)點(diǎn)相似度;C3、計(jì)算節(jié)點(diǎn)與所在塊之間的距離;C4、 利用在步驟C1中計(jì)算的塊的相似度和在步驟C3中計(jì)算的節(jié)點(diǎn)與所在 塊間的距離來計(jì)算不同塊之間的節(jié)點(diǎn)的相似度;C5、對步驟C2所計(jì)算 的塊內(nèi)節(jié)點(diǎn)相似度和步驟C4所計(jì)算的塊間節(jié)點(diǎn)相似度進(jìn)行組裝以得 到全局相似度。
在這個(gè)方面中,其中圖結(jié)構(gòu)是矩陣形式。
在這個(gè)方面中,其中在步驟C中每進(jìn)行一次迭代,就會對該圖中 的任意兩個(gè)節(jié)點(diǎn)之間的相似度進(jìn)行更新,這個(gè)過程是循環(huán)的,第K次 循環(huán)的結(jié)果將作為第K+l次循環(huán)的輸入。
在另 一個(gè)方面中,根據(jù)本發(fā)明的基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相 似度的系統(tǒng)包括輸入單元,用于輸入一個(gè)圖結(jié)構(gòu);偵測單元,用于 對該圖結(jié)構(gòu)中的塊結(jié)構(gòu)進(jìn)行偵測;計(jì)算單元,用于通過迭代來計(jì)算塊 間節(jié)點(diǎn)相似度;終止單元,用于當(dāng)相鄰兩次計(jì)算的結(jié)果收斂或其接近 程度已經(jīng)達(dá)到用戶的要求時(shí)終止迭代循環(huán)過程。
在這個(gè)方面中,其中計(jì)算單元進(jìn)一步包括塊的相似度計(jì)算模塊, 用于計(jì)算塊結(jié)構(gòu)之間的相似度;塊內(nèi)節(jié)點(diǎn)相似度計(jì)算模塊,用于計(jì)算
同一個(gè)塊結(jié)構(gòu)中的節(jié)點(diǎn)的相似度;距離計(jì)算模塊,用于計(jì)算節(jié)點(diǎn)與所 在塊之間的距離;塊間節(jié)點(diǎn)相似度計(jì)算模塊,用于利用塊的相似度計(jì) 算模塊所計(jì)算的塊的相似度和距離計(jì)算模塊所計(jì)算的節(jié)點(diǎn)與所在塊間 的距離來計(jì)算不同塊之間的節(jié)點(diǎn)的相似度;組裝^t塊,用于對塊內(nèi)節(jié) 點(diǎn)相似度計(jì)算模塊所計(jì)算的塊內(nèi)節(jié)點(diǎn)相似度和塊間節(jié)點(diǎn)相似度計(jì)算模 塊所計(jì)算的塊間節(jié)點(diǎn)相似度進(jìn)行組裝以得到全局相似度。
6在這個(gè)方面中,其中圖結(jié)構(gòu)是矩陣形式。
在這個(gè)方面中,其中計(jì)算單元每進(jìn)行一次迭代就會對該圖中的任
意兩個(gè)節(jié)點(diǎn)之間的相似度進(jìn)行更新,這個(gè)過程是循環(huán)的,第K次循環(huán) 的結(jié)果將作為第K+l次循環(huán)的輸入。
通過本發(fā)明,在時(shí)間復(fù)雜度上有顯著的降低,這是最大的優(yōu)點(diǎn)。其 次,本發(fā)明建立在合理的理論模型上,以幾乎不損傷準(zhǔn)確性來得到性 能的大幅改善。
結(jié)合隨后的附圖,從下面的詳細(xì)說明中可顯而易見的得出本發(fā)明
的上述及其他目的、特征及優(yōu)點(diǎn)。在附圖中
圖1給出了根據(jù)本發(fā)明的基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的
方法的流程圖2給出了根據(jù)本發(fā)明的計(jì)算塊間節(jié)點(diǎn)相似度的流程圖3給出了根據(jù)本發(fā)明的計(jì)算塊間節(jié)點(diǎn)相似度的示例;
圖4給出了根據(jù)本發(fā)明的基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的
系統(tǒng)的方框圖5給出了根據(jù)本發(fā)明的計(jì)算單元的詳細(xì)方框圖6給出了能夠?qū)嵤┍景l(fā)明的一個(gè)示例環(huán)境的示意圖。
具體實(shí)施例方式
為了更全面地理解本發(fā)明及其優(yōu)點(diǎn),下面結(jié)合附圖及具體實(shí)施例 對本發(fā)明做進(jìn)一步詳細(xì)地說明。
首先,參考圖1,對根據(jù)本發(fā)明的基于圖中的塊結(jié)構(gòu)計(jì)算鏈接相似 度的方法進(jìn)4亍說明。
如圖l所示,基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的方法包括步驟
A、 輸入一個(gè)圖結(jié)構(gòu)。該圖結(jié)構(gòu)一般是以矩陣形式給出,比如一個(gè) IOOO個(gè)節(jié)點(diǎn)的圖,用矩陣表示就是1000*1000大小的矩陣。這個(gè)矩陣
可以存放在文件中,也可以直接置于內(nèi)存中。
B、 對該圖結(jié)構(gòu)中的塊結(jié)構(gòu)進(jìn)行偵測。塊結(jié)構(gòu)是一種特殊的子圖, 具有塊間盡可能*>散,塊內(nèi)盡可能密集的特點(diǎn)。對塊結(jié)構(gòu)的偵測實(shí)際 上是一種子圖劃分。具體地說,將一個(gè)整體圖劃分為很多子圖,使子 圖內(nèi)部的邊數(shù)較多,而子圖之間的邊數(shù)較少。子圖的個(gè)數(shù)可以由用戶 指定的,當(dāng)然也可以是預(yù)估的值,這個(gè)值使得計(jì)算性能近似最高。通 過切斷盡可能少的邊,對圖進(jìn)行劃分的方法已有許多現(xiàn)成的算法可以 借鑒,如美國明尼蘇達(dá)大學(xué)開發(fā)的METIS壽欠件包,此處不再細(xì)述。這 些算法也考慮到了劃分出來的子圖在規(guī)模上的平衡性。
C、 通過迭代來計(jì)算塊間節(jié)點(diǎn)相似度。每進(jìn)行一次迭代,就會對該 圖中的任意兩個(gè)節(jié)點(diǎn)之間的相似度進(jìn)行更新,這個(gè)過程是循環(huán)的,第K 次循環(huán)的結(jié)果將作為第K+l次循環(huán)的輸入。隨后參考圖2,對該步驟 進(jìn)4亍詳細(xì)地/說明。
D、 當(dāng)相鄰兩次計(jì)算的結(jié)果收斂,或其接近程度已經(jīng)達(dá)到用戶的要 求,終止迭代循環(huán)過程。
接下來,參考圖2,對計(jì)算塊間節(jié)點(diǎn)相似度的過程更詳細(xì)地說明。 圖2給出了根據(jù)本發(fā)明的計(jì)算塊間節(jié)點(diǎn)相似度的流程圖。 如圖2所示,計(jì)算塊間節(jié)點(diǎn)相似度的步驟進(jìn)一步包括 Cl、計(jì)算塊的相似度。具體地說,將一個(gè)塊^L為一個(gè)虛擬點(diǎn),而 將塊之間的關(guān)系視為虛擬邊。確定每條虛擬邊上的權(quán)重,即塊A和塊 B之間的虛擬邊上的權(quán)重是這樣一些實(shí)際存在的邊數(shù)之和這些邊的 一端是塊A中的點(diǎn),另一端是塊B中的點(diǎn)。這樣,可以得到一張小型 化的虛擬圖。對這個(gè)圖而言,基于與斯坦福大學(xué)研究人員提出的對相似度的直覺和定義,計(jì)算出塊的相似度,更詳細(xì)的過程可以參看他們
在SIGKDD 2002發(fā)表的^侖文"SimRank: A measure of structural -context similarity"。當(dāng)然,塊的相似度的計(jì)算并不局限于此,而是可利用其他 任何適當(dāng)?shù)姆绞?。值得注意的是,這個(gè)計(jì)算過程會調(diào)用前一次迭代計(jì) 算的結(jié)果;如果是第一次迭代,則認(rèn)為同一個(gè)虛擬點(diǎn)之間的相似度為1, 不同的虛擬點(diǎn)之間的相似度為0。
C2、計(jì)算塊內(nèi)節(jié)點(diǎn)相似度。對于同一個(gè)塊中的所有節(jié)點(diǎn)而言,它 們剛好構(gòu)成一張圖。由于步驟C1中的相似度計(jì)算方法能夠處理任意的 圖結(jié)構(gòu)中節(jié)點(diǎn)的相似度,本步驟也可以依照同樣的方法來計(jì)算塊內(nèi)節(jié) 點(diǎn)的相似度。
C3、計(jì)算節(jié)點(diǎn)與所在塊之間的距離。節(jié)點(diǎn)與所在塊之間的距離反 映節(jié)點(diǎn)與塊之間的緊密程度, 一般用該節(jié)點(diǎn)與塊中所有節(jié)點(diǎn)相似度的 平均值來衡量。
C4、計(jì)算塊間節(jié)點(diǎn)相似度。塊間節(jié)點(diǎn)的相似度是由步驟C1中的塊 的相似度和步驟C3中的這些節(jié)點(diǎn)與所在塊間的距離的乘積來得到的。 對于處于不同塊之間的節(jié)點(diǎn)而言,它們的相似度會與它們與各自所在 塊的聯(lián)系緊密程度(即距離)以及塊的相似度大小有關(guān)。
C5、對步驟C2所計(jì)算的塊內(nèi)節(jié)點(diǎn)相似度和步驟C4所計(jì)算的塊間 節(jié)點(diǎn)相似度進(jìn)行組裝以得到全局相似度。這里的組裝,實(shí)際上就是將 塊內(nèi)節(jié)點(diǎn)相似度和塊間節(jié)點(diǎn)相似度統(tǒng)一放置在一個(gè)大矩陣中,這個(gè)大 矩陣就是全局相似度。
現(xiàn)在,參考圖3,對該步驟C4進(jìn)行更詳細(xì)地說明。圖3給出了一 種近似估計(jì)塊間節(jié)點(diǎn)相似度的示例。
如圖3所示,假設(shè)要計(jì)算節(jié)點(diǎn)a和b之間的相似度,其中節(jié)點(diǎn)a屬 于塊A,節(jié)點(diǎn)b屬于塊B。
首先計(jì)算節(jié)點(diǎn)與所在塊之間聯(lián)系的緊密程度,即距離,我們用該節(jié)點(diǎn)到該塊中所有節(jié)點(diǎn)(包括它自身)的相似度的平均值來衡量,如要
計(jì)算a與塊A之間的距離,就是a與塊A中所有節(jié)點(diǎn)的相似度之和, 再除以塊A中的節(jié)點(diǎn)個(gè)數(shù)。同樣,計(jì)算節(jié)點(diǎn)b與所在塊B之間聯(lián)系的 緊密程度。接下來,用a與A的距離,b與B的距離,A與B的相似 度這三者的乘積來近似估計(jì)塊間節(jié)點(diǎn)相似度。
接下來,參考圖4,對根據(jù)本發(fā)明的基于圖中的塊結(jié)構(gòu)計(jì)算鏈接相 似度的系統(tǒng)進(jìn)4亍詳細(xì)地描述。
如圖4所示,根據(jù)本發(fā)明的基于圖中的塊結(jié)構(gòu)計(jì)算鏈接相似度的 系統(tǒng)包括輸入單元、偵測單元、計(jì)算單元、以及終止單元。
輸入單元用于輸入一個(gè)圖結(jié)構(gòu)。該圖結(jié)構(gòu)一般是以矩陣形式給出, 比如一個(gè)1000個(gè)節(jié)點(diǎn)的圖,用矩陣表示就是1000*1000大小的矩陣。 這個(gè)矩陣可以存;^文在文件中,也可以直接置于內(nèi)存中。
偵測單元對該圖結(jié)構(gòu)中的塊結(jié)構(gòu)進(jìn)行偵測。塊結(jié)構(gòu)是一種特殊的 子圖,具有塊間盡可能松散,塊內(nèi)盡可能密集的特點(diǎn)。對塊結(jié)構(gòu)的偵 測實(shí)際上是一種子圖劃分。具體地說,將一個(gè)整體圖劃分為很多子圖, 使子圖內(nèi)部的邊數(shù)較多,而子圖之間的邊數(shù)較少。子圖的個(gè)數(shù)可以由 用戶指定的,當(dāng)然也可以是預(yù)估的值,這個(gè)值使得計(jì)算性能近似最高。 通過切斷盡可能少的邊,對圖進(jìn)行劃分的方法已有許多現(xiàn)成的算法可 以借鑒。
計(jì)算單元用于通過迭代來計(jì)算塊間節(jié)點(diǎn)相似度。每進(jìn)行一次迭代,
就會對該圖中的任意兩個(gè)節(jié)點(diǎn)之間的相似度進(jìn)行更新,這個(gè)過程是循 環(huán)的,第K次循環(huán)的結(jié)果將作為第K+l次循環(huán)的輸入。隨后參考圖5, 對該計(jì)算單元進(jìn)行詳細(xì)地說明。
用戶的要求時(shí)終止迭代循環(huán)過程。
接下來,參考圖5,對計(jì)算單元進(jìn)行更詳細(xì)地說明。圖5給出了根據(jù)本發(fā)明的計(jì)算單元的詳細(xì)方框圖。
如圖5所示,計(jì)算單元進(jìn)一步包括塊的相似度計(jì)算模塊、塊內(nèi)節(jié) 點(diǎn)相似度計(jì)算模塊、距離計(jì)算模塊、塊間節(jié)點(diǎn)相似度計(jì)算模塊、以及 組裝模塊。
塊的相似度計(jì)算模塊用于計(jì)算塊結(jié)構(gòu)之間的相似度。具體地說, 將一個(gè)塊視為一個(gè)虛擬點(diǎn),而將塊之間的關(guān)系視為虛擬邊。確定每條 虛擬邊上的權(quán)重,即塊A和塊B之間的虛擬邊上的權(quán)重是這樣一些實(shí) 際存在的邊數(shù)之和這些邊的一端是塊A中的點(diǎn),另一端是塊B中的 點(diǎn)。這樣,可以得到一張小型化的虛擬圖。對于任意一個(gè)給定的圖, 根據(jù)斯坦福大學(xué)研究人員提出的對相似度的直覺和定義,可以計(jì)算出
塊的相似度。當(dāng)然,塊的相似度的計(jì)算并不局限于此,而是可利用其 他任何適當(dāng)?shù)姆绞?。值得注意的是,這個(gè)計(jì)算過程會調(diào)用前一次迭代 計(jì)算的結(jié)果;如果是第一次迭代,則認(rèn)為同一個(gè)虛擬點(diǎn)之間的相似度 為l,不同的虛擬點(diǎn)之間的相似度為0。
塊內(nèi)節(jié)點(diǎn)相似度計(jì)算模塊用于計(jì)算同 一個(gè)塊結(jié)構(gòu)中的節(jié)點(diǎn)的相似 度。對于同一個(gè)塊中的所有節(jié)點(diǎn)而言,它們剛好構(gòu)成一張圖。由于上 面描述的相似度計(jì)算能夠處理任意的圖結(jié)構(gòu)中節(jié)點(diǎn)的相似度,因此也 可以依照上述相似度計(jì)算來計(jì)算塊內(nèi)節(jié)點(diǎn)的相似度。
距離計(jì)算模塊用于計(jì)算節(jié)點(diǎn)與所在塊之間的距離。節(jié)點(diǎn)與所在塊 之間的距離反映節(jié)點(diǎn)與塊之間的緊密程度, 一 般用該節(jié)點(diǎn)與塊中所有 節(jié)點(diǎn)的相似度的平均值來衡量。
塊間節(jié)點(diǎn)相似度計(jì)算模塊用于計(jì)算塊結(jié)構(gòu)間的節(jié)點(diǎn)相似度。塊間 節(jié)點(diǎn)的相似度是由塊的相似度計(jì)算模塊所計(jì)算的塊的相似度和距離計(jì) 算模塊所計(jì)算的這些節(jié)點(diǎn)與所在塊間的距離的乘積來得到的。對于處 于不同塊之間的節(jié)點(diǎn)而言,它們的相似度會與它們與各自所在塊的聯(lián) 系緊密程度(即距離)以及塊的相似度大小有關(guān)。
ii組裝模塊用于對塊內(nèi)節(jié)點(diǎn)相似度計(jì)算模塊所計(jì)算的塊內(nèi)節(jié)點(diǎn)相似 度和塊間節(jié)點(diǎn)相似度計(jì)算模塊所計(jì)算的塊間節(jié)點(diǎn)相似度進(jìn)行組裝以得 到全局相似度。這里的組裝,實(shí)際上就是將塊內(nèi)節(jié)點(diǎn)相似度和塊間節(jié) 點(diǎn)相似度統(tǒng)一放置在一個(gè)大矩陣中,這個(gè)大矩陣就是全局相似度。
下面參考圖6對本發(fā)明的硬件結(jié)構(gòu)示例進(jìn)行說明。亳無疑問,圖4 和5所示的每個(gè)模塊或單元都可以用一個(gè)專用硬件來構(gòu)成,同時(shí)這些 塊同樣也可以用通用信息處理設(shè)備來實(shí)現(xiàn)。
如圖6所示,該計(jì)算機(jī)包括CPU外網(wǎng)單元,其中該單元包含了 CPU、 RAM、 ROM、以及輸入/輸出控制器,并且所有這些部件是透過主機(jī)控 制器而互連。該計(jì)算機(jī)還包括通信接口、存儲設(shè)備、軟盤驅(qū)動(dòng)器、以 及圖形控制器。特別地,軟盤驅(qū)動(dòng)器可對軟盤進(jìn)行讀寫,圖形控制器 則驅(qū)動(dòng)顯示器。
CPU依照存儲在ROM、 BIOS、以及RAM中的程序來操作,并且 由此控制每一個(gè)部分。圖結(jié)構(gòu)數(shù)據(jù)可通過多種方式輸入設(shè)備輸入,如 存儲設(shè)備(硬盤,閃存),光驅(qū),鍵盤輸入或通過網(wǎng)絡(luò)傳輸。在邏輯結(jié) 構(gòu)上,這種圖結(jié)構(gòu)數(shù)據(jù)有多種表現(xiàn)形式,最常見的是鄰接矩陣表示方 法。圖結(jié)構(gòu)隨后會被讀入存儲設(shè)備。存儲設(shè)備還存儲供計(jì)算機(jī)使用的 本發(fā)明的程序、應(yīng)用、OS等等的代碼和數(shù)據(jù)。此后,所讀取的程序和 數(shù)據(jù)將被加載到RAM中以供CPU使用。
從上述結(jié)構(gòu)實(shí)例中可以看出,任何具有通用計(jì)算^l^功能的硬件都可 以用作本發(fā)明需要的硬件。應(yīng)該指出的是,圖6僅示出了用于實(shí)施本 發(fā)明實(shí)施例的硬件結(jié)構(gòu)。相應(yīng)地,對其他各種結(jié)構(gòu)來說,只要對其可 以應(yīng)用本發(fā)明實(shí)施例,那么這些結(jié)構(gòu)都是可行的。此外,每一個(gè)上述 例示組件未必是本發(fā)明的必要組件。另外,本發(fā)明還可以使用硬件、 軟件、或者軟硬件組合來實(shí)現(xiàn)。
至此,已對本發(fā)明進(jìn)行了描述。與同類方法橫向比較,本發(fā)明提出的方法在時(shí)間復(fù)雜度上有顯著的降低,這是最大的優(yōu)點(diǎn)。其次,本 發(fā)明建立在合理的理論^=莫型上,以幾乎不損傷準(zhǔn)確性來得到性能的大 幅改善。
對于本領(lǐng)域的普通技術(shù)人員來說可顯而易見的得出其他優(yōu)點(diǎn)和修
述的具體說明及示例性實(shí)施例。因此,在不脫離由隨后權(quán)利要求及其 等價(jià)體所定義的 一般發(fā)明構(gòu)思的精神和范圍的情況下,可對其做出各 種修改。
權(quán)利要求
1、一種基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的方法包括步驟A、輸入一個(gè)圖結(jié)構(gòu);B、對該圖結(jié)構(gòu)中的塊結(jié)構(gòu)進(jìn)行偵測;C、通過迭代來計(jì)算塊間節(jié)點(diǎn)相似度;D、當(dāng)相鄰兩次計(jì)算的結(jié)果收斂,或其接近程度已經(jīng)達(dá)到用戶的要求,終止迭代循環(huán)過程。
2、 根據(jù)權(quán)利要求l的方法,其中步驟C進(jìn)一步包括 Cl、計(jì)算塊的相似度;C2、計(jì)算塊內(nèi)節(jié)點(diǎn)相似度;C3、計(jì)算節(jié)點(diǎn)與所在塊之間的距離;C4、利用在步驟C1中計(jì)算的塊的相似度和在步驟C3中計(jì)算的節(jié) 點(diǎn)與所在塊間的距離來計(jì)算不同塊之間的節(jié)點(diǎn)的相似度;C5、對步驟C2所計(jì)算的塊內(nèi)節(jié)點(diǎn)相似度和步驟C4所計(jì)算的塊間 節(jié)點(diǎn)相似度進(jìn)行組裝以得到全局相似度。
3、 根據(jù)權(quán)利要求1的方法,其中圖結(jié)構(gòu)是矩陣形式。
4、 根據(jù)權(quán)利要求l的方法,其中在步驟C中每進(jìn)行一次迭代,就會 對該圖中的任意兩個(gè)節(jié)點(diǎn)之間的相似度進(jìn)行更新,這個(gè)過程是循環(huán)的, 第K次循環(huán)的結(jié)果將作為第K+l次循環(huán)的輸入。
5、 一種基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的系統(tǒng)包括 輸入單元,用于輸入一個(gè)圖結(jié)構(gòu);偵測單元,用于對該圖結(jié)構(gòu)中的塊結(jié)構(gòu)進(jìn)行偵測; 計(jì)算單元,用于通過迭代來計(jì)算塊間節(jié)點(diǎn)相似度; 終止單元,用于當(dāng)相鄰兩次計(jì)算的結(jié)果收斂或其接近程度已經(jīng)達(dá) 到用戶的要求時(shí)終止迭代循環(huán)過程。
6、 根據(jù)權(quán)利要求5的系統(tǒng),其中計(jì)算單元進(jìn)一步包括 塊的相似度計(jì)算模塊,用于計(jì)算塊結(jié)構(gòu)之間的相似度塊內(nèi)節(jié)點(diǎn)相似度計(jì)算模塊,用于計(jì)算同 一個(gè)塊結(jié)構(gòu)中的節(jié)點(diǎn)的相 似度;距離計(jì)算模塊,用于計(jì)算節(jié)點(diǎn)與所在塊之間的距離; 塊間節(jié)點(diǎn)相似度計(jì)算模塊,用于利用塊的相似度計(jì)算模塊所計(jì)算的塊的相似度和距離計(jì)算模塊所計(jì)算的節(jié)點(diǎn)與所在塊間的距離來計(jì)算不同塊之間的節(jié)點(diǎn)的相似度;組裝模塊,用于對塊內(nèi)節(jié)點(diǎn)相似度計(jì)算模塊所計(jì)算的塊內(nèi)節(jié)點(diǎn)相似度和塊間節(jié)點(diǎn)相似度計(jì)算模塊所計(jì)算的塊間節(jié)點(diǎn)相似度進(jìn)行組裝以得到全局相似度。
7、 根據(jù)權(quán)利要求5的系統(tǒng),其中圖結(jié)構(gòu)是矩陣形式。
8、 根據(jù)權(quán)利要求5的系統(tǒng),其中計(jì)算單元每進(jìn)行一次迭代,就會對 該圖中的任意兩個(gè)節(jié)點(diǎn)之間的相似度進(jìn)行更新,這個(gè)過程是循環(huán)的, 第K次循環(huán)的結(jié)果將作為第K+l次循環(huán)的輸入。
全文摘要
一種基于圖中的塊結(jié)構(gòu)來計(jì)算鏈接相似度的系統(tǒng)和方法,其中該方法包括步驟輸入一個(gè)圖結(jié)構(gòu);對該圖結(jié)構(gòu)中的塊結(jié)構(gòu)進(jìn)行偵測;通過迭代來計(jì)算塊間節(jié)點(diǎn)相似度;當(dāng)相鄰兩次計(jì)算的結(jié)果收斂,或其接近程度已經(jīng)達(dá)到用戶的要求,終止迭代循環(huán)過程。本發(fā)明可在時(shí)間復(fù)雜度上有顯著的降低。
文檔編號G06F17/30GK101576905SQ200910078788
公開日2009年11月11日 申請日期2009年3月3日 優(yōu)先權(quán)日2009年3月3日
發(fā)明者軍 何, 劉紅巖, 佩 李, 杜小勇, 蔡元哲 申請人:杜小勇