下面简单介绍书中提到的问题以及有哪些解决办法,方便大家对正本书有个整体的把握,同时我也会上传这本书的高清PDF版,本来想不用积分下载,但是系统最少2个,要是哪位没有积分,可以私信我。下载链接如下:
http://download.csdn.net/download/wtt561111/10163609
其他章节内容
在实际系统中,数据结构不一样,需要根据不同的数据设计推荐算法,并将这些算法融合到一个系统中。本章将首先介绍推荐系统的外围架构(推荐系统要与网站的其他系统进行对接),然后介绍推荐系统的架构,并对架构中的每个模块的设计进行深入讨论。
7.1 推荐系统外围的架构
主要组成部分:一般来说,每个网站都有一个UI系统,负责给用户展示并与用户进行交互。网站会通过日志系统将用户在UI的各种各样的行为记录到用户行为日志中。日志可以临时存储在内存缓存中,也可以存储在数据库中,也可以存储在文件系统中。推荐系统通过分析用户的行为日志,给用户生成推荐列表,最终展示在网站的界面上。
数据收集和存储:针对不同的行为的特点,需要不同的存储方式。书中给了一个表格,列出了不同的用户行为采取的不同存储方法。
7.2 推荐系统的架构
特征联系目标用户和待推荐商品:书中画出一张图,表示“UserCF,ItemCF,基于特征的推荐”这三种推荐算法中,用户和商品的联系方式,可以全部抽象为基于特征的推荐。但是需要考虑的特征很多,主要包括三种:人口统计学特征,用户的行为特征,用户的话题特征。此外系统的推荐任务也很多。如果同时考虑所有特征,完成所有推荐任务,那么这个推荐系统会很复杂,而且很难通过配置文件方便的配置不同特征和任务的权重。因此,推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务就是将推荐引擎的结果按照一定的权重或者优先级进行合并和排序。
7.3 推荐引擎的架构
推荐引擎的架构:具体可以结合书中的图和例子进行理解。
生成用户特征向量:用户的特征主要包括两种:注册信息,行为信息。对于注册信息,可以直接放到内存用。需要重点考虑的是如何计算出用户的行为特征。特征向量由特征以及特征的权重组成。
利用用户行为计算特征向量时需要考虑:用户行为的种类(用户付出代价越大的行为权重越高);用户行为的时间(时间越近,权重越大);用户行为的次数;物品的热门程度(需要加重不热门物品对应的特征的权重)。
特征与物品相关的推荐:在拿到用户的特征向量后,我们可以根据离线的相关表得到初始的物品推荐列表。离线相关表可以存储在MYSQL中,存储格式(特征ID,物品ID,权重)。该表存储了一种推荐引擎(不是一个特征)的推荐结果,可以通过对该标的查询,获得某个特征下,权重最高的前N个物品。不同的推荐引擎会产生不同的离线表。当进行在线推荐时,会将这些相关表按照配置的权重相加,然后将最终的相关表保存在内存中,最后推荐给用户。
过滤模块:需要过滤的物品包括:用户已经产生过行为的物品;候选集以外的物品(产品需求;用户选择的区间内的物品);某些质量很差的物品;
排名模块:新颖性;多样性;时间多样性;用户反馈;(书中讲的比较简单仔细)
第八章:评分预测问题
前面介绍的推荐系统都是TOPN推荐问题,其实推荐系统在理论研究中比较重要的话题是评分预测问题。
利用用户---评分矩阵,预测某个用户对某个物品的分数,该分数代表了该用户对该商品的喜爱程度。
书中介绍的评分预测算法和前面提到的算法差不多,感兴趣的可以自己去看书。