推薦系統筆記二 Personal rank算法

Graph-based推薦傳統做法是構建二元圖(bipartite),分爲user和item兩個node集合,user-item的interaction構建兩個集合之間的連線,見下圖,其中圓框是三個user,方形框是四個item。

該方法在2005年前較流行,現在學術界更流行的方法是Graph Convolutional Network(GCN)。

h
推薦採用personal rank算法,或者說random work,與page rank思路是一樣的。首先從一個頂點(即某一user A)出發,以一定概率α\alpha往下一個節點遊走,以1α1-\alpha概率回到初始頂點A,足夠長時間後,整幅圖的概率分佈會趨於一個穩定值,這個概率值即爲該user A對每個item的感興趣程度。

舉個例子:
假定從A出發,一開始PR(A)=1{PR(A) = 1},其餘爲0
第一步,A以12×α\frac{1}{2} \times \alpha概率分別向a、c遊走,
PR(A)=1αPR(a)=PR(c)=12×α PR(A) = 1-\alpha \\ PR(a) = PR(c) = \frac{1}{2} \times \alpha
第二步,A以12×α\frac{1}{2} \times \alpha概率分別向a、c遊走,a以12×α{\frac{1}{2} \times \alpha}概率分別向A、B遊走,c以13×α{\frac{1}{3} \times \alpha}概率分別向A、B、C遊走

PR(A)=PR(A)×(1α)+PR(a)×12α+PR(c)×13α+PR(a)×(1α)+PR(c)×(1α)=1α+α×PR(a)2+α×PR(c)3PR(a)=PR(A)×12α=α×PR(A)2PR(c)=PR(A)×12α=α×PR(A)2PR(B)=12α×PR(a)+13α×PR(c)PR(C)=13α×PR(c) \begin{aligned} PR(A') = &PR(A) \times (1-\alpha) + PR(a) \times \frac{1}{2} \alpha + PR(c) \times \frac{1}{3} \alpha + \\ &PR(a) \times (1-\alpha) + PR(c) \times (1-\alpha) \\ =&1-\alpha + \alpha \times \frac{PR(a)}{2} + \alpha \times \frac{PR(c)}{3} \\ \end{aligned} \\ \begin{aligned} PR(a') &= PR(A) \times \frac{1}{2} \alpha \\ &= \alpha \times \frac{PR(A)}{2} \end{aligned} \\ \begin{aligned} PR(c') &= PR(A) \times \frac{1}{2} \alpha \\ &= \alpha \times \frac{PR(A)}{2} \end{aligned} \\ PR(B') = \frac{1}{2} \alpha \times PR(a) + \frac{1}{3} \alpha \times PR(c) \\ PR(C') = \frac{1}{3} \alpha \times PR(c)
以此類推可以得到每步的更新公式:
PR(j)={α×iin(j)PR(i)out(i)if (ju)(1α)+α×iin(j)PR(i)out(i)if (j=u) PR(j)=\left\{ \begin{aligned} & \alpha \times \sum_{i \in in(j)} \frac{PR(i)}{|out(i)|} \quad if\ (j \neq u)\\ & (1-\alpha) + \alpha \times \sum_{i \in in(j)} \frac{PR(i)}{|out(i)|} \quad if\ (j = u) \end{aligned} \right.
其中in(j){in(j)}表示指向j的結點的集合,out(j){out(j)}表示j指向的結點的集合,out(j){|out(j)|}表示j指向的結點的數目,u表示初始的頂點,即需要推薦的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章