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(LU∣ZO,ZF,others)∝p(ZO,ZF∣LU,other)⋅p(LU,others)∝p(ZO,ZD∣all)⋅p(LU)∝p(ZO,ZD∣all)
其中
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,ZD∣all)=s∏p(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(μU∣ZO,ZD,others)∝p(ZO,ZD∣all)⋅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,ZD∣all)⋅p(σ)⋅p(ρ)∝p(ZO,ZD∣all)
以上三类变量都根据目标分布,采用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)U∣ZO,ZD,others)∝p(ZO,ZD∣all)⋅p(fU)∝p(ZO,ZD∣all)
采用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 fU∼M×K,fmU∼1×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,gm∼J(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)−1⋅gm。而后用以下概率对
θ
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(θm∣ZO,ZD,others)∝p(ZO,ZD∣all)
p
(
Z
O
,
Z
D
∣
a
l
l
)
p(ZO,ZD|all)
p(ZO,ZD∣all)的计算方法和之前一样,只不过涉及到的
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=fmU⋅fnV
值得注意的是,论文中的预测并没有利用从属信息。
在代码中,优化和预测是同步进行的。先启动
μ
,
L
,
σ
,
ρ
,
f
\mu,L,\sigma,\rho,f
μ,L,σ,ρ,f的优化,MCMC执行了一定步数之后,burn-in阶段结束,启动
θ
\theta
θ的优化,同时可以执行预测。
在执行预测的同时,也同时更新模型参数。
本论文的理论部分已经介绍完毕,对源码运行和实验细节感兴趣的同学,可以继续阅读下篇。