推荐系统实践学习系列(七)推荐系统实例

(一)外围架构

推荐系统是如何和其他网站进行接口的

一般来说,每个网站都会有一个UI系统,UI系统负责给用户展示网页并和用户交 互。网站会通过日志系统将用户在UI上的各种各样的行为记录到用户行为日志中。日志可能存储 在内存缓存里,也可能存储在数据库中,也可能存储在文件系统中。而推荐系统通过分析用户的 行为日志,给用户生成推荐列表,最终展示到网站的界面上。下图便是这样的一个例子。

image.png
数据搜集和存储
image.png

按照前面数据的规模和是否需要实时存取,不同的行为数据将被存储在不同的媒介中。一般 来说,需要实时存取的数据存储在数据库和缓存中,而大规模的非实时地存取数据存储在分布式 文件系统(如HDFS)中。 数据能否实时存取在推荐系统中非常重要,因为推荐系统的实时性主要依赖于能否实时拿到 用户的新行为。只有快速拿到大量用户的新行为,推荐系统才能够实时地适应用户当前的需求, 给用户进行实时推荐。

(二)推荐系统架构

3种联系用户和物品的推荐系统

image.png

基于特征的推荐系统架构


image.png

用户的特征种类:

  • 人口统计学特征
  • 用户行为特征
  • 用户话题特征

如果要在一个系统中把上面提到的各种特征和任务都统筹考虑,那么系统将会非常复杂,而 且很难通过配置文件方便地配置不同特征和任务的权重。

改进的方法:

推荐系统需要由多个推荐引擎组 成,每个推荐引擎负责一类特征和一种任务,而推荐系统的任务只是将推荐引擎的结果按照一定 权重或者优先级合并、排序然后返回。

image.png

这样做的好处:
一:可以方便的增加或删除引擎
二:可以实现推荐引擎级别的用户反馈

(三)推荐引擎架构

推荐引擎的架构主要包括3部分

 该部分负责从数据库或者缓存中拿到用户行为数据,通过分析不同行为,生成当前用户 的特征向量。不过如果是使用非行为特征,就不需要使用行为提取和分析模块了。该模 块的输出是用户特征向量。
 该部分负责将用户的特征向量通过特征-物品相关矩阵转化为初始推荐物品列表。
 该部分负责对初始的推荐列表进行过滤、排名等处理,从而生成最终的推荐结果。


image.png
生成用户特征向量
image.png

image.png
特征-物品相关推荐

下面的代码给出了相关推荐模 块的大体工作流程


image.png
过滤模块
  • 用户已经产生过行为物品
  • 候选物品以外的物品
  • 某些质量很差的物品
排名模块
  • 1 新颖性排名
  • 2 多样性
  • 3 时间多样性
  • 4 用户反馈
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 晚上在租房里如厕,事毕后,才想起忘带手纸,惊呼,得室友解救,猛然想起小时,家在山腰上,如厕要去门外的茅房,我也总是...
    虎子和小花阅读 440评论 0 0
  • 近日较忙,12月回来补更美食
    XiaohuiChen阅读 147评论 0 0
  • 那个堕过胎的女孩儿 1. 认识 我叫子惠,是一位二十二岁的大学生,目前在一所离家很近的三流大学里读会计,长得虽然不...
    一画半阅读 330评论 12 6
  • 五行是相邻相生,相隔相克。 相生:木生火,火生土,土生金,金生水,水生木,生为发展。 相克:木克土,土克水,水克火...
    瑰玮諔诡阅读 450评论 0 0