推薦系統筆記二 Personal rank演算法

2021-09-19 13:46:52 字數 3302 閱讀 5453

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

該方法在2023年前較流行,現在學術界更流行的方法是graph convolutional network(gcn)。

推薦採用personal rank演算法,或者說random work,與page rank思路是一樣的。首先從乙個頂點(即某一user a)出發,以一定概率α

\alpha

α往下乙個節點遊走,以1−α

1-\alpha

1−α概率回到初始頂點a,足夠長時間後,整幅圖的概率分布會趨於乙個穩定值,這個概率值即為該user a對每個item的感興趣程度。

舉個例子:

假定從a出發,一開始pr(

a)=1

pr(a)=

1,其餘為0

第一步,a以12×

α\frac \times \alpha

21​×

α概率分別向a、c遊走,

p r(

a)=1

−αpr

(a)=

pr(c

)=12

×αpr(a) = 1-\alpha \\ pr(a) = pr(c) = \frac \times \alpha

pr(a)=

1−αp

r(a)

=pr(

c)=2

1​×α

第二步,a以12×

α\frac \times \alpha

21​×

α概率分別向a、c遊走,a以12×

α\times \alpha}

21​×

α概率分別向a、b遊走,c以13×

α\times \alpha}

31​×

α概率分別向a、b、c遊走

p r(

a′)=

pr(a

)×(1

−α)+

pr(a

)×12

α+pr

(c)×

13α+

pr(a

)×(1

−α)+

pr(c

)×(1

−α)=

1−α+

α×pr

(a)2

+α×p

r(c)

3pr(

a′)=

pr(a

)×12

α=α×

pr(a

)2pr

(c′)

=pr(

a)×1

2α=α

×pr(

a)2p

r(b′

)=12

α×pr

(a)+

13α×

pr(c

)pr(

c′)=

13α×

pr(c

)\begin pr(a') = &pr(a) \times (1-\alpha) + pr(a) \times \frac \alpha + pr(c) \times \frac \alpha + \\ &pr(a) \times (1-\alpha) + pr(c) \times (1-\alpha) \\ =&1-\alpha + \alpha \times \frac + \alpha \times \frac \\ \end \\ \begin pr(a') &= pr(a) \times \frac \alpha \\ &= \alpha \times \frac \end \\ \begin pr(c') &= pr(a) \times \frac \alpha \\ &= \alpha \times \frac \end \\ pr(b') = \frac \alpha \times pr(a) + \frac \alpha \times pr(c) \\ pr(c') = \frac \alpha \times pr(c)

pr(a′)

==​p

r(a)

×(1−

α)+p

r(a)

×21​

α+pr

(c)×

31​α

+pr(

a)×(

1−α)

+pr(

c)×(

1−α)

1−α+

α×2p

r(a)

​+α×

3pr(

c)​​

pr(a

′)​=

pr(a

)×21

​α=α

×2pr

(a)​

​pr(

c′)​

=pr(

a)×2

1​α=

α×2p

r(a)

​​pr

(b′)

=21​

α×pr

(a)+

31​α

×pr(

c)pr

(c′)

=31​

α×pr

(c)以此類推可以得到每步的更新公式:

p r(

j)=& \alpha \times \sum_ \frac \quad if\ (j \neq u)\\ & (1-\alpha) + \alpha \times \sum_ \frac \quad if\ (j = u) \end \right.

pr(j)=

⎩⎪⎪⎪

⎪⎨⎪⎪

⎪⎪⎧​

​α×i

∈in(

j)∑​

∣out

(i)∣

pr(i

)​if

(j̸​

=u)(

1−α)

+α×i

∈in(

j)∑​

∣out

(i)∣

pr(i

)​if

(j=u

)​其中i n(

j)in(j

)表示指向j的結點的集合,out

(j)ou

t(j)

表示j指向的結點的集合,∣ou

t(j)

∣∣out(j

)∣表示j指向的結點的數目,u表示初始的頂點,即需要推薦的使用者

《推薦系統》 電子推薦系統演算法實踐學習筆記(二)

1.1 推薦系統評測 1.1.1 推薦系統實驗方法 1.離線實驗 離線實驗的方法一般由如下幾個步驟構成 1 通過日誌系統獲得使用者行為資料,並按照一定格式生成乙個標準的資料集 2 將資料集按照一定的規則分成訓練集和測試集 3 在訓練集上訓練使用者興趣模型,在測試集上進行 4 通過事先定義的離線指標評...

推薦系統 電影推薦系統(二)

als是交替最小二乘法的簡稱,是2008年以來,用的比較多的協同過濾演算法。它已經整合到spark的mllib庫中,使用起來比較方便。這裡可以想象一下,每個人的性格愛好可以認為是乙個抽象的模型,每個人的模型都有自己的乙個特點。因此,每個人對於商品的評價都有自己的一套規律,als演算法就是可以通過這些...

推薦系統(二)

協同過濾 collaborative filtering 在之前的基於內容的推薦系統中,對於每一部電影,我們都掌握了可用的特徵,通過使用這些特徵,並運用線性回歸模型,可訓練得每乙個使用者對某一電影的評分。相反地,如果我們擁有使用者對每一部電影的評分,我們就可以學習得電影得特徵。但如果我們既無法得到電...