摘自推荐系统相关书籍

用户行为分析

很多关于互联网数据的研究发现,互联网上的很多数据分布都满足一种称为Power Law的分 布,这个分布在互联网领域也称长尾分布。

为了说明用户行为的长尾分布,我们选择Delicious和CiteULike数据集一个月的原始数据进行 分析。这里,我们没有用Netflix或者MovieLens数据集是因为这两个数据集都经过了人为的清理, 被清除了很多稀疏的数据,所以它们的分布不能反映网站的真实分布。图2-3展示了Delicious和 CiteULike数据集中物品流行度的分布曲线。横坐标是物品的流行度K,纵坐标是流行度为K的物 品的总数。这里,物品的流行度指对物品产生过行为的用户总数

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

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

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

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

基于用户的协同过滤算法

基于用户的协同过滤算法是推荐系统中最古老的算法。可以不夸张地说,这个算法的诞生标 志了推荐系统的诞生。该算法在1992年被提出,并应用于邮件过滤系统,1994年被GroupLens用 于新闻过滤。在此之后直到2000年,该算法都是推荐系统领域最著名的算法。

基于用户的协同过滤算法主要包括两个步骤。

(1) 找到和目标用户兴趣相似的用户集合。 (2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。 步骤(1)的关键就是计算两个用户的兴趣相似度。这里,协同过滤算法主要利用行为的相似度 计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v) 为用户v曾经有过正反馈的物品集合。那么,我们可以通过如下的Jaccard公式简单地计算u和v的 兴趣相似度:

或者通过余弦相似度计算:
下面以图2-6中的用户行为记录为例,举例说明UserCF计算用户兴趣相似度的例子。在该 例中,用户A对物品{a, b, d}有过行为,用户B对物品{a, c}有过行为,利用余弦相似度公式计算用 户A和用户B的兴趣相似度为:
同理,我们可以计算出用户A和用户C、D的相似度:
首先,需要建立物品—用户的倒排表(如图 2-7所示)。然后,建立一个4×4的用户相似度矩阵W,对于物品a,将W[A][B]和W[B][A]加1,对 于物品b,将W[A][C]和W[C][A]加1,以此类推。扫描完所有物品后,我们可以得到最终的W矩阵。
这里的W是余弦相似度中的分子部分,然后将W除以分母可以得到最终的用户兴趣相似度
得到用户之间的兴趣相似度后,UserCF算法会给用户推荐和他兴趣最相似的K个用户喜欢的 物品。如下的公式度量了UserCF算法中用户u对物品i的感兴趣程度:
基于物品的协同过滤算法
基于物品的协同过滤(item-based collaborative filtering)算法是目前业界应用最多的算法。
无论是亚马逊网,还是Netflix、Hulu、YouTube,其推荐算法的基础都是该算法。
基于物品的协同过滤算法(简称ItemCF)给用户推荐那些和他们之前喜欢的物品相似的物品。 比如,该算法会因为你购买过《数据挖掘导论》而给你推荐《机器学习》。不过,ItemCF算法并 不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的 相似度。该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品 B。
基于物品的协同过滤算法主要分为两步。
(1) 计算物品之间的相似度。
(2) 根据物品的相似度和用户的历史行为给用户生成推荐列表。
用下面的公式定义物品的相似度
这里,分母|N(i)|是喜欢物品i的用户数,而分子是同时喜欢物品i和物品j的用户 数。因此,上述公式可以理解为喜欢物品i的用户中有多少比例的用户也喜欢物品j。 上述公式虽然看起来很有道理,但是却存在一个问题。如果物品j很热门,很多人都喜欢, 那么Wij就会很大,接近1。因此,该公式会造成任何物品都会和热门的物品有很大的相似度,这 对于致力于挖掘长尾信息的推荐系统来说显然不是一个好的特性。为了避免推荐出热门的物品, 可以用下面的公式
从上面的定义可以看到,在协同过滤中两个物品产生相似度是因为它们共同被很多用户喜 欢,也就是说每个用户都可以通过他们的历史兴趣列表给物品“贡献”相似度。这里面蕴涵着一 个假设,就是每个用户的兴趣都局限在某几个方面,因此如果两个物品属于一个用户的兴趣列表, 那么这两个物品可能就属于有限的几个领域,而如果两个物品属于很多用户的兴趣列表,那么它 们就可能属于同一个领域,因而有很大的相似度。 和UserCF算法类似,用ItemCF算法计算物品相似度时也可以首先建立用户—物品倒排表(即 对每个用户建立一个包含他喜欢的物品的列表),然后对于每个用户,将他物品列表中的物品两 两在共现矩阵C中加1。
一个基于物品推荐的简单例子。该例子中,用户喜欢《C++ Primer中文版》和《编 程之美》两本书。然后ItemCF会为这两本书分别找出和它们最相似的3本书,然后根据公式的定 义计算用户对每本书的感兴趣程度。比如,ItemCF给用户推荐《算法导论》,是因为这本书和《C++  Primer中文版》相似,相似度为0.4,而且这本书也和《编程之美》相似,相似度是0.5。考虑到 用户对《C++ Primer中文版》的兴趣度是1.3,对《编程之美》的兴趣度是0.9,那么用户对《算 法导论》的兴趣度就是1.3 × 0.4 + 0.9×0.5 = 0.97。

推荐系统用户行为分析相关推荐

  1. 推荐系统--用户行为和实验设计

    主要介绍推荐系统用户行为数据.实验设计,是接下来算法实验的基础. 用户行为 用户行为数据 用户行为分为 显性 和 隐性 两种. 显性反馈行为(explicit feedback) 用户评分.喜欢/不喜 ...

  2. 小红书用户画像分析_用户画像,该怎么分析?

    有同学问:陈老师,我领导让我做用户画像分析,可是我做了一大堆数据,却被批:也没分析什么东西啊?该咋办?今天系统解答一下. 用户画像分析的错误姿势1.限于数据,动不敢动.一提用户画像,很多人脑海里立刻蹦 ...

  3. 基于多模型融合的用户画像分析统计方法研究

    摘  要 随着信息技术的快速发展和大数据技术的广泛应用,企业的营销和产品的设计,对精细化.精准化的要求越来越高.主流的电商平台.搜索引擎以及短视频平台均推出了基于用户画像的个性化推荐服务,这其中相当一 ...

  4. 案例三:淘宝用户行为分析

    一.项目背景 本项目基于淘宝app平台数据,通过相关指标对行为进行分析,探索消费者相关行为模式 分析方法: 用户行为分析:日pv和日uv分析,时pv和时uv分析,不同行为类型用户的pv分析用户消费行为 ...

  5. 【入门数据分析】淘宝用户行为分析

    前言 分析目的:本文基于淘宝1年的交易数据对其用户行为进行多角度分析,对相关问题进行解释并提供建议. 分析工具:MySQL.excel 主要模型:AARRR模型 一.分析问题和思路 本文采用淘宝电商的 ...

  6. 电子商务网站用户行为分析及服务推荐

    一.背景介绍 1.问题描述    本文主要研究对象是某家法律网站,这是家电子商务类大型法律资讯网站,致力为用户提供丰富的法律信息与专业咨询服务,也为律师与律所提供有效的互联网整合营销解决方案,访问量剧 ...

  7. 数据分析与挖掘实战-电子商务网站用户行为分析及服务推荐

    电子商务网站用户行为分析及服务推荐 背景 随着互联网和信息技术的迅速发展,电子商务.网上服务与交易等网络业务越来越普及,大量的信息聚集起来,形成了"海量"信息.用户想要从海量信息中 ...

  8. 如何构建用户行为分析系统?

    2016年12月6号我参加了研究生论文的开题报告,研究方向为基于用户行为的协同过滤推荐算法,因此一直在跟进用户行为相关资料的学习. 经朋友推荐,在极客学院上找到所需资料,我整理后分享给大家,希望大家拍 ...

  9. 基于机器学习技术的用户行为分析:当前模型和应用研究综述(A survey for user behavior analysis based on machine learning technique)

    A survey for user behavior analysis based on machine learning techniques: current models and applica ...

最新文章

  1. 编译器对私有字段初始化的优化
  2. 选择结构_单if语句
  3. Linux/Unix/Mac 系统GIT密码存储
  4. 顶级程序员的心得–Coders at Work
  5. 上学帮:阿里云助力教育资讯平台防爬虫
  6. java 海量文件存储_【直通BAT】海量数据面试总结
  7. linux 列表看多个文件数量,查看linux默认能最多开启多少个文件数量
  8. jax-ws开发的webservice集成到web项目中
  9. Python实现温度转换
  10. Ubuntu 查看 Cuda 及 版本
  11. kubernetes视频教程笔记 (17)-Job和CronJob
  12. wifi小程序源码流量主源码
  13. 银行系统开发 经验谈
  14. HTML table样式
  15. 意法半导体终于拥抱Cortex-A架构发布STM32MP1 MPU
  16. 用人篇-曾国藩家书整理
  17. vrchat新手教程_VRChat简易教程2-创建一个最基本的世界(world)
  18. Docker安装openjdk-11,并查看对应的版本
  19. 政务数据共享开放的意义?
  20. win10照片打印闪退

热门文章

  1. 现货黄金短线下破1760美元/盎司
  2. 数据:DeFi总锁仓量突破230亿美元
  3. SAP License:SAP 各个模块含义
  4. Axure移动端app抽奖转盘+电商圆盘抽奖+商品抽奖+年会抽奖+抽奖动态+Axure通用抽奖转盘组件原型+九宫格方形随机抽奖原型组件+运营活动抽奖转盘
  5. 配置环境变量OpenJDK和OracleJDK区别
  6. Javascript鼠标键盘事件
  7. java知识总结-25
  8. last-child 选取不到指定元素,失去效果
  9. 模板模式与策略模式/template模式与strategy模式/行为型模式
  10. Linux学习之chage命令