文章目录
参考两篇特别喜欢的博文
https://zhuanlan.zhihu.com/p/23036112
https://blog.csdn.net/xsl_bj/article/details/51120643
一、认知导图
![](https://i-blog.csdnimg.cn/blog_migrate/407f33704cfcdaada6ad1061512b3fe0.png)
二、数据
用户本身
用户本身的信息,即用户的属性,比如年龄,性别,家庭等等。
物品本身
物品的关键字,属性等,比如颜色,是什么东西等等。
用户行为
用户的行为信息,查看,评分,购买,浏览时长等等。即用户和物品之间产生联系的信息。
三、算法
1、基于人口统计(用户)的推荐算法
- 根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。
- 因为根据基本信息,因此无冷启动问题。
- 不牵涉物品信息,可应用到很多领域。
- 简单粗糙,效果一般。
2、基于内容的推荐算法
- 根据系统物品的基本信息发现物品的相似程度,然后将相似物品推荐给当前用户。
- 因为需要用到用户的行为信息,所以有冷启动的问题
3、协同过滤算法
协同过滤算法与上面不同之处在于,它基于用户的偏好信息去求相似程度。
a) 基于用户的协同过滤算法(UserCF)
【步骤】
- 找到与目标用户兴趣相似的用户群;
- 找到这个集合中用户喜欢的,而目标用户没有听说过得商品推荐;
![](https://i-blog.csdnimg.cn/blog_migrate/e3394cdeda40b7e4ab568acfbadfb4a1.png)
- 其中某种计算方法可以表示为,用户u和v的正反馈的商品集合为N(u),N(v)。
![](https://i-blog.csdnimg.cn/blog_migrate/69e6614d33e02488ab2ec2308d8a309c.jpeg)
b) 基于内容的协同过滤算法(ItermCF)
通过用户对商品的行为来计算商品之间的相似度,其假设能够引起用户兴趣的商品,必定与其之前评分高的商品相似。
【步骤】
- 计算商品之间的相似度
- 根据商品的相似度和用户的历史行为,给用户生成推荐列表
![](https://i-blog.csdnimg.cn/blog_migrate/9b67987484971c084ec0d1d3e6e08bab.png)
PS:当然至于要不要针对物品的热门程度和针对用户的活跃度分配权重等,也是可以改进算法的地方。
c) 基于模型的协同过滤算法
机器学习方法等:常用的模型包括LSI、贝叶斯网络等。
四、排序
根据上面算法得到的结果,采用一定的排序规则,得到一系列的列表,推送给用户。目前只知道TopN,后续再调研。
五、评测指标
评价算法好坏的指标。这边我认为是相似度那边的评判,只有相似性搞好了,后面排序才能发挥作用,因此是一个回归问题等。后续还需要调研。