您的位置:首页 > 产品设计 > 产品经理

【推荐系统算法】DPMF(Dependent Probabilistic Matrix Factorization).中篇

2016-01-25 22:36 676 查看
Adams, Ryan Prescott, George E. Dahl, and Iain Murray. “Incorporating side information in probabilistic matrix factorization with gaussian processes.” arXiv preprint arXiv:1003.4944 (2010).

上一篇博客介绍了DPMF方法的概率模型,本篇博客继续讨论该论文的求解和预测。

优化

历史比赛的主客场得分ZO,ZDZO,ZD已知,需要估计模型参数θ,μ,L,σ,ρ\theta,\mu,L,\sigma,\rho。为了便于求解,同时估计高斯过程ff。



采用MCMC方法,在已知数据的条件下,每次固定其他变量,写出待求变量的条件概率。根据这个概率(目标分布)对此变量进行采样,采样结果用来更新此变量的取值。

为了明确起见,再次列出各个变量的尺寸。

ZOs,ZDs,YOs,YDsZO_s,ZD_s,YO_s,YD_sUm(s),fUm(s)U_{m(s)}, f_{m(s)}^UVn(s),fVn(s)V_{n(s)},f_{n(s)}^VLU,LVL^U,L^VxxθU,θV\theta^U, \theta^V
1×11\times 11×K1 \times K1×K1 \times KK×KK \times KD×1D \times 1K×1K \times 1
比赛场次s=1:Ss=1:S,主队编号m=1:Mm=1:M,客队编号n=1:Nn=1:N。一般来说M=NM=N。xx: 表示D种辅助信息。例如D=2,同时考虑时间和主客场信息。

以下推导中,用all表示全部隐变量,用others表示出当前更新变量外的其他隐变量。以下推导为了书写简便,省略了一些上标和下标。

特征的协方差LU,LVL^U,L^V

在源码中认为LUL^U服从一个均匀分布,换言之不知道任何LUL^U的先验信息。目标分布为:

p(LU|ZO,ZF,others)∝p(ZO,ZF|LU,other)⋅p(LU,others)∝p(ZO,ZD|all)⋅p(LU)∝p(ZO,ZD|all)p(L^U|ZO,ZF,others) \propto p(ZO,ZF|L^U,other) \cdot p(L^U, others) \propto p(ZO,ZD|all) \cdot p(L^U) \propto p(ZO,ZD|all)

其中

p(ZO,ZD|all)=∏sp(ZOs(x),ZDs(x)|all)p(ZO,ZD|all) = \prod_s p(ZO_s(x),ZD_s(x)|all)

已知其他变量条件下,

[ZOs(x),ZDs(x)]∼N([YOs(x),YFs(x)],[σ2ρσ2ρσ2σ2])[ZO_s(x), ZD_s(x)] \sim N( [YO_s(x),YF_s(x)], \left [\begin{matrix} \sigma^2 \rho \sigma^2 \\ \rho \sigma^2 \sigma^2 \end{matrix} \right] )

这个概率非常重要,是采样后面几个变量都要用到的。

特征的均值μU,μV\mu^U,\mu^V

源码中认为μU\mu^U服从高斯分布,其参数mU,cUm_U,c_U人工指定。和前述推导类似:

p(μU|ZO,ZD,others)∝p(ZO,ZD|all)⋅N(μU;mU,cU)p(\mu^U|ZO,ZD,others) \propto p(ZO,ZD|all) \cdot N(\mu^U; m_U, c_U)

观测误差σ,ρ\sigma, \rho

同样认为σ,ρ\sigma, \rho服从均匀分布,不知道任何先验。

p(σ,ρ|ZO,ZD,others)∝p(ZO,ZD|all)⋅p(σ)⋅p(ρ)∝p(ZO,ZD|all)p(\sigma,\rho|ZO,ZD,others) \propto p(ZO,ZD|all)\cdot p(\sigma) \cdot p(\rho) \propto p(ZO,ZD|all)

以上三类变量都根据目标分布,采用slice sampling方式进行采样,对变量进行更新。

独立特征fU,fVf^U,f^V

同样认为fU,fVf^U,f^V服从均匀分布,不知道任何先验。

p(fUm(s)|ZO,ZD,others)∝p(ZO,ZD|all)⋅p(fU)∝p(ZO,ZD|all)p(f_{m(s)}^U|ZO,ZD,others) \propto p(ZO,ZD|all)\cdot p(f^U) \propto p(ZO,ZD|all)

采用elliptical slice sampling进行采样,用采样结果更新fU,fVf^U,f^V。

要逐个更新MM个进攻特征fUmf_m^U,以及NN个防守特征fVnf_n^V。更新一个特征时,要使用当前最新的其他特征。

超参数θU,θV\theta^U,\theta^V

主场队伍mm的进攻超参数为θUm\theta_m^U,客场队伍nn的防守超参数为θVn\theta_n^V。(以下书写略去U,V)

队伍mm在历史上的所有主场比赛相当于对高斯过程fUmf_m^U进行了多次采样。

队伍mm的主场比赛数量记为J(m)J(m),得分记为gUmg_m^U。gUmg_m^U的所有元素服从联合高斯分布,其均值为0,协方差矩阵由超参数θm\theta_m和J(m)J(m)场比赛中的辅助信息xx共同确定。

举例:某一年联赛共有31支球队参加,则M=31M=31,fU∼M×K,fUm∼1×Kf^U \sim M\times K, f_m^U \sim 1\times K。共进行了1200场比赛,则S=2501S=2501。某一队伍m在主场打了82场,J(m)=82,gm∼J(m)×KJ(m) = 82, g_m \sim J(m) \times K。

在已知观测数据,以及联合高斯随机变量gmg_m的前提下,求解其相关性参数θm\theta_m,有经典的reparameterization方法,其粗略原理可以参看这篇博客

具体来说,记θm\theta_m对应的协方差矩阵为L(θm)L(\theta_m)。首先计算一个尺寸为J(m)×KJ(m)\times K的隐变量νm=L(θm)−1⋅gm\nu_m = L(\theta_m)^{-1}\cdot g_m。而后用以下概率对θm\theta_m进行采样:

p(θm|ZO,ZD,others)∝p(ZO,ZD|all)p(\theta_m|ZO,ZD,others) \propto p(ZO,ZD|all)

p(ZO,ZD|all)p(ZO,ZD|all)的计算方法和之前一样,只不过涉及到的fmf_m由νm\nu_m和当前采样的θm\theta_m计算而来:fm=L(θm)⋅νmf_m = L(\theta_m) \cdot \nu_m。

预测

模型的所有参数θ,μ,L,σ,ρ,f\theta,\mu,L,\sigma,\rho,f都估计完之后,可以进行对未发生的比赛结果进行预测。

论文中要求预测任意主队mm和任意客队nn的比赛得分。可以直接求解:

Ymn=fUm⋅fVnY_{mn} = f_m^U \cdot f_n^V

值得注意的是,论文中的预测并没有利用从属信息。

在代码中,优化和预测是同步进行的。先启动μ,L,σ,ρ,f\mu,L,\sigma,\rho,f的优化,MCMC执行了一定步数之后,burn-in阶段结束,启动θ\theta的优化,同时可以执行预测。

在执行预测的同时,也同时更新模型参数。

本论文的理论部分已经介绍完毕,对源码运行和实验细节感兴趣的同学,可以继续阅读下篇。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: