写在前面
基于用户行为数据的应用其实早在个性化推荐系统诞生之前就已经在互联网上非常流行了,其中最典型的就是各种各样的排行榜。这些排行榜包括热门排行榜和趋势排行榜等。尽管这些排行榜应用仅仅基友简单的用户行为统计,但他们在互联网上得到了很多用户的青睐。因此,用户行为数据的分析是很多优秀产品设计的基础,个性化推荐算法通过对用户行为的深度分析,可以给用户带来更好的网站使用体验。
用户行为数据在网站上最简单的形式就是日志。网站在运行过程中都会产生大量原始日志,并将其存储在文件系统中。很多互联网会把多种原始日志按照用户行为汇总成会话日志,其中每个会话表示一次用户行为和对应的服务。
用户行为在个性化推荐系统中一般分为两种:显性反馈行为和隐性反馈行为。显性反馈行为包括用户明确表示对物品的喜好,例如打分和喜欢。隐性反馈行为是指不能明确反应用户喜好的行为,例如页面浏览行为和购买行为等。
仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法进行了深入的研究,提出了很多方法,比如基于邻近的方法(neighborhood-based)、隐语义模型、基于图的随机游走算法等。在这些方法中,最著名的在业界得到最广泛应用的算法就是基于邻近的方法。接下来将会介绍基于邻近的推荐方法。
1基于邻近的推荐算法
基于邻近的推荐算法是推荐系统中最基本的算法。基于邻近的算法分为两类:一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法。
1.1基于用户的协同过滤算法
所谓的基于用户的协同过滤算法(user-based collaborative filtering)是,在一个个性化推荐系统中,当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其