读书笔记《推荐系统实战》| 推荐系统

《推荐系统实战》这本书的下载地址:《推荐系统实战》

第一章 好的推荐系统
第二章 利用用户行为数据
第三章 推荐系统冷启动问题
第四章 利用用户标签数据
第五章 利用上下文信息
第六章 利用社交网络数据
第七章 推荐系统
第八章 评分预测问题

在实际系统中,数据结构不一样,需要根据不同的数据设计推荐算法,并将这些算法融合到一个系统中。本章将首先介绍推荐系统的外围架构(推荐系统要与网站的其他系统进行对接),然后介绍推荐系统的架构,并对架构中的每个模块的设计进行深入讨论。

7.1 推荐系统外围的架构

主要组成部分:一般来说,每个网站都有一个UI系统,负责给用户展示并与用户进行交互。网站会通过日志系统将用户在UI的各种各样的行为记录到用户行为日志中。日志可以临时存储在内存缓存中,也可以存储在数据库中,也可以存储在文件系统中。推荐系统通过分析用户的行为日志,给用户生成推荐列表,最终展示在网站的界面上。
读书笔记《推荐系统实战》| 推荐系统_第1张图片
数据收集和存储:针对不同的行为的特点,需要不同的存储方式。书中给了一个表格,列出了不同的用户行为采取的不同存储方法。
读书笔记《推荐系统实战》| 推荐系统_第2张图片

7.2 推荐系统的架构

特征联系目标用户和待推荐商品:如图,表示“UserCF,ItemCF,基于特征的推荐”这三种推荐算法中,用户和商品的联系方式,可以全部抽象为基于特征的推荐。
读书笔记《推荐系统实战》| 推荐系统_第3张图片
但是需要考虑的特征很多,主要包括三种:人口统计学特征,用户的行为特征,用户的话题特征。此外系统的推荐任务也很多。如果同时考虑所有特征,完成所有推荐任务,那么这个推荐系统会很复杂,而且很难通过配置文件方便的配置不同特征和任务的权重。因此,推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务就是将推荐引擎的结果按照一定的权重或者优先级进行合并和排序。

7.3 推荐引擎的架构

推荐引擎的架构:具体可以结合书中的图和例子进行理解。
读书笔记《推荐系统实战》| 推荐系统_第4张图片
生成用户特征向量:用户的特征主要包括两种:注册信息,行为信息。对于注册信息,可以直接放到内存用。需要重点考虑的是如何计算出用户的行为特征。特征向量由特征以及特征的权重组成。

利用用户行为计算特征向量时需要考虑:用户行为的种类(用户付出代价越大的行为权重越高);用户行为的时间(时间越近,权重越大);用户行为的次数;物品的热门程度(需要加重不热门物品对应的特征的权重)。

特征与物品相关的推荐:在拿到用户的特征向量后,我们可以根据离线的相关表得到初始的物品推荐列表。离线相关表可以存储在MYSQL中,存储格式(特征ID,物品ID,权重)。该表存储了一种推荐引擎(不是一个特征)的推荐结果,可以通过对该标的查询,获得某个特征下,权重最高的前N个物品。不同的推荐引擎会产生不同的离线表。当进行在线推荐时,会将这些相关表按照配置的权重相加,然后将最终的相关表保存在内存中,最后推荐给用户。

过滤模块:需要过滤的物品包括:用户已经产生过行为的物品;候选集以外的物品(产品需求;用户选择的区间内的物品);某些质量很差的物品;

排名模块:新颖性;多样性;时间多样性;用户反馈;(书中讲的比较简单仔细)

你可能感兴趣的:(推荐,推荐算法与Tensorflow)