【推荐系统算法】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).

对“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个。

由于涉及的变量很多,用下图进行总结性说明:
【推荐系统算法】DPMF(Dependent Probabilistic Matrix Factorization).上篇_第1张图片

篮球比赛的实际情况

上述模型可以直接描述电影打分场景,但篮球比赛的情况有两处显著区别:每场比赛有两个得分,主队分和客队分;两只队伍在历史上可能多次交手, 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).中篇。

你可能感兴趣的:(算法,推荐系统,贝叶斯,概率论)