日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

推荐系统--矩阵分解(2)

發布時間:2024/8/23 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 推荐系统--矩阵分解(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

推薦系統–矩陣分解(1)
推薦系統–矩陣分解(2)
推薦系統–矩陣分解(3)
推薦系統–矩陣分解(4)
推薦系統–矩陣分解(5)
推薦系統–矩陣分解(6)

3 BiasSVD:考慮偏置

有一些用戶會給出偏高的評分,有一些物品也會收到偏高的評分,比如電影觀眾為鐵粉,一些受某時期某事件影響的電影。所以需要考慮偏置對評分的影響,其公式如下:
L(θ)=arg?min??pu,qi∑u,i(rui?μ?bu?bi?puTqi)2+λ(∥pu∥22+∥qi∥22+∥bu∥22+∥bi∥22)(4)\begin{aligned} L(\theta)=\underbrace{\arg \min }_{p_{u}, q_{i}} \sum_{u, i}\left(r_{u i}-\mu-b_{u}-b_{i}-p_{u}^{T} q_{i} \right)^{2} \\ +\lambda\left(\left\|p_{u}\right\|_{2}^{2}+\left\|q_{i}\right\|_{2}^{2}+\left\|b_{u}\right\|_{2}^{2}+\left\|b_{i}\right\|_{2}^{2}\right) \end{aligned} \tag4L(θ)=pu?,qi?argmin??u,i?(rui??μ?bu??bi??puT?qi?)2+λ(pu?22?+qi?22?+bu?22?+bi?22?)?(4)
符號說明:
用戶的預測評分為:rui^=puTqi+μ+bu+bi\hat{r_{ui}} = p_{u}^T q_{i} + \mu + b_{u} + b_{i}rui?^?=puT?qi?+μ+bu?+bi?
偏差為:eui=rui?rui^e_{ui}=r_{ui}-\hat{r_{ui}}eui?=rui??rui?^?
μ\muμ:訓練集中所有評分記錄的全局平均數,表示了訓練數據的總體評分情況,對于固定的數據集,它是一個常數;
bub_ubu?:用戶uuu的偏置,獨立于物品特征的因素,表示某一特定用戶的打分習慣。例如,對于批判性用戶對于自己的評分比較苛刻,傾向于打低分;而樂觀型用戶則打分比較保守,總體打分要偏高;
bib_ibi?:物品iii的偏置,特立于用戶興趣的因素,表示某一特定物品得到的打分情況。以電影為例,好片獲得的總體評分偏高,而爛片獲得的評分普遍偏低,物品偏置捕獲的就是這樣的特征。
對公式(4)求偏導,理后可以得到迭代公式為:
pu,k=pu,k+η(euiqk,i?λpu,k)qk,i=qk,i+η(euipu,k?λqi,k)bu=bu+η(eui?λbu)bi=bi+η(eui?λbi)(5)\begin{aligned} p_{u, k} &=p_{u, k}+\eta\left(e_{u i} q_{k, i}-\lambda p_{u, k}\right) \\ q_{k, i} &=q_{k, i}+\eta\left(e_{u i} p_{u, k}-\lambda q_{i, k}\right) \\ b_{u} &=b_{u}+\eta\left(e_{ui} -\lambda b_{u}\right) \\ b_{i} &=b_{i}+\eta\left(e_{ui} -\lambda b_{i}\right) \end{aligned} \tag5 pu,k?qk,i?bu?bi??=pu,k?+η(eui?qk,i??λpu,k?)=qk,i?+η(eui?pu,k??λqi,k?)=bu?+η(eui??λbu?)=bi?+η(eui??λbi?)?(5)

4 SVD++:增加歷史行為

通過觀看B站上的視頻,終于把SVD++核心思想搞清楚了:

  • 它是來探索物品與物品之間關聯關系的,比如對逃學威龍1評分高的人,可能也會給逃學威龍2高評分;
  • 由于需要探索物品與物品之間的關聯關系,可以使用顯式反饋,也可以使用顯式反饋+隱式反饋;
  • 利用隱式反饋來探索物品與物品之間的關聯關系,信息更加豐富:少數用戶會主動點評電影或者美食,大多數用戶只會瀏覽或者觀看,也就是說顯式反饋比隱式反饋少。

SVD++模型的步驟如下:

  • 對于某一個用戶uuu,它提供了反饋的物品集合定義為N(u)N(u)N(u)
  • 假設j∈N(u)j \in N(u)jN(u),該物品jjj和預測物品iii之間的關系為wijw_{ij}wij?
  • 將這個關系作為預測評分的一個部分,則有如下公式:
    rui^=μ+bu+bi+puTqi+1∣N(u)∣∑j∈N(u)wij(6)\begin{aligned} \hat{r_{ui}}=\mu+b_{u}+b_{i}+p_{u}^T q_{i} + \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)}w_{ij} \tag6 \end{aligned} rui?^?=μ+bu?+bi?+puT?qi?+N(u)?1?jN(u)?wij??(6)
    引入1∣N(u)∣\frac{1}{\sqrt{|N(u)|}}N(u)?1?是為了消除不同∣N(u)∣|N(u)|N(u)個數引起的差異。
    WWW矩陣如下表所示:
t1t_1t1?t2t_2t2?t3t_3t3?t4t_4t4?
t1t_1t1?w11w_{11}w11?w12w_{12}w12?w13w_{13}w13?w14w_{14}w14?
t2t_2t2?w21w_{21}w21?w22w_{22}w22?w23w_{23}w23?w24w_{24}w24?
t3t_3t3?w31w_{31}w31?w32w_{32}w32?w33w_{33}w33?w34w_{34}w34?
t4t_4t4?w41w_{41}w41?w42w_{42}w42?w43w_{43}w43?w44w_{44}w44?
  • WWW矩陣維度為n×nn \times nn×n,維度很大,我們對WWW進行矩陣分解后得到如下公式:
    rui^=μ+bu+bi+puTqi+1∣N(u)∣xuT∑j∈N(u)yj(7)\begin{aligned} \hat{r_{ui}}=\mu+b_{u}+b_{i}+p_{u}^{T} q_{i} + \frac{1}{\sqrt{|N(u)|}} x_u^T \sum_{j \in N(u)}y_{j} \tag7 \end{aligned} rui?^?=μ+bu?+bi?+puT?qi?+N(u)?1?xuT?jN(u)?yj??(7)
  • xux_uxu?表示用戶的隱向量,可以用pup_upu?替換,這樣就減少了對WWW矩陣的分解,則上式可以表示為:
    rui^=μ+bu+bi+puTqi+1∣N(u)∣puT∑j∈N(u)yj=μ+bu+bi+puT(qi+1∣N(u)∣∑j∈N(u)yj)(10)\begin{aligned} \hat{r_{ui}}=\mu+b_{u}+b_{i}+p_{u}^{T} q_{i} + \frac{1}{\sqrt{|N(u)|}} p_u^T \sum_{j \in N(u)}y_{j} \\ = \mu+b_{u}+b_{i}+p_{u}^{T} \left(q_{i} + \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)}y_{j}\right)\tag{10} \end{aligned} rui?^?=μ+bu?+bi?+puT?qi?+N(u)?1?puT?jN(u)?yj?=μ+bu?+bi?+puT????qi?+N(u)?1?jN(u)?yj?????(10)

其優化目標函數:
L(θ)=arg?min??pu,qi∑u,i(rui?μ?bu?bi?puTqi?puT1∣N(u)∣∑j∈N(u)yj)2+λ(∥pu∥22+∥qi∥22+∥bu∥22+∥bi∥22+∑j∈N(u)∥yj∥22)(11)\begin{aligned} L(\theta) = \underbrace{\arg \min }_{p_{u}, q_{i}} \sum_{u, i}\left(r_{ui}-\mu-b_{u}-b_{i}-p_{u}^{T} q_{i} -p_{u}^{T} \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)} y_{j}\right)^{2} \\ +\lambda\left(\left\|p_{u}\right\|_{2}^{2}+\left\|q_{i}\right\|_{2}^{2}+\left\|b_{u}\right\|_{2}^{2}+\left\|b_{i}\right\|_{2}^{2}+\sum_{j \in N(u)}\left\|y_{j}\right\|_{2}^{2}\right) \end{aligned} \tag{11} L(θ)=pu?,qi?argmin??u,i????rui??μ?bu??bi??puT?qi??puT?N(u)?1?jN(u)?yj????2+λ???pu?22?+qi?22?+bu?22?+bi?22?+jN(u)?yj?22?????(11)

對公式(11)求偏導,令eui=rui?rui^e_{ui}=r_{ui}- \hat{r_{ui}}eui?=rui??rui?^?,整理后可以得到迭代公式:
bu=bu+η?(eui?λ?bu)bi=bi+η?(eui?λ?bi)pu=pu+η?(eui?qi?λ?pu)qi=qi+η?(eui(pu+1∣N(u)∣∑j∈N(u)yj)?λ?qi)yj=yj+η?(eui?1∣N(u)∣qi?λ?qi)(12)\begin{aligned} b_u = b_u + \eta \cdot (e_{ui} - \lambda \cdot b_u) \\ b_i = b_i + \eta \cdot (e_{ui} - \lambda \cdot b_i) \\ p_u = p_u + \eta \cdot (e_{ui} \cdot q_i - \lambda \cdot p_u) \\ q_i = q_i + \eta \cdot (e_{ui}(p_u + \frac{1}{\sqrt{|N(u)|}}\sum_{j \in N(u)} y_j) - \lambda \cdot q_i) \\ y_j = y_j + \eta \cdot (e_{ui} \cdot \frac{1}{\sqrt{|N(u)|}} q_i - \lambda \cdot q_i) \\ \end{aligned} \tag{12} bu?=bu?+η?(eui??λ?bu?)bi?=bi?+η?(eui??λ?bi?)pu?=pu?+η?(eui??qi??λ?pu?)qi?=qi?+η?(eui?(pu?+N(u)?1?jN(u)?yj?)?λ?qi?)yj?=yj?+η?(eui??N(u)?1?qi??λ?qi?)?(12)
參考的迭代公式如下:

總結

以上是生活随笔為你收集整理的推荐系统--矩阵分解(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。