推荐系统之概率矩阵分解的详细推导过程(Probabilistic Matrix Factorization,PMF)
概率矩阵分解是目前在推荐领域很流行的模型。本文主要是推导论文 Mnih A, Salakhutdinov R R. Probabilistic matrix factorization[C]//Advances in neural information processing systems. 2008: 1257-1264. 中的结果。
传统的协同过滤方法既不能处理大数据量的推荐,也不能处理只有很少评分的用户。这篇论文提出了著名的概率矩阵分解的方法来解决这个问题。概率矩阵分解的思想是以中线性因子模型,它使用与用户相关的系数,将用户的偏好建模成一个一系列向量的线性组合。具体如下:
假设有$M$个电影和$N$个用户。$R_{ij}$表示第$i$个用户对电影$j$的评分。假设隐变量的维度是$D$,那么我们希望将评分矩阵$R$分解成两个矩阵,即用户隐矩阵$U\in R^{D\times N}$,和电影隐矩阵$V \in R^{D\times M}$。其中,$U_i$表示第$i$个用户的隐向量,$V_j$表示第$j$个电影的隐向量。假设评分是一个有高斯噪音的正态分布。那么我们的评分应当有如下公式:
p(R|U,V,\sigma^2)=\prod_{i=1}^N\prod_{j=1}^M\Big[\mathcal{N}(R_{ij}|U_i^TV_j,\sigma^2)\Big]^{I_{ij}}
这里的$\mathcal{N}(R_{ij}|U_i^TV_j,\sigma^2)$是指高斯分布的概率密度函数。$I_{ij}$是指示函数,表明如果用户$i$评论了电影$j$,那么其结果等与1,否则就是0。因此,上面的结果就是所有已经被评论的电影得分的乘积,也就是似然函数了。
我们给每个用户和电影的隐向量(特征向量)一个均值为0的高斯先验。有:

