推荐系统实践(项亮)— 第2章 利用用户行为数据

2.1 用户行为数据简介

  • 用户行为数据可分为显性反馈行为和隐性反馈行为
  • 用户数据的统一表示;

2.2 用户行为分析
  在设计推荐算法之前需要对用户行为数据进行分析,了解数据中蕴含的一般规律可以对算法的设计起到指导作用。

  • 用户活跃度和物品流行度

    • 均近似符合长尾分布:e.g. 物品流行度定义:对用户产生过行为的总数;e.g. 用户活跃度定义:对物品产生过行为的总数
  • 活跃度和流行度的关系:一般新用户倾向于浏览热门的物品,因为他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品(用户越活跃,越倾向于浏览冷门物品)。

    • 协同过滤算法:仅基于用户行为数据设计的算法。
  • 方法有基于领域的方法(最广泛)、基于图的随机游走算法、隐语义算法。
  • 基于领域的方法可分为基于用户的协同过滤算法和基于物品的协同过滤算法

2.3 实验设计和算法评测
  以离线评测为例。topN推荐问题:预测用户会不会对某部电影评分,而不是预测用户在准备对某部电影评分的前提下,会给电影评多少分。

2.4 基于邻域的算法

1、基于用户的协同过滤算法

  基础算法步骤:(1)找到和目标用户兴趣相似的用户集合;

         (2)找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

  主要利用行为的相似度量用户的相似度。量化相似: Jaccard 相似度 / 余弦相似度 / 欧式距离。

  参考指标:

  • 准确率 / 召回率:参数K的选择比较重要;
  • 覆盖度:K越大,流行度越高,推荐物品就越热门,长尾物品推荐就少,覆盖率就低;
  • 流行度:K越大,参考的人就越多,结果就越趋近全局热门物品;

  UserCF缺点:计算量大;运算时间复杂度和空间复杂度的增长和用户数的增长近似于平方关系。

用户相似度计算的改进:两个用户对冷门物品采取过同样的行为更能说明他们兴趣的相似度,用物品热门度进行惩罚。实验证明,考虑物品的流行度对提升推荐结果的质量确实有帮助。

2、基于物品的协同过滤算法

  (1)基础算法:给用户推荐那些和他们之前喜欢的物品相似的物品。其中,相似度不是利用物品的内容属性计算物品之间的相似度,主要分析用户的行为记录计算物品之间的相似度。

  (2)用户活跃度对物品相似度的影响:活跃用户对物品相似度的贡献应该小于不活跃的用户.

  可以加惩罚项,但对于过度活跃用户,直接忽略他的兴趣列表。IUF的加入对准确率和召回率影响很小,但提高了覆盖率,降低了流行度,总体上改进了推荐算法。

  (3)物品相似度的归一化

  由于热门的类其类内物品相似度比较大,如果不进行归一化,就会推荐比较热门类中的热门物品,覆盖率就低。

  (3)UserCF 与 ItemCF 的综合比较
  UserCF的推荐结果着重于反映和用户兴趣相似的小群体的热点,而ItemCF的推荐结果着重于维系用户的历史兴趣。换句话说,UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣传承。

  UserCF适用于新闻:(a)个性化新闻推荐更加强调抓住新闻热点,热门程度和时效性是重点,而个性化相对次要些。(b)技术方面:新闻多且快,物品相关列表更新跟不上,而用户相对好些,对于冷启动问题,可以直接推荐热门新闻。

  ItemCF适用于图书、商务、电影网站:用户兴趣比较固定持久,个性化相对重要性,物品增长速度也不会很快,一天一更新就好。

2.5 隐语义模型

  基础算法(LFM):核心思想是通过隐藏特征(latent factor)联系用户兴趣和物品。对于一个用户,首先得到用户兴趣分类,再从分类中挑选他可能喜欢的物品。

  从数据出发,自动找到归类,采用基于用户行为统计的自动聚类。

损失函数:可用随机梯度下降法求解

  重要参数:隐特征个数 / 学习速率 / 正则化系数 / 负正样本比例。其中正负样本比例影响最大,控制了推荐算法发掘长尾的能力。

  LFM的关键之一:如何生成负样本(隐形反馈数据集,只有正样本,所以要生成负样本)。当数据集很稀疏时,性能会明显下降。原则如下:

  基于LFM的实际系统的例子。

   LFM模型有个实际应用问题,很难实现实时推荐。模型需要训练迭代且耗时,在新闻推荐关注中,冷启动问题非常明显,好的推荐算法需要在新闻短暂的生命周期内将其推送给对他感兴趣的用户。针对实时性这个问题,雅虎的解决方案:

  LFM和基于领域的方法的比较:

  • 理论基础:LFM是一种基于机器学习的方法,通过优化一个设定的目标建立最优模型;基于领域的方法是统计方法,没有学习过程;
  • 离线计算的空间复杂度:前者节省训练内存,后者需要维护一个离线相关表,数据量大时占用大量内存。LFM:O(MF + FN);UserCF: O(MM);ItemCF: O(NN)
  • 离线计算的时间复杂度:LFM: O(KFS);UserCF: O(M(K/M)^2);ItemCF: O(N(K/N)^2)
  • 在线实时推荐:LFM实现在线实时推荐难度较高

  • 推荐解释:ItemCF有较好的解释性,LFM较难解释

原文地址:https://www.cnblogs.com/eilearn/p/9846874.html

时间: 2024-11-06 07:20:30

推荐系统实践(项亮)— 第2章 利用用户行为数据的相关文章

