【推荐算法笔记二】矩阵因式分解(Matrix Factorization)

基于显示反馈(explicit feedback)的推荐

将用户的显式反馈记录,记录在一个评分矩阵中:


矩阵中的数字代表用户对物品的评分、?表示缺失值。如果我们能够估计矩阵中每个?的值,我们就可以为每个用户做推荐。

为什么选择矩阵因式分解(Matrix Factorization)?

Memory-based方法的局限性:

  • 非传递性(Non-transitivity):如果两个用户的评分物品集没有交集,既没有都评分过的物品,那么即使他们有相同的邻居,他们也永远不会被关联起来。
  • 低效率:必须要计算每一对用户间的相似度,以及每一对物品间的相似度。

什么是矩阵因式分解?

评分矩阵被分解为两个小矩阵:

  • Uu· ∈ R1×d : 用户u的特定潜在特征向量 ,

       Uu· 表示用户u在d层面的兴趣模型

  • Vi· ∈ R1×d :  物品i的特定潜在特征向量, 

        Vi· 表示物品i在d层面的描述(description)

  •  用户u对物品i的整体偏好

   

符号表(notations)

n  用户数量
物品数量
u ∈ {1, 2, . . . , n}
用户id
i, i′ ∈ {1, 2, . . . ,m}
物品id

观测到的u对i的评分

可选评分集合

若u对i有评分则为1,否则为0

训练集中观测到的评分记录数量
μ全局平均评分

用户u的bias

物品i的bias

潜在特征向量的维数

权重参数

用户u对物品i的预测评分
T算法的迭代次数

概率矩阵分解PMF(Probabilistic Matrix Factorization)

预测公式(用户u对物品i):


目标函数:

 

    其中的是需要被学习的模型参数。

梯度及更新公式

梯度更新使用随机梯度下降算法,对于任一随机采样的评分,我们有如下定义:


可得两个特征矩阵的梯度为:


因此更新公式(6-7)为:


其中γ>0是学习率

PMF的随机梯度下降(SGD)算法伪代码为:


正则化奇异值分解RSVD(Regularized Singular Value Decomposition)

在PMF的预测公式中,我们加入用户bias、物品bias以及全局评分均值μ

预测公式(用户u对物品i):


目标函数:


梯度及更新公式

梯度更新使用随机梯度下降算法,对于任一随机采样的评分,我们有如下定义:


可得各个参数的梯度为:


    其中

因此更新公式(9-13)为:


模型参数初始化:


    其中r为[0,1)区间内的随机变量。

RSVD的随机梯度下降(SGD)算法伪代码为:



    总结:矩阵因式分解的方法的目标函数是最小化预测值和真实值之间的误差。也就是尽可能使训练后模型计算出来的值能与可观测到的真实值吻合,这样在原矩阵中的?可以用模型计算而得的可靠的值替代。但是纯粹使用矩阵的因式来还原评分矩阵可能并不那么可靠,所以在预测时添加了用户和物品的偏好以及全局平均值来增加准确度。

本文内容来自W.K. Pan (CSSE, SZU)的课件

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值