时间感知的隐因子模型
隐因子模型
静态隐因子模型
r^ui=qTipu
为了学习向量 pu 和 qi 我们对下面的正则化平方差公式最小化:
minq∗,p∗∑(u,i)∈K(rui−qTipu)2+λ(∥qi∥2+∥pu∥2)
常数 λ 控制了正则化的程度,通常由交叉验证得到。最小化通常通过随机梯度下降或者交替最小二乘方法得到。
不过有些评分与用户和产品的交互无关:有些用户偏向于给产品打高分,有些产品会收到高分。我们将这类不涉及用户产品交互的影响建模为baseline predictors。令
μ
为整体平均评分。对未知评分
rui
的基准预测评分表示为
bui
:
bui=μ+bu+bi
将基准预测器与隐因子模型结合我们得到
r^ui=μ+bu+bi+qTipu
考虑隐反馈信息的隐因子模型
r^ui=μ+bu+bi+qTi(pu+|R(u)|−12∑j∈R(u)yj)
其中集合 R(u) 包含了用户 u 评价过的产品。
模型的解释:这样的模型对于提供了很多隐式反馈(
将评分分解成不同的部分在这里很方便,它是的我们可以分别对待不同的时间视角:(1)用户的评分偏差 bu (评分尺度)随时间变化;(2)产品的评分偏差 bi (产品流行度)随时间变化;(3)用户偏好 pu (兴趣)随时间变化。不过,我们认为产品特征 qi 与人不同不会随时间改变。我们接下来首先通过基准预测方法详细讨论时间效应。
时间变化的基准预测方法
基准预测方法主要有两个时间效应:产品评分偏差(产品流行性)的时间效应;用户评分偏差(评分尺度)的时间效应。于是基准方法模型变为
bui(t)=μ+bu(t)+bi(t)
函数 bui(t) 表示用户 u 对产品
首先对于产品偏差,由于我们不需要太精细的分辨率,所以可以将产品偏差分割为基于时间的bin。在每个时间区间对应的bin我们使用一个不同的产品偏差。如何将时间轴分割为时间bin应该在得到更精细的分辨率(更小的bin)和在每个bin中有足够的评分之间进行权衡。在TimeSVD++论文中每个bin为连续十周的数据。因此在整个数据集上大概有30个bins。
bi(t)=bi+bi,Bin(t)
对于用户偏差来说,情况就要更复杂了。如何对用户的时间区间进行不同粒度的划分是首要要考虑的问题。
第一个模型选择是非常简单,使用一个线性函数刻画了用户评分偏差的可能的逐渐的漂移。我们首先引入一些新的符号,对每个用户,我们将其评分的日期的均值表示为 tu 。现在,如果用户在第 t 天评价了一部电影,那么这个评分相关的时间偏差定义为: