推荐系统入门

"recommend"

Posted by zwt on May 27, 2020

概述

  1. 解决信息过载问题,相对应的还有搜索引擎
    • 搜索引擎:有明确目的
    • 推荐系统:没有明确目的,对长尾效应有所缓解
  2. 基于推荐系统可以做到千人千面以及相关条目的推荐
  3. 一般需要经过召回、排序。

相关学者

  1. Yehuda Koren:Netflix Prize的冠军队成员
  2. Hao Ma:社会化推荐系统
  3. Julian McAuley:社交网络、数据挖掘
  4. 郭贵冰:推荐系统开源项目LibRec,国内推荐系统大佬
  5. Hao Wang:深度学习技术提升推荐系统
  6. 何向南:深度学习技术提升推荐系统
  7. Robin Burke:混合推荐
  8. 项亮:推荐系统实践
  9. 谢幸:解释性推荐系统
  10. jiliang tang:社交网络分析提升推荐
  11. 赵鑫:自然语言处理技术提升推荐
  12. 石川:异质信息网络上的推荐
  13. 吴乐:结合社交信息的推荐
  14. 王鸿伟:图机器学习,结合知识图谱进行推荐

相关会议

  1. RecSys

相关综述

  1. 协同过滤
  2. 混合推荐
  3. 社会化推荐
  4. 跨域推荐
  5. 深度学习推荐

数据集

  1. 电影:评分信息、用户人口统计学特征以及电影的描述特征
  2. 社会化推荐:规模小,包含用户对电影评分信息,同时包含用户间的新人社交信息
  3. Douban:规模适中,包含用户对电影评分信息,同时包含用户间的新人社交信息
  4. Epinions:规模大,包含用户对电影评分信息,同时包含用户间的新人社交信息
  5. Yelp:数据集大,适用于所有的推荐任务,包含评价评分、用户信息、商品信息、建议信息
  6. KB4Rec:适合推荐系统和知识图谱结合的需求,将推荐数据中的物品链接到知识图谱中的实体,为推荐系统的物品提供蕴含丰富语义的结构化信息

分类

  1. 召回层:传统、机器学习、深度学习
    • 传统:基于传统的推荐系统理论所涉及到的算法,例如计算用户之间相似度、物品之间相似度等。都可以归属到协同过滤算法,有基于用户的协同过滤、基于物品的协同过滤。基于Es等搜索引擎的检索召回。
    • 机器学习:NMF(Nonnegative Matrix Factor,非负矩阵分解),LFM(Latent Factor Model,基于潜在隐因子模型),FTRL(Follow The Regularized Leader),PersonalRank,BM25、N-gram等
    • 深度学习:DNN、Embedding等方法
  2. 排序层:一般采用点击率预估方法,并将预估得到的概率排序取top-N。机器学习、深度学习
    • 机器学习:可以分为两类、线性模型和树模型
      • 线性模型主要使用逻辑回归
      • 树模型常用的随机森林、Boosting、GBDT、XGBOOST、LGB
      • 但是在使用的时候经常是两种的结合,比如GBDT+LR
    • 深度学习:出于大量数据的出现,逐步成为主流方式,常见DeepFM和xDeepFM。DeepFM也就是深度模型和因子分解机结合使用,xDeepFM主要是对DeepFM中的DCn模型的缺点进行改进。

存在问题

  1. 冷启动:新用户或者新商品
  2. 探索和利用问题:已知用户偏好,如何确定最合理的推荐方式
    • 大部分推荐其感兴趣Exploit
    • 小部分试探新的兴趣Explore
    • 如何平衡
  3. 安全问题:推荐不靠谱或者收集到不靠谱的脏数据
  4. 隐私问题:用户的个人信息等隐私数据的保护机制
  5. 长尾问题或者说是马太效应,热门产品越来越热门,新产品一直没有办法被推荐

方向

  1. 可解释性:基于知识图谱、模型无关的可解释性推荐框架、结合生成模型进行对话式推荐
  2. 结果的多样性和公平性:
  3. 强化学习:推荐系统看做Agent,用户看做environment,商品的推荐看做顺序决策问题。Agent每一次排序选择看做一次试错,用户的反馈,点击,成交等作为从环境中获取的奖赏。