用户的行为不是随机的,而是蕴含着很多模式。就好比如“啤酒与尿布”和“瑞雪兆丰年”两个数据挖掘的经典案例。用户行为数据中蕴涵着很多不是那么显而易见的规律,而个性化推荐算法的任务就是通过计算机去发现这 些规律,从而为产品的设计提供指导,提高用户体验。

        基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。顾名思义,协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。

摘自 《推荐系统实践》 项亮 著

什么是用户行为数据?

用户行为数据组建但的存在形式就是日志。比如,你在某个网站或者某个app的浏览页面点击了某个结果,服务器就会截获你的点击信息并且存储子在点击日志中。后台可以通过一个并行程序归并展示日志和点击日志。这些数据对个性化推荐系统都很重要,日志记录了用户各种行为,包括网页浏览,购买,评分,评论或者点赞什么的。这是一个很有用的数据集。

这里稍微解释一下提到的个性化推荐系统。基于用户行为一般可以分为两种,显性反馈行为和隐形反馈行为。

  • 显性反馈行为,用户明确表示对某物品的喜好的行为。YouTobe上的“喜欢/不喜欢”就是最典型的例子,微信的点赞也勉强算是显性行为。
  • 隐形反馈行为,同样的,就是用户没有明确表示对物品的喜好行为。购物页面浏览商品,比不代表整个页面的商品你都喜欢。

对用户行为分析

由上文我们知道,我们必须了解用户数据蕴含的模式,分析里面不怎么显而易见的规律,再利用用户行为数据设计推荐算法。

用户活跃度和物品流行度的分布情况

很多数据分布都满足一种PowerLaw的分布(长尾分布)

                                                                          

举个例子:如果将单词出现的频率按照由高到低排列,则每个单词出现的频率和它在热门排行榜中排名的常数次幂成反比。大家可以通过  https://github.com/PrimarySS/Word-Frequency-Statistics 词频统计的简单算法研究一下这个原理。

通过上面这个案例我们可以类比的把用户活跃度和物品流行度用长尾分布来分析。

                                                                        

                                                                        

令fu(k)为对k个物品产生过行为的用户数,令fi(k)为被k个用户产生过行为的物品数。那么,fu(k)和fi(k)都满足长尾分布。

用户活跃度和物品流行度的关系

总结来说基于用户行为数据的数据设计推荐算法一般为协同过滤算法,其中基于邻域方法,有以下两种:

  • 基于用户的协同过滤算法,推荐其他用户喜欢的而且与他兴趣相似的物品。
  1. 找到和目标用户兴趣相似的用户集合;
  2. 用户集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
  • 基于物品的协同过滤算法,推荐用户之前喜欢的物品相似的物品。
  1. 计算物品之间的相似度;
  2. 根据物品的相似度和用户的历史行为给用户生成推荐列表。

实验设计和算法测评

在之前的博文《初识推荐系统》中 https://blog.csdn.net/qq_38931949/article/details/84036269 详细的说到推荐系统各种实验的设计方法。以下只用离线实验方法评测算法,省略其他实验评测算法。

协同过滤算法的离线实验设计

为了保证评测指标并不是过拟合的结果,需要进行M次实验,并且每次都使用不同的测试集。然后将M次实验测出的评测指标的平均值作为最终的评测指标。

评测指标

  • 召回率,有多少比例的用户—物品评分记录包含在最终的推荐列表中;
  • 准确率,最终的推荐列表中有多少比例是发生过的用户—物品评分记录;
  • 覆盖率,最终的推荐列表中包含多大比例的物品;
  • 新颖度,推荐列表中物品的平均流行度,也就是推荐物品的热门度。

隐含语义分析

仅仅基于用户和仅仅基于物品的算法都存在着以下五个问题,而隐含语义就很好的解决了者五个问题。

  • 编辑的意见不能代表各种用户对物品分类的看法;
  • 编辑很难控制分类的粒度;
  • 编辑很难计算出物品属于每个类的权重,给一个物品多个分类;
  • 编辑很难基于用户的共同兴趣计算出多维度的分类;
  • 编辑很难通过统计用户行为决定物品在某一个分类中的权重。

