推荐系统相关算法
1. 基于内容的推荐算法CB
- Content-based Recommendations (CB)根据==推荐物品或内容的元数据==,发现物品的相关性,再基于用户过去的喜好记录,为==用户推荐相似的物品==。
- 通过抽取物品内在或者外在的特征值,实现相似度计算。
- 比如一个电影,有导演、演员、用户标签UGC、用户评论、时长、风格等等,都可以算是特征。
- 将用户(user) 个人信息的特征(基 于喜好记录或是预设兴趣标签),和物品(item)的特征相匹配,就能得到用户对物品感兴趣的程度
- 在一-些电影、音乐、图书的社交网站有很成功的应用,有些网站还请专业的人员对物品进行基因编码/打标签(PGC)
1.1 基于内容推荐算法的数据获取和预处理
-
对于物品的特征提取- -- ==打标签(tag)==
-
专家标签(PGC)
-
用户自定义标签(UGC)
-
降维分析数据,提取隐语义标签(LFM)
-
-
对于文本信息的特征提取- --==关键词==
-
分词、语义处理和情感分析(NLP)
-
潜在语义分析(LSA)
-
1.2 相似度计算
相似度的评判,可以用距离表示,而一般更常用的是“余弦相似度”
- 欧式距离
- 余弦相似度
2 基于协同过滤和基于内容过滤的区别
基于内容 (Content based, CB)主要利用的是用户评价过的物品的内容特征,而CF方法还可以利用其他用户评分过的物品内容
- CF 可以解决CB的一些局限
- 物品内容不完全或者难以获得时,依然可以通过其他用户的反馈给出推荐
- ==CF基于用户== 之间对物品的评价质量,避免了CB仅依赖内容可能造成的对物品质量
判断的干扰 - ==CF推荐不受内容限制==, 只要其他类似用户给出了对不同物品的兴趣,CF就可以给
用户推荐出内容差异很大的物品(但有 某种内在联系)分为两类:基于近邻和基于模型
- 分为两类
- 基于近邻
- 基于模型
TopN推荐的预测准确率,一般通过2个指标度量:
准确率(precision)
召回率(recall)
R(u)是根据用户在训练集上的行为给用户做出的推荐列表,T(u)是用户在测试集上的行为列表。
TopN推荐更符合实际的应用需求,比如预测用户是否会看一部电影,比预测用户看了电影之后会给它什么评分更重要。
3)覆盖率
覆盖率(coverage)是描述一个推荐系统对物品长尾的发掘能力。
最简单的定义是,推荐系统推荐出来的物品占总物品的比例。
假设系统的用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u),覆盖率公式为:
覆盖率是内容提供者关心的指标,覆盖率为100%的推荐系统可以将每个物品都推荐给至少一个用户。
除了推荐物品的占比,还可以通过研究物品在推荐列表中出现的次数分布,更好的描述推荐系统的挖掘长尾的能力。
如果分布比较平,说明推荐系统的覆盖率很高;如果分布陡峭,说明分布系统的覆盖率较低。
信息论和经济学中有两个著名指标,可以定义覆盖率:
信息熵
p(i)是物品i的流行度除以所有物品流行度之和。
基尼系数(Gini Index)