推荐系统实战阅读笔记(二)

1.用户行为分为显示反馈行为和隐士反馈行为

推荐系统实战阅读笔记(二)_第1张图片
推荐系统实战阅读笔记(二)_第2张图片

2.用于行为的统一表示

推荐系统实战阅读笔记(二)_第3张图片

3.实验设计与测评

数据集:GroupLens提供的MovieLens数据集
测评指标:
精确率/召回率:
对用户u推荐N个物品(记为R(u)),令用户u在测试集上喜欢的物品集合为T(u),然后可以通过准确率/召回率评测推荐算法的精度
这里写图片描述
这里写图片描述
覆盖率:该覆盖率表示最终的推荐列表中包含多大比例的物品。如果所有的物品都被推荐给至少一个
用户,那么覆盖率就是100%。
新颖度:这里用推荐列表中物品的平均流行度度量推荐结果的
新颖度。如果推荐出的物品都很热门,说明推荐的新颖度较低,否则说明推荐结果比较新颖

4.协同过滤算法

仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法进行了深入研究,提出了很多方法,比如基于邻域的方法( neighborhood-based)、 隐语义模型( latent factor model)、 基于图的随机游走算法( random walk on graph)等。在这些方法中,最著名的、在业界得到最广泛应用的算法是基于邻域的方法,而基于邻域的方法主要包含下面两种算法。
 基于用户的协同过滤算法 这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品。
 基于物品的协同过滤算法 这种算法给用户推荐和他之前喜欢的物品相似的物品。

4.1基于邻域的算法

4.1.1 基于用户的协同过滤算法(userCF)
Collaborative Filtering
主要包括两个步骤:

  • 找到和目标用户兴趣相似的用户集合
  • 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

相似度计算
Jaccard相似度计算:
这里写图片描述
余弦相似度计算:
这里写图片描述
在大数据量的情况下可采用倒排索引加速相似度计算,只有N(u)∩N(v)不为0时才进行w的计算
推荐系统实战阅读笔记(二)_第4张图片
利用感兴趣程度进行推荐(K是唯一的超参数)
推荐系统实战阅读笔记(二)_第5张图片

用户相似度计算的改进
推荐系统实战阅读笔记(二)_第6张图片

4.1.2 基于物品的协同过滤(ItemCF)
基于物品的协同过滤( item-based collaborative filtering)算法是目前业界应用最多的算法。
无论是亚马逊网,还是Netflix、 Hulu、 YouTube,其推荐算法的基础都是该算法。本节将从基础的算法开始介绍,然后提出算法的改进方法,并通过实际数据集评测该算法。

基于用户的协同过滤算法的缺点

  • 随着网站的用户数目越来越大,计算用户兴趣相似度矩阵将越来越困难,其运算时间复杂度和空间复杂度的增长和用户数的增长近似于平方关系。
  • 基于用户的协同过滤很难对推荐结果作出解释

不过, ItemCF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B
基于物品的协同过滤算法主要分为两步。

  • 计算物品之间的相似度。
  • 根据物品的相似度和用户的历史行为给用户生成推荐列表。

物品间相似度计算举例
这里写图片描述
推荐系统实战阅读笔记(二)_第7张图片
生成推荐列表
推荐系统实战阅读笔记(二)_第8张图片
物品相似度计算的改进
推荐系统实战阅读笔记(二)_第9张图片

推荐系统实战阅读笔记(二)_第10张图片
推荐系统实战阅读笔记(二)_第11张图片

4.1.3 UserCF和ItemCF的综合比较

推荐系统实战阅读笔记(二)_第12张图片

4.2 隐语义模型(LFM( latent factor model))

隐语义模型是最近几年推荐系统领域最为热门的研究话题,它的核心思想是通过隐含特征(latent factor)联系用户兴趣和物品。
需要解决的3个问题:

  • 如何给物体进行分类
  • 如何确定用户对哪些类的物品感兴趣,以及感兴趣的程度
  • 对于一个给定的类,选择哪些属于这个类的物品推荐给用户,以及如何确定这些物品在一个类中的权重?

    4.3 基于图的模型

    基于图的模型:将user-item relationship当作二分图,查找两个顶点相关性

相关性高度顶点的特征:
○ 两个顶点之间有很多路径相连;
○ 连接两个顶点之间的路径长度都比较短;
○ 连接两个顶点之间的路径不会经过出度比较大的顶点。
典型算法是基于随机游走的PersonalRank算法:假设要给用户u进行个性化推荐,可以从用户u对应的节点vu开始在用户物品二分图上进行随 机游走。游走到任何一个节点时,首先按照概率 α 决定是继续游走,还是停止这次游走并从vu节 点开始重新游走。如果决定继续游走,那么就从当前节点指向的节点中按照均匀分布随机选择一 个节点作为游走下次经过的节点。这样,经过很多次随机游走后,每个物品节点被访问到的概率 会收敛到一个数。最终的推荐列表中物品的权重就是物品节点的访问概率。
(非本书内容)知乎严林:基于图的算法(如PersonalRank等),由于其计算复杂度很高,在工业界应用是比较少的。https://www.zhihu.com/question/30467586

你可能感兴趣的:(推荐系统)