协同过滤-基于邻域的CF_第1页
协同过滤-基于邻域的CF_第2页
协同过滤-基于邻域的CF_第3页
协同过滤-基于邻域的CF_第4页
协同过滤-基于邻域的CF_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

协同过滤

基本思想协同过滤(CollaborativeFiltering,CF):利用集体智慧,借鉴相关人群的观点进行推荐基本假设:过去兴趣相似的用户在未来的兴趣也会相似相似的用户会产生相似的(历史)行为数据偏好相似推荐算法分类Top-N推荐vs.评分预测输入(输出):隐式的0-1偏好vs.显式的评分基于邻域的方法vs.基于模型的方法利用局部(邻域)信息vs.基于全局信息在内存中存储(记忆)整个数据集vs.训练出抽象模型协同过滤基于邻域(记忆)基于用户基于项目图扩散基于模型矩阵分解关联规则机器学习协同过滤的一般步骤收集数据目标:收集能反映用户偏好的数据寻找邻域:相似的用户(或项目)计算推荐结果:根据邻域信息计算推荐结果收集数据计算推荐结果寻找邻域训练模型显式反馈:用户主动地向系统表达其偏好,一般需要用户在消费完项目后进行额外反馈隐式反馈:隐含用户对项目偏好的行为数据,是用户在探索或消费项目过程中正常操作收集用户行为数据用户行为类型特征作用评分

显式整数,取值[0,n]精确的用户偏好点击流

隐式一组用户点击一定程度上反映用户的注意力和喜好

页面停留时间隐式一组时间信息一定程度上反映用户的注意力和喜好保存书签

隐式布尔值,取值0或1较精确的用户偏好标记标签(Tag)隐式一些词语可以分析出用户的情感和兴趣

购买

隐式布尔值,取值0或1明确的用户兴趣对比分析:

数量、质量基于用户的协同过滤:User-CF基于用户的CF(User-CF)基本思想:基于用户对项目的历史偏好找到相邻(相似)的用户将邻居(相似)用户喜欢的项目推荐给当前用户假设:与我兴趣相似的用户喜欢的项目,我也会喜欢关键:寻找相似用户用户相似度度量用户相似度

用户/项目项目a项目b项目c项目d项目e用户A?√?√?用户B√√√用户C√√√用户D√√用户相似度:示例计算假设:用户A购买过项目{b,d},用户B购买过{a,b,c},…

用户项目列表Ab,dBa,b,cCa,b,dDa,e

兴趣度预测

用户/项目项目a项目b项目c项目d项目e用户A?√√用户B√√√用户C√√√用户D√√假设:用户A购买过项目{b,d},用户B购买过{a,b,c},…目标:为用户A推荐项目

推荐排序:p(A,a)>p(A,c)>p(A,e)User-CF:计算推荐结果用户项目列表Ab,dBa,b,cCa,b,dDa,e项目a项目b项目c项目d项目e用户A?√?√用户B√√√用户C√√√用户D√√

基于User-CF的推荐系统

用户购买项目Ab,dBa,b,cCa,b,dDa,eABCDA11/42/30B1/411/21/4C2/31/211/4D01/41/41用户邻域AB,CBA,CCA,BDB,C历史行为数据用户相似度(Jaccard)用户邻域(K=2)用户相似度改进:IUF下面哪一组用户更相似?用户A和B都买过《新华字典》用户C和D都买过《RecommenderSystemsHandbook》逆用户频率(InverseUserFrequency)基本思想:惩罚热门项目两个用户对冷门项目有过同样行为更能说明他们兴趣相似计算:惩罚系数:fi

=

log

(n/ni)n表示总用户数;ni表示对项目i有过正反馈的用户数

User-CF的缺点难以形成有意义的邻域集合很多用户两两之间只有很少的共同反馈而仅有的共同反馈的项目,往往是热门项目(缺乏区分度)随着用户行为数据的增加,用户间相似度可能变化很快离线(offline)算法难以瞬间更新推荐结果

基于项目的协同过滤:Item-CF基于项目的CF(Item-CF)基本思想:基于用户对项目的反馈(偏好)寻找相似(相关)的项目根据用户的历史反馈(偏好)行为,给他推荐相似的项目假设:我过去喜欢某类项目,将来还会喜欢类似(相关)项目关键:寻找相似(相关)项目项目相似(相关)度度量项目相似度

假设:用户A购买过{b,d};用户B购买过项目{a,b,c};…依此构建用户-项目倒排表:项目a被用户B、C、D购买过,…项目相似度:示例计算项目相似度:用户项目列表Ab,dBa,b,cCa,b,dDa,e项目用户列表aB,C,DbA,B,CcBdA,CeDJaccardabcdea11/2b1/210c100d010e0001兴趣度预测

用户/项目项目a项目b项目c项目d项目e用户A?√√用户B√√√用户C√√√用户D√√基于Item-CF的推荐系统

项目相似度(Jaccard)abcdea11/21/31/41/3b1/211/32/30c1/31/3100d1/42/3010e1/30001项目用户列表aB,C,DbA,B,CcBdA,CeD用户-项目倒排表项目邻域(K=3)项目邻域ab,c,eba,c,dca,bda,bea项目相似度改进

基于邻域的评分预测评分预测

用户\项目abcdA533?B3112C3333协同过滤的一般步骤收集数据目标:收集能反映用户偏好的数据寻找邻域:相似的用户(或项目)计算推荐结果:根据邻域信息计算预测评分收集数据计算推荐结果寻找邻域训练模型User-CF:Item-CF:

用户u有过评分的项目集合用户u对项目i的评分余弦相似度(用户)用户u和v的余弦相似度:用户u和v都有过评分的项目集合用户abcdA533?B3112C3333

基于User-CF的评分预测

收集数据计算推荐结果寻找邻域用户abcdA533?B3112C3333

用户u和v都有过评分的项目集合用户u对项目i的评分用户u的评分平均值Pearson相似度(用户)用户u和v的Pearson相似度:

Pearson相似度(用户)

用户abcdA533?B3112C3333预测修正基于用户的CF基于项目的CF

用户\项目abcdA533?B3112C3333评分预测:示例

收集数据计算推荐结果寻找邻域用户\项目abcdA533?B3112C3333基于二部图的协同过滤传统邻域方法的缺点范围限制问题:只考虑和用户有过共同评价(或购买)项目的相邻用户计算空间复杂度较大:需在内存中保存整个用户-项目反馈(评分)集合(矩阵)数据稀疏/冷启动问题:用户一般只会评价(或购买)少量项目基于二部图的协同过滤

用户项目列表Ab,dBa,b,cCa,b,dDa,e激活扩散假设:用户反馈过的项目都具有用户偏好的某种属性用户偏好可以在图中节点间传递基本思想:根据用户偏好的传递性来挖掘用户潜在偏好信息标准的协同过滤:路径长度=3,UA-Ib-UB-Ic扩展路径长度,例如:路径长度=5,

UA-Ib-UB-Ic-UC-Ia用户/项目abcdA--1--1B--111C1--1--激活扩散:给定目标用户图扩散:从目标用户节点出发,沿图中边进行扩散直至达到给定的最大扩散步长确定候选项目集:扩散过程中到达过的所有项目,去除目标用户有过正反馈的项目项目排序:排序依据:首次到达步数和到达次数如果首次到达步数相同(设为k),则根据k步到达次数做进一步的排序激活扩散:系统角度

步数\用户ABCD3a,cd,e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论