基于mahout推荐系统构建 上

外围架构
首先诸如亚马逊这样的推荐网站通过UI展现推荐信息以及同用户交互,通过UI会得到用户的一系列行为日志,并将其存入存储系统,推荐模块通过对存储系统的访问获知用户日志,并通过计算反馈给用户推荐项并在UI上显示
当忽略掉UI设计后,剩下的便是用户数据存储以及收集
实际上可将数据分为实时存储型和非实时存储型;比如评分、购买行为、评论、搜索词等信息属于强信号,这些直观反映了用户的需求,这一点是需要实时存储的,这些数据通常存放在数据库或者缓存中,而网页浏览信息并不属于一种强信号,因此不需要实时存储而这些信息由于数据量十分庞大因此需要采用分布式存储系统

推荐系统架构
推荐系统讲的是用户和物品的联系,而用户与物品的关系可以划分为三类:如果用户喜欢是一种用户特征,那么特征就是沟通用户与物品的媒介,相同特征下的这些用户;用户喜欢的物品,找相似的物品;用户社交好友也喜欢的物品
最终推荐系统可以分为两个大的模块;如何生成特征,如何根据特征找到推荐的物品
用户的特征可以分为以下几类:
1人口统计学特征(年龄、籍贯)(注册时提供的信息)
2用户的行为特征(购买、浏览、收藏什么物品)
3用户的话题特征
通常情况下特征是非常丰富的,为了方便的处理特征以及实时调整特征的权重,采用多引擎的方式,即用一个引擎管理一类特征,然后按照一定的权重来进行配比

剩下的问题即是如何开发搜索引擎

推荐系统搜索引擎架构
搜索引擎需要实现三个主要方面的功能:
1负责从数据库或者缓存中拿到数据,用于输出特征向量
2负责将用户与特征向量通过物品-特征相关矩阵转化为推荐物品表
3负责对推荐物品表进行过滤、排名生成推荐结果

用户特征向量的生成
用户的特征有两种:一种是从注册信息提取的人口统计学信息;一种是用户行为特征,这一种也是是非困难的
用户行为特征:
行为特征的分类,可以按照信息强度进行分类,一般来说购买行为是强度最大的行为,相反浏览网页的强度最小
行为的时间,近期的会比较远时间的更重要
用户行为的次数
用户关注商品的热度
特征-物品相关表
这样的表可以存储在MySQL里面

过滤模块
需要过滤掉以下几种物品
1用户已经购买过的
2候选品以外的
3某些质量很差的
排名模块
1新颖性排名
2多样性排名
3时间多样性
4用户反馈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值