代码视界

Hanpeng Chen的个人博客

CB-基于内容的推荐算法

本文于 1076 天之前发表,文中内容可能已经过时。

在推荐系统领域,一般主要有两种推荐任务:评分预测和Top-N推荐。下面我们简单介绍一下这两种推荐任务:

评分预测:

我们以音乐推荐系统为例,首先用户A和用户B都对某几首歌进行喜欢程度打分,假设两个用户对周杰伦的《稻香》和陈奕迅的《好久不见》有相同的喜欢程度,且打分都不低,那么我们是否可以预测这两个用户有相同的爱好,那么我们可以将用户A喜欢的《青花瓷》这首歌推荐给用户B。

Top-N推荐

假设用户A喜欢的音乐列表里有《十年》、《好久不见》、《稻香》,用户B喜欢的音乐列表里有《同桌的你》、《三国杀》、《逆战》,假设用户C刚开始使用该系统,并将《稻香》添加到喜欢的音乐中,那么我们是不是可以先推荐与用户C喜好相近的用户A喜欢的音乐给用户C,再推荐用户B喜欢的音乐。先推荐关联性高的,将关联性低的放在后面,这就是Top-N推荐。

基于内容的推荐算法(CB)

今天要介绍的CB(Content-Based Recommendations)算法是众多推荐推荐算法中的一种,也是比较早被使用的一种推荐算法。

1、引入Item属性的基于内容的推荐

用户喜欢歌曲A(item),现在有一首新歌曲B,如何确定是否要推荐给用户?

  • 首先我们对所有的音乐进行内容分析和item内容属性索引,即进行特征建立和建模,音乐的特征有:作者、年代、音乐风格等等。

  • 然后我们去计算歌曲A和歌曲B两者的相关性,如何相关性高,则将歌曲B推荐给用户。

这类推荐算法有以下优缺点:

优点:

  • 提升推荐结果的相关性
  • 结果可解释
  • 推荐结果容易被用户感知

缺点:

  • 无个性化
  • 依赖于对item的深度分析

2、引入User属性的基于内容的推荐

引入User属性的基于内容推荐算法加入了用户行为分析和建立用户兴趣模型。假设用户在过去的一段时间里听了爵士乐、DJ、周杰伦的歌,我们可以根据这几个历史标签进行数据建模,建立历史标签的正排倒排的内容分析。与上面不同的是这方面是基于用户的历史行为作分析,我们将其存到数据库,以后为用户推荐音乐时,先查库,然后进行相关的推荐。

这类推荐算法有以下优缺点:

优点:

  • 用户模型刻画了用户兴趣需求
  • 推荐形式多样,具有个性化
  • 结果可解释

缺点:

  • 推荐精度低
  • 马太效应
  • 用户行为稀疏导致覆盖率低
欢迎关注微信公众号: 『前端极客技术』『代码视界』
支付宝打赏 微信打赏

赞赏是不耍流氓的鼓励