机器学习:推荐算法笔记

 协同过滤算法介绍及算法实现

基于内容的推荐算法(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)=ABAB

(2)夹角余弦(Cosine)

在多维空间中向量A与向量B的夹角余弦公式:
c o s θ = A ∗ B ∣ A ∣ ∣ B ∣ cos\theta=\frac{A*B}{|A||B|} cosθ=ABAB

推荐步骤

  • 我们已经从众多的用户中选取与 U s e 1 Use_1 Use1相似度最高的 U s e 2 Use_2 Use2 U s e 3 Use_3 Use3
idABCDE
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)其余方法,例如欧式距离、曼哈顿距离
参考文献

 

posted @ 2020-04-23 11:08  开源的Boy  阅读(115)  评论(0)    收藏  举报