每一個可以努力的日子,都是一份厚禮。
PageRank與社交網絡模型評估(2)
上一篇提到兩種網絡模型,都有着這樣那樣的缺陷。下面我們繼續來改善建模。
3. Katz Centrality
Katz Centrality解決了之前的問題。它的原理與eigenvector centrality差不多,只是我們給每一個節點提供一個初始化的centrality值β,即對式(6)做簡單改變:
α 和 β 都是正常數。
使用矩陣表達式,我們得到:
我們只關心centrality值的相對性,也就是說不管你的centrality值是10還是100,我們只關注你的centrality值是不是大於我的centrality值,因為我們希望找到centrality值最大的前10個節點,目的是做排名。於是β可以設置為1,於是Katz Centrality表達為:
事實上α和β的比值體現了對鄰居節點centrality值的側重,如果α=0那麼所有的節點的centrality值都是β=1了,完全不受鄰居的影響了。所以說這個公式更具有普遍性,這就是數學之美。
需要注意的是α不可以太大,當 會導致 ,於是 無法收斂。所以有 .
要計算Katz centrality,就要做逆矩陣運算 ,直接計算的複雜度為O(n3)。我們可以用迭代法
4. PageRank
Katz centrality的一個缺陷就是,一個擁有高centrality值的節點會將它的高影響力傳遞給它的所有鄰居,這在實際生活中可能並不恰當。比如說Google的網頁有很高的centrality值,同時Google也鏈接了海量的頁面。如果Google的網頁鏈接到了我的網頁,那我的網頁作為一個無名小卒centrality值豈不是有可能比Google還高?我們希望Katz centrality能夠由節點的out-degree稀釋,或者說我的centrality值能平均分給我的鄰居,而不是給每個鄰居都得到我的整個centrality值。用數學語言表達為
對比公式(7)就很容易理解這裡對Katz centrality做的修改了。
對於沒有外鏈的節點(例如很多鏈接指向了一張圖片,但圖片是沒有out-degree指向別處的),將其 值設為1.我們將式(12)寫為矩陣形式:
這就是著名的PageRank算法。
同樣,α的取值也是有範圍的,它應該小於AD-1最大的特徵值的倒數。對於無向圖來說,這個值是1,對於有向圖來說就不一定了。Google的搜索引擎將α設為0.85。同樣,要執行這個算法,我們需要知道整個圖的拓撲結構。
Google 的兩位創始人 Sergey Brin 和 Lawrence Page 在斯坦福大學讀博士期間發表的關於 PageRank 的論文可以在 這裡 找到。
這篇文章由lovelucy於2011-05-02 00:31發表在網絡。你可以訂閱RSS 2.0 也可以發表評論或引用到你的網站。除特殊說明外文章均為本人原創,並遵從署名-非商業性使用-相同方式共享創作協議,轉載或使用請註明作者和來源,尊重知識分享。 |
批評不自由
則讚美無意義
Google Chrome 31.0.1650.63 Windows 7 大約9年前
博主請問katz 中心性與介數中心性在衡量重要節點方面,有可以互補的地方嗎?是不是可以說katz中心性考慮的不僅僅有最短路徑還有非最短路徑?求解釋
Internet Explorer 9.0 Windows 7 大約12年前
博主能否回答一下kate centraliy中β的值是怎麼確定的?有沒有具體的算法?
Google Chrome 19.0.1036.7 Windows 7 大約12年前
沒有確定的算法。這些參數的確立取決於你的目的,我自己在這裡的目的是排名,而不關心節點間權重的步距,於是我為了簡化公式將β設為1。事實上,很多時候參數都是在長期統計的基礎上設立的,Google的搜索引擎將α設為0.85也並不是固定的,隨着整個互聯網網頁的增加和網頁間關係的變化,這個值可能隨時都會微調,從而影響到網頁排名。