随着推荐系统的发展,个性化推荐这一技术在许多地方都不可或缺,比如:电子商务(如:亚马逊)、电影和视频(如:优酷)、音乐(如:豆瓣)、阅读(如:搜狐)、个性化邮件和广告(如:网易邮箱的广告推广)、社交网络(如:Facebook)、基于位置的服务(如:百度地图)等。图2。1所示是笔者的推荐页面:
图2。1 亚马逊推荐列表
从图2。1所示页面可以看出,个性化推荐的页面主要包括如下几个部分:
A。 推荐结果的标题、缩略图以及其他内容属性——告诉用户网站推荐的是什么;
B。 推荐结果的平均分——反映了推荐结果的总体质量,代表了大部分用户的观点;;
C。 推荐理由——亚马逊展现给每个用户的推荐商品,基本是因为这些用户在亚马逊上有过相似商品的购买记录,即根据用户的历史行为做出推荐。此外,亚马逊的推荐结果,都给出了“我已经有了”和“不感兴趣”两个按钮,作为对推荐结果的修正。虽然网站不同,各自采用的推荐技术也各不相同,但这些网站基本上都是由前台的展示页面(即用户看见的网页)、后台的日志系统(即用户的历史行为数据)以及推荐算法系统3部分组成[8]。如图2。2所示:文献综述
图2。2 推荐系统的3部分组成
2。2 协同过滤
2。2。1 用户行为数据
个性化推荐算法都是基于用户的历史信息数据分析设计的,而日志便是存储用户在某网站上的数据的最简单形式。很多互联网将用户行为的日志内容存储为会话日志,而一次session代表用户的行为和与此同时的服务[9]。用户对某物品的反馈(如观看,打分,浏览等)又可以分成两种:分别是明确表达客户喜好的显性反馈和不能看出客户喜好的隐性反馈。
显性反馈行为可以理解成用户对某物品感兴趣的行为,网站可以通过评分(现今大部分网站采用的是5分评分等级)或者直接通过选择“喜欢”或者“不喜欢”来了解某物品是否符合用户的偏好。
而隐性反馈可以理解成不能清楚地表现出客户是不是对某物品感兴趣的行为,其中最为典型的就是浏览页面。用户浏览某个页面,并不一定是这个页面展示的物品符合用户的兴趣,也有一定的可能性是鼠标无意中点了这个链接。
显性和隐性的两种反馈行为的不同之处如表2。1所示 [10]:
表2。1 显性反馈数据和隐性反馈数据的区别
显性反馈数据 隐性反馈数据
用户兴趣 明确 不明确
数量 较少 庞大
实时读取 实时 有延迟
正负反馈 都有 只有正反馈
存储 数据库 分布式文件系统
2。2。2 用户行为分析
得到用户的历史信息之后,进行个性化推荐之前,首先要做的是了解并且分析这些内容,了解其中蕴含的规律,这样才能对算法的建立起作用。
根据互联网数据的研究发现,互联网上的许多数据都满足长尾分布[11],而用户行为数据也是满足这一分布的。公式如下所示:
的意思为k个用户对物品进行反馈的物品数; 的意思为对k个物品评论、购买或是其他反馈行为的用户数;