MF,PMF算法比较

两者都是推荐算法中的经典算法,在此依照自己的理解描述二者的思想及求解过程,希望以此促进理解二者的联系和区别。

MF 矩阵分解算法

矩阵分解,顾名思义,将一个矩阵分解成多个矩阵相乘的形式,如评分矩阵 Rij R i ∗ j 分解成 用户矩阵 Uik U i ∗ k 与物品矩阵 Vkj V k ∗ j 的乘积。而用户矩阵中的k,代表每个用户i对物品k个属性的偏好程度,物品矩阵中的k,则代表每个物品j具有对应的k个属性的程度。要使得分解后得到的 Uik U i ∗ k Vkj V k ∗ j 能尽可能还原 Rij R i ∗ j ,即

RijRij^=Uik×Vkj R i ∗ j ≈ R i ∗ j ^ = U i k × V k j
, 具体地, Rij R i ∗ j 中已有评分值,与 Rij^ R i ∗ j ^ 中对应位置的值尽可能接近,这样,可以由 Rij^ R i ∗ j ^ 预测 Rij R i ∗ j 中没有值的位置可能的评分。
为了“尽可能接近”,需要对U和V矩阵的值进行训练选择,于是需要设计损失函数,和优化方法。

损失函数

在此,可以选择平方误差函数作为损失函数,即

E2=e2ij=Iij(Rij^Rij)2=Iij(Rij^kUikVkj)2 E 2 = ∑ e i j 2 = ∑ I i j ( R i j ^ − R i j ) 2 = ∑ I i j ( R i j ^ − ∑ k U i k V k j ) 2

其中 Iij I i j 为指示函数,当 Rij R i j 有评分时则为1,否则为0.

损失函数求解

在此,用梯度下降的方式求解,即

E2Uik=2Iij(Rij^kUikVkj)Vkj ∂ E 2 ∂ U i k = − 2 ∑ I i j ( R i j ^ − ∑ k U i k V k j ) V k j

E2Vkj=2Iij(Rij^kUikVkj)Uik ∂ E 2 ∂ V k j = − 2 ∑ I i j ( R i j ^ − ∑ k U i k V k j ) U i k

根据梯度,更新变量
Uik=UikαE2Uik U i k ′ = U i k − α ∂ E 2 ∂ U i k

Uik=VkjαE2Vkj U i k ′ = V k j − α ∂ E 2 ∂ V k j

这里, α α 是学习率,防止步长过大,最终不收敛,经过迭代,最终收敛得到 Uik U i k Vkj V k j 的最优解。

正则化的损失函数

为了增加泛化能力,减少过拟合,通常会增加正则项,若采用L2正则,即损失函数为

E2=e2ij=Iij(Rij^Rij)2+λ2kUik2+λ2kVkj2=Iij(Rij^kUikVkj)2+λ2kUik2+λ2kVkj2 E 2 = ∑ e i j 2 = ∑ I i j ( R i j ^ − R i j ) 2 + λ 2 ∑ ∑ k U i k 2 + λ 2 ∑ ∑ k V k j 2 = ∑ I i j ( R i j ^ − ∑ k U i k V k j ) 2 + λ 2 ∑ ∑ k U i k 2 + λ 2 ∑ ∑ k V k j 2

这样梯度下降表达式为
E2Uik=2Iij(Rij^kUikVkj)Vkj+λUik ∂ E 2 ∂ U i k = − 2 ∑ I i j ( R i j ^ − ∑ k U i k V k j ) V k j + λ U i k

E2Vkj=2Iij(Rij^kUikVkj)Uik+λVkj ∂ E 2 ∂ V k j = − 2 ∑ I i j ( R i j ^ − ∑ k U i k V k j ) U i k + λ V k j

于是,变量更新为
Uik=UikαE2Uik=Uik+2αIij(Rij^kUikVkj)VkjαλUik U i k ′ = U i k − α ∂ E 2 ∂ U i k = U i k + 2 α ∑ I i j ( R i j ^ − ∑ k U i k V k j ) V k j − α λ U i k

Uik=VkjαE2Vkj=Vkj+2αIij(Rij^kUikVkj)UikαλVkj U i k ′ = V k j − α ∂ E 2 ∂ V k j = V k j + 2 α ∑ I i j ( R i j ^ − ∑ k U i k V k j ) U i k − α λ V k j

