funk_SVD 個人理解


目標函數:

$ J = \frac{1}{2} \left\| R - PQ \right\|^{2} + \lambda \left( \left\|P \right\|^{2} +\left\| Q \right\|^{2} \right) $

矩陣R為$ m \times n$的稀疏矩陣(sparse matrix),考慮用 $ P_{m  \times r}$ 和 $  Q_ {r \times n }$ 兩個矩陣的乘積  $ \hat{R} $ 去逼近矩陣R,誤差用SSE,后面面 兩項為 正則項。 

 

 

 

1,Gradient Descent

$ J = \frac{1}{2}\sum _{\left(i,j \right) \in D} \left( r_{ij} - \sum_{k=1}^{r} p_{ik} q_{kj}\right)^2 + \lambda \left ( \left \| P \right \| ^2+ \left \| Q \right \|^2 \right )$

整體誤差$ J $對 因子矩 P 中某元素 $ p_{ik} $ 的偏導數:

$\frac{\partial J}{\partial p_{ik}} = \sum _{\left(i,j \right) \in D} \left( r_{ij} - \sum_{k=1}^{r} p_{ik} q_{kj}\right)q_{kj}+ \lambda  p_{ik} $

偏導數矩陣應注意的幾項:

  1  $ \sum _{\left(i,j \right) \in D} \left( r_{ij} - \sum_{k=1}^{r} p_{ik} q_{kj}\right)q_{kj} $ 中並不是所有項都有定義的,只取有定義位置。

  2  對於給定的元素 $ p_{ik} $,i,k都是確定的,$ \sum _{\left(i,j \right) \in D} \left( r_{ij} - \sum_{k=1}^{r} p_{ik} q_{kj}\right)q_{kj} $所以可以看成$ \left ( \hat{R} -R \right )$ 和 Q 紅色非空部分的內積, 進一步還能得到因子矩陣的梯度矩陣 $ \frac{\partial J}{\partial P}  = \left ( R-\hat{R} \right ) Q^T + \lambda P $

 

也可以直接用矩陣求導的方法來求解:

當然,做乘法時依然只是那些有記錄的位置參與計算。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM