概率矩阵分解

概率矩阵分解(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.

你可能感兴趣的:(基础知识,线性代数,概率论,算法)