个性化推荐算法------基于内容的推荐和基于邻域的协同过滤

这篇文章主要讨论了个性推荐算法中,基于内容推荐和基于邻域的协同过滤推荐的分析比较。

数据集:用户对电影的历史评价记录,只有喜欢与不喜欢,喜欢用1表示,不喜欢用2表示,格式如下:

用户历史电影评分记录
用户id          电影1        电影2       电影3       电影… …         
001100……
002011……
003110……
……101……

现要根据用户的历史电影评分记录,预测目标用户(为每个用户都要预测)会为目标电影评价多少分(目标电影为用户为看过的电影)。

一.  基于内容的推荐

    Content-Based属于传统领域的个性推荐算法,特点是只利用用户自身的历史行为进行预测。比如预测用户001喜不喜欢电影i,就是利用用户001的历史评分,通过找电影i和历史电影的相似性判断用户是否喜欢电影i,此过程和其他用户无关。其具体过程如下:

    1. 电影特征值抽取

  每个电影都应该有信息表,包括导演,演员,出品人等信息,那么我们就可以提取出一个能够表示电影的向量,该向量中元素就是从电影中抽取的特征值。

特征值抽取的难点在于如何把像导演,演员这些非结构化数据转换为结构化数据,使得可以进行衡量计算。

    2. 电影间相似度计算

利用提取的特征值组成的向量,计算目标电影i和该用户历史电影的相似度,常见计算方法包括:皮尔逊相关系数,cosine相似度,欧几里德距离等。

    3. TOPk选取

根据目标电影i和历史电影相似度进行排序,选取排名靠前的k个电影(通常k取奇数),汇总用户喜欢和不喜欢的个数,若喜欢大于不喜欢的个数,就表示用户对目标电影喜欢。

该方法的优点

    1. 可以很好解决冷启动问题(出现项目列表中为出现的新电影)。当有新电影加入列表后,只要把其表示向量抽取出来,就可以和历史电影进行相似度计算,然后就可以得到计算结果。

    2. 完全是根据用户自身的行为来进行推荐,不会受到其他用户的干扰。可能出现其他用户刷单等情况,不符合实际。

该方法缺点

    1. 无法为新用户推荐。因为推荐依据的都是用户历史行为数据。

    2.即使用户凭推荐选择电影,那么后续给其推荐的都是和他之前选择的电影相关的,不能体现根据其兴趣进行推荐。

   3. 特征值比较难选取。像电影的导演,演员这些非结构化数据如何转换为结构化数据是个难点。


二. 基于邻域的协同过滤推荐

    2.1 基于用户的协同过滤(UserCF)

    思想就是找用户间相似度,然后取与目标用户相似的topk个用户,找出他们对目标电影的评分,取加权均值得到目标用户对目标电影的评分。

    注意:计算用户相似度时,得找两个用户都看过的电影集合。

    2.2 基于项目的协同过滤 (ItemCF)

    找电影间相似度,排序取top1,那么认为用户对目标电影的评分就等价于对最相似电影的评分。

   注意:计算电影间相似度时,用户得对这两部电影都评价过。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值