概率矩阵分解

概率矩阵分解(probabilistic matrix factorization, PMF),一种推荐系统中的常用算法,假设有M个用户,N个物品,则用户对物品的偏好信息可以表示为一个偏好矩阵R=(r_{ij})\in R^{M*N},概率矩阵分解旨在将偏好信息矩阵R分解为潜在的用户特征矩阵U和物品的特征矩阵V,首先定义在偏好信息上的条件分布:

p(R|U,V,\sigma ^2)=\prod \prod [N(r_{ij}|U_i^T*V_j,\sigma ^2)]^{I_{ij}}

其中I_{ij}是一个指示矩阵,若用户i对物品j有偏好信息,则I_{ij}=1,否则为0;

采用贝叶斯统计的思想,引入用户和物品各自的先验信息,假设用户服从正态分布N(\mu _U,\sigma _U^2),物品也服从一个正态分布N(\mu _V,\sigma _V^2),为了简单起见,令\mu _U=\mu_V=0,即服从均值为0的正态分布;则有:

p(U|\mu_U,\sigma _U^2)=p(U|\sigma _U^2)=\prod N(U_i|0,\sigma _U^2*I)

p(V|\mu_V,\sigma_V^2)=p(V|\sigma_V^2)=\prod N(V_j|0,\sigma_V^2*I)

这里的I是单位矩阵;

根据条件概率公式,用户和物品的后验概率可以由下式给出:

p(U,V|R,\sigma^2,\sigma_U^2,\sigma_V^2)=p(R|U,V,\sigma^2)*p(U|0,\sigma_U^2*I)*p(V|0,\sigma_V^2*I)=\prod_{i=1}^{M}\prod_{j=1}^{N}[N(r_{ij}|U_i^T*V_j,\sigma^2)]^{I_{ij}}*\prod_{i=1}^{M}N(U_i|0,\sigma_U^2*I)*\prod_{j=1}^{N}N(V_j|0,\sigma_V^2*I)

关于上式取对数可得:

\ln{p(U,V|R,\sigma^2,\sigma_U^2,\sigma_V^2)}=-\frac{1}{2\sigma^2}\sum_{i=1}^{N}\sum _{j=1}^{M}I_{ij}(r_{ij}-U_i^T*V_j)^2-\frac{1}{2\sigma_U^2} \sum_{i=1}^{M}U_i^T*U_i-\frac{1}{2\sigma_V^2} \sum_{j=1}^{N}V_j^T*V_j-\frac{1}{2}((\sum_{i=1}^{N}\sum _{j=1}^{M}I_{ij}) \ln \sigma^2+ND\ln \sigma_U^2+MD\ln \sigma_V^2)+C

其中,C是一个不依赖于参数的常量,D:潜在特征矩阵维度,即U,V的列数。

最大化在含有固定不变的超参数的用户-物品特征上的对数后验等价于最小化含有二次正则项的平方误差和的目标函数:

E=\frac{1}{2}\sum_{i=1}^{N}\sum _{j=1}^{M}I_{ij}(r_{ij}-U_i^T*V_j)^2+\frac{\lambda_U}{2}\sum_{i=1}^{M}\left \| U_i \right \|_F^2+\frac{\lambda_V}{2}\sum_{j=1}^{N}\left \| V_j \right \|_F^2

其中:\left \| * \right \|_F表示frobenius范数。\lambda_U=\sigma^2/\sigma_U^2;\lambda_V=\sigma^2/\sigma_V^2.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值