预测评分

在上述正则化的损失函数通过梯度下降得到最优解后,由得到的 Uik U i k Vkj V k j Rij R i j 中没有评分的位置的可能评分,即

Rij=kUikVkj R i j = ∑ k U i k V k j

PMF概率矩阵分解算法

PMF算法思想上与MF是一致的,它是从概率的角度解释MF的可行性,同样是将评分矩阵 Rij R i ∗ j 分解成 用户矩阵 Uik U i ∗ k 与物品矩阵 Vkj V k ∗ j 的乘积,PMF基于以下两个假设

  • 观测误差(实际评分矩阵 Rij R i j 与预测矩阵 Rij^ R i j ^ 的差)服从高斯分布

  • 用户矩阵 Uik U i k 与物品矩阵 Vkj V k j 服从高斯分布

若以上高斯分布均取标准正态分布,且观测误差的方差取 σ2 σ 2 ,用户矩阵和物品矩阵的方差分别取 σ2U σ U 2 σ2V σ V 2 ,均为认为设定。则有

P(RijRij^)=N(0,σ2) P ( R i j − R i j ^ ) = N ( 0 , σ 2 )

P(U,V)=N(0,σ2U)N(0,σ2V) P ( U , V ) = N ( 0 , σ U 2 ) N ( 0 , σ V 2 )


P(Rij|Rij^)=P(Rij|U,V)=N(UV,σ2) P ( R i j | R i j ^ ) = P ( R i j | U , V ) = N ( U ′ V , σ 2 )

由贝叶斯公式,后验概率
P(Rij^|Rij)=P(Rij|Rij^)P(Rij^)P(Rij)=P(Rij|U,V)P(U,V)P(Rij)=N(UV,σ2)N(0,σ2U)N(0,sigma2V)P(Rij)N(UV,σ2)N(0,σ2U)N(0,sigma2V) P ( R i j ^ | R i j ) = P ( R i j | R i j ^ ) ∗ P ( R i j ^ ) P ( R i j ) = P ( R i j | U , V ) ∗ P ( U , V ) P ( R i j ) = N ( U ′ V , σ 2 ) ∗ N ( 0 , σ U 2 ) N ( 0 , s i g m a V 2 ) P ( R i j ) ∝ N ( U ′ V , σ 2 ) ∗ N ( 0 , σ U 2 ) N ( 0 , s i g m a V 2 )

由概率公式的含义,只要使得上述后验概率最大,即得到的预测结果最优,而上述方差均为常数,标准正态分布公式如下
N(μ,σ)=12πσe(xμ)22σ2 N ( μ , σ ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2

将标准正态分布代入,将常数 12πσ 1 2 π σ 省去(不影响求U,V的最优值),得到
P(Rij^|Rij)exp((RUV)22σ2UU2σ2uVV2σ2v) P ( R i j ^ | R i j ) ∝ e x p ( − ( R − U ′ V ) 2 2 σ 2 − U ′ U 2 σ u 2 − V ′ V 2 σ v 2 )

两边取对数
lnP(Rij^|Rij)((RUV)22σ2UU2σ2uVV2σ2v) l n P ( R i j ^ | R i j ) ∝ ( − ( R − U ′ V ) 2 2 σ 2 − U ′ U 2 σ u 2 − V ′ V 2 σ v 2 )

省去 σ σ 并做参数替换得到要使 lnP(Rij^|Rij) l n P ( R i j ^ | R i j ) 最大,只需使得
E(U,V)=(RUV)22+λuUU2+λvVV2 E ( U , V ) = ( R − U ′ V ) 2 2 + λ u U ′ U 2 + λ v V ′ V 2
最小,而
E(U,V)=(RUV)22+λuUU2+λvVV2=Iij(Rij^Rij)2+λu2kUik2+λv2kVkj2 E ( U , V ) = ( R − U ′ V ) 2 2 + λ u U ′ U 2 + λ v V ′ V 2 = ∑ I i j ( R i j ^ − R i j ) 2 + λ u 2 ∑ ∑ k U i k 2 + λ v 2 ∑ ∑ k V k j 2

此时我们发现,得到的表达式和MF中带L2正则的损失函数表达式一样,于是从概率角度证明了MF的可行性。剩下的步骤就与MF一样了。

你可能感兴趣的:(MF,PMF算法比较)