专栏首页进击的程序猿推荐系统之用户行为分析

推荐系统之用户行为分析

最近读了项亮博士的《推荐系统实践》,在此对用户行为分析这章做一个总结。

用户行为介绍

基于用户行为的推荐,在学术界名为协同过滤算法。 协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使 自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。

用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈 行为(implicit feedback)。

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

反馈除了分为显性和隐性外,还能分为正反馈、负反馈,举例子如下:

互联网中的用户行为有很多种,比如浏览网页、购买商品、评论、评分等。要用一个统一的 方式表示所有这些行为是比较困难的,下面是一个表示的可能:

用户行为分析

先定义两个变量: 用户活跃度:用户产生过行为的物品总数 物品流行度:对物品产生过行为的用户总数

而用户活跃度和物品流行度的人数都符合Power Law,也称为长尾分布:

用户活跃度和物品流行度的关系是:用户越活跃,越倾向于浏览冷门的物品。

仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。 学术界对协同过滤算法 进行了深入研究,提出了很多方法,比如基于邻域的方法( neighborhood-based )、隐语义模型 ( latent factor model)、基于图的随机游走算法(random walk on graph)等。

基于邻域的算法

基于领域的方法中,主要包括两大类:

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

基于用户的协同过滤算法

基于用户的协同过滤算法主要包括两个步骤: (1) 找到和目标用户兴趣相似的用户集合。 (2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

在第一步上计算相似度上,具体算法大概有几种:欧几里得距离,皮尔逊相关系数,Cosine 相似度,Tanimoto 系数。不同相似度衡量方法对于结果会有不同的影响。

基于物品的协同过滤算法

基于item的协同过滤,通过用户对不同item的评分来评测 item 之间的相似性,基于item 之间的相似性做出推荐,简单来讲就是:给用户推荐和他之前喜欢的物品相似的物品。

UserCF和ItemCF的综合比较

对于电子商务,用户数量一般大大超过商品数量,此时Item CF的计算复杂度较低。 在非社交网络的网站中,内容内在的联系是很重要的推荐原则,它比基于相似用户的推荐原则更加有效。比如在购书网站上,当你看一本书的时候,推荐引擎 会给你推荐相关的书籍,这个推荐的重要性进进超过了网站首页对该用户的综合推荐。可以看到,在这种情况下,Item CF 的推荐成为了引导用户浏觅的重要手段。基于物品的协同 过滤算法,是目前电子商务采用最广泛的推荐算法。 在社交网络站点中,User CF 是一个更丌错的选择,User CF 加上社会网络信息,可 以增加用户对推荐解释的信服程度。

隐语义模型(LFM)

隐语义模型最早在文本挖掘领域被提出,用于找到文本的隐含语义。相关的 名词有LSI、pLSA、LDA和Topic Model。

LFM源于对SVD(奇异值分解)方法的改进,传统SVD是线性代数典型问题,但由于计算量太大,实际上只是适用于规模很小的系统,Simon Funk改迚SVD(Funk-SVD),后来被称为Latent Factor Model。

LFM假设了一个隐含的变量,用户兴趣,看下面的矩阵分解:

R 矩阵是 user-item 矩阵,矩阵值 Rij 表示的是 user i 对 item j 的兴趣度,对于其中缺失的值,我们可以先给一个平均值。 LFM 算法从数据集中抽取出若隐变量,作为 user 和 item 之间连接的桥梁,将 R 矩阵表示为 P 矩阵和 Q 矩阵相乘。其中 P 矩阵是 user-topic 矩阵,矩阵值 Pij 表示的是 user i 对 topic j 的兴趣度;Q 矩阵式 topic-item 矩阵,矩阵值 Qij 表示的是 item j 在 topic i 中的权重。

上面这个过程就是一个svd的过程,但是当矩阵太大的时候,svd分解会太慢,于是就有了下面的方法:

将矩阵分解转换为一个机器学习问题,我们通过梯度下降的方法去预估Rij,先求导:

后更新:

上面的算法的超参数有:

  • 隐特征的个数F;
  • 学习速率alpha;
  • 正则化参数lambda;

还有一个没讲到的是,对于Rij,我们现在只有正样本,即user-item中有的我们算Rij=1,我们要去获取负样本,Rij=0的值,负样在选择上秉持的原则是:

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

此处选择采用热门商品的原因是:对于冷门的物 品,用户可能是压根没在网站中发现这个物品,所以谈不上是否感兴趣。

总结

本文首先介绍了用户行为的基本概念,介绍了显性反馈行为和隐性反馈行为,以及正反馈和负反馈,接着介绍了两大类推荐算法:基于领域的算法和隐语义模型,下面一篇会通过Surprise库来用今天介绍的算法来解决一些实际问题。

参考

使用 LFM(Latent factor model)隐语义模型进行 Top-N 推荐 推荐系统实践

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.jianshu.com/u/b7f94092fc21复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 推荐系统之用户行为分析

    用户行为介绍 基于用户行为的推荐,在学术界名为协同过滤算法。 协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使 自己的推荐列表能够不断过滤掉自己不感...

    Spark学习技巧
  • 用户行为分析之数据采集

    用户行为分析主要关心的指标可以概括如下:哪个用户在什么时候做了什么操作在哪里做了什么操作,为什么要做这些操作,通过什么方式,用了多长时间等问题,总结出来就是WH...

    数据社
  • 基于Spark的用户行为分析系统

      本项目主要用于互联网电商企业中使用Spark技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为、购物行为、广告点击行为等)进行复杂的分析。用统...

    挽风
  • 用户行为序列推荐模型

    导读:今天我们谈谈用户行为序列上的推荐模型。首先我们对序列推荐问题做一个定义和描述,然后主要讲述可以用在序列推荐任务中的 NN 模型,最后给出一点个人看法以及文...

    石晓文
  • 【数据分析】大数据之 “用户行为分析”

    这几年,几家电商的价格战打得不亦乐乎,继去年的 “双 11 大促” 和 “6·18 狂欢节” 之后,电商之间以价格为主要诉求的大规模促销层出不穷,几乎要把所有能...

    陆勤_数据人网
  • 深入理解推荐系统:超长用户行为序列建模

    作为【推荐系统】系列文章的第七篇,将以CIKM2020中的一篇论文“Search-based User Interest Modeling with Lifel...

    Coggle数据科学
  • 浅谈用户行为分析

    关于用户行为分析,很多互联网公司都有相关的需求,虽然业务不同,但是关于用户行为分析的方法和技术实现都是基本相同的。在此分享一下自己的一些心得。

    数据社
  • 用户行为分析(Python)

    电商、互联网、金融这三驾马车是对数据分析应用最为广泛的行业,同时也占据了就业市场上绝大多数的数据分析岗位,只因日常业务产生的海量数据蕴含着无尽的价值。 本次就通...

    用户8949263
  • CSDN用户行为分析和用户行为数据爬取

    爬虫随机从CSDN博客取得800条用户行为数据,包含用户名、原创博客数、评论数、浏览量,试着从博客数,评论数,浏览量三个方面分析csdn的博主们的形象。

    逝兮诚
  • 用户画像行为分析流程

    简而言之,用户画像是根据用户社会属性、生活习惯和消费行为等信息而抽象出的一个标签化的用户模型。构建用户画像的核心工作即是给用户贴“标签”,而标签是通过对用户信息...

    学到老
  • 用户画像行为分析流程

    什么是用户画像? 简而言之,用户画像是根据用户社会属性、生活习惯和消费行为等信息而抽象出的一个标签化的用户模型。构建用户画像的核心工作即是给用户贴“标签”,...

    学到老
  • 淘宝APP用户行为分析

    多年以来电子商务业务快速发展,尤其是移动客户端发展迅猛,移动互联网时代的到来让原本就方便快捷的网上购物变得更加便利,而淘宝作为国内最大的电商交易平台更是具有巨大...

    猴子聊数据分析
  • 淘宝APP用户行为分析

    多年以来电子商务业务快速发展,尤其是移动客户端发展迅猛,移动互联网时代的到来让原本就方便快捷的网上购物变得更加便利,而淘宝作为国内最大的电商交易平台更是具有巨大...

    猴子聊数据分析
  • 淘宝APP用户行为分析

    多年以来电子商务业务快速发展,尤其是移动客户端发展迅猛,移动互联网时代的到来让原本就方便快捷的网上购物变得更加便利,而淘宝作为国内最大的电商交易平台更是具有巨大...

    猴子聊数据分析
  • 项目实践|基于Flink的用户行为日志分析系统

    用户行为日志分析是实时数据处理很常见的一个应用场景,比如常见的PV、UV统计。本文将基于Flink从0到1构建一个用户行为日志分析系统,包括架构设计与代码实现。...

    Spark学习技巧
  • 用户行为数据采集系统

    本文将重点探讨数据采集层中的用户行为数据采集系统。这里的用户行为,指的是用户与产品UI的交互行为,主要表现在Android App、IOS App与Web页面上...

    王知无-import_bigdata
  • 案例 | 电子商务网站用户行为分析与服务推荐

    今天分享的案例来自CDA数据分析师就业班第三期远程组学员的毕业答辩,学员代表钱小菲分享了他们的数据报告。 他们以网站运营优化为案例,内容涉及: 对给出的数据进行...

    CDA数据分析师
  • 实战|淘宝用户行为分析案例

    本数据报告以淘宝app平台为数据集,通过行业的指标对淘宝用户行为进行分析,从而探索淘宝用户的行为模式,具体指标包括:日PV和日UV分析,付费率分析,复购行为分析...

    1480
  • 淘宝用户行为数据分析

    本数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。

    开心鸭

扫码关注腾讯云开发者

领取腾讯云代金券