1. 程式人生 > >推薦演算法隨機遊走

推薦演算法隨機遊走

二分圖中節點集$$V=\{v_1,\cdots,v_N\}$$其中\(N為節點個數\)

從某個節點\(u\)出發進行隨機遊走,以\(\alpha\)的概率選擇繼續從當前節點任選一個與之相連的其他節點進行下一次的隨機遊走或者從\(u\)重新開始遊走,那麼節點\(v_i\)被訪問到的概率

$$p(v_i)=(1-\alpha)(v_i==u)+ \alpha \sum_{v_j\in in(v_i)}\frac{p(v_j)}{|out(v_j)|}$$

其中\(in(v_i)\)表示與\(v_i\)有入邊連線的所有節點的集合,\(out(v_j)\)表示與\(v_j\)有出邊連線的所有集合。

將每個節點被訪問到的概率用一個向量表示$$P=\left[\begin{matrix}p(v_1) & \cdots & p(v_N)\end{matrix}\right]^T\in R^N$$

用一個轉移矩陣\(M\)表示節點之間的轉移概率,其中\(M_{ij}\)表示從\(v_i\)轉移到\(v_j\)的概率,由於這裡面是隨機選擇轉移節點的,所以\(M_{ij}=\frac{1}{|out(v_i)|}\),則有$$P=(1-\alpha)P_0+\alpha M^TP$$其中\(P_0\)為一個\(N\)維向量,裡面與\(u\)對應的元素為1其他元素均為0。