前题
要做推荐系统的前题,就是要信息出现过载, 即如何从成千上万的物品中,选出最合适的物品供用户参考。 如果可供选择的基数仅有几个, 就不需要推荐系统了, 直接把所有选项提供给用户就行了。
推荐技术
基于内容推荐
基于内容相似度的进行推荐,顾名思义,把与你喜欢的内容和相似内容推荐给你。怎么来确定是你喜欢或者相似的内容呢? 通常采用用户有历史的浏览记录和搜索的相关内容。
基于内容的推荐只考虑了对象的本身性质,将对象按标签形成集合,如果你消费集合中的一个则向你推荐集合中的其他对象;
协同过滤推荐
1)基于用户的协同过滤推荐(User-based Collaborative Filtering Recommendation)
先使用统计技术寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的喜好产生向目标用户的推荐。基本原理就是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源
(2)基于物品的协同过滤推荐(Item-based Collaborative Filtering
Recommendation)
【协同过滤】与【基于内容推荐】区别
1、协同过滤算法与基于内容推荐算法所使用的数据维度不同。 【协同过滤】侧重使用用户对于商品的历史交互记录,即用户-商品二维矩阵;而【基于内容推荐】侧重于对用户或者项目的属性信息建模,比如用户的性别、年龄,商品的颜色、大小等属性。对于同一用户而言:【基于内容推荐】需要利用用户的性别、年龄、爱好等组成特征向量来表示;而【协同过滤】需要根据该用户所在矩阵的某一行来进行表示,即利用用户对于所有商品的交互记录来表示。换句话说,协同过滤算法中的用户/商品表示可以看做特殊的基于内容的表示,只不过是把用户的具体内容属性换为了用户的历史行为特征。
2、协同过滤算法与基于内容推荐算法的核心思想不同。 【协同过滤】侧重于从大数据(集体智慧)中寻找某些隐含的模式,即通过用户对于商品的历史交互记录来寻找相似的用户;而【基于内容推荐】则侧重于通过对象的属性信息来进行匹配建模进而寻找相似的用户或者商品。
3、协同过滤算法与基于内容推荐算法的实现技术不同。 【协同过滤】将用户-商品评分二维矩阵当做输入送入模型进行训练进而产生输出,典型的模型为矩阵分解、user-based cf,item-based cf;而【基于内容推荐】侧重将用户或者商品的特征信息作为输入特征,进而送入分类器进行建模,典礼的模型为LR。
4、协同过滤算法与基于内容推荐算法好坏的决定因素不同。 【协同过滤】算法随着用户对于商品的交互记录增多会使得模型能够更精确的捕捉用户的行为习惯,进而使得模型能够不费用额外的人工的方式来提高精度(但他在初期会面临冷启动问题的困扰)。【基于内容推荐】侧重于特征工程,算法的好坏由用户和商品的内容属性所决定,因此需要较强的领域知识,但他的好处是不存在冷启动的问题。
基于人口统计学的推荐
性别 年龄 婚恋育儿感情状态, 语言, 国家,制定推荐规则
基于知识的推荐
根据特定领域知识进行推荐物品。 用函数来估计用户需求(问题描述)与推荐(解决问题)的物品
基于社区的推荐
这种依赖用户朋友的偏好, 一种比较流行的说法是"告诉我你的朋友是谁, 我就知道你是谁。"。 比较QQ查询好像时, 它会推荐你可能认识的朋友。
混合推荐系统
及混合上述合推荐方法