推荐基础算法之矩阵分解PFM
PFM被称为概率因子模型(Probabilistic Factor Model)或泊松因子模型(Poission factor model)。PFM本质上和概率矩阵分解(PMF)思想是一样的,但也有一些不同。其中对于观测数据的假设是用泊松分布代替了PMF中的高斯分布、对于用户和物品潜在特征矩阵用Gamma分布代替Gaussian分布。此外,PFM主要是用来解决频率数据的,这点与PMF解决评分数据不太相同。总之这样做的好处由以下几点:
- 1.对于频数数据,Ganmma分布比Gaussian分布更合适
- 2.Gamma分布比较适合模拟非负数据,而Gaussian分布两者都可以
- 3.Gamma分布已经被证明在处理文本分析中的文本潜在向量上很有效,而文本与单词直接的关系可以看作是频率矩阵
这篇文章主要介绍两个主要的泊松因子模型PFM和CPFM。
Probabilistic Factor Model
PFM中主要基于两点假设:
- 1.观测元素服从期望为
的泊松分布
- 2.用户潜在特征矩阵U和物品潜在特征矩阵V服从一个Gamma先验分布
下面是PFM概率图模型,其中F是一个mxn的观测矩阵,它的元素
因此F中的每个观测值
- 1.根据Gamma分布为用户潜在特征向量中的每个元素赋值,
- 2.根据Gamma分布为物品潜在特征向量中的每个元素赋值,
- 3.计算用户u和物品j的交互频数的期望值,
- 4.根据泊松分布与期望值
,生成观测值。
1. 由于假设2,我们可得用户潜在特征矩阵
其中,
2. 由于假设1, 在给定Y,F的Poisson概率分布如下:
3. 在给定用户观测矩阵F、用户潜在矩阵和物品潜在矩阵的先验分布,由贝叶斯公式可知用户和物品的特征矩阵的后验分布如下:
即可得:
对等式两遍同时取
(1)、对于
(2)、对于
(3)、对于
最大化上式log的后验概率等价于最小化目标函数L(U,V;F):
采用GD来进行优化。直到收敛或达到最大迭代次数。其过程如下:
1.求解损失函数的负梯度
2.根据乘法更新规则来更新变量
上式中的学习率设置与以往不同,采用Lee和Seund的论文中类似设置方式:
Collective Probabilistic Factor Model
很多时候,我们会得到多个数据源,而这些数据源对于捕获用户的偏好又有很大的提升。因此CPFM将融合多种数据源来提升推荐的性能。
下面是CPMF的概率图模型,其中
1. 由于假设2,类似
2. 由于假设1, 在给定X,Y,
其中,
3. 在给定用户观测矩阵
即可得:
给定
采用GD来进行优化。直到收敛或达到最大迭代次数。其过程如下:
1.求解损失函数的负梯度
2.根据乘法更新规则来更新变量
对于两个数据源,设置一个平滑参数
CPFM具有可拓展性,可以很容易集合多个背景知识来提升。
参考文献
Probabilistic Factor Models for Web Site Recommendation