0.ABSTRACT(摘要)
推荐系统通常依赖于协同过滤(collaboration Filtering,CF)在产品和用户之间建立联系。两种比较成功的CF方法模型:
- 潜在因素模型(Latent factor models):直接描述用户和产品的关系
- 领域模型(Neighborhood models):分析产品或用户之间的相似性
在此报告中,将两种模型进行合并,构建更精确的组合模型,同时利用用户的显式和隐式反馈,可以实现进一步的精度提升。此外,作者提出了一种新的评估指标:根据方法在top-K推荐任务中的表现,突出了方法之间的差异
1.INTRODUCTION
推荐系统通常基于协同过滤,他只依赖与过去的用户行为。CF技术不需要领域知识,并且避免大量数据集的需要。此外,直接依赖用户行为可以发现复杂和意外的模式,这些模式很难或不可能使用已知的数据属性进行分析。
CF系统需要比较根本不同的对象:物品和用户。有两种主要方法:领域模型和潜在因素模型。
领域模型:此核心是计算物品(用户)之间的关系,面向项目的方法根据同一用户对相似项目的评分来评估用户对项目的偏好。不再需要将用户与物品进行比较,而是直接将物品与物品联系起来。邻域模型在检测非常局 部的关系方面 最有效。它们依赖于少数重要的邻域关系,往往忽略了用户的绝大多数评分。因此,这些方法无法捕捉包含在用户所有评分中的弱信号的总和。
潜在因素模型:如奇异值分解(SVD),通过将物品和用户都转换到相同的隐因子空间,从而使它们直接具有可比性,构成了一种替代方法。通过从用户反馈中自动推断出的因素来表征产品和用户,从而解释评分。潜在因素模型通常可以有效地估计同时与大多数或所有项目相关的整体结构 。然而,这些模型在检测一组紧密相关的小项目之间的强关联方面很差,而这恰恰是邻域模型做得最好的地方。
过去的一些工作承认了结合这些方法的有效性,但是在他们处理时,是将两个模型分开独立计算然后结果因子进行加权处理,但作者进行的是在建立模型时就将两种1模型结合在一起。
对于用户u,v,和对于项目i,j。评分rui表示用户u对项目i的偏好,高值意味着更强的偏好。用已知rui来预测未知的rui。
2.PRELIMINARIES(准备工作)
2.1基线估计
在现实生活中,某些人的打分会高于或低于其他人给的分数,有的项目收到的平均分也会高于或低于其他项目,加入对这些因素的考虑:
设项目的均分是μ,bi和bu是项目i和用户u与平均值的观测差值。那么第u个人对i的基线估计就是bui=μ+bu+bi。
例如,假设我们想要一个用户Joe对电影《泰坦尼克号》评分的基线估计。现在,假设所有电影的平均评分μ是3.7 星。而且,《泰坦尼克号》比一般电影好,所以它的评分往往比平均水平高0.5星。另一方面,Joe 是一个挑剔的用户,他的评分往往比平均水平低0.3星。因此,通过计算3.7−0.3+0.5,Joe对泰坦尼克号评分的基线估计为3.9星。
bu和bi可以通过1最小二乘法解决:
minb*
∑
\sum
∑(rui-μ-bu-bi)2+λ1(
∑
\sum
∑
b
u
2
b_u^2
bu2+
∑
\sum
∑
b
i
2
b_i^2
bi2)
求最小的bu,bi。
λ1(
∑
\sum
∑
b
u
2
b_u^2
bu2+
∑
\sum
∑
b
i
2
b_i^2
bi2)是为了防止过拟合。
2.2领域模型
报告中所使用的是领域模型是项目导向型,与它相对的是原始形式:用户导向型。这是因为用户熟悉他们之前喜欢的物品,但不知道那些据称有类似想法的用户。
大多数面向物品的方法的核心是物品之间的相似性度量。
皮尔逊系数ρ:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4K4NOpYs-1689353885744)(皮尔逊系数.png)]
用Sij表示用户对项目i,j的打分的相似程度
Si,j=
n
i
,
j
n
i
,
j
+
λ
2
\frac{n_i,_j}{n_i,_j+λ_2}
ni,j+λ2ni,jρij
其中nij表示同时对i,j评分的用户数量,λ2是一个参数,通常为100
对rui的预测值:使用相似性度量,我们识别出被u评分的k个项目,它们与i最相似。这k个邻居的集合用Sk(i;u)。将risui 的预测值作为相邻物品评分的加权平均值,同时通过基线估计调整用户和物品的效果
r
^
\widehat{r}
r
ui=bui+
∑
j
∈
S
k
(
i
;
u
)
s
i
j
(
r
u
i
−
b
u
i
)
∑
j
∈
S
k
(
i
;
u
)
s
i
j
\frac{\sum_{j\in S^k(i;u)}s_{ij}(r_{ui}-b_{ui})}{\sum_{j\in S^k(i;u)}s_{ij}}
∑j∈Sk(i;u)sij∑j∈Sk(i;u)sij(rui−bui)
此方法有缺陷:该方法计算的是两个项目之间关系的相似性度量的适用性,而没有分析整个邻居集合内的相互作用。
报告引入了一个新的概念:差值权重:{
θ
i
j
u
\theta_{ij}^{u}
θiju|j
∈
\in
∈S
k
(
i
;
u
)
^k(i;u)
k(i;u)}
最佳预测模型:
r
^
u
i
\widehat{r}_{ui}
r
ui=bui+
∑
j
∈
S
k
(
i
;
u
)
θ
i
j
u
(
r
u
j
−
b
u
j
)
\sum_{j\in S^k(i;u)}\theta_{ij}^{u}(r_{uj}-b_{uj})
∑j∈Sk(i;u)θiju(ruj−buj)
2.3潜在因素模型
奇异值分解(SVD):理解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e9Ys8E1N-1689353885745)(SVD1.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D5OSzk93-1689353885746)(SVD2.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4t0kZrDw-1689353885746)(SVD3.png)]
作者使用SVD在项目矩阵上计算的模型,它具有较高的准确性和可拓展性。
每一个用户u都被赋予了一个特征向量
p
u
∈
R
f
p_u \in R^f
pu∈Rf,每个项目i也被赋予了一个特征向量
q
i
∈
R
f
q_i \in R^f
qi∈Rf即
R
^
=
b
u
i
+
p
u
T
q
i
\widehat{R}=b_{ui}+p_{u}^Tq_i
R
=bui+puTqi
然而,在CF领域应用SVD会由于缺失评级的高比例而带来困难。当矩阵的知 识不完全时,传统的SVD是不定义的。此外,粗心地只处理相对较少的已知条目很容易出现过拟合.
建议直接仅对观察到的评级进行建模,同时通过充分的正则化模型避免过拟合:
m
i
n
p
∗
q
∗
b
∗
∑
u
,
i
∈
K
(
r
u
i
−
μ
−
b
u
−
b
i
−
p
u
T
q
i
)
+
λ
3
(
∣
∣
p
u
∣
∣
2
+
∣
∣
q
i
∣
∣
2
+
b
u
2
+
q
i
2
)
min_{p*q*b*}\sum_{u,i\in K}(r_{ui}-μ-b_u-b_i-p_u^Tq_i)+λ_3(||p_u||^2+||q_i||^2+b_u^2+q_i^2)
minp∗q∗b∗∑u,i∈K(rui−μ−bu−bi−puTqi)+λ3(∣∣pu∣∣2+∣∣qi∣∣2+bu2+qi2)
2.4Netflix数据
报告中使用了Netflix数据集,其大约含有1亿条电影相关数据。模型结果由均方根误差来衡量
R
M
S
E
=
∑
(
u
,
i
)
∈
T
e
s
t
S
e
t
(
r
u
i
−
r
^
u
i
)
/
∣
T
e
s
t
S
e
t
∣
RMSE=\sqrt{\sum_{(u,i)\in TestSet}(r_{ui}-\widehat{r}_{ui})/|TestSet|}
RMSE=∑(u,i)∈TestSet(rui−r
ui)/∣TestSet∣
2.5隐式反馈
如前所述,这项工作的一个重要目标是设计允许集成显式和隐式用户反馈的模型。对于像Netflix这样的数据集,最自然的隐式反馈选择是电影租赁历史,它告诉我们用户的偏好,而不需要他们明确地提供他们的评级。然而,这样的数据对我们来说是不可获取的。尽管如此,Netflix数据集中确实存在一种不太明显的隐式数据。数据集不仅告诉我们评分值,还告诉我们用户对哪些电影进行评分,而不管他们如何对这些电影进行评分。
3.新的领域模型
作者在报告中提出了一个新的领域模型:基于全局评分相似度,而非单个用户,用wij表示:用户会给项目i,j打相似分数的权重。
r
^
u
i
=
b
u
i
+
∑
j
∈
R
(
u
)
(
r
u
i
−
b
u
i
)
w
i
j
\widehat{r}_{ui}=b_{ui}+\sum_{j\in R(u)}(r_{ui}-b_{ui})w_{ij}
r
ui=bui+∑j∈R(u)(rui−bui)wij
当用户u对项目j的评分高于基线时,预测u对项目i的评分高于基线
(
r
u
j
−
b
u
j
)
w
i
j
(r_{uj}-b_{uj})w_{ij}
(ruj−buj)wij,
(
r
u
i
−
b
u
i
)
(r_{ui}-b_{ui})
(rui−bui)当做用户大分队基线估计的偏移量。
可以利用隐式反馈,可以对模型进行增强:
r
^
u
i
=
b
u
i
+
∑
j
∈
R
(
u
)
(
r
u
j
−
b
u
j
)
w
i
j
+
∑
j
∈
N
(
u
)
c
i
j
\widehat{r}_{ui}=b_{ui}+\sum_{j\in R(u)}(r_{uj}-b_{uj})w_{ij}+\sum_{j\in N(u)}c_{ij}
r
ui=bui+∑j∈R(u)(ruj−buj)wij+∑j∈N(u)cij
cij表示隐式反馈的权重。
对于提供了大量输入的模型良好的用户,报告愿意承担更多的风险。对于这样的用户,报告愿意预测更奇怪、更不常见的推荐。另一方面,报告对仅提供少量输入的用户的建模不太确定,在这种情况下,报告希望保持接近基线值的安全估计.
目前的模型在一定程度上过度强调了重度评分者和很少评分者之间的二分法。当我们调节这种行为时,将预测规则替换为:
r
^
u
i
=
μ
+
b
u
+
b
i
+
∣
R
(
u
)
∣
−
1
2
∑
j
∈
R
(
u
)
(
r
u
j
−
b
u
j
)
w
i
j
+
∣
N
(
u
)
∣
−
1
2
∑
j
∈
N
(
u
)
c
i
j
\widehat{r}_{ui}=μ+b_u+b_i+|R(u)|^{-\frac{1}{2}}\sum_{j\in R(u)}(r_{uj}-b_{uj})w_{ij}+|N(u)|^{-\frac{1}{2}}\sum_{j\in N(u)}c_{ij}
r
ui=μ+bu+bi+∣R(u)∣−21∑j∈R(u)(ruj−buj)wij+∣N(u)∣−21∑j∈N(u)cij
R(u)表示显示反馈,N(u)表示隐式反馈。
通过修建不太可能的物品-物品关系对应的参数,可以降低模型的复杂性。用
S
k
(
i
)
S^{k}(i)
Sk(i)表示与i醉相思的k个物品的集合。
同时定义:
R
k
(
i
;
u
)
=
R
(
u
)
⋂
S
k
(
i
)
,
N
k
(
i
;
u
)
=
N
(
u
)
⋂
S
k
(
i
)
R^k(i;u)=R(u)\bigcap S^k(i),N^k(i;u)=N(u)\bigcap S^k(i)
Rk(i;u)=R(u)⋂Sk(i),Nk(i;u)=N(u)⋂Sk(i),经过修改后的算法是:
r
^
u
i
=
μ
+
b
u
+
b
i
+
∣
R
k
(
i
;
u
)
∣
−
1
2
∑
j
∈
R
k
(
i
;
u
)
(
r
u
j
−
b
u
j
)
w
i
j
+
∣
N
k
(
i
;
u
)
∣
−
1
2
∑
j
∈
N
k
(
i
;
u
)
c
i
j
\widehat{r}_{ui}=μ+b_u+b_i+|R^k(i;u)|^{-\frac{1}{2}}\sum_{j\in R^k(i;u)}(r_{uj}-b_{uj})w_{ij}+|N^k(i;u)|^{-\frac{1}{2}}\sum_{j\in N^k(i;u)}c_{ij}
r
ui=μ+bu+bi+∣Rk(i;u)∣−21∑j∈Rk(i;u)(ruj−buj)wij+∣Nk(i;u)∣−21∑j∈Nk(i;u)cij
可见当k=
∞
\infty
∞时,上式就与之前的式子一样。其中的参数可由求解下方的最优化问题获得:
m
b
∗
,
w
∗
,
c
∗
∑
(
u
,
i
∈
K
)
(
r
u
i
−
μ
−
b
u
−
b
i
−
∣
N
k
(
i
;
u
)
∣
−
1
2
∑
j
∈
N
k
(
i
;
u
)
c
i
j
−
∣
R
k
(
i
;
u
)
∣
−
1
2
)
2
+
λ
4
(
b
u
2
+
b
i
2
+
∑
j
∈
N
k
(
i
;
u
)
w
i
j
2
+
∑
j
∈
N
k
(
i
;
u
)
c
i
j
2
)
m_{b*,w*,c*}\sum_{(u,i\in K)}(r_{ui}-μ-b_u-b_i-|N^k(i;u)|^{-\frac{1}{2}}\sum_{j\in N^k(i;u)}c_{ij}-|R^k(i;u)|^{-\frac{1}{2}})^2+λ_4(b_u^2+b_i^2+\sum_{j\in N^k(i;u)}w_{ij}^2+\sum_{j\in N^k(i;u)}c_{ij}^2)
mb∗,w∗,c∗∑(u,i∈K)(rui−μ−bu−bi−∣Nk(i;u)∣−21∑j∈Nk(i;u)cij−∣Rk(i;u)∣−21)2+λ4(bu2+bi2+∑j∈Nk(i;u)wij2+∑j∈Nk(i;u)cij2)
4.重新审视潜在因子模型
在原有的模型基础上,作者加入了隐式反馈:
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
)
\widehat{r}_{ui}=b_{ui}+q_i^T(|R(u)|^{-\frac{1}{2}}\sum_{j\in R(u)}(r_{uj}-b_{uj})x_j+|N(u)|^{-\frac{1}{2}}\sum_{j\in N(u)}y_j)
r
ui=bui+qiT(∣R(u)∣−21∑j∈R(u)(ruj−buj)xj+∣N(u)∣−21∑j∈N(u)yj)
称之为“非对称SVD”
优势:
- 更少的参数,用户的数量远大于产品的数量,所以用项目参数转化用户参数显著地降低了复杂度
- 可以实时处理新用户,可以直接根据新用户的反馈,对其进行推荐,而不用对整个模型重新进行计算
- 具有可解释性
- 对隐式反馈的反应更快
5.联合模型
联合模型就是将领域模型和潜在因子模型和隐式反馈:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RzRgWIJR-1689353885746)(联合模型.png)]
6.top-k推荐评估
为此,对于每一部被用户u评价为5星的这样的电影i,我们选择1000部额外的随机电影,并预测u对i和其他1000部电影的评分。最后,我们根据1001部电影的预测评分,按降序对其进行排序。这模拟了一种情况,系统需要从1001部可用 的电影中推荐电影。因此,那些预测最高的电影将被推荐给用户u。注意,这1000部电影是随机的,其中一些可能是用户u感兴趣的,但大多数可能对u不感兴趣。因此,最好的希望结果是i(我们知道u给出了最高的5分)将先于其余 1000部随机电影,从而提高top-K推荐的吸引力。i有1001个可能的不同排名,从最好的情况下没有(0%)随机电影出现在i之前,到最坏的情况下所有(100%)随机电影按排序顺序出现在i之前。总的来说,验证集包含384,573个5星评分。对于它们中的每一部(分别),我们抽取1000部随机电影,预测相关评分,并得 出0%到100%之间的排名。然后分析这384573个排名的分布。(注:由于数字1000是任意的,所以报告的结果是百分位数(0%-100%),而不是绝对排名(0-1000)。)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VLF2kfnF-1689353885747)(表1.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PpoG1fd4-1689353885747)(表2.png)]
我们用这种方法来评价五种不同的方法。第一种方法是上述非个性化的预测规则,该规则使用电影平均值产生RMSE = 1.053。从今以后,它将被记为MovieAvg。第二种方法是基于相关的邻域模型,这是CF文献中最常用的方法。如第3节所述,它在测试集上的RMSE达到0.9406,命名为CorNgbr。第三种方法是[2]的改进邻域法,我们将其命名为WgtNgbr,可以使测试集上的RMSE= 0.9107。第四个是SVD隐因子模型,100个因子从而得到RMSE=0.9025,如表1所示。最后,我们考虑我们最准确的方法,100个因子的综合模型,得到RMSE=0.8870,如表2所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jIcrE0VB-1689353885747)(表3.png)]
图3(上)绘制了五种方法在384,573个评估案例中计算出的百分位等级的累积分布。显然,所有的方法都比随机/常数预测规则更好,因为随机/常数预测规则会产生一条连接左下角和右上角的直线。为了更好地理解,让我们放大x轴的头部,它代表top-K推荐。毕竟,为了进入前k级推荐,一种产品应该排在几乎所有其他产品之前。例如,如果考虑了600种产品,其中3种会被推荐给用户,那么只有排名0.5%或更低的产品才是相关的。从某种意义上说,把一部想要的5星电影放在前5%的位置是没有区别的,放在前20%或前80%,因为它们都不够好,无法呈现给用户。因此,图3(底部)绘制了0% - 2%(1000个项目中排名前20名)的累积排名分布。
7.结论
这项工作对两种最流行的协同过滤方法提出了改进。首先,我们提出了一种新的基于邻域的模型,它不同于以往的邻域方法,它是基于全局代价函数的正式优化。这提高了预测精度,同时保持了邻域方法的优点,如预测的可解释性和无需重新训练模型就能处理新用户。其次,我们引入了对基于svd的隐因子模型的扩展,通过将隐式反馈集成到模型中来提高精度。其中一个模型还提供了通常被认为属于邻域模型的优势,即解释推荐和无缝地处理新用户的能力。此外,新的邻域模型使我们能够首次推导出一个将邻域模型和隐因子模型结合起来的综合模型。这有助于提高系统性能,因为邻域模型和隐因子模型处理不同层次的数据,并相互补充。
推荐系统的质量是通过准确率、多样性、意外推荐的突发性、可解释性、合适的topK推荐、计算效率等多个维度来表达的。其中一些标准是相对容易测量的,如在本研究中提到的准确性和效率。其他一些方面则更难以捉摸,也更难以量化。我们提出了一种新颖的方法来衡量top-K推荐器的成功程度,这对于大多数应该向每个用户推荐少量产品的系统来说是至关重要的。值得注意的是,对top-k推荐者的评估显著地加剧了这些方法之间的差异,超出了传统的准确性测量所能显示的范围。
这项工作之外的一个重要发现是,改进的推荐质量依赖于成功地处理数据的不同方面。一个最好的例子就是使用用户的隐式反馈来扩展模型的质量,这是我们的方法所促进的。对此的评估是基于一种非常有限的隐式反馈形式,可以在Netflix数据集中获得。这足以显示出明显的改善,但还需要进一步试验更好的隐性反馈来源,如购买/租赁历史。可以集成以提高预测质量的数据的其他方面是内容信息,如用户或产品的属性,或与评级相关的日期,这可能有助于解释用户偏好的变化。