推荐系统实践(项亮)— 第4章 利用用户标签数据

标签应用:一种是让作者或专家给物品打标签:另一种是让普通用户给物品打标签(UGC).当一个用户对一个物品打上标签,这个标签一方面描述了用户的兴趣,另一方面则表示了物品的语义,从而将用户和物品联系了起来.标签,是一种重要的特征表现方式. 4.1 UGC标签系统的代表应用 标签系统的最大优势:发挥群体智力,获得对物品内容信息比较准确的关键词描述,而准确的内容信息是提升个性化推荐系统性能的重要资源. Delicious / CiteLike / 豆瓣 / Hulu 4.2 标签系统中的推荐问题 主要问

第2章 利用用户行为数据

本笔记为自己学习之用,对笔记内容感兴趣的读者还请购买正版书籍<推进系统实践>,尊重作者著作权益! 2.1 用户行为数据简介 2.2 用户行为分析 2.2.1 用户活跃度和物品流行度的分布 Power Law,长尾分布 2.2.2 用户活跃度和物品流行度的关系 基于用户行为数据设计的推荐算法一般称为协同过滤算法,比如: 1.基于邻域的方法(neighborhood-based) 2.隐语义模型(latent factor model) 3.基于图的随机游走算法(random walk on gr

推荐系统之--- 利用用户行为数据

一.用户行为数据 一个用户行为表示为6部分,即产生行为的用户和行为的对象.行为的种类.产生行为的上下文.行为的内容和权重.用户行为的统一表示如下: user id 产生行为的用户的唯一标识item id 产生行为的对象的唯一标识behavior type 行为的种类(比如是购买还是浏览)context 产生行为的上下文,包括时间和地点等behavior weight 行为的权重(如果是观看视频的行为,那么这个权重可以是观看时长:如果是打分行为,这个权重可以是分数)behavior content

推荐系统-利用用户行为数据

用户的行为数据介绍: 用户的行为主要分为两种-显性反馈行为 和 隐性反馈行为 ,显性反馈行为主要包括 评分 和喜欢/不喜欢 ,youtube最早是使用是使用五分评价系统的,但是只有用户很不满意和特别满意的情况下才会评分,因此又把它变成了二级评分系统. 隐式反馈行为就是页面的浏览行为. 用户的行为分析: 用户的数据分布大都满足一种长尾分布,就是 每个单词出现的频率和他在热门排行榜的排名成反比.反映在网络行为上就是越是新用户越倾向于选择热门的产品越是老用户越是倾向于冷门产品 . 基于用户的行为的推荐

推荐系统读书笔记(二)利用用户行为数据

2.1 用户行为数据简介 显性反馈行为:用户明确表示对物品喜好的行为.评分.喜欢.不喜欢. 隐性反馈行为:不能明确反应用户喜好的行为.比如页面浏览.   显性反馈数据 隐性反馈数据 用户兴趣 明确 不明确 数量 较少 庞大 存储 数据库 分布式文件系统  实时读取 实时 有延迟 正负反馈 都有 只有正反馈 正反馈:用户的行为倾向于指用户喜欢的物品. 负反馈:用户的行为货币于用户不喜欢的物品. 用户行为的统一表示: user_id 产生行为的用户的唯一标识 item_id 产生行为的对象的唯一标识

题记 《推荐系统实践》读书笔记

<推荐系统实践>是一本入门级书籍,全书不到200页,通熟易懂,非常适合初学者.记不起上次阅读该书是什么时候,可以确定的是很定不超过三个月,今天回想梳理全书结构,甚是模糊,而是打算重读一遍.并在这里留下些许痕迹,以帮助日后回忆之用.对本笔记内容感兴趣的读者还请购买正版书籍,尊重作者权益! 作者介绍如下: 项亮,毕业于中国科学技术大学和中国科学院自动化所,研究方向为机器学习和推荐系统,现任职于北京Hulu软件技术开发有限公司,从事视频推荐的研究和开发.2009年参加Netflix Prize推荐系

推荐系统实践(项亮)— 第3章 推荐系统冷启动问题

3.1 冷启动问题简介 问题分类: 用户冷启动 物品冷启动 系统冷启动 常用解决方案: 利用热销榜进行推荐 利用用户注册时的年龄.性别等数据做粗粒度的个性化 利用用户社交数据为其推荐好友喜欢的物品 要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息并推荐相似产品 对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户 在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表 3.2 利用用户注册信息 基于用户注册信息的推荐算法其核心问题是

推荐系统实践整体化总结

这一阵子在找实习,总的情况来看,一点都不理想,做了总结,主要是由于我的理论不够扎实,实践又不多导致的,其实这两者是有一定的联系的,因为实践的不多,所以理论上的提升就非常的有限.最近比较喜欢推荐系统相关的内容,因此就找了项亮的<推荐系统实践>来看,心想现在终于可以理论和实践相结合了. 刚开始读这本书,就觉得写的非常的简单易懂,因此我是一口气读完整本书的,好久没有一次性读完200页的书了,在这期间当然我也敲了一些代码,因为我的python功底确实没有,所以看着伪代码就总是怀疑它的正确性,只有自己敲

推荐系统实践

推荐系统测评  实验方法 离线实验:准备训练数据测试数据并评估: 用户调查:问卷方式.和用户满意度调查 在线实验:AB测试:AB测试是一种很常用的在线评测算法的实验方法.它通过一定的规则将用户随机分成几组, 并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算 法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能. 测评指标: 用户满意度 预测准确度:预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力.这个指标是最重要的推荐系统离线评测指标 评分