推荐系统学习笔记

基本概念

推荐系统本质上是要解决谁在什么时间什么地点干了什么事情,以及为啥要干这件事情,例如小明在晚上休闲时间,上网看小说,在阅读的军事小说下方,向他推荐了坦克大战游戏,并且告诉小明“纸上谈兵,不如亲身实践”。其中,向谁推荐什么是推荐系统要解决问题的核心。
推荐系统学习笔记

艾伦设计了排队打印的场景,一个实验者想要插队,通过不同的请求方式,观测插队成功的概率。他做了三组实验:
第一组:请求话术“打搅了,我有5页资料要复印,能否让我先来?”,有60%的成功概率。
第二组:请求话术中加入合理的理由“因为……(如赶时间)”,成功率上升到94%。
第三组:请求话术变成无厘头的理由“我能先用下复印机吗?因为我有东西要印。”,成功率仅略有下降,达到93%。

由此可见,即使我们的理由不太恰当,用户接受的概率也会增加。

常用的推荐算法

常用的推荐系统算法实现方案有三种:

1、协同过滤推荐(Collaborative Filtering Recommendation):该算法的核心是分析用户的兴趣和行为,利用共同行为习惯的群体有相似喜好的原则,推荐用户感兴趣的信息。兴趣有高有低,算法会根据用户对信息的反馈(如评分)进行排序,这种方式在学术上称为协同过滤。协同过滤算法是经典的推荐算法,经典意味着简单、好用。协同过滤算法又可以简单分为两种:

  • a)基于用户的协同过滤:根据用户的历史喜好分析出相似兴趣的人,然后给用户推荐其他人喜欢的物品。假如小李,小张对物品A、B都给了十分好评,那么可以认为小李、小张具有相似的兴趣爱好,如果小李给物品C十分好评,那么可以把C推荐给小张,可简单理解为“人以类聚”。
  • b)基于物品的协同过滤:根据用户的历史喜好分析出相似物品,然后给用户推荐同类物品。比如小李对物品A、B、C给了十分好评,小王对物品A、C给了十分好评,从这些用户的喜好中分析出喜欢A的人都喜欢C,物品A、C是相似的,如果小张给了A好评,那么可以把C也推荐给李,可简单理解为“物以群分”。

2、基于内容过滤推荐(Content-based Filtering Recommendation):基于内容的过滤是信息检索领域的重要研究内容,是更为简单直接的算法,该算法的核心是衡量出两个物品的相似度。首先对物品或内容的特征作出描述,发现其相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。比如,小张对物品A感兴趣,而物品A和物品C是同类物品,可以把物品C也推荐给小张。

3、组合推荐(Hybrid Recommendation):以上算法都各有优缺点,比如基于内容的过滤推荐是基于物品建模,在系统启动初期往往有较好的推荐效果,但是没有考虑用户群体的关联属性;协同过滤推荐考虑了用户群体喜好信息,可以推荐内容上不相似的新物品,发现用户潜在的兴趣偏好,但是这依赖于足够多且准确的用户历史信息。所以,实际应用中往往不只采用某一种推荐方法,而是通过一定的组合方法将多个算法混合在一起,以实现更好的推荐效果,比如加权混合、分层混合等。具体选择哪种方式和应用场景有很大关系。