赞
踩
仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法 进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型(latent factor model)、基于图的随机游走算法(random walk on graph)等。
基于邻域的算法是推荐系统中最基本的算法,该算法不仅在学术界得到了深入研究,而且在 业界得到了广泛应用。基于邻域的算法分为两大类,一类是基于用户的协同过滤算法,另一类是 基于物品的协同过滤算法。
基于用户的协同过滤算法是推荐系统中最古老的算法,这个算法是1992年提出的,是用在了邮件过滤系统中,后面被用到了新闻过滤系统中。
简单的来说,在一个在线个性化推荐系统中,基于用户的协同过滤就是,当一个用户A需要个性化推荐 时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。
协同过滤算法主要利用行为的相似度 计算兴趣的相似度。余弦相似度是一种计算方法。
给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v) 为用户v曾经有过正反馈的物品集合。
《推荐系统实践》书中的计算公式:
W u v = ∣ N ( u ) ∩ N ( v ) ∣ ∣ N ( u ) ∣ ∗ ∣ N ( v ) ∣ W_{uv}=\frac{|N(u)\cap N(v)|}{\sqrt{|N(u)|* |N(v)|}} Wuv=∣N(u)∣∗∣N(v)∣ ∣N(u)∩N(v)∣

上述a、b、c边的长度分别为:
{
a
=
x
a
2
+
y
a
2
b
=
x
b
2
+
y
b
2
c
=
(
x
a
−
x
b
)
2
+
(
y
a
−
y
b
)
2
根据余弦定理有:
c
o
s
θ
=
a
⃗
⋅
b
⃗
∣
a
⃗
∣
∗
∣
b
⃗
∣
c
o
s
θ
=
a
2
+
b
2
−
c
2
2
∗
a
∗
b
=
(
x
a
2
+
y
a
2
)
+
(
x
b
2
+
y
b
2
)
−
(
(
x
a
−
x
b
)
2
+
(
y
a
−
y
b
)
2
)
2
∗
x
a
2
+
y
a
2
∗
x
b
2
+
y
b
2
=
x
a
∗
x
b
+
y
a
∗
y
b
x
a
2
+
y
a
2
∗
x
b
2
+
y
b
2
=
a
⃗
⋅
b
⃗
∣
a
⃗
∣
∗
∣
b
⃗
∣
x
⃗
=
(
x
1
,
x
2
,
x
3
,
.
.
.
,
x
n
)
y
⃗
=
(
y
1
,
y
2
,
y
3
,
.
.
.
,
y
n
)
c
o
s
θ
=
x
⃗
⋅
y
⃗
∣
x
⃗
∣
∗
∣
y
⃗
∣
=
x
1
∗
y
1
+
x
2
∗
y
2
+
⋅
⋅
⋅
+
x
n
∗
y
n
x
1
2
+
x
2
2
+
⋅
⋅
⋅
+
x
n
2
∗
y
1
2
+
y
2
2
+
⋅
⋅
⋅
+
y
n
2

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。