SimRank 是一種基於圖的拓撲結構信息來衡量任意兩個對象間相似程度的模型,該模型由 MIT 實驗室的 Glen Jeh 和 Jennifer Widom教授在2002年首先提出[1]。SimRank相似度的核心思想為:如果兩個對象和被其相似的對象所引用(即它們有相似的入鄰邊結構),那麼這兩個對象也相似。近年來已在信息檢索領域引起廣泛關注,成功應用於網頁排名、協同過濾、孤立點檢測、網絡圖聚類、近似查詢處理等。

介紹

結構相似度(Structural Similarity)是一種通過網絡圖的拓撲結構信息(如網頁連結關係)來衡量對象間相似程度的普適模型,它在信息檢索領域裏已有廣泛的應用,如搜尋引擎優化、協同過濾推薦、文檔聚合分類等。2002 年,MIT 實驗室的Glen Jeh和Jennifer Widom教授提出了一種全新的基於網頁連結結構的模型來評估網絡圖中任意兩個對象(結點)之間相似度,即 SimRank 模型[1].

SimRank 模型定義兩個頁面的相似度是基於如下遞歸的思想:如果指向結點和指向結點的結點相似,那麼也認為是相似的。這個遞歸定義的初始條件是:每個結點與它自身最相似。如果用記號表示所有指向結點的結點集合(即入鄰點集合),用表示兩個對象間的SimRank相似度,則SimRank的數學定義式可以表示如下:

(1) 當時,.

(2) 當或者時,.

(3) 其他情況下,

其中,是一個阻尼係數.


與傳統的文本相似度(Textual Similarity)相比,SimRank 相似度的計算完全基於網絡圖的拓撲結構,其遞歸的定義方式能使SimRank相似度的值捕捉到圖結構的整體信息。此外,SimRank 相似度能比較任意兩個結點間的相似度問題,相比之下Google PageRank只能衡量每個結點的重要性。

矩陣形式

假設 為SimRank相似度矩陣,其元素表示相似度值. 是一個按列歸一化的圖鄰接矩陣,其元素,若存在一條有向邊;否則為. 於是,SimRank方程式可以用矩陣的形式表示如下:

其中,是一個單位矩陣.


SimRank計算

由於 SimRank 相似度是是通過遞歸定義的,因此可能依賴於圖中其他結點對的相似度,這給計算網絡圖中結點間的相似度值帶來很大的困難,尤其當整個圖的結點數很多點,SimRank具有很高的時間複雜度。現有的 SimRank 相似度計算方法主要分兩大類:

(1)SimRank 確定性計算

這類方法主要基於不動點迭代來求解 SimRank 的值,其優點是計算精度較高,但時間複雜度相當大。對於一個網絡圖來說,傳統的直接迭代法[1]計算所有結點對的相似度需要的時間複雜度和的內存,其中為總的迭代次數。文獻[2][3]是當前計算所有結點對SimRank相似度的最有效算法。

(2)SimRank 隨機算法[4]

該方法主要基於蒙特卡羅法模擬,將兩結點間 SimRank 的相似度表示為兩個隨機遊走者分別從結點出發到最後相遇的總時間的期望函數,即


這種方法計算每一個結點對的時間和內存複雜度均為,但帶有一定的隨機性,因此精度較低。

其他相關

參考文獻

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.