赞
踩
目录
既然要做个性化推荐系统,首先我们需要先了解每个人,听其言、观其行,在网络世界我们称之为用户行为数据。有些用户不是太清楚自己喜欢什么。用户的兴趣不可能是一成不变的,会根据外部因素进行改变。我们需要通过不断采集用户在网络中的行为数据以及用户与网站的交互反馈数据,不断修正推荐系统对用户的定位,从而不断修正符合用户当前状态的推荐结果。
协同过滤是目前比较热门的推荐系统算法,协同:用户与用户之间、用户和网站之间等进行不断的互动,慢慢过滤掉自己不感兴趣的物品,从而满足自己的需求。
推荐系统数据分析:
- 其一:要推荐物品或者内容的元数据
- 例如关键字、分类标签、基因描述等;
- 其二:系统用户的基本信息
- 例如性别、年龄、兴趣标签等;
- 其三:用户的行为数据,可以转换为对物品或者信息的偏好
- 根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的基类,用户购买的记录等;
- 用户的偏好信息可以分为两类:
- 显式的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显示的提供反馈信息,例如用户对物品的评分,或者对物品的评论。
- 隐式的用户反馈:这类时用户在使用网站时产生的数据,隐式的反应了用户对物品的喜好,例如用户购买了某物品,用户查看了某物品的信息等等。
用户行为数据在网站上最简单的存在形式就是日志。网站在运行过程中会产生大量的原始日志RAW LOG,将其存储在文件系统中,企业会将多种原始日志按照用户行为汇总成会话日志SESSION LOG,每一个会话日志表示用户的一种反馈。
用户反馈主要分为显性反馈行为和隐形反馈行为。显性反馈行为包括用户明确表示对物品喜好的行为。比如评分系统;隐性反馈行为指的是那些不能明确反应用户喜好的行为。比如用户浏览页面的行为日志。我们对表示用户喜欢的反馈叫正反馈,表示不喜欢的叫负反馈。
那么用户的行为表示成什么呢?一些比较中立的字段如下:
当然,可以根据自己的实际情况去设计日志的表示形式。有代表性的数据集会是如下4种:
- 无上下文信息的隐性反馈数据集 每一条行为记录仅仅包含用户ID和物品ID。
- 无上下文信息的显性反馈数据集 每一条记录包含用户ID、物品ID和用户对物品的评分。
- 有上下文信息的隐性反馈数据集 每一条记录包含用户ID、物品ID和用户对物品产生行为的时间戳。
- 有上下文信息的显性反馈数据集 每一条记录包含用户ID、物品ID、用户对物品的评分和评分行为发生的时间戳。
- 二八定律:9世纪末20世纪初意大利经济学家帕累托发明“二八定律”,认为在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的。很多商家企业认为80%的公司利润来自20%的重要客户,其余20%的利润则来自80%的普通客户,传统零售情愿把80%的资源花在能创造出关键利润的20%的方面,从把20%的资源花费在80%的普通客户群里。
- 长尾理论:流行的,被人熟知的东西都是所谓的“头”,而常常被人忽视的,不流行的,个性化的就是所谓的“尾”,而在营销界对“尾巴”的挖掘,可以创造出惊人的利润和价值,“小利润大市场”、“虽然赚很少的钱,但是我们要赚很多人的钱”,这就是长尾理论在营销界的真正含义。用户活跃度和物品流行度都符合长尾理论。
上图展示了Delicious和 CiteULike数据集中物品流行度的分布曲线。横坐标是物品的流行度K,纵坐标是流行度为K的物品的总数。这里,物品的流行度指对物品产生过行为的用户总数。
那又揭示了什么?流行的物品总是少数,不流行的占绝大多数,如果能够让不流行的物品流行起来,那么会创造很大利润。
上图展示了Delicious和 CiteULike数据集中用户活跃度的分布曲线。横坐标是用户的活跃度K,纵坐标是活跃度为K的用 户总数。这里,用户的活跃度为用户产生过行为的物品总数。
那又揭示了什么?非常活跃的用户总数少数,大多数用户都是不活跃的,如果能把不活跃的用户都调用起来,那么会创造很大利润。
那推荐引擎又能做什么?
通过个性化的推荐,将不流行的物品推送给不活跃的人,激活这两个部分,要比将流行的物品推送给活跃的人的市场大很多,这就是互联网思维。
一般来说,不活跃的用户要么是新用户,要么是只来过网站一两次的老用户。那么,不同活跃度的用户喜欢的物品的流行度是否有差别?一般认为,新用户倾向于浏览热门的物品,因为他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。图2-5展示了MovieLens数据集中用户活跃度和物品流行度之间的关系,其中横坐标是用户活跃度,纵坐 2 标是具有某个活跃度的所有用户评过分的物品的平均流行度。如图2-5所示,图中曲线呈明显下 降的趋势,这表明用户越活跃,越倾向于浏览冷门的物品。
基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对于实现协同过滤有很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型 (latent factor model)、基于图的随机游走算法(random walk on graph)等。
目前使用最广泛的是基于邻域的方法,主要包括下面两个算法:
要进行推荐我们需要的数据如下: 用户ID、[物品ID、偏好值]
偏好值就是用户对物品的喜爱程度,推荐系统所做的事就是根据这些数据为用户推荐他还没有见过的物品,并且猜测这个物品用户喜欢的概率比较大。
用户ID和物品ID一般通过系统的业务数据库就可以获得,偏好值的采集一般会有很多办法,比如评分、投票、转发、保存书签、页面停留时间等等,然后系统根据用户的这些行为流水,采取减噪、归一化、加权等方法综合给出偏好值。一般不同的业务系统给出偏好值的计算方法不一样。
注:其他推荐系统相关文章链接由此进 -> 推荐系统文章汇总
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。