简介
本文是Koren在KDD08会议的文章,其核心思想主要是
- CF中的邻域模型和隐因子模型可以进行融合,得到更好的效果
- 隐性反馈可以被引入模型之中,达到更好的效果
主要内容
1 协同过滤CF不需要领域知识、不需要收集大量数据,并能发现一些复杂和意料之外的模型的优势,使其十分流行。
2 CF主要包括领域模型和隐因子模型,两者各有优缺点。领域模型由于重点关注最近的邻居,因而擅长于发现局部关系,但是难以捕捉数据集中全部的弱信号,而隐因子模型则能有效估计出大部分项目或所有项目的整体结构,但是不能发现一小部分项目间的强关联。
3 包括购买历史、浏览历史、搜索历史,甚至是鼠标移动,都可以用作隐性反馈加入到模型中。
4 模型方面,作者首先提出了Baseline算法,然后开始分领域模型和隐因子模型进行介绍。
5 邻域模型方面,作者首先介绍了和论文解读——Performance of Recommender Algorithms on Top-N Recommendation Tasks中一样的领域模型,该模型是基于领域思想的经典表达,只能直接根据数据进行计算,无法进行调整,同时没有考虑所有邻居,且当用户的评分很少时会失去作用,于是作者使用了一个插值因子
θ
i
j
u
\theta_{ij}^u
θiju来解决这一问题,于是模型变成了
r
^
u
i
=
b
u
i
+
∑
j
∈
S
k
(
i
;
u
)
θ
i
j
u
(
r
u
j
−
b
u
j
)
\hat r_{ui}=b_{ui}+ \sum_{j\in S^k(i;u)}\theta_{ij}^u(r_{uj}-b_{uj})
r^ui=bui+j∈Sk(i;u)∑θiju(ruj−buj),该模型详见。
在此模型上,再加入用户的隐式反馈便是作者在文中提出的领域模型,该模型可以使用优化模型或者最小二乘进行计算。
6 在隐因子模型方面,首先提出了Asymmetric-SVD即非对称SVD,非对称体现在使用项目特征来表示用户特征,
r
^
u
i
=
b
u
i
+
q
i
T
(
∣
R
(
u
)
∣
−
1
2
∑
j
∈
R
(
u
)
(
r
u
j
−
b
u
j
)
x
j
+
∣
N
(
u
)
∣
−
1
2
∑
j
∈
N
(
u
)
y
j
)
\hat{r}_{ui} = b_{ui} + q_i^T\left(\vert R(u) \vert ^{-\frac{1}{2}}\sum_{j\in R(u)}(r_{uj}-b_{uj})x_j+\vert N(u) \vert^{-\frac{1}{2}}\sum_{j\in N(u)}y_j\right)
r^ui=bui+qiT⎝⎛∣R(u)∣−21j∈R(u)∑(ruj−buj)xj+∣N(u)∣−21j∈N(u)∑yj⎠⎞
常见的P向量被一些项目特征进行表示,故称为非对称,该模型的优点在于更少的参数(不需要训练P矩阵了)、不涉及到用户偏好故可以对新用户新用户推荐、可解释性(通过项目进行解释)和有效使用了隐性反馈。
后面加进了常见的P,那就是SVD++了,可以参考另一篇博文推荐系统surprise库教程。
7 作者将两个模型进行了融合,就是后两个评分预测公式融合了一下。