推荐系统——利用用户行为数据相关推荐

  1. 机器学习-推荐系统-利用用户标签数据

    在之前的博文中介绍了三种方法给用户推荐物品. 1)UserCF:给用户推荐和他们兴趣爱好相似的其他用户喜欢的物品. 2) ItemCF:给用户推荐与他喜欢过的物品相似的物品. 3) LFM:通过一些特 ...

  2. [推荐系统]利用用户行为数据

    基于用户行为分析的推荐算法是个性化推荐系统的重要算法,一般将这种类型的算法称为协同过滤算法.协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而 ...

  3. 《推荐系统实践》样章:如何利用用户标签数据

    <推荐系统实践>样章:如何利用用户标签数据 推荐系统的目的是联系用户的兴趣和物品,这种联系需要依赖于不同的媒介.GroupLens在文章1中认为目前流行的推荐系统基本上通过三种方式来联系用 ...

  4. 推荐系统实践读书笔记-04利用用户标签数据

    推荐系统实践读书笔记-04利用用户标签数据 推荐系统的目的是联系用户的兴趣和物品,这种联系需要依赖不同的媒介.GroupLens在一篇文章中表示目前流行的推荐系统基本上通过3种方式联系用户兴趣和物品. ...

  5. 利用用户行为数据——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  6. 推荐系统实践读书笔记-02利用用户行为数据

    推荐系统实践读书笔记-02利用用户行为数据 为了让推荐结果符合用户口味,我们需要深入了解用户.如何才能了解一个人呢?<论语·公冶长>中说"听其言,观其行",也就是说可以 ...

  7. 推荐算法(3):利用用户标签数据

    推荐算法(1):协同过滤总结 推荐算法(2):基于内容的推荐 推荐算法(3):利用用户标签数据 推荐算法(4)利用上下文信息 推荐算法(5)利用社交网络数据 推荐算法(6) 实例 推荐算法(7)缺失的 ...

  8. 【读书笔记】推荐系统实践·第四章·利用用户标签数据

    代码方面,主要实现了4.3和4.2.2的一个验证统计,4.4的代码本来准备写一下的,后来因为杂碎的统计工作太多就放弃了.代码和笔记的word版放在https://github.com/littleli ...

  9. 《推荐系统实践》 第四章 利用用户标签数据 读书笔记

    推荐系统的目的是联系用户的兴趣和物品,这种联系需要依赖不同的媒介.GroupLens在一篇文章(文章名是"Tagsplanations : Explaining Recommendation ...

最新文章

  1. android将被代替的控件,Android 控件被忽略的属性
  2. 《游戏编程模式》读书笔记之一
  3. OpenCV-图像特征harris角点检测/SIFT函数/特征匹配-05
  4. julia在mac环境变量_在Julia中找到值/变量的类型
  5. php导出csv带图片,PHP导出CSV文件:刚测试过,这个导出CSV可以
  6. 顶级的CSS和Javascript动画框架
  7. 7-26 币值转换 (20 分)
  8. return,continue的示例
  9. 基础算法matlab
  10. python-视频爬取到本地
  11. informix操作
  12. SQL优化:Hive---distribute by 防止数据倾斜
  13. 实现手机app控制威联通QNAP的NAS设备中Aria2启动运行
  14. 店铺logo设计免费在线生成
  15. 小程序报错:[渲染层网络层错误] Failed to load local image resource /static/logo.png......
  16. redis学习——redis事务
  17. AVI 文件格式解析
  18. 7-172 元宵花灯
  19. 2018年北京理工大学计算机学院保研夏令营机试A组
  20. 字符串压缩、解压算法

热门文章

  1. 软件测试实用技术与常用模板:前言
  2. android开花动画,放下手机,听花开的声音 -- 花儿 の Time #Android #iPhone
  3. Linux: 磁盘与文件系统管理
  4. 搜索引擎优化——通向成功的十步
  5. html2canvas边框无法渲染,html2canvas无法正常渲染特定的数据URI
  6. Cisco服务器怎么安装系统,Cisco MCS服务器上Microsoft操作系统补丁安装发生故障
  7. json解析_json解析
  8. Struts框架之处理流程和类型转换器
  9. bzoj1069: [SCOI2007]最大土地面积 凸包+旋转卡壳求最大四边形面积
  10. 【小程序源码】星座运势,周公解梦下载