一、首先我们要明确,我们为什么要构建推荐系统
1.对于用户而言:信息化的时代,海量的数据产生也带来了信息过载和选择障碍的困扰,每个用户的时间和精力都是有限的,帮助用户进行信息过滤和选择是非常有价值的。
2.对与企业而言:推荐系统带来的收益是看得见的:Netflix每年2/3的观看电影来自推荐系统
亚马逊每年35%的销售额来源于它的推荐
Google news 的推荐系统能带来额外38%的点击
二、推荐系统的前提条件
1.对于数据量的要求:1万以下 不建议个性化推荐
1万到10万 可以尝试
10万以上 可以用
2.用户足够多,用户的分布足够广:用户种类越多,推荐系统的效果越好
3.用户点击的内容足够广:如果用户分布很广,用户也很多,但是,他们都只点击少部分信息,这时,个性化推荐的系 统的优势并不十分明显。
三、推荐系统到底是什么
1.简单看来说:推荐系统实际上是寻找过去连接的过程,并从过去的连接推测未来。
连接:用户和商品的连接,商品和商品的连接,用户和用户的连接。
2.在数学上:推荐系统实际上是拟合一个用户对内容满意度的函数:
Y=F(xi,xu,xc) xi:item特征 xu:user特征 xc:contex特征
结合内容特征,用户特征,环境特征这三个维度,模型会给出一个预估,既推测推荐内容在这一场景下对这一用户是否合适。
举个例子:
四、推荐系统算法分类
这里我们只讲述基于协同过滤的推荐
五、协同过滤推荐系统:
1.基于用户的协同过滤(User CF):
(1)基本原理:通过用户对不同内容(物品)的行为,来评测用户之间的相似性,找到“邻居”基于这种 相似性做出推荐。
相当于,给相似的用户推荐其他用户喜欢的内容。
(2)基本步骤: 找到和目标用户兴趣相似的用户集合
找到这个集合中的用户喜欢的,并且目标用户没有听说过的物品推荐给目标用户
(3)怎么找到和你相似的人:
2.基于物品的协同过滤(Item CF):
(1)基本原理:根据用户的历史偏好,推荐相似的物品给用户。
(2)计算:
1>物品相似度的计算:
2>生成物品相似矩阵的计算:
(3)TopN推荐:
举个例子:
3.UserCF和ItemCF的比较:
四、代码实现