公式2:参数的贝叶斯规则
在这里,X是我们的数据集,θ是分布的参数或参数集。α是分布的超参数。p(θ| X,α)是后验分布,也称为后验分布。p(X |θ,α)是似然,p(θ|α)是先验。训练过程的整体思路是,随着我们获得有关数据分布的更多信息,我们将调整模型参数θ以适合数据。从技术上讲,后验分布的参数将插入到先前的分布中,以进行训练过程的下一次迭代。也就是说,给定训练步骤的后验分布最终将成为下一步骤的先验。重复该过程,直到步骤之间的后验分布p(θ| X,α)几乎没有变化为止。
现在,让我们回到有关PMF的直觉上。如前所述,我们的模型参数将是U和V,而R将是我们的数据集。经过培训后,我们将得到一个修订的R *矩阵,该矩阵还将包含对用户项目单元格最初在R中为空的评分。我们将使用此修订的评分矩阵进行预测。基于这些考虑,我们将拥有:
其中σ是零均值球形高斯分布的标准偏差。然后,通过替换等式2中的这些表达式,我们将得到:
由于U和V矩阵彼此独立(用户和项独立发生),因此该表达式也可以这样写:
公式3:PMF的A-Posteriori分布
现在是时候找出该方程式的每个分量了。首先,似然函数由下式给出:
公式4:观测等级的分布
在此,I {ij}是一个指标,当第i行和第j列的评级存在时,其值为1,否则为0。如我们所见,此分布是具有以下参数的spherical Gaussian分布:
反过来,U和V的先验分布由下式给出:
公式5和6:U和V的先验分布
这是两个零均值球面高斯(spherical Gaussians)。然后,通过在3中替换4、5和6,我们将得到:
为了训练我们的模型,我们将寻求通过将参数U和V的导数等价为零来最大化此函数。但是,由于高斯函数中的exp函数,这样做将非常困难。为了克服这个问题,我们应该将对数应用于前面的方程式的两边,然后应用所需的导数。因此,通过将对数应用于上一个方程的两边,我们将获得:
这是一个更容易区分的表达方式。我们也知道,根据定义,高斯PDF由以下公式给出:
因此,我们对数后验的表达式将如下所示(注意:为简单起见,我们已删除了常量):
Fro后缀表示Frobenius范数,它由下式给出:
最后,通过引入一些附加的符号来标识模型的超参数,我们将获得:
公式7:PMF的对数后验
然后,通过对参数微分方程式7并将导数等于零,我们将得到:
从这里,我们可以导出表达式以更新Ui和Vj:
公式8和9:用于更新U和V的表达式
假设λU和λV都不为零,则可以保证所涉及的逆矩阵存在。作为训练过程的一部分,我们将迭代更新Ui和Vj。一旦找到最佳值,就可以使用方程式7获得log-MAP的值(最大后验值)。正如我们在Python实现中所看到的那样,我们可以使用该值来监控训练收敛 。