推荐系统之用户行为分析

标签: dev | 发表时间:2017-12-14 08:00 | 作者:
出处:http://itindex.net/relian

推荐系统之用户行为分析

推荐系统


用户行为介绍

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

用户行为在个性化推荐系统中一般分两种——显性反馈行为(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 推荐
推荐系统实践

相关 [推荐系统 用户 行为] 推荐:

推荐系统之用户行为分析

- - IT瘾-dev
基于用户行为的推荐,在学术界名为协同过滤算法. 协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使 自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求. 用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈 行为(implicit feedback).

【推荐系统】协同过滤之基于用户的最近邻推荐

- - CSDN博客互联网推荐文章
协同过滤(collaborative filtering)的核心思想:利用其他用户的行为来预测当前用户. 协同过滤算法是推荐系统中最基本的,同时在业界广为使用. 根据使用的方法不同,可以分为基于用户(user-based)、基于物品(item-based)的最近邻推荐. 基于用户的最近邻推荐的主要思想与 kNN有点相似:对于一个给定的评分集,找出与当前用户u口味相近的k个用户;然后,对于用户u没有见过的物品p,利用k个近邻对p进行预测评分.

腾讯:仅24%用户认为个性化推荐系统“靠谱”

- - 199IT互联网数据中心
盘点科技圈里的时髦词汇,必然少不了一个词:个性化推荐. 借助个性化推荐技术,互联网产品获取或积累用户的兴趣喜好数据后,可以直接为用户提供每个人感兴趣的内容,以此提升产品的内容吸引力. 想要在产品里添加个性化推荐功能已经不是一件难事,事情的难点在于推荐的内容是否准确. 为了解目前用户对该类功能的反馈,企鹅智酷推出了一项调查,以下就是调查结果:.

可解释推荐系统:身怀绝技,一招击中用户心理

- - 微软亚洲研究院
​编者按:推荐系统被广泛应用在电商网站、社交网络、生活服务网站、搜索引擎等平台. 一个好的推荐系统不仅需要准确地把握用户的需求,推荐给用户想要的内容,更需要学会与用户沟通,了解用户心理,以用户容易接受的方式给出适当的推荐. 本文中,微软亚洲研究院的研究员王希廷和谢幸将为大家详解可解释推荐系统的分类、推荐解释生成方法以及面临的机遇和挑战.

<转>推荐系统原理介绍-用户画像简介 - CSDN博客

- -
最近在做推荐系统,在项目组内做了一个分享. 今天有些时间,就将逻辑梳理一遍,将ppt内容用文字沉淀下来,便于接下来对推荐系统的进一步研究. 推荐系统确实是极度复杂,要走的路还很长. 为什么需要推荐系统——信息过载. 随着互联网行业的井喷式发展,获取信息的方式越来越多,人们从主动获取信息逐渐变成了被动接受信息,信息量也在以几何倍数式爆发增长.

Min-Hash和推荐系统

- - xlvector - Recommender System
前几年看Google News Recommendation的那篇Paper,对里面提到的MinHash的算法基本没有注意,因为之前的习惯都是只注意论文的模型那块,至于怎么优化模型一般都只是扫一眼. 不过最近看了大量的Google Paper,发现Google在实现一个算法方面确实有很多独到之处. 其实,Min-Hash是LSH(Locality Sensitive Hash)的一种,我之前对LSH的了解仅仅限于知道它能把两个相似的东西Hash成两个汉明距离接近的2进制数.

推荐系统实战

- - 博客园_首页
推荐算法:基于特征的推荐算法. 推荐算法准确度度量公式:. 其中,R(u)表示对用户推荐的N个物品,T(u)表示用户u在测试集上喜欢的物品集合. 集合相似度度量公式(N维向量的距离度量公式):. 其中,N(u)表示用户u有过正反馈的物品集合. 其中,S(u,k)表示和用户u兴趣最接近的K个用户集合;N(i)表示对物品i有过正反馈的用户集合;w(u,v)表示用户u和用户v的兴趣相似度;r(v,i)表示用户v对物品i的兴趣.

推荐系统杂谈

- - 后端技术杂谈 | 飒然Hang
推荐系统是近些年非常火的技术,不管是电商类软件还是新闻类app,都号称有精准的推荐系统能给你推送你最感兴趣的内容. 现象级的资讯类app“今日头条”就得益于此成为了势头非常猛的一款产品. 本文就针对推荐系统讲述一些相关概念和实践经验. 首先需要明确的就是推荐系统的目标,一般来说不外乎以下几个:. 用户满意性:首当其冲的,推荐系统主要就是为了满足用户的需求,因此准确率是评判一个推荐系统好坏的最关键指标.

个性化推荐系统综述

- Tony - 所有文章 - UCD大社区
上个月写过一篇产品推荐的文章,详情请见《我所了解的产品推荐》,内容很泛,多为工作心得. 本周读了几篇相关的论文,收获颇多,分享点干货. 以下内容摘自《个性化推荐系统的研究进展》,该文发表于2009年1月的《自然科学进展》专题评述,作者是刘建国、周涛、汪秉宏. 我略去了具体的算法和许多公式,重点看原理、思路和比较.

推荐系统开源工具 – SVDFeature

- Roger - Resys China
SVDFeature是我们(上海交大Apex实验室)在参加KDDCUP 2011期间开发的. 通过这个工具,我们和港科大(HKUST)的联合小组InnerPeace在KDDCUP 2011中获得Track 1第三名,并创造单模型最好成绩. 在此分享给大家,并希望和大家有更多的交流. (1)基于feature的可扩展性 —— SVDFeature实现了我们的基础模型feature-based matrix factorization.