矩陣分解算法(Matrix Factorization)是最經常使用於推薦系統的協同過濾算法之一。這一系列的算法曾經是推薦系統中使用的主流算法,即便在如今也在不少地方有用。這裏簡單地梳理從最基礎的matrix factorization(MF)算法到它衍生出來的probabilistic matrix factorization(PMF)的思路,具體解法能夠參看 推薦算法——基於矩陣分解的推薦算法 和 機率矩陣分解 這兩個blog。算法
簡單地說,MF 能夠認爲是 Latent Factor Model 思想指導下的一種解決問題的思路,而 latent factor model 其實屬於協同過濾方法的一個分支。筆者在以前的文章中介紹過 協同過濾方法。app
在協同過濾方法中,咱們提到了 user-item-preference 矩陣的存在。Latent factor model 的主要思路就是認爲存在某些不可見的、表明用戶偏好的隱變量,用戶的偏好能夠被這些隱變量徹底表明,這些隱變量也能決定用戶對item的偏好。表如今 user-item-preference 矩陣中,即爲咱們能夠將 user-item-preference 矩陣分解爲兩個矩陣的乘積。函數
假設咱們有 個user,
個item,
個隱變量,將 user-item-preference 矩陣用
來表示,
表示user對latent factor的矩陣,
表示item對latent factor的矩陣。在latent factor model的假設下,矩陣分解算法能夠表示爲
。具體來講,對於
中的每一個
,都有
,即
。post
在咱們求解這個問題時,損失函數爲google
,.net
對損失函數求負梯度,則爲cdn
使用這兩個負梯度公式,咱們就能夠用梯度降低方法來進行矩陣分解了。blog
上面是基礎的MF算法,PMF是在MF的基礎上增長了一個高斯機率函數,增長這個函數的目的是解決評分不多的user比較難得到準確結果的問題,也即解決user cold start問題。它把上面的公式變成了一個在觀察矩陣基礎上的條件分佈:get
同時,假定user和item feature的先驗分佈以下: it
那麼它們的聯合後驗分佈能夠表示爲:
原論文最後實際使用的方法要更復雜一些,由於加入了一個sigmoid函數:
若是想要同時估計U,V和超參數,上面的後驗就會變成
這個時候的最大後驗估計要用EM算法來解。