推薦系統(2)

推薦系統(2)

多層模型

全局global

整體誤差:e.g.平均值做爲基線函數

局部local

處理局部影響:e.g.相關性學習

協調過濾CF

抽取局部模式優化

Ⅰ協同過濾CF
\[ r_{xi} = \frac{\sum_{j \in N(i;x)}S_{ij}·r_{xj}}{\sum_{j \in N(i;x)}S_{ij}} \]
Ⅱ協同過濾CF+誤差biasesspa

在實踐中,對誤差進行建模,獲得更好的估計:
\[ r_{xi} = b_{xi} + \frac{\sum_{j \in N(i;x)}S_{ij}·(r_{xj}-b_{xj})}{\sum_{j \in N(i;x)}S_{ij}} \]ip

問題
  • 強制使用類似性度量it

  • 成對類似性忽視了用戶之間的依賴性io

  • 採用加權平均值可能會受到限制class

解決

Ⅲ協同過濾CF+誤差biases+通過學習的權重learned weightssed

採用加權和\(w_{ij}\),而不是加權平均值\(S_{ij}\),直接從數據估測,模擬的是電影對之間的相互做用,與用戶無關
\[ \hat r_{xi}=b_{xi}+\sum_{j \in N(i;x)}w_{ij}(r_{ij}-b_{xj}) \]lambda

\[ 代價函數SSE:J=\min_{P,Q}\sum_{training}(\hat r_{xi}-r_{xi})^2 \]

採用梯度降低優化代價函數,找到最合適的\(w_{ij}\)

Ⅳ基於潛在因子的推薦Latent factor based

\(Q\):item-factor矩陣;\(P\):user-factor矩陣;\(SVD:R=Q·P^T\)

\[ J=\min_{P,Q}\sum_{training}(r_{xi}-q_ip_x)^2 \]
想法:找到合適的\(P,Q\),最小化代價函數

→ 較大的\(k\)值(潛在因子數目);然而\(k\)變大,\(SSE\)會變大

自由度比較大的時候,會過擬合 → 引入正則化
\[ J=\min_{P,Q}\sum_{training}(r_{xi}-q_ip_x)^2+[\lambda_1\sum_x||p_x||^2+\lambda_2\sum_i||q_i||^2] \]
採用梯度降低優化代價函數

\(GD\)vs.\(SGD\)

\(GD\)中,每次迭代都要用到所有訓練數據。

\(SGD\)中每次迭代能夠只用一個訓練數據來更新參數。使用了梯度的噪聲近似。

實際上,\(SGD\)雖然須要更多步,可是收斂更快,由於其計算耗費的時間少

Ⅴcombination:Latent factors+biases

\[ r_{xi}=\mu+b_x+b_i+q_i·p_x \]

\(\mu\)是全部評分平均值

\(b_x\)是用戶\(x\)的評分誤差

\(b_i\)是電影\(i\)的評分誤差

\(q_i·p_x\)是goodness of fit,即擬合好壞程度(?不太理解)
\[ J=\min_{P,Q}\sum_{(x,i)\in R}(r_{xi}-(\mu+b_x+b_i+q_ip_x))^2 \\ +[\lambda_1\sum_i||q_i||^2+\lambda_2\sum_x||p_x||^2+\lambda_3\sum_x||b_x||^2+\lambda_4\sum_i||b_i||^2] \]
找到合適的\(b_i,b_j,q_i,p_x\),最小化代價函數

Ⅵ biases&factors加入時間因素

\[ r_{xi}=\mu+b_x(t)+b_i(t)+q_i·p_x\\ b_i(t)=b_i+b_{i,Bin(t)}\\ p_x(t)...在t時的用戶偏好向量 \]

Ⅶ 上百種模型混合

相關文章
相關標籤/搜索