推荐系统实践
推荐在今天互联网的产品和应用中被广泛采用,包括今天大家经常使用的相关搜索、话题推荐、电子商务的各种产品推荐、社交网络上的交友推荐等。但是,至今还没有一本书从理论上对它进行系统地分析和论述。《推荐系统实践》这本书恰恰弥补了这个空白。
该书总结了当今互联网主要领域、主要公司、各种和推荐有关的产品和服务,包括:
亚马逊的个性化产品推荐;
Netflix的视频和DVD推荐;
Pandora的音乐推荐;
Facebook的好友推荐;
Google Reader的个性化阅读;
各种个性化广告。
书的名称虽然是《推荐系统实践》,但作者也阐述了和推荐系统有关的理论基础和评价推荐系统优劣的各种标准与方法,比如覆盖率、满意度、AB测试等。由于这些评估很大程度上取决于对用户行为的分析,因此本书也介绍了用户行为分析方法,并且给出了计算机实现的算法。
说起本书,还要追溯到2010年3月份的ResysChina推荐系统大会。在那次会议上,我遇到了刘江老师。刘老师看过我之前写的一些推荐系统方面的博客,希望我能总结总结,写本简单的书。当时国内还没有推荐系统方面的书,而国外已经有这方面的专业书了,因此图灵公司很想出版一本介绍推荐系统的书。所以,去年7月博士毕业时,我感觉有时间可以总结一下这方面的工作了,于是准备开始写这本书。
写这本书的目的有下面几个。首先,从个人角度讲,虽然写博士论文时已经总结了读博期间在推荐系统方面的工作,但并没有全部涉及整个推荐系统的各个方面,因此我很希望通过写作这本书全面地阅读一下相关的文献,并在此基础上总结一下推荐系统各个方面的发展现状,供大家参考。其次,最近几年从事推荐系统研究的人越来越多,这些人中有些原来是工程师,对机器学习和数据挖掘不太了解,有些是在校学生,虽然对数据挖掘和机器学习有所了解,却对业界如何实现推荐系统不太清楚。因此,我希望能够通过本书让工程师了解推荐系统的相关算法,让学生了解如何将自己了解的算法实现到一个真实的工业系统中去。
一般认为,推荐系统这个研究领域源于协同过滤算法的提出。这么说来,推荐系统诞生快20年了。这期间,很多学者和公司对推荐系统的发展起到了重要的推动作用,各种各样的推荐算法也层出不穷。本书希望将这20年间诞生的典型方法进行总结。但由于方法太多,这些方法的归类有很多不同的方式。比如,可以按照数据分成协同过滤、内容过滤、社会化过滤,也可以按照算法分成基于邻域的算法、基于图的算法、基于矩阵分解或者概率模型的算法。为了方便读者入门,本书基本采用数据分类的方法,每一章都介绍了一种可以用于推荐系统设计的、新类型的用户数据,然后介绍如何通过各种方法利用该数据,最后在公开数据集上评测这些方法。当然,不是所有数据都有公开的数据集,并且不是所有算法都可以进行离线评测。因此,在遇到没有数据集或无法进行离线评测的问题时,本书引用了一些著名学者的实验结果来说明各种方法的效果。