推荐系统(3)-协同过滤2-矩阵分解算法
協同過濾-矩陣分解算法
- 1.奇異值分解
- 2.梯度下降
- 3.矩陣分解方法的優缺點
《深度學習/推薦系統》讀書筆記
(其實矩陣分解和協同過濾已經沒有特別大的聯系了)
2006年,在Netfilx舉辦的推薦算法競賽中Netflix Prize Challenge中,以矩陣分解為主的推薦算法大放異彩,拉開了矩陣分解算法在業界流行的序幕。
Netflix 推薦場景–利用用戶的行為歷史,在Netflix視屏應用中為用戶推薦喜歡的電影、電視劇或者紀錄片。
矩陣分解算法基本思路–將用戶和視頻都表示成一個隱向量,計算每個用戶隱藏向量和所有視頻隱向量之間內積,將內積最大的topK的視屏推薦給目標用戶。
m?nm*nm?n維共現矩陣RRR,分解成m?km*km?k維用戶矩陣U,和k?nk*nk?n維物品矩陣VVV
R=U?VR=U * VR=U?V
則用戶uuu對物品i的重構評分為(pup_upu?-U矩陣的行向量,qiq_iqi?-V矩陣的列向量):
r^ui=qiTpu(2.6)\hat{r}_{ui}=q^T_ip_u\tag{2.6}r^ui?=qiT?pu?(2.6)
矩陣分解的方法:特征值分解、奇異值分解、梯度下降
特征值分解–只能作用于方陣,不適用于分解用戶-物品矩陣
1.奇異值分解
Singular Value Decomposition-SVD
M=Um?mΣm?nVn?nM= U_{m*m}\Sigma_{m*n} V_{n*n}M=Um?m?Σm?n?Vn?n?
近似分解:
M≈Um?kΣk?kVk?nM\approx U_{m*k}\Sigma_{k*k} V_{k*n}M≈Um?k?Σk?k?Vk?n?
缺點:不適用于大規模稀疏矩陣的分解
2.梯度下降
SVD的缺點使得研究者門另求他路–梯度下降法(矩陣分解的主要方法)
基本思路–參數化qiTpuq^T_ip_uqiT?pu?,使其和原始評分ruir_{ui}rui?的差距盡量小
正則化目標函數:
min?q?,p?∑(u,i)∈K(rui?qiTpu)2+λ(∣∣qi∣∣2+∣∣pu∣∣2)(2.8)\min_{q^*,p^*}\sum_{(u,i)\in K}(r_{ui}-q^T_ip_u)^2+\lambda(||q_i||^2+||p_u||^2)\tag{2.8}q?,p?min?(u,i)∈K∑?(rui??qiT?pu?)2+λ(∣∣qi?∣∣2+∣∣pu?∣∣2)(2.8)
為了消除用戶和物品打分的偏差,修正目標函數:
min?q?,p?∑(u,i)∈K(rui?μ?bu?bi?qiTpu)2+λ(∣∣qi∣∣2+∣∣pu∣∣2+bu2+bi2)\min_{q^*,p^*}\sum_{(u,i)\in K}(r_{ui}-\mu-b_u-b_i-q^T_ip_u)^2+\lambda(||q_i||^2+||p_u||^2+b_u^2+b_i^2)q?,p?min?(u,i)∈K∑?(rui??μ?bu??bi??qiT?pu?)2+λ(∣∣qi?∣∣2+∣∣pu?∣∣2+bu2?+bi2?)
其中:μ\muμ是全局偏差常數,bib_ibi?是物品偏差系數(物品i收到的平均評分),bub_ubu?用戶偏差系數(用戶u給出評分的均值)
3.矩陣分解方法的優缺點
優點:
缺點:
矩陣分解還是下共現矩陣的基礎下進行的。共現矩陣缺點–一個矩陣只能表征用戶和物品之間的一種作用關系(點擊,購買,評分),特征表示能力弱。不便加入用戶、物品的上下文相關特征。
總結
以上是生活随笔為你收集整理的推荐系统(3)-协同过滤2-矩阵分解算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (十)深入浅出TCPIP之网络阻塞和非阻
- 下一篇: (十二)深入浅出TCPIP之Nagle算