《推荐系统实践》学习总结
目前,市场上的推荐系统被大部分的互联网app产品所应用,前提条件是该产品的信息量较大,存在信息过载;而按照app类型将推荐系统做一个分类,可以大致分为电商类、电影和视频类、个性化电台、社交类、基于地理位置服务类、个性化邮件、个性化广告等,每个类别的推荐系统都是根据产品特性进行的个性化定制处理,无通用的推荐系统模板。
一、推荐系统的整体交互架构
以网站为例,网站的UI系统负责展示网页并与用户产生交互行为,通过日志系统将用户在UI上的各种行为记录在用户行为日志中,日志可存储在内存缓存/数据库/文件系统中,推荐系统通过分析用户的行为日志,给用户生成推荐列表,最终展示在网站的界面上。
二、建立用户行为日志存储系统
建立推荐系统的关键是对用户行为的记录与分析,这就涉及到了用户行为数据,以及数据的收集和存储。还是以电商网站为例,下表为一个电商网站的用户行为简析:
如表所示,只有建立了用户行为的数据存储,才能够高效的进行数据分析,建立“用户-物品-特征”的关联性,为下一步构建推荐系统提供依据(本步骤中的关键点在于大量的数据能否实时存取,以及根据设定的规则,对存取的数据进行过滤等)。
三、推荐系统的架构
如上图所示,这是一个典型的推荐系统架构,其中:
(1)部分A负责从数据库或缓存中拿到用户行为数据,通过分析不同行为,产生当前用户的特征向量,该模块的输出是用户特征向量;
(2)部分B负责将用户的特征向量通过特征-物品相关矩阵转化为初始推荐物品列表;
(3)部分C负责对初始的推荐列表进行过滤排名等处理,从而生成最终的推荐结果。
四、构建一个推荐系统
根据产品特征而使用不同的算法来构建推荐系统,大致可分为:根据用户行为数据的协同过滤算法、利用用户标签数据的算法、利用上下文的推荐算法、基于位置的推荐算法以及利用社交网络数据的推荐算法等。以下只针对前两个算法对于推荐系统的构建进行了流程步骤的解析,后面的算法由于不符合我们产品的特性不做介绍。
1.根据用户行为数据的协同过滤算法
此算法是根据电商类app产品“亚马逊”的流程进行的整理,由于是电商产品,对二手超市的商品推荐有一定的借鉴意义。它的本质是记录用户行为数据,然后根据用户行为特征,形成行为数据类别,最后根据“用户与用户的相似度”,给用户推荐和他兴趣相似的其他用户喜欢的物品,或根据“物品与物品的相似度”,给用户推荐和他之前喜欢物品相似的物品。详情流程见下表:
2.利用用户标签数据的算法
此算法是根据豆瓣app“豆瓣读书”的推荐流程进行的整理。它的本质是记录用户标签行为的数据,统计用户常用的标签,统计每个标签对应的物品,建立“用户-物品-标签”的关联性”,然后匹配单个用户的常用标签,最后再根据用户对物品的兴趣公式,给用户推荐相应的物品。详情流程见下表:
综上,我是为了自己要设计推荐功能而去学习了这本书,选择总结等两种算法也是我自己产品适用的,看这本书一周写的总结,可能也有不对的地方,欢迎前辈们纠正,谢谢!