《推荐系统实践》这本书对于推荐系统的各个方面介绍地很详细,如果你认为自己是推荐系统领域的专业人员,那么书中的每一个点都必须得会,最起码得知道;如果你正在全面地学习推荐系统,这本书是一个非常好的由浅入深的教材。如果你是一个学校里的科研人员,你可以在里面看到熟悉的数学模型,而且可以看到具体实施到实际生产需要解决哪些问题;如果你是一个公司里的实战人员,你可以看到熟悉的代码来理解作者表达的意思,而且也可以看到一个问题时如何用数学模型去解决的;
下面简单介绍书中提到的问题以及有哪些解决办法,方便大家对正本书有个整体的把握,同时我也会上传这本书的高清PDF版,本来想不用积分下载,但是系统最少2个,要是哪位没有积分,可以私信我。下载链接如下:
http://download.csdn.net/download/wtt561111/10163609
其他章节内容
第一章:好的推荐系统
1.1 为什么要有推荐系统?推荐系统是什么?
作为一位消费者,你想听音乐,于是打开音乐播放器,但是想不起来要具体听哪些歌曲,面对这么多分类下的这么多歌曲,到底那首歌好听呢?
作为一位商家,手里有几百万用户,几百万歌曲,如何让每一位用户听到他喜欢的歌曲?
如果只有几首歌,几个用户,很好办,每个用户把所有的歌都听一遍就可以了,但是用户规模和歌曲规模如此大,产生了信息过载的问题。
针对信息过载问题,有三种解决办法:分类目录(雅虎),搜索引擎(谷歌),推荐系统。
分类目录只能覆盖少量的热门网站;搜索引擎需要用户输入准确的关键词;所以推荐系统诞生了。所以推荐系统的条件是:信息过载+用户没有明确需求。
1.2 推荐系统应用领域
主要包括:电子商务,电影和视频,音乐,社交网络,阅读,基于位置的服务,个性化邮件,广告投放。
基于位置的服务:给用户推荐附近的吃喝玩乐。
广告投放:帮助广告找到可能对它们感兴趣的用户。而个性化推荐主要是指为用户找到他们感兴趣的商品。个性化广告投放技术主要分为三种:上下文广告(浏览记录),搜索广告(搜索记录),个性化展示广告(大的横幅图片)。
1.3 推荐系统的评测方式和评价指标
一个推荐系统由3部分组成:消费商品的用户,提供商品的商家,提供推荐系统的网站或者软件。一个好的推荐系统,必须对三方都有好处。具体的评价指标包括:准确度,覆盖度,新颖度,惊喜度,信任度,透明度等。
有些指标可以离线计算,有些必须在线计算,有些必须问卷调查获得。下面具体介绍三种实验方式:
离线实验:将历史数据划分为训练集和测试集,分别用来训练和测试模型。优点是:可以快速的得到计算结果;不会对实际使用的系统产生性能上的影响;不需要用户参与。缺点是:无法计算与实际生产上,商业关系的指标;
用户调查:通过离线的计算,发现系统比较好,但是不能保证线上效果也好。为了降低损失,需要在系统上线运营前,做下用户调研。用户的主观上的感受,必须通过用户调查来获取。优点是:可以获取用户最直观的感受;相对于在线测试,风险较低,出现错误后可以马上弥补。缺点是:单个用户的测试代价比较大,很难大规模进行,所以实验结果的统计意义不足;设计双盲实验非常困难,而且用户在接受测试时的行为可能与实际行为不符合。
在线实验:最常用的在线测试方法是AB测试。将所有用户分为几份,每一组用户采用不同的推荐算法,统计不同组用户在不同指标(比如点击率)下的表现。优点是:可以得到推荐系统在真实运行下的效果好坏。缺点是:周期长,因为必须长期的实验才能得到可靠的结果,所以一般只测试离线测试阶段效果比较好的算法;无法保证单一变量实验原则。因为一个大型的系统,可能都在同时进行各个方面的AB测试。
下面介绍每个具体指标:
准确度:这个指标是离线实验最主要的评价指标。针对评分预测问题,准确度主要通过RMSE和MAE计算;针对TOPN推荐问题,准确度主要通过precision 和 recall计算。
用户满意度:只能通过用户调查(调查问卷)和在线实验(具体的实验结果)获得。
覆盖率:推荐系统的初衷是消除马太效应(强者更强,弱者更弱),但是很多研究表明目前主流的推荐算法(比如CF)是具有马太效应的。覆盖率可以通过信息熵和基尼系数来表示。
多样性:为了满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣领域。书中也定义了具体的公式。
新颖性:新颖的推荐不应该给用户推荐哪些他们已经看过、打过分或者浏览的视频,但是用户也有可能从其他网站接触过这些内容,所以仅仅从推荐列表中删除上述内容还不能完全实现新颖性。但是书中也没有写出具体的评价指标。
惊喜度:新颖指的是推荐没有听说过的与自己兴趣想符合的内容,惊喜是指推荐的内容与他的历史兴趣毫无关系,但是也非常喜欢这个推荐内容。作者说目前没有公认的指标定义方式。
信任度:对于同样的推荐列表,以不同的方式推荐给相同的用户,用户的接受程度不一致。提高系统新人度的方法有:增加系统的透明度,让用户了解系统的运行机制;利用用户的社交网络的好友信息给用户做推荐;
实时性:主要包括两方面,根据用户的行为实时地更新推荐列表;将新加入系统的商品推荐给用户;
健壮性:防止商家作弊,通过某种手段,将自己的商品更好地被推荐。
商业目标:最本质的商业目标就是平均一个用户给公司带来的盈利。
一个推荐系统虽然整理性能不好,但是在某种情况下性能比较好,从不同的测评维度对系统进行测评可以为推荐算法的融合带来参考建议。一般评测维度分为3种:
用户维度:主要包括用户的人口统计信息、活跃度、是否为新用户等。
物品维度:包括物品的属性信息、流行度、平均分、是否为新加入物品等。
时间维度:包括季节、是否工作日、白天还是晚上。