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

来源:互联网 发布:350mm新域名 编辑:程序博客网 时间:2024/05/17 03:37

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,ZD已知,需要估计模型参数θ,μ,L,σ,ρ。为了便于求解,同时估计高斯过程f
这里写图片描述

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

ZOs,ZDs,YOs,YDs Um(s),fUm(s) Vn(s),fVn(s) LU,LV x θU,θV 1×1 1×K 1×K K×K D×1 K×1

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

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

特征的协方差LU,LV

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

p(LU|ZO,ZF,others)p(ZO,ZF|LU,other)p(LU,others)p(ZO,ZD|all)p(LU)p(ZO,ZD|all)

其中

p(ZO,ZD|all)=sp(ZOs(x),ZDs(x)|all)

已知其他变量条件下,

[ZOs(x),ZDs(x)]N([YOs(x),YFs(x)],[σ2ρσ2ρσ2σ2])

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

特征的均值μU,μV

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

p(μU|ZO,ZD,others)p(ZO,ZD|all)N(μU;mU,cU)

观测误差σ,ρ

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

p(σ,ρ|ZO,ZD,others)p(ZO,ZD|all)p(σ)p(ρ)p(ZO,ZD|all)

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

独立特征fU,fV

同样认为fU,fV服从均匀分布,不知道任何先验。

p(fUm(s)|ZO,ZD,others)p(ZO,ZD|all)p(fU)p(ZO,ZD|all)

采用elliptical slice sampling进行采样,用采样结果更新fU,fV
要逐个更新M个进攻特征fUm,以及N个防守特征fVn。更新一个特征时,要使用当前最新的其他特征。

超参数θU,θV

主场队伍m的进攻超参数为θUm,客场队伍n的防守超参数为θVn。(以下书写略去U,V)

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

举例:某一年联赛共有31支球队参加,则M=31fUM×K,fUm1×K。共进行了1200场比赛,则S=2501。某一队伍m在主场打了82场,J(m)=82,gmJ(m)×K

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

具体来说,记θm对应的协方差矩阵为L(θm)。首先计算一个尺寸为J(m)×K的隐变量νm=L(θm)1gm。而后用以下概率对θm进行采样:

p(θm|ZO,ZD,others)p(ZO,ZD|all)

p(ZO,ZD|all)的计算方法和之前一样,只不过涉及到的fmνm和当前采样的θm计算而来:fm=L(θm)νm

预测

模型的所有参数θ,μ,L,σ,ρ,f都估计完之后,可以进行对未发生的比赛结果进行预测。
论文中要求预测任意主队m和任意客队n的比赛得分。可以直接求解:

Ymn=fUmfVn

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

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

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

1 0
原创粉丝点击