推荐系统实践

推荐系统测评

 实验方法

  • 离线实验:准备训练数据测试数据并评估;
  • 用户调查:问卷方式、和用户满意度调查
  • 在线实验:AB测试:AB测试是一种很常用的在线评测算法的实验方法。它通过一定的规则将用户随机分成几组,
  • 并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算
  • 法,比如可以统计不同组用户的点击率,通过点击率比较不同算法的性能。

测评指标:

  • 用户满意度
  • 预测准确度:预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。这个指标是最重要的推荐系统离线评测指标
  • 评分预测: 均方根误差 RMSE  平均绝对误差MAE
  • TopN推荐:网站在提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做TopN推荐。TopN推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。
  • 覆盖率:覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力。覆盖率有不同的定义方法,最简单的定义为推荐系统能够推荐出来的物品占总物品集合的比例。
  • 信息熵度量:这里p(i)是物品i的流行度除以所有物品流行度之和。
  • 基尼系数度量: ij是按照物品流行度p()从小到大排序的物品列表中第j个物品
  • 多样性:,推荐列表需要能够覆盖用户不同的兴趣领域,即推荐结果需要具有多样性。
  • 新颖性:新颖的推荐是指给用户推荐那些他们以前没有听说过的物品。
  • 惊喜度:,如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高
  • 信任度:让用户对推荐结果产生信任是非常重要的。同样的推荐结果,以让用户信任的方式推荐给用户就更能让用户产生购买欲,而以类似广告形式的方法推荐给用户就可能很难让用户产生购买的意愿。
  • 实时性
  • 健壮性:而健壮性(即robust,鲁棒性)指标衡量了一个推荐系统抗击作弊的能力。
  • 商业目标:,网站评测推荐系统更加注重网站的商业目标是否达成,而商业目标和网站的盈利模式是息息相关的。

测评维度:

  • 用户维度  主要包括用户的人口统计学信息、活跃度以及是不是新用户等。
  • 物品维度  包括物品的属性信息、流行度、平均分以及是不是新加入的物品等。
  • 时间维度  包括季节,是工作日还是周末,是白天还是晚上等。

用户行为数据

  • 用户显性反馈数据:显性反馈行为包括用户明确表示对物品喜好的行为。主要方式就是评分和喜欢/不喜欢。
  • 用户隐性反馈数据:隐性反馈行为指的是那些不能明确反应用户喜好的行为。最具代表性的隐性反馈行为就是页面浏览行为。

用户活跃度和物品流行度:长尾分布

一般来说,不活跃的用户要么是新用户,要么是只来过网站一两次的老用户。那么,不同活跃度的用户喜欢的物品的流行度是否有差别?一般认为,新用户倾向于浏览热门的物品,因为他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。

 

用户行为数据设计的推荐算法

  • 基于邻域的方法(neighborhood-based)
  • 隐语义模型(latent factor model)
  • 基于图的随机游走算法(random walk on graph)

其中最主要的方法为基于邻域的算法:

  • 基于用户的协同过滤算法  这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品。
  • 基于物品的协同过滤算法  这种算法给用户推荐和他之前喜欢的物品相似的物品。

基于用户的协同过滤算法:

  • (1) 找到和目标用户兴趣相似的用户集合。(相似性计算,基于距离)
  • (2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户

改进 1:

如果对用户两两计算相似度,复杂度过高O(n*n) ,因此可以首先计算item-user的倒排表,然后计算用户相似度,这样可以过滤掉共同物品为0的用户

改进 2:

考虑物品本身的流行度,

 

基于物品的协同过滤算法

  • (1) 计算物品之间的相似度。
  • (2) 根据物品的相似度和用户的历史行为给用户生成推荐列表。
  • 共现的概率

改进 1 :user-item倒排表

改进 2 用户活跃度的影响

隐语义模型

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

隐含语义分析技术从诞生到今天产生了很多著名的模型和方法,其中和该技术相关且耳熟能详的名词有pLSA、LDA、隐含类别模型(latent class model)、隐含主题模型(latent topic model)、矩阵分解(matrix  factorization)。这些技术和方法在本质上是相通的,其中很多方法都可以用于个性化推荐系统。

隐性反馈数据中,没有负样本 只有正样本;在隐性反馈数据集上应用LFM解决TopN推荐的第一个关键问题就是如何给每个用户生成负样本。

  • 对于一个用户,用他所有没有过行为的物品作为负样本。
  • 对于一个用户,从他没有过行为的物品中均匀采样出一些物品作为负样本。
  • 对于一个用户,从他没有过行为的物品中采样出一些物品作为负样本,但采样时,保证每个用户的正负样本数目相当。
  • 对于一个用户,从他没有过行为的物品中采样出一些物品作为负样本,但采样时,偏重采样不热门的物品。

对于第一种方法,它的明显缺点是负样本太多,正负样本数目相差悬殊,因而计算复杂度很高,最终结果的精度也很差。对于另外3种方法,Rong  Pan在文章中表示第三种好于第二种,而第二种好于第四种。

  • 对每个用户,要保证正负样本的平衡(数目相似)。
  • 对每个用户采样负样本时,要选取那些很热门,而用户却没有行为的物品。

LFM和基于邻域的方法的比较

  • 理论基础  LFM具有比较好的理论基础,它是一种学习方法,通过优化一个设定的指标建立最优的模型。基于邻域的方法更多的是一种基于统计的方法,并没有学习过程。
  • 离线计算的空间复杂度 :LFM大量节省了训练过程中的内存
  • 离线计算的时间复杂度:在一般情况下,LFM的时间复杂度要稍微高于UserCF和ItemCF,这主要是因为该算法需要多次迭代。但总体上,这两种算法在时间复杂度上没有质的差别。
  • 在线实时推荐:  UserCF和ItemCF在线服务算法需要将相关表缓存在内存中,然后可以在线进行实时的预测。
  • 推荐解释:  ItemCF算法支持很好的推荐解释,它可以利用用户的历史行为解释推荐结果。但LFM无法提供这样的解释,它计算出的隐类虽然在语义上确实代表了一类兴趣和物品,却很难用自然语言描述并生成解释展现给用户。

推荐系统冷启动问题

  • 用户冷启动
  • 物品冷启动
  • 系统冷启动

利用用户注册信息

  • 人口统计学信息  包括用户的年龄、性别、职业、民族、学历和居住地。
  • 用户兴趣的描述  有一些网站会让用户用文字描述他们的兴趣。
  • 从其他网站导入的用户站外行为数据  比如用户通过豆瓣、新浪微博的账号登录,就可以在得到用户同意的情况下获取用户在豆瓣或者新浪微博的一些行为数据和社交网络数据。

选择合适的物品启动用户的兴趣

一般来说,能够用来启动用户兴趣的物品需要具有以下特点

  • 比较热门
  • 具有代表性和区分性
  • 启动物品集合需要有多样性

利用物品的内容信息

发挥专家的作用

利用用户标签数据

用户用标签来描述对物品的看法,因此标签是联系用户和物品的纽带,也是反应用户兴趣的重要数据源,如何利用用户的标签数据提高个性化推荐结果的质量是推荐系统研究的重要课题

数据稀疏性

对于新的物品或者用户,标签数量非常少,此时需要对标签进行扩展 ---基于标签的相似性

标签清理:除去词频很高的停止词、同义词  等;类比自然语言处理

## 利用上下文信息

时间上下文信息

  • 用户兴趣是变化的
  • 物品也是有生命周期的
  • 季节效应

系统时间特性的分析:

  • 数据集每天独立用户数的增长情况
  • 系统的物品变化情况 :网站新闻增长情况,商品增长情况等
  • 用户访问情况: 用户的平均活跃天数

时间上下文推荐算法:

  • 最近热门推荐
  • 时间上下文itemCF算法: 最常用的是基于物品的个性化推荐系统
    • 物品相似度
    • 在线推荐 : 用户近期行为更关键
  • 时间上下文相关的userCF算法
    • 用户兴趣相似度
    • 相似兴趣用户最近行为
  • 地点上下文

原文地址:https://www.cnblogs.com/infaraway/p/8998795.html

时间: 2024-11-10 11:34:20

推荐系统实践的相关文章

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

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

推荐系统实践小结 转

之前对于推荐,一直都仅限于理论书籍,浅一点像<集体智慧编程><推荐系统实践>,复杂的像<数据挖掘><机器学习>,当然也没看太深入.当时对推荐系统的看法是,这是一个以算法为核心的系统,一切价值体现都在算法模型上了.不过这段时间有幸参与到真实系统,稍有改观.下最近的一些想法吧,当然作为一个系统开发人员,理论算法方面的理解可能有点偏颇. 1.业务永远是第一位----------我们的本质是销售. 话说做推荐,和做营销的本质区别是什么? 还要说下销售和市场的区别,我

推荐系统实践整体化总结

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

项亮《推荐系统实践》读书笔记1-推荐系统评价指标

推荐系统评价指标 1.评分预测 预测准确度: 均方根误差(RMSE): 平均绝对误差(MAE): 关于这两个指标的优缺点,Netflix认为RMSE加大了对预测不准的用户物品评分的惩罚(平方项的惩罚),因为对系统的评测更加苛刻.研究表明,如果评分系统是基于整数建立的(即用户给的评分都是整数),那么对预测结果取整会降低MAE的误差. 2.Top N推荐:给用户一个个性化的推荐列表,预测准确率一般通过准确率和召回率度量. 令 R(u)是根据用户在训练集上的行为给用户作出的推荐列表,而T(u)是用户在

项亮《推荐系统实践》读书笔记2-推荐系统冷启动问题

推荐系统冷启动问题 如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题. 冷启动问题主要分为三类: (1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使用网站的时候,系统并没有他的行为数据: (2) 物品冷启动:解决如何将新的物品推荐给可能对它感兴趣的用户: (3) 系统冷启动:如何在新开发网站设计个性化推荐系统,此时网站上用户很少,用户行为也少,只有一些商品的信息. 冷启动的主要解决方案: (1) 提供非个性化推荐:如热门排行

推荐系统架构(摘自《推荐系统实践》)

摘要: 1.外围架构 2.推荐系统架构 内容: 1.外围架构: 网站的推荐系统是如何和其他其他系统结合的? 2.推荐系统架构图: 其中每一个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定的权重或者优先级合并,排序然后返回. 好处: 1.可以方便的插拔推荐引擎插件,控制不同引擎对推荐结果的影响. 2.每一种推荐引擎代表一种推荐策略,不同的用户可能喜欢不同的推荐策略,通过分析用户对不同推荐结果的反馈了解用户比较喜欢那些推荐引擎出来的结果,从而对不同用户给出不同的引擎组合

推荐系统实践第四章: 利用用户标签

基本上可以通过3种方式联系用户兴趣和物品: 用户喜欢过的物品(item-cf) 用户的好友或者有相似兴趣的好友喜欢过的物品(user-cf) 用户具有哪些feature, 哪些物品保护 之前用了user-cf,item-cf, 现在考虑使用标签进行推荐. 标签是一种无层次化结构的.用来描述信息的关键词. 给物品打标签: 专家.作者 用户 标签系统中存在的问题: 如何基于标签推荐 如何给用户推荐标签 基于标签的推荐系统示例: 利用Delicious数据集:(待链接)      格式:userID 

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

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

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

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