推荐系统基础知识整理算法
- 优势:
- 简单直观;解释性强
- 开发以及维护简单
- 缺点:
- 结果单一
- 马太效应:马太效应是出自《圣经 马太福音》的一个典故,社会学中的一种强者越强弱者越弱的现象,也就是说推荐系统是否会使被关注的事物更加被关注,被忽视的事物更加被忽视。经常使用的协同过滤就有马太效应。比较简单的测试指标就是信息熵。
- 较为依赖主观经验
- 优势(同上)
- 缺点:
- 结果单一
- 马太效应
- 热门推荐须要考虑的因素:
- 时效性:热门推荐的时效性很好理解。
- 推荐物品的质量:推荐物品的质量表示推荐给用户须要考虑用户对该物品是否感兴趣。
- 用户与用户行为的权重:用户和用户行为的权重表示某个用户屡次访问与某个用户不多访问二者是有很大的区别的
利用用户的已知属性或者兴趣偏好,与物品内容的属性进行匹配,以此为用户推荐新的感兴趣的物品。测试
- 基于用户画像的推荐
- 基于关键词向量的推荐
- 优势:
- 用户之间是相互独立的
- 可解释型较强
- 能够推荐新的物品
- 缺点:
- 缺少新颖度
- 很难对新用户进行推荐。这里能够考虑给热门推荐;或者根据用户的地域信息给出相应的推荐;或者根据用户实时行为数据进行实时推荐
- 基于近邻的协同过滤:他关注的是用户之间的类似度或者是物品之间的类似度。
- Item-based
- 定义:基于Item-based推荐表示的是根据物品的类似性,某个用户买了某个物品后,经过物品的类似性获得一些与该物品相相似的商品推荐给该用户。
- 应用场景:
- 当Item的数量远小于User的数量时,考虑用Item-based
- 当Item的比较稳定时,考虑用户Item-based
- User-based
- 定义:基于user-based推荐表示的是根据用户的类似度,某个用户购买了相关的商品时,与该用户类似的用户也购买了那些物品推荐给他。
- 应用场景:
- 当user的数量远小于Item的数量时,考虑用User-based
- 当Item不是特别稳定时,考虑用User-based
- 基于模型的协同过滤:将物品和用户映射到相同的语义空间进行计算类似度。主要用到的方法就是矩阵分解。
- 因子分解
- SVD,SVD++
- ALS矩阵分解(Spark MLlib)
应用矩阵分解的缘由是因为用户和物品构成的矩阵在实际的应用场景中,每每都是稀疏的或者存在缺失值的状况。这个时候很难补充或者很难准确的给出相应的物品推荐,而且复杂度较高。经过矩阵分解能够解决这类问题。在FM算法当中也有用到相似的原理。spa
推荐系统的思惟导图以下:blog

- 余弦类似度
- 皮尔森相关系数
- jaccard类似系数
- 召回
- 根据用户长期稳定的兴趣和即时的目标,获得能够推荐给用户的物品候选集
- 结合具体的业务逻辑进一步获得候选集
- 排序
- 获得候选集后,须要对候选集中的物品进行排序。
- 传统的排序方式:相关系数,重要性
- point-wise,pair-wise,list-wise
-
这里排序的模型能够考虑使用的特征类型:用户特征、物 品特征、用户-物品交互 特征、场景特征等 排序
- 过滤/规则匹配
- 过滤一些bad case
- 根据用户的历史行为过滤一些用户已经购买过的物品
- 正确率,召回率,F1值,ROC曲线,AUC值
- 转化率相关的指标
- 销售额
- 排序相关的指标
- 用户体验相关的指标(这块很差衡量)
- 覆盖率:用户的覆盖率和物品的覆盖率