推薦系統(二) 協同過濾之隱語義模型(LFM)

2021-10-08 05:09:19 字數 3435 閱讀 7067

三、小結

基於使用者行為分析的推薦演算法一般稱為協同過濾演算法。所謂協同過濾,就是指眾多的使用者可以齊心協力,通過不斷地和**互動,使自己的推薦列表能夠不斷過濾掉自己不感興趣的物品,從而越來越滿足自己的需求。常見實現方法的包括:

基於鄰域的方法

隱語義模型

基於圖的隨機遊走演算法

在講解lfm之前,先看個例子:

已知使用者對不同標籤的興趣程度

那麼就可以得到:

1,使用者潛在因子矩陣,例如:

軍事娛樂

時政歷史

李雲龍使用者a

0.70.3

0.40.8

0.8使用者b

0.80.4

0.60.7

0.1使用者c

0.50.6

0.70.3

0.3矩陣中的數值表示不同使用者對於不同標籤的偏好程度,1.代表絕對喜歡,0.代表不喜歡。 軍事

娛樂時政

歷史李雲龍

0.80

0.40.810

0.80

0.70

0.50

0.70.60

使用者a2.16

0.81.11

使用者b1.13

0.81

1.24

使用者c1.16

0.69

1.02

1,需要計算使用者對不同標籤的喜愛程度。

後面的2個問題難免需要一些人工標記,費時費力,且受主觀因素影響大。為此, lfm 提出了乙個相對簡單的解決方案。

lfm的思想與上面的例類似,通過下面的公式計算使用者 u 對物品 i 的感興趣程度:

p re

fere

nce(

u,i)

=rui

=put

qi=∑

k=1f

pu,k

qi,k

preference(u, i) = r_ = p_u^t q_i = \sum_^f p_q_

prefer

ence

(u,i

)=ru

i​=p

ut​q

i​=k

=1∑f

​pu,

k​qi

,k​式子中,引數 pu,

kp_

pu,k

​ 表示使用者 u 的興趣和第 k 個隱類的關係(即0~1內的數值), qi,

kq_

qi,k

​ 表示物品 i 和第 k 個隱類的關係(即0~1內的數值),而引數 f 則是隱類的個數。這兩個引數需要通過有監督的機器學習方法得到。

既然是有監督的機器學習,那就需要構造資料集。對於使用者喜歡的物品當作是正樣本,而負樣本的生成應該遵循下面的規則:

一般認為,很熱門而使用者卻沒有行為更加代表使用者對這個物品不感興趣。因為對於冷門的物品,使用者可能是壓根沒在**中發現這個物品,所以談不上是否感興趣。

於是經過取樣,就可以得到乙個使用者-物品集 k = ,其中(u, i)是樣本,如果是正樣本則對應的 label 用 rui

=1

r_ = 1

rui​=1

表示,否則 rui

=0

r_ = 0

rui​=0

。接下來就要定義損失函式了:

c =∑

u,i∈

k(ru

i−r^

ui)2

=∑u,

i∈k(

rui−

putq

i)2+

λ∥pu

∥2+λ

∥qi∥

2c = \sum_ (r_-\hat_)^2 = \sum_ (r_-p_u^t q_i)^2 + \lambda\|p_u\|^2 + \lambda\|q_i\|^2

c=u,i∈

k∑​(

rui​

−r^u

i​)2

=u,i

∈k∑​

(rui

​−pu

t​qi

​)2+

λ∥pu

​∥2+

λ∥qi

​∥2其中,λ 是為了減少過擬合而加入的正則化引數。

對於此損失函式的優化,本文使用隨機梯度下降演算法。於是對於要學習的引數 p,q 而言對他們分別求偏導得到:

∂ c∂

puk=

−2qu

k+2λ

puk∂

c∂qi

k=−2

puk+

2λqi

k\frac} = -2q_ + 2\lambda p_ \\ \frac} = -2p_ + 2\lambda q_

∂puk​∂

c​=−

2quk

​+2λ

puk​

∂qik

​∂c​

=−2p

uk​+

2λqi

k​於是,引數的更新公式為:

p uk

=puk

+α(q

ik−λ

puk)

pik=

qik+

α(pu

k−λq

ik

)p_ = p_ + \alpha(q_ - \lambda p_) \\ p_ = q_ + \alpha(p_ - \lambda q_)

puk​=p

uk​+

α(qi

k​−λ

puk​

)pik

​=qi

k​+α

(puk

​−λq

ik​)

其中,α 是學習率,需要手動設定。輸入樣本進行引數迭代,當收斂的時候,就得到了最終的 p 和 q。然後就可以用最開始提到的公式:

p re

fere

nce(

u,i)

=rui

=put

qi=∑

k=1f

pu,k

qi,k

preference(u, i) = r_ = p_u^t q_i = \sum_^f p_q_

prefer

ence

(u,i

)=ru

i​=p

ut​q

i​=k

=1∑f

​pu,

k​qi

,k​來計算使用者 u 對物品 i 的感興趣程度了。

在lfm中,重要的引數有4個:

通過實驗發現, ratio 引數對lfm的效能影響最大。因此,固定 f =100、 alpha =0.02、lambda =0.01,然後研究負樣本/正樣本比例 ratio 對推薦結果效能的影響。

它基於使用者行為統計做分類,和專家標記相比:

這些都是專家標記不能或者很難做到的。

推薦系統之協同過濾

協同過濾 collaborative filtering,簡稱cf 是目前最為流行的推薦演算法,它是根據具有相同興趣與生活經驗的群體的共同愛好推薦與使用者需求相符合的商品。在推薦過程中 cf演算法首先將使用者對於專案的評分矩陣作為輸入,輸入資料通過 cf 演算法計算出使用者或者專案的相似度,生成推薦...

推薦系統 隱語義模型

繼續學習推薦系統,還是推薦演算法的部分。因為我的學習是圍繞 推薦系統實踐 展開,這邊書是12年寫成的,所以一開始都是那年比較流行的演算法模型,裡面總共講了三個演算法,乙個是協同過濾,乙個是隱語義模型,乙個圖模型。圖模型我覺得現在實際上用的比較少,所以我就只看了一下,這裡不寫出來了。後面我會研究一下深...

機器學習 協同過濾,LFM(隱語義)演算法

本文內容屬於 andrew ng的 機器學習 公開課筆記,大部分截圖均來自andrew ng的課件 對於本節所講的演算法,andrew ng稱為 collaborative filtering 協同過濾 或者low rank matrix factorization xx矩陣分解 項亮博士 推薦系統...