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

来源:互联网 发布:hadoop2.2.0 windows 编辑:程序博客网 时间:2024/06/05 11:22

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).

对“PMF”这个概念比较陌生的同学请先阅读这篇基础PMF算法。
对“利用MCMC方法积掉后验概率”这句话感到费解的同学可以参看这篇贝叶斯PMF算法。

在PMF中,使用一个关系矩阵Z来描述用户对电影的评分。但除了这个基本信息之外,还有一些辅助信息:用户的身份、在网页上的操作、电影的票房、打分发生的时间等。
再以篮球比赛为例,Z矩阵存储球队间竞赛得分。而球队球员买卖、伤病情况、主客场、比赛时间都是辅助信息。
这篇文章在PMF的基础上,引入了辅助信息,其方法称为DPMF。作者George Dahl是Hinton的学生。源码和数据都可以下载。本文使用篮球比赛举例。

模型

关系矩阵Z

Z描述队伍间两两比赛的结果:Zmn为m,n两队比赛时m队的得分,Znm为n队的得分。
x表示辅助信息,其维度为D。基础PMF中的关系矩阵Z是一个随机变量,这里的Z(x)变成了关于x随机过程
在一个观测中,Z(x)每个位置上的x值互不相同。

例子
x可能包括比赛的地点和时间。主场/客场会影响发挥,相近似的比赛场次会有相近的结果。但即使知道了时间和地点,比赛仍然存在不确定性。某一特定时刻的Z(x0)是一个随机变量。

和基础PMF类似,Z的每一个元素是一个高斯随机变量

Zm,n(x)N(Ym,n(x),σ2)=N(Um(xm)VTn(xn),σ2)

U的第m行以及V的第n行,对应Z中的一个元素mn,故U的每一行的x取值相同,记为xm,同理V的每一行的辅助信息记为xn。例如:只讨论一个辅助信息(时间),则xm,xn为标量。(后续为简洁起见,有时省略了x的脚标)

其中均值Y(x)表示系统内部参数,方差σ。随机过程U(x),V(x)尺寸为M×K,N×K,为低秩的系统内部参数,是要估计的。

为了在同一场比赛的两队得分间引入相关性(己方得分高注重进攻防守弱对方得分高),用二元高斯来描述对称位置的元素。σ,ρ为待估计变量。

[Zm,n(x)Zn,m(x)]N(Ym,n(x)Yn,m(x),[σ2ρσ2ρσ2σ2])

整个关系矩阵的概率为各元素概率乘积。

p(Z(x))=m,np(Zm,n(x))

特征矩阵U,V

U,V的每一行表示各个队伍的得分/失分情况(进攻/防守能力);U,V的每一列代表不同内部因素。队伍m的进攻能力,以及队伍n的防守能力,共同决定两队比赛时,队伍m的得分:

Zm,n(x)=Um(x)TVn(x)

这里写图片描述
各个队伍的情况(U(x),V(x)各行)相互独立,但一支队伍的各种因素(Um(x)K)关于x有相关性。例如:主客场会影响前锋的表现,也会影响中锋的表现。U,V的各列之间存在联系。
用独立随机过程的线性组合来表达这种队伍内部各因素的相关性

Um(x)=LUfUm(xm)+μU

Vn(x)=LVfVn(xn)+μV

其中fU(x),fV(x)是随机过程,尺寸和U,V相同,各元素之间独立。
μU,μV描述得分/失分的均值,服从高斯分布。
LU,LV尺寸为K×K,用来描述一个队伍内部特征的相关性。
用相关矩阵的Cholesky分解对其进行定义

ΣU=LU(LU)T,ΣV=LV(LV)T

Σ是随机正定矩阵。

μL为待估计变量,在各个队伍之间通用,保证了队伍之间的相关性

隐变量f

在这一层次,终于要和辅助信息x发生关系了。之前使用的模型实质上都是高斯随机变量,这里开始使用高斯随机过程。

fU,fV的每一个元素是关于辅助信息x的0均值高斯过程。(设定0均值是为了书写方便,且不失一般性)

fUm,k(xm)GP(xm|θUk),        fVn,k(xn)GP(xn|θVk)

m=1,2...M,n=1,2...N,k=1,2...K

θU,θV是高斯过程的参数,维度为K,对应进攻和防守的K个特征。
m,n是f矩阵的行标,表示不同队伍;k是f矩阵的列标,表示不同的特征。
f矩阵的各行服从相同的高斯过程。换言之,可以用同一个高斯过程采样N次得到fU的每一行。f矩阵的各列对应使用相同的x。也就是说,每只队伍的不同属性有相同的辅助特征。

辅助信息x1,x2维度均为D。高斯过程的相关矩阵可以有如下形式

C(x1,x2)=exp{12d=1D(x1dx2d)2θd}

高斯形式:辅助信息相近,则相关性高。例:x表示教练风格,风格相近则战绩相近。

C(x1,x2)=exp{2sin2(12(x1x2))/θ}

周期形式:辅助信息差距周期性影响相关性,只适用于标量。例:x表示时间,每年年末观众都会喜爱贺岁片。

这里的参数θ也称为length scale,控制于高斯过程的方差,用来描述不同时刻(在本模型中对应比赛时间或者场地)高斯变量的相似性。θ为待估计参数,共有2K个。

由于涉及的变量很多,用下图进行总结性说明:
这里写图片描述

篮球比赛的实际情况

上述模型可以直接描述电影打分场景,但篮球比赛的情况有两处显著区别:每场比赛有两个得分,主队分和客队分;两只队伍在历史上可能多次交手,Z矩阵的一个元素可能对应多个观测量。需要按照以下方式对模型稍作调整。
已知全部S场比赛的主队得分ZOs(x),以及相应的客队得分ZDs(x)(其中O=Offensive, D = Defensive)。每场比赛的两个得分符合联合高斯分布:

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

其中YOs(x),YDs(x)为第s场比赛的期望得分。

s场比赛的主队和客队分别为m(s),n(s)。比赛的期望比分取决于参赛两队的进攻和防守能力。

YOs(x)=UTm(s)(x)Vn(s)(x),   YDs(x)=VTm(s)(x)Un(s)(x)

为了避免“负负得正”的情况(multimodality)给参数估计过程带来困扰,利用函数ψ(t)=ln(1+et)强行限制第二项为正。

YOs(x)=UTm(s)(x)ψ(Vn(s)(x)),   YDs(x)=VTm(s)(x)ψ(Un(s)(x))

其余部分和原来相同。以上给出了问题的概率模型。如何优化模型参数进行预测请参看推荐系统算法(DPMF).中篇。

1 0