推荐系统学习
个性化推荐系统一般由四部分组成:信息采集模块、数据存储模块、推荐模块、推荐结果展示模块
1. 信息采集模块
- 用户信息:性别、年龄 …….
- 物品信息:种类、产地 … …
- 用户对物品的行为信息:显式行为、隐式行为
2. 数据存储模块
3. 推荐模块
推荐算法
1. 基于内容的推荐算法 CB
根据用户过去喜欢过的物品的内容来为其推荐具有相似内容的东西
步骤:
物品内容特征表示:物品的属性获得
结构化属性:可以直接量化的属性
非结构化属性:需要二次解析,比如评论、描述等
文本类的属性信息的特征表示方法:TF-IDF, Word2vec
用户兴趣特征表示:用户的历史偏好记录
计算用户与物品的匹配度:一般使用余弦相似度来计算
- 将用户未接触过且匹配度较高的前N项物品推荐给目标用户
优点:
保证用户的独立性,其他用户的作弊行为不会影响到算法对当前用户的推荐结果
可解释性高,推荐的物品和他兴趣相匹配的特征
推荐新物品,对于从未被用户评分的新物品也可以推荐给用户,并且新物品和老物品被推荐的概率相同
缺点:
物品特征抽取困难
推荐结果同质化严重,只会给用户推荐与他过去喜欢过的物品相似的物品,推荐结果缺乏新颖性
用户冷启动,新用户没有历史偏好记录,无法学习他的兴趣特征
2. 协同过滤推荐算法 CF
2.1 基于邻域的协同过滤
通过用户-物品评分矩阵分析用户(或物品)之间的相似度,利用相似度较大的邻居用户(或邻居物品)预测目标用户对候选物品的评分,并将评分较高的物品推荐给用户。根据相似度计算的主体,基于邻域的推荐算法又可以分为 基于用户的协同过滤 和 基于物品的协同过滤
基于用户的协同过滤:
找到与目标用户口味相近的用户(邻居用户),然后对目标用户未接触过的物品,利用邻居用户评分信息和用户相似度预测目标用户的评分,将预测值排名前 N 项物品推荐给目标用户
基于物品的协同过滤
利用物品之间的相似度(根据用户行为计算而不考虑物品的内容)找到与目标用户过去喜欢的物品最相似的一些物品(邻居物品),利用目标用户已有的评分信息和物品相似度预测目标用户对候选物品的评分,将预测值排名前 N 项物品推荐给目标用户
基于邻域的推荐过程
构建用户-物品评分矩阵
矩阵中的每一项代表用户对物品的评分值
用户行为数据:
显式行为:打分、收藏
隐式行为:点击、浏览
计算相似度:
用户相似度:Pearson 相关系数
物品相似度:改进的余弦相似度
确定邻居集合
K 近邻和阈值过滤
预测评分生成推荐列表
缺点:用户冷启动;物品冷启动;数据稀疏性问题;可扩展性问题
基于模型的协同过滤
用户-物品评分矩阵来训练一个预测模型,然后用该模型来计算评分矩阵中的缺失项
模型:
聚类模型
贝叶斯网络
图模型:将用户行为抽象为一个二部图,该图包含用户和物品两类节点,且只有用户节点和物品节点之间存在边,同种类型的节点间不存在边。用户节点和物品节点之间的边代表用户对物品的行为。
核心思想:计算和目标用户顶点没有直接连边的物品节点(即候选物品)与目标用户节点在图上的相关性。
矩阵分解模型:将用户和物品映射到同一维度的隐空间,通过隐空间的用户隐特征矩阵和物品隐特征矩阵之间的联系预测用户对物品的偏好值
混合推荐算法
推荐结果展示模块
在用户评分数据充足的情况下才能有较好的推荐效果
- 本文作者: Kelly Liu
- 本文链接: http://tiantianliu2018.github.io/2019/09/12/推荐系统学习/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!