推荐算法:基于领域的协同滤波
2016-06-06 12:43
330 查看
GroupLens: An Open Architecture for collaborative filtering
Amazon.com Rcommendations item-to-item Collaborative Filtering
本文主要
介绍了Amazon的item-to-item算法相关研究:
传统的User-based方法存在计算消化大,扩展性差的缺点传统的基于cluster的方法,存在准确度不够的缺点(通过细化用户群的画像,得到改善)
基于内容的过滤
提出了item-to-item的方法
(未详细展开介绍)Item-based Collaborative Filtering Recommendation Algorithms
主要内容
分析和提出item-based的算法研究背景
user-based算法的缺点,扩展性差,计算花费大数据稀疏
item-based算法
符号用户:U={u1,......,um}
物品:T={i1,......,in}
Iui:用户U的购买物品列表
相似度
(1)皮尔逊相似度
sim(i,j)=∑u∈U(Rui−R¯i)(Ruj−R¯j)∑u∈U(Rui−R¯i)2√∑u∈U(Ruj−R¯j)2√
Rui=用户u对物品i的评分
R¯i=物品i的平均分
(2) 修正的余弦相似度
sim(i,j)=∑u∈U(Rui−R¯u)(Ruj−R¯u)∑u∈U(Rui−R¯u)2√∑u∈U(Ruj−R¯u)2√
R¯u=用户u的平均打分
用户间的评分差异大于物品见得评分差异,所以item-based算法中,修正余弦相似度效果好。
预测计算
(1) 领域加权和
sim(i,j)表示物品i和物品j的相似度
Nu(i)=用户u已经评分,且和物品i的相似度最高的k个物品
Pui=∑j∈Nu(i)sim(i,j)Ruj∑j∈Nu(i)|sim(i,j)|
(2) 回归
结果
(1) 测试标准
MAE=∑Ni=1|pi−qi|N
(2)k的个数(30左右)
Item-based Top-N Recommendation Algorithms
基于item-based的相似度// 减少了热门产品的影响
wij=|N(i)∩N(j)||N(i)||N(j)|√
|N(i)|是喜欢物品i的用户数
|N(i)∩N(j)| 是同时喜欢物品i和物品j的用户数
兴趣度的计算:用户u对物品j的兴趣度
puj=∑i∈N(u)∩S(j,k)wjirui
N(u)是用户喜欢的物品集合
S(j,K)是和物品j最相似的k个物品的集合
rui是u对i的兴趣(隐性数据集,如用户对物品有过行为,则rui=1)
Empirical Analysis of Predictive Algorithms for Collaborative Filtering
CF方法:
基于内存的算法:操作整个数据库,计算基于模型的算法:学习一个模型,然后做预测
基于内存的算法
* 打分问题:
r̂ ui=∑j∈Nu(i)wijruj∑j∈Nu(i)|wij|Nu(i)是u已经评分且和物品i相似的k个物品
相似度的计算:
基于皮尔逊系数(Person Correlation)
pc(i,j)=∑u∈Uij(rui−r¯i)(ruj−r¯j)∑u∈uij(rui−u¯r)2∑u∈uij(ruj−r¯j)2√
基于修正的余弦相似度
AC(i,j)=∑u∈uij(rui−r¯u)(ruj−r¯u)∑u∈uij(rui−r¯u)2∑u∈uij(ruj−r¯u)2√
其中:用户评分差距大于物品间评分差距,所以item-based中AC的方法效果好。
* 评分预测的模型改进
*不同用户具有不同的评分尺度,用h对评分标准化
r¯ui=h−1[∑j∈Nu(i)wijh(ruj)∑j∈Nu(i)|wij|]均值中心化
z标准化(更优)
h(rui)=rui−r¯iσi(σu=1N∑Ni=1(xi−μ)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√是物品评分的标准差)
=>
r¯ui=r¯u+σi∑j∈Nu(i)wij(rui−r¯j)/σj∑j∈Nu(i)|wij|
*IUF(反用户频率)
解决:用户活跃度对推荐算法的影响,活跃用户对相似度的影响应该小于不活跃的用户λi=log|n||ni|
物品i被赋予权重λi, ni是给物品i打过分的用户u的数量
n 是用户的总数量
添加后的相似度:
AC(i,j)=∑u∈uijλi(rui−r¯u)(ruj−r¯u)∑u∈uijλi(rui−r¯u)2∑u∈uijλi(ruj−r¯u)2√
Top-N的推荐
步骤:计算物品之间的相似度
根据相似度和用户历史行为生成推荐列表
相似度:
wij=|N(i)∩N(j)||N(i)||N(j)|√
|N(i)∩N(j)|是同时喜欢物品i和物品j的用户数
|N(i)|是喜欢物品i的用户数
兴趣度的计算
puj=∑i∈N(u)∩S(j,k)wjirui
N(u)是用户喜欢的物品的集合
s(j,k)是和物品j最相似的k个集合
rui是用户u对物品i的兴趣度(隐反馈数据,如果u对i有过行为,则认为是1)
隐数据集合无法打分标准化
物品相似度的归一化
在item-based方法中
w′ij=wijmaxjwij
=>增加准确度,提高覆盖率和多样性
IUF
wij=∑u∈N(i)∩N(j)1log1+|N(u)||N(i)||N(j)|√
Effective Missing Data Prediction for Collaborative Filtering
最主要的概念:singnificance weighting(重要性加权)当只有少数评分用于计算的时候,会降低相似度的重要性
当两个人的共同评分的物品数 Tuv小于给定的参数 γ,相似度的权重会受到惩戒
w′ij=min{|uij|,γ}γ∗wij
γ>=25可以明显的提高准确率