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

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方法的概率模型,本篇博客继续讨论该论文的求解和预测。

优化

历史比赛的主客场得分 Z O , Z D ZO,ZD ZO,ZD已知,需要估计模型参数 θ , μ , L , σ , ρ \theta,\mu,L,\sigma,\rho θ,μ,L,σ,ρ。为了便于求解,同时估计高斯过程 f f f
这里写图片描述

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

Z O s , Z D s , Y O s , Y D s ZO_s,ZD_s,YO_s,YD_s ZOs,ZDs,YOs,YDs U m ( s ) , f m ( s ) U U_{m(s)}, f_{m(s)}^U Um(s),fm(s)U V n ( s ) , f n ( s ) V V_{n(s)},f_{n(s)}^V Vn(s),fn(s)V L U , L V L^U,L^V LU,LV x x x θ U , θ V \theta^U, \theta^V θU,θV
1 × 1 1\times 1 1×1 1 × K 1 \times K 1×K 1 × K 1 \times K 1×K K × K K \times K K×K D × 1 D \times 1 D×1 K × 1 K \times 1 K×1

比赛场次 s = 1 : S s=1:S s=1:S,主队编号 m = 1 : M m=1:M m=1:M,客队编号 n = 1 : N n=1:N n=1:N。一般来说 M = N M=N M=N x x x: 表示D种辅助信息。例如D=2,同时考虑时间和主客场信息。

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

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

在源码中认为 L U L^U LU服从一个均匀分布,换言之不知道任何 L U L^U LU的先验信息。目标分布为:
p ( L U ∣ Z O , Z F , o t h e r s ) ∝ p ( Z O , Z F ∣ L U , o t h e r ) ⋅ p ( L U , o t h e r s ) ∝ p ( Z O , Z D ∣ a l l ) ⋅ p ( L U ) ∝ p ( Z O , Z D ∣ a l l ) 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(LUZO,ZF,others)p(ZO,ZFLU,other)p(LU,others)p(ZO,ZDall)p(LU)p(ZO,ZDall)

其中
p ( Z O , Z D ∣ a l l ) = ∏ s p ( Z O s ( x ) , Z D s ( x ) ∣ a l l ) p(ZO,ZD|all) = \prod_s p(ZO_s(x),ZD_s(x)|all) p(ZO,ZDall)=sp(ZOs(x),ZDs(x)all)

已知其他变量条件下,
[ Z O s ( x ) , Z D s ( x ) ] ∼ N ( [ Y O s ( x ) , Y F s ( 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] ) [ZOs(x),ZDs(x)]N([YOs(x),YFs(x)],[σ2ρσ2ρσ2σ2])

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

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

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

p ( μ U ∣ Z O , Z D , o t h e r s ) ∝ p ( Z O , Z D ∣ a l l ) ⋅ N ( μ U ; m U , c U ) p(\mu^U|ZO,ZD,others) \propto p(ZO,ZD|all) \cdot N(\mu^U; m_U, c_U) p(μUZO,ZD,others)p(ZO,ZDall)N(μU;mU,cU)

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

同样认为 σ , ρ \sigma, \rho σ,ρ服从均匀分布,不知道任何先验。
p ( σ , ρ ∣ Z O , Z D , o t h e r s ) ∝ p ( Z O , Z D ∣ a l l ) ⋅ p ( σ ) ⋅ p ( ρ ) ∝ p ( Z O , Z D ∣ a l l ) p(\sigma,\rho|ZO,ZD,others) \propto p(ZO,ZD|all)\cdot p(\sigma) \cdot p(\rho) \propto p(ZO,ZD|all) p(σ,ρZO,ZD,others)p(ZO,ZDall)p(σ)p(ρ)p(ZO,ZDall)

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

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

同样认为 f U , f V f^U,f^V fU,fV服从均匀分布,不知道任何先验。
p ( f m ( s ) U ∣ Z O , Z D , o t h e r s ) ∝ p ( Z O , Z D ∣ a l l ) ⋅ p ( f U ) ∝ p ( Z O , Z D ∣ a l l ) p(f_{m(s)}^U|ZO,ZD,others) \propto p(ZO,ZD|all)\cdot p(f^U) \propto p(ZO,ZD|all) p(fm(s)UZO,ZD,others)p(ZO,ZDall)p(fU)p(ZO,ZDall)

采用elliptical slice sampling进行采样,用采样结果更新 f U , f V f^U,f^V fU,fV
要逐个更新 M M M个进攻特征 f m U f_m^U fmU,以及 N N N个防守特征 f n V f_n^V fnV。更新一个特征时,要使用当前最新的其他特征。

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

主场队伍 m m m的进攻超参数为 θ m U \theta_m^U θmU,客场队伍 n n n的防守超参数为 θ n V \theta_n^V θnV。(以下书写略去U,V)

队伍 m m m在历史上的所有主场比赛相当于对高斯过程 f m U f_m^U fmU进行了多次采样。
队伍 m m m的主场比赛数量记为 J ( m ) J(m) J(m),得分记为 g m U g_m^U gmU g m U g_m^U gmU的所有元素服从联合高斯分布,其均值为0,协方差矩阵由超参数 θ m \theta_m θm J ( m ) J(m) J(m)场比赛中的辅助信息 x x x共同确定。

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

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

具体来说,记 θ m \theta_m θm对应的协方差矩阵为 L ( θ m ) L(\theta_m) L(θm)。首先计算一个尺寸为 J ( m ) × K J(m)\times K J(m)×K的隐变量 ν m = L ( θ m ) − 1 ⋅ g m \nu_m = L(\theta_m)^{-1}\cdot g_m νm=L(θm)1gm。而后用以下概率对 θ m \theta_m θm进行采样:
p ( θ m ∣ Z O , Z D , o t h e r s ) ∝ p ( Z O , Z D ∣ a l l ) p(\theta_m|ZO,ZD,others) \propto p(ZO,ZD|all) p(θmZO,ZD,others)p(ZO,ZDall)
p ( Z O , Z D ∣ a l l ) p(ZO,ZD|all) p(ZO,ZDall)的计算方法和之前一样,只不过涉及到的 f m f_m fm ν m \nu_m νm和当前采样的 θ m \theta_m θm计算而来: f m = L ( θ m ) ⋅ ν m f_m = L(\theta_m) \cdot \nu_m fm=L(θm)νm

预测

模型的所有参数 θ , μ , L , σ , ρ , f \theta,\mu,L,\sigma,\rho,f θ,μ,L,σ,ρ,f都估计完之后,可以进行对未发生的比赛结果进行预测。
论文中要求预测任意主队 m m m和任意客队 n n n的比赛得分。可以直接求解:
Y m n = f m U ⋅ f n V Y_{mn} = f_m^U \cdot f_n^V Ymn=fmUfnV

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

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

本论文的理论部分已经介绍完毕,对源码运行和实验细节感兴趣的同学,可以继续阅读下篇。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值