每周一文(一)The BellKor Solution to the Netflix Grand Prize

BASELINE PREDICTORS

基本思路

推荐系统中一大重要任务是对user-item rating的估计,即输入一个用户u和物品i,系统会输出一个较为精确的打分 r u i r_{ui} rui,标识该用户对该物品的喜好。众多算法中较为基础的带偏置user-item rating估计公式如下所示:
b u i = μ + b u + b i b_{ui}=\mu+b_u+b_i bui=μ+bu+bi
其中 b u i b_{ui} bui代表的是预测的user u对item i的偏置分数; b u b_u bu代表的是u的偏置项, b i b_i bi代表的是i的偏置项, μ \mu μ代表的是所有物品的平均打分,对于该公式的详细解释可以参考推荐系统(一)SVD基本思想以及推荐系统的应用中Bias-Funk-SVD的介绍。

进一步讲,由于 b u b_u bu b i b_i bi都未知,那么模型的目标就是学习 b u b_u bu b i b_i bi,使得 b u i b_{ui} bui r u i r_{ui} rui足够相近,公式如下:
m i n b ∗ ∑ ( u , i ) ( r u i − μ − b u − b i ) 2 + λ ( ∑ u b u 2 + ∑ i b i 2 ) min_{b*}\sum_{(u,i)}(r_{ui}-\mu-b_u-b_i)^2+\lambda(\sum_u b_u^2+\sum_i b_i^2) minb(u,i)(ruiμbubi)2+λ(ubu2+ibi2)

物品-用户时间因子

不管是用户还是物品,其属性都会随着时间的流逝而发生变化,比如用户对一个物品的喜好程度会随着时间的变化而变化,例如去年他给《指环王》打三分,今年他就有可能给这部电影打四分,而物品也有可能过气,比如去年《学猫叫》还是一首网络红歌,但是现在就没有多少人听了,因而其在用户中的印象也会大打折扣。因而时间是一维很重要的特征,所以基本思路中的公式可以变形成如下,这里时间的最小单位为天:
b u i = μ + b u ( t u i ) + b i ( t u i ) b_{ui}=\mu+b_u(t_{ui})+b_i(t_{ui}) bui=μ+bu(tui)+bi(tui)

物品时间因子

物品随时间的变化程度并不是特别大,因而针对每个物品,指定时间端Bin(t)内物品被用户的喜好程度可以近似为不变,因而 b i ( t ) b_i(t) bi(t)表示如下所示:
b i ( t ) = b i + b i , B i n ( t ) b_i(t)=b_i+b_{i,Bin(t)} bi(t)=bi+bi,Bin(t)

用户时间因子

用户的喜好会随时间变化地很快,而且变化的过程较为复杂,因而用户的时间偏差为如下公式:
d e v u ( t ) = s i g n ( t − t u ) ⋅ ∣ t − t u ∣ β dev_u(t)=sign(t-t_u)\cdot |t-t_u|^\beta devu(t)=sign(ttu)ttuβ

这里 t u t_u tu指的是统计时间段内的平均时间点,而用户真正的 b u ( t ) b_u(t) bu(t)表示如下:
b u ( 1 ) = b u + α u ⋅ d e v u ( t ) b_u^{(1)}=b_u+\alpha_u \cdot dev_u(t) bu(1)=bu+αudevu(t)

但是用户在某一天的对物品的喜好程度有可能变化很大,比如他某一天心情好,可能会对他看过的物品给予很高的评价,而如果某一天心情很差,则会非常不喜欢他看到的物品,因而除了上面的建模公式,需要额外添加一个 b u t b_{ut} but来对用户在某一天对用户的偏置项进行全面地衡量,因而用户的偏置项的完全形态如下所示:
b u ( 2 ) = b u + α u ⋅ d e v u ( t ) + b u t b_u^{(2)}=b_u+\alpha_u \cdot dev_u(t)+b_{ut} bu(2)=bu+αudevu(t)+but

总时间因子

经过上面两小节分析,user-item bias的完整形态如下所示:
b u i = μ + b u + α u ⋅ d e v u ( t ) + b i + b i , B i n ( t ) b_{ui} = \mu + b_u+\alpha_u \cdot dev_u(t) + b_i + b_{i, Bin(t)} bui=μ+bu+αudevu(t)+bi+bi,Bin(t)

MATRIX FACTORIZATION WITH TEMPORAL DYNAMICS

如果只用偏置项作为估计user-item rating的话,则偏差较大,因为这忽略了用户与物品之间的交互行为,因而这里引入了矩阵分解的思想,rating预测的公式如下所示:
r ^ u i = b u i + q i T ( p u ( t u i ) + ∣ N ( u ) ∣ − 1 2 ∑ j ∈ N ( u ) y j ) \hat{r}_{ui}=b_{ui}+q^T_i(p_u(t_{ui})+|N(u)|^{-\frac{1}{2}}\sum_{j\in N(u)}y_j) r^ui=bui+qiT(pu(tui)+N(u)21jN(u)yj)
这里 N ( u ) N(u) N(u)代表的是用户u有反馈数据的物品集合, b u i b_{ui} bui指代的是上一节提到的user-item偏置, y j y_j yj代表的是待学习的参数,个人理解是被用户u反馈的物品的权重。

参考文献

  1. Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model
  2. The BellKor Solution to the Netflix Grand Prize

你可能感兴趣的:(小白入门Deep,Learning)