【推荐系统】常用的推荐算法

推荐系统常用的推荐算法可以分为几个大类,每类算法适用于不同的场景和数据特点。

基于内容的推荐(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/【推荐系统】常用的推荐算法/
作者
Liu Yuhe
发布于
2025年8月24日
许可协议