机器学习:推荐算法笔记
基于内容的推荐算法(Content-Based Recommendations CB)
- 推荐相似的内容
核心思想:
根据用户过去喜欢的内容(tag),为用户推荐和他过去喜欢的内容相似的内容。
过程一般包括以下三步:
内容表征(Item Representation):为每个内容抽取出一些特征来表示此tags;
特征学习(Profile Learning):创建用户过去喜欢(及不喜欢)的喜好特征(profile);
生成推荐列表(Recommendation Generation):通过比较上一步得到的用户特征(profile)与候选tags的特征,为此用户推荐一组相关性最大的tags。
举例:
用户 U s e 1 Use_1 Use1喜欢标签 t a g 1 , t a g 3 , t a g 6 tag_1,tag_3,tag_6 tag1,tag3,tag6内容。
则用户的
p
r
o
f
i
l
e
=
{
t
a
g
1
,
t
a
g
3
,
t
a
g
6
}
profile= \{tag_1,tag_3,tag_6\}
profile={tag1,tag3,tag6}
内容表征为
i
t
e
m
1
=
{
t
a
g
2
,
t
a
g
3
,
t
a
g
5
}
item_1=\{tag_2,tag_3,tag_5\}
item1={tag2,tag3,tag5}
i
t
e
m
2
=
{
t
a
g
1
,
t
a
g
3
}
.
.
.
i
t
e
m
n
item_2=\{tag_1,tag_3\}...item_n
item2={tag1,tag3}...itemn
现在就要计算用户 p r o f i l e profile profile与各个 i t e m item item的相似度,方法可以是余弦相似度,欧氏距离等等。
最后一步,向用户推荐余弦相似度高的或是欧氏距离小的 i t e m item item
2 协同过滤算法(UserCF)
- 推荐可能感兴趣的内容
2.1 简介
协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐。它的主要实现由:
-
根据和你有共同喜好的人给你推荐
-
根据你喜欢的物品给你推荐相似物品
-
根据以上条件综合推荐
常用的协同过滤算法分为两种
- 基于用户的协同过滤算法(user-based collaboratIve filtering)
- 以及基于物品的协同过滤算法(item-based collaborative filtering)
2.2协同过滤算法的关键问题
实现协同过滤算法,可以概括为几个关键步骤:
-
1:根据历史数据收集用户偏好
-
2:找到相似的用户(基于用户)或物品(基于物品)
2.3 找到具有相似爱好的用户
(1)杰卡德相似系数(Jaccard similarity coefficient)
J ( A , B ) = A ∩ B A ∪ B J(A,B)=\frac{A\cap B}{A\cup B} J(A,B)=A∪BA∩B
(2)夹角余弦(Cosine)
在多维空间中向量A与向量B的夹角余弦公式:
c
o
s
θ
=
A
∗
B
∣
A
∣
∣
B
∣
cos\theta=\frac{A*B}{|A||B|}
cosθ=∣A∣∣B∣A∗B
推荐步骤
- 我们已经从众多的用户中选取与 U s e 1 Use_1 Use1相似度最高的 U s e 2 Use_2 Use2, U s e 3 Use_3 Use3
| id | A | B | C | D | E |
|---|---|---|---|---|---|
| U s e 1 Use_1 Use1 | 1 | 0 | 1 | 0 | 0 |
| U s e 2 Use_2 Use2 | 1 | 1 | 0 | 0 | 0 |
| U s e 3 Use_3 Use3 | 1 | 1 | 1 | 0 | 1 |
计算
U
s
e
1
Use_1
Use1与
U
s
e
2
Use_2
Use2余弦相似度:
0.5
0.5
0.5
计算
U
s
e
1
Use_1
Use1与
U
s
e
3
Use_3
Use3余弦相似度:
2
2
=
0.7071
\frac{\sqrt{2}}{2}=0.7071
22=0.7071
计算向用户
U
s
e
1
Use_1
Use1推荐商品B的推荐值:
0.5
+
0.7071
=
1.2071
0.5+0.7071=1.2071
0.5+0.7071=1.2071
计算向用户
U
s
e
1
Use_1
Use1推荐商品D的推荐值:
0
+
0
=
0
0+0=0
0+0=0
计算向用户
U
s
e
1
Use_1
Use1推荐商品E的推荐值:
0
+
0.7071
=
0.7071
0+0.7071=0.7071
0+0.7071=0.7071
因此,应该向用户
U
s
e
1
Use_1
Use1推荐商品B:
(3)其余方法,例如欧式距离、曼哈顿距离
参考文献
浙公网安备 33010602011771号