推荐系统(3)-协同过滤2-矩阵分解算法


《深度学习/推荐系统》读书笔记

(其实矩阵分解和协同过滤已经没有特别大的联系了)
2006年,在Netfilx举办的推荐算法竞赛中Netflix Prize Challenge中,以矩阵分解为主的推荐算法大放异彩,拉开了矩阵分解算法在业界流行的序幕。

Netflix 推荐场景–利用用户的行为历史,在Netflix视屏应用中为用户推荐喜欢的电影、电视剧或者纪录片。

矩阵分解算法基本思路–将用户和视频都表示成一个隐向量,计算每个用户隐藏向量和所有视频隐向量之间内积,将内积最大的topK的视屏推荐给目标用户。

m ∗ n m*n mn维共现矩阵 R R R,分解成 m ∗ k m*k mk维用户矩阵U,和 k ∗ n k*n kn维物品矩阵 V V V
R = U ∗ V R=U * V R=UV

则用户 u u u对物品i的重构评分为( p u p_u pu-U矩阵的行向量, q i q_i qi-V矩阵的列向量):
r ^ u i = q i T p u (2.6) \hat{r}_{ui}=q^T_ip_u\tag{2.6} r^ui=qiTpu(2.6)

  1. 迷惑点1:用户隐藏向量和所有视频隐向量之间内积,其实就是重构用户对每一部电影的品评分,推荐重构评分高的电影 是如何 实现了用户对未评分电影的预测的呢?
  2. 矩阵分解中缺失值该怎么处理呢?就是用户没有评分的项目。

矩阵分解的方法:特征值分解、奇异值分解、梯度下降
特征值分解–只能作用于方阵,不适用于分解用户-物品矩阵

1.奇异值分解

Singular Value Decomposition-SVD
M = U m ∗ m Σ m ∗ n V n ∗ n M= U_{m*m}\Sigma_{m*n} V_{n*n} M=UmmΣmnVnn

近似分解:
M ≈ U m ∗ k Σ k ∗ k V k ∗ n M\approx U_{m*k}\Sigma_{k*k} V_{k*n} MUmkΣkkVkn

缺点:不适用于大规模稀疏矩阵的分解

  1. SVD要求原始共现矩阵是稠密的,需要对缺失的元素进行填充。
  2. SVD时间复杂度高( O ( m n 2 ) O(mn^2) O(mn2))

2.梯度下降

SVD的缺点使得研究者门另求他路–梯度下降法(矩阵分解的主要方法)
基本思路–参数化 q i T p u q^T_ip_u qiTpu,使其和原始评分 r u i r_{ui} rui的差距尽量小

正则化目标函数:
min ⁡ q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 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,pmin(u,i)K(ruiqiTpu)2+λ(qi2+pu2)(2.8)

为了消除用户和物品打分的偏差,修正目标函数:
min ⁡ q ∗ , p ∗ ∑ ( u , i ) ∈ K ( r u i − μ − b u − b i − q i T p u ) 2 + λ ( ∣ ∣ q i ∣ ∣ 2 + ∣ ∣ p u ∣ ∣ 2 + b u 2 + b i 2 ) \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,pmin(u,i)K(ruiμbubiqiTpu)2+λ(qi2+pu2+bu2+bi2)

其中: μ \mu μ是全局偏差常数, b i b_i bi是物品偏差系数(物品i收到的平均评分), b u b_u bu用户偏差系数(用户u给出评分的均值)

3.矩阵分解方法的优缺点

优点:

  1. 泛化能力强–数据稀疏时的相似度也能衡量
  2. 空间复杂度低
  3. 扩展性和灵活性–用户物品隐向量,与Embedding的思想相似,可以与其他特征进行拼接。

缺点:
矩阵分解还是下共现矩阵的基础下进行的。共现矩阵缺点–一个矩阵只能表征用户和物品之间的一种作用关系(点击,购买,评分),特征表示能力弱。不便加入用户、物品的上下文相关特征。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值