1. 程式人生 > >基於隨機遊走的personalrank演算法實現推薦

基於隨機遊走的personalrank演算法實現推薦

我們用G(V, E)來表示這個圖,則頂點集V=U∪I,圖中的邊則是由資料集中的二元組確定。二元組(u, i)表示u對i有過行為,則在圖中表現為有邊相連,即e(u,i)。【注意】,本文中我們不考慮各邊的權重(即u對i的興趣度),權重都預設為1。感興趣即有邊相連,不感興趣則沒有邊相連。

那有了二部圖之後我們要對u進行推薦物品,就轉化為計算使用者頂點u和與所有物品頂點之間的相關性,然後取與使用者沒有直接邊相連的物品,按照相關性的高低生成推薦列表。說白了,這是一個圖上的排名問題,我們最容易想到的就是Google的pageRank演算法。

PageRank是Larry Page 和 Sergey Brin設計的用來衡量特定網頁相對於搜尋引擎中其他網頁的重要性的演算法,其計算結果作為google搜尋結果中網頁排名的重要指標。網頁之間通過超連結相互連線,網際網路上不計其數的網頁就構成了一張超大的圖。PageRank假設使用者從所有網頁中隨機選擇一個網頁進行瀏覽,然後通過超連結在網頁直接不斷跳轉。到達每個網頁後,使用者有兩種選擇:到此結束或者繼續選擇一個連結瀏覽。演算法令使用者繼續瀏覽的概率為d,使用者以相等的概率在當前頁面的所有超連結中隨機選擇一個繼續瀏覽。這是一個隨機遊走的過程。當經過很多次這樣的遊走之後,每個網頁被訪問使用者訪問到的概率就會收斂到一個穩定值。這個概率就是網頁的重要性指標,被用於網頁排名。演算法迭代關係式如下所示: