【推荐系统】常用的推荐算法
推荐系统常用的推荐算法可以分为几个大类,每类算法适用于不同的场景和数据特点。
基于内容的推荐(Content-Based Filtering)
思想:根据用户历史行为(浏览、点击、购买过的物品),找到物品的特征向量,再推荐相似的物品。
- 常用方法:
- TF-IDF、Word2Vec、BERT 等文本特征表示
- 余弦相似度、欧几里得距离
- 优点:不依赖其他用户,能做个性化推荐
- 缺点:容易“信息茧房”,推荐结果缺乏多样性
协同过滤推荐(Collaborative Filtering)
思想:通过用户和用户、物品和物品的交互相似性来推荐。
- 基于用户的协同过滤(UserCF):找出与用户兴趣相似的其他用户,推荐他们喜欢的物品
- 基于物品的协同过滤(ItemCF):找出与用户喜欢的物品相似的其他物品,推荐给用户
- 优点:不需要物品特征信息,只依赖用户行为数据
- 缺点:稀疏性问题(冷启动)
矩阵分解(Matrix Factorization)
思想:将用户-物品评分矩阵分解为低维隐向量,捕捉潜在的兴趣模式。
- 代表方法:
- SVD(奇异值分解)
- SVD++(考虑隐式反馈)
- ALS(交替最小二乘法)
- 优点:推荐效果比传统协同过滤更好,能处理稀疏性
- 缺点:难以解释,冷启动问题依然存在
基于深度学习的推荐
思想:用深度神经网络建模用户和物品的复杂关系。
- 常见模型:
- DNN + Embedding:YouTube DNN 推荐模型
- Wide & Deep(Google Play 应用推荐)
- DeepFM(结合因子分解机和 DNN)
- Graph Neural Networks (GNNs):捕捉用户-物品图结构
- Transformer 推荐模型(序列建模,捕捉用户行为序列)
- 优点:能建模复杂特征交互,效果强大
- 缺点:训练和推理成本高
基于知识的推荐(Knowledge-Based)
思想:利用显式规则或知识图谱进行推荐。
- 方法:
- 基于规则(if-then)
- 基于知识图谱(KGAT、RippleNet 等)
- 适用场景:冷启动、需要可解释性时(如金融、医疗推荐)
混合推荐(Hybrid Recommender)
思想:结合多种方法,取长补短。
- 方式:
- 线性加权(比如 70% 协同过滤 + 30% 基于内容)
- 模型融合(stacking、boosting)
- 多阶段推荐(召回 + 粗排 + 精排)
强化学习推荐(RL-based)
思想:将推荐视为一个序列决策过程,优化长期收益(用户留存、活跃度)。
- 典型方法:
- Contextual Bandit(上下文多臂老虎机)
- DQN、Policy Gradient 等 RL 算法
- 适用场景:需要优化长期目标而不仅是点击率时
📚 总结
- 小数据场景:基于内容、协同过滤
- 中等规模:矩阵分解、FM
- 大规模工业场景:深度学习(Wide&Deep、DeepFM、YouTube DNN)、混合推荐
- 冷启动/可解释性需求:基于知识的推荐
- 长期优化:强化学习推荐
【推荐系统】常用的推荐算法
https://liuyuhe666.github.io/2025/08/24/【推荐系统】常用的推荐算法/