基于近邻的推荐方法
推进系统要找到的是最优项(Best Item)和最优N项(Top-N)
基本概念
符号定义说明
用户集U(user),物品集I(item),评价分数集合S(score)
rui 是用户u对i的评分
Iu 是用户u评分过的物品集合
Ui 是对i打过分的用户集合
Iuv 同时被用户u和v打过分的物品集合
Uij 同时对物品i和j打过分的用户集合
常用准确率评判指标
平均绝对误差(MAE)
MAE(f)=1|Rtest|∑rui∈Rtest|f(u,i)−tui|
均方根误差(RMSE)
RMSE(f)=1|Rtest|∑rui∈Rtest(f(u,i)−tui)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√
对于2元的评分用准确率召回率
协同过滤概述
如果用户u和用户v在其他物品上的评分很相似,呢么用户u对新物品i的评分和用户v对物品i的评分也是相似的
若其他用户v对物品i和j的评分相似,则用户u对对物品i和j的评分相似
基于近邻的推荐有2种方法,基于用户和基于物品
- 基于用户
- 评估用户u对物品i的偏好程度,利用已经对i评价过,而且和用户u有相似评级习惯的用户,把这些用户作为近邻来预测用户u对物品i的偏好
- 基于物品
- 基于用户u对给与物品i相似的物品的评分,来预测用户对i的评分,相似物品指的是被一些用户评价相似的物品
基于近邻的方法直接应用评分数据进行预测,基于模型的推荐利用评分来学习预测模型
基于模型的方法常用模型
- 贝叶斯聚类(Bayesian Clustering)
- 潜在语义分析(Latent Semantic Analysis)
- 潜在狄利克雷分布(Latent Dirichlet Allocation)
- 最大熵(Maximum Entropy)
- 玻尔兹曼机(Boltzmann Machines)
- 支持向量机(Support Vector Machine)
- 奇异值分解(Singular Value Decomposition)
基于邻近方法的优势
- 简单:可调参数只有一个,最近邻居数
- 合理性:近邻用户或相似物品给推荐结果直观的解释
- 高效性:相比基于模型的推荐不需要训练,但是推荐阶段消耗大于基于模型的推荐,可以离线预计算近邻提高效率
- 稳定性:用户,物品,评分增加的时候,对推荐结果影响较小。增加物品的评分只需要重新计算相关的评分即可,不用全局重新计算
推荐策略
基于用户评分
预测评分 r̂ ui 可以利用用户u的k近邻,即与用户u相似度w最高的k个用户且这些用户对物品i有打分 Ni(u) 计算
r̂ ui=1|Niu|∑v∈Ni(u)rvi
这个计算方法存在问题:每个用户评价相似程度不同,就是说和用户u更像的用户,他的评分代表性更强,所以需要加入相似程度作为权重,并进行权重标准化
r̂ </