协同过滤推荐算法课件.ppt
《协同过滤推荐算法课件.ppt》由会员分享,可在线阅读,更多相关《协同过滤推荐算法课件.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、协协同同过过滤滤推推荐荐算算法法2011年11月17日http:/http:/ http:/http:/http:/http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/http:/http:/计算机应用技术一:协同过滤算法综述一:协同过滤算法综述二:在个性化服务中的应用二:在个性化服务中的应用计算机应用技术综述综述算法简介算法简介相似性比较方法相似性比较方法用户用户-项目矩阵稀疏性问题及解决办法项目矩阵稀疏性问题及解决办法冷启动问题冷启动问题推荐速度推荐速度推荐策略推荐策略评估方法评估方法 计算机应用技术一 算法简介 随着互联网的普及,
2、网络资源的激增,用户很难快速找到需要随着互联网的普及,网络资源的激增,用户很难快速找到需要的信息。为了提供精确而又快速的推荐的信息。为了提供精确而又快速的推荐,研究者提出了多种推荐算研究者提出了多种推荐算法法,其中协同过滤推荐算法是应用最为成功的一种。其中协同过滤推荐算法是应用最为成功的一种。协同过滤这一概念首次于协同过滤这一概念首次于1992 1992 年由年由GoldbergGoldberg、NicolsNicols、OkiOki及及TerryTerry提出提出,应用于应用于TapestryTapestry系统系统,该系统仅适用较小用户群该系统仅适用较小用户群(比如比如,某一个单位内部某一
3、个单位内部),),而且对用户有过多要求而且对用户有过多要求(比如比如,要求用户显式的要求用户显式的给出评价给出评价).).目前目前,许多电子商务网站都已经使用了推荐系统许多电子商务网站都已经使用了推荐系统,如如AmazonAmazon、CDNowCDNow、DrugstoreDrugstore,当当网上书店和,当当网上书店和Moviefinder Moviefinder 等。等。计算机应用技术一 算法简介 目前主要有两类协同过滤推荐算法目前主要有两类协同过滤推荐算法:基于用户基于用户的协同过的协同过滤推荐算法和滤推荐算法和基于项目基于项目的协同过滤推荐算法的协同过滤推荐算法.基于用户的协同过滤
4、推荐算法基于这样一个假设基于用户的协同过滤推荐算法基于这样一个假设,即如果用户即如果用户对一些项目的评分比较相似对一些项目的评分比较相似,则他们对其他项目的评分也比较相似则他们对其他项目的评分也比较相似.算法根据算法根据目标用户的最近邻居目标用户的最近邻居(最相似的若干用户最相似的若干用户)对某个项目的评对某个项目的评分逼近目标用户对该项目的评分分逼近目标用户对该项目的评分.基于项目的协同过滤推荐算法认为基于项目的协同过滤推荐算法认为,用户对不同项目的评分存用户对不同项目的评分存在相似性在相似性,当需要估计用户对某个项目的评分时当需要估计用户对某个项目的评分时,可以用户对可以用户对该项该项目的
5、若干相似项目目的若干相似项目的评分进行估计的评分进行估计.计算机应用技术一 算法简介 1.1.存在两个问题:存在两个问题:稀疏性:稀疏性:在推荐系统中在推荐系统中,每个用户涉及的信息相当有限每个用户涉及的信息相当有限 ,用户所评价或用户所评价或者购买的产品占产品总数的比例很小者购买的产品占产品总数的比例很小,造成用户造成用户项目偏好矩项目偏好矩阵非常稀疏阵非常稀疏 ,很难找到相似用户很难找到相似用户 ,推荐性能可能很差。推荐性能可能很差。扩展性:扩展性:是指发现相似关系的运算法则通常需要很长的计算时间是指发现相似关系的运算法则通常需要很长的计算时间 ,并且并且时间会随着用户数目和产品数目的增加
6、而增加时间会随着用户数目和产品数目的增加而增加 ,特别是在在线特别是在在线实时推荐中实时推荐中 ,这是一个急需解决的问题。这是一个急需解决的问题。2.2.基于协同过滤技术的推荐过程可分为基于协同过滤技术的推荐过程可分为 3 3个阶段个阶段:数据表述数据表述;发现最近邻居发现最近邻居;产生推荐数据集。产生推荐数据集。计算机应用技术二:相似性比较方法 相似性计算是协同过滤推荐算法中最关键的一相似性计算是协同过滤推荐算法中最关键的一步,传统的相似度计算方法有以下几种:步,传统的相似度计算方法有以下几种:1.1.余弦相似性余弦相似性 把用户评分看作把用户评分看作n n 维项目空间上的向量维项目空间上的
7、向量,用户间的相似性通用户间的相似性通过过向量间的余弦夹角向量间的余弦夹角度量度量,设用户设用户i i和用户和用户j j在在n n 维项目空间上维项目空间上的评分分别表示为向量的评分分别表示为向量,则用户则用户i i和用户和用户j j之间的相似性为之间的相似性为:计算机应用技术二:相似性比较方法2.2.修正的余弦相似性修正的余弦相似性 余弦相似性度量方法中没有考虑余弦相似性度量方法中没有考虑不同用户的评分尺度不同用户的评分尺度问题问题,修正的余弦相似性度量方法通过减去用户对项目的平均评分来修正的余弦相似性度量方法通过减去用户对项目的平均评分来改善上述缺陷。改善上述缺陷。计算机应用技术二:相似性
8、比较方法3.3.相关相似性相关相似性 设经用户设经用户i i和用户和用户j j共同评分的项目集合共同评分的项目集合用用IijIij表示表示,则用户则用户i i 和用户和用户j j 之间的相似性之间的相似性sim(i,j)sim(i,j)通过通过Pearson Pearson 相关系数度相关系数度量:量:计算机应用技术二:相似性比较方法 余弦相似性度量方法把用户评分看作一个向量余弦相似性度量方法把用户评分看作一个向量,用向量的余弦夹用向量的余弦夹角度量用户间的相似性角度量用户间的相似性,然而没有包含用户评分的然而没有包含用户评分的统计特征统计特征;修正的余弦相似性方法在余弦相似性基础上修正的余弦
9、相似性方法在余弦相似性基础上,减去了用户对项目减去了用户对项目的平均评分的平均评分,然而该方法更多体现的是然而该方法更多体现的是用户之间的相关性用户之间的相关性而非相似性而非相似性,相关性和相似性是两个不同的概念相关性和相似性是两个不同的概念,相似性反映的是聚合特点相似性反映的是聚合特点,而相关而相关性反映的是组合特点性反映的是组合特点;相似相关性方法相似相关性方法,依据双方共同评分的项目进行用户相似性评价依据双方共同评分的项目进行用户相似性评价,如果用户间的所有评分项目均为共同评分项目如果用户间的所有评分项目均为共同评分项目,那么相似相关性和修那么相似相关性和修正的余弦相似性是等同的正的余弦
10、相似性是等同的.用户对共同评分项目的评分确实能很好地用户对共同评分项目的评分确实能很好地体现用户的相似程度体现用户的相似程度,但由于用户评分数据的但由于用户评分数据的极端稀疏性极端稀疏性,用户间共用户间共同评分的项目极稀少同评分的项目极稀少,使得相似相关性评价方法实际不可行使得相似相关性评价方法实际不可行.计算机应用技术三:用户-项目矩阵稀疏性问题及解决办法1.1.矩阵填充技术矩阵填充技术 最简单的填充办法就是将用户对未评分项目的评分设为一个固最简单的填充办法就是将用户对未评分项目的评分设为一个固定的缺省值定的缺省值,或者设为其他用户对该项目的平均评分或者设为其他用户对该项目的平均评分.然而用
11、户对然而用户对未评分项目的评分不可能完全相同未评分项目的评分不可能完全相同,这种办法不能从根本上解决稀疏这种办法不能从根本上解决稀疏性问题性问题.能够产生较理想的推荐效果能够产生较理想的推荐效果,矩阵填充技术主要有以下几类矩阵填充技术主要有以下几类:1.1 BP 1.1 BP 神经网络神经网络 BP BP 神经网络对复杂的输入输出关系有比较强大的学习和建模能神经网络对复杂的输入输出关系有比较强大的学习和建模能力力,能够有效地处理非完整信息。能够有效地处理非完整信息。BPBP神经网络是一个神经网络是一个3 3层网络层网络,分别为分别为输入层、隐含层和输出层输入层、隐含层和输出层.计算机应用技术三
12、:用户-项目矩阵稀疏性问题及解决办法 BP BP 神经网络把用户对各个项目的评分看作训练样本神经网络把用户对各个项目的评分看作训练样本,分别输入到输入分别输入到输入层的各个单元中层的各个单元中;这些单元经过加权这些单元经过加权,输出到隐含层的各个单元输出到隐含层的各个单元;隐含层隐含层的加权输出再经过一次加权作为输出层的单元输入的加权输出再经过一次加权作为输出层的单元输入;最后由输出层产生给最后由输出层产生给定样本的预测值定样本的预测值.这种矩阵填充技术对这种矩阵填充技术对噪声数据有较强的承受能力噪声数据有较强的承受能力,可以有可以有效效降低用户降低用户-项目矩阵的稀疏性项目矩阵的稀疏性,达到
13、提高推荐精度的目的达到提高推荐精度的目的.然而然而,BP,BP 算法算法的缺点为存在随着训练时间的增加的缺点为存在随着训练时间的增加,收敛速度有变慢的趋势收敛速度有变慢的趋势,以致会以致会延长最延长最近邻居的查找时间近邻居的查找时间.计算机应用技术三:用户-项目矩阵稀疏性问题及解决办法1.2 Naive Bayesian 1.2 Naive Bayesian 分类方法分类方法 Naive Bayesian Naive Bayesian 分类方法基于分类方法基于概率模型概率模型进行分类进行分类,可以使用该可以使用该方法估算一个实例属于某一类的概率方法估算一个实例属于某一类的概率,在得到某一个项目
14、所属的分在得到某一个项目所属的分类之后类之后,可以利用此分类中其他项目的评分情况来预测未评分项目可以利用此分类中其他项目的评分情况来预测未评分项目的评分的评分,从而可以填充用户从而可以填充用户-项目矩阵项目矩阵,降低稀疏性降低稀疏性.1.3 1.3 基于内容的预测基于内容的预测 基于内容的预测又称基于基于内容的预测又称基于属性属性的预测或基于的预测或基于语义语义的预测的预测,该方法该方法根据项目的属性联系以及项目所处的地位、相互关系和项目元信息根据项目的属性联系以及项目所处的地位、相互关系和项目元信息等内容计算项目之间的内容相似性等内容计算项目之间的内容相似性,而而不依赖于用户对项目的评分不依
15、赖于用户对项目的评分.计算机应用技术三 用户-项目矩阵稀疏性问题及解决办法 得到项目之间的内容相似性后得到项目之间的内容相似性后,选择与目标项目相似性最大的选择与目标项目相似性最大的若干个项目进行评分预测若干个项目进行评分预测,用预测评分填充用户用预测评分填充用户-项目矩阵中的空项目矩阵中的空项项,降低其稀疏性降低其稀疏性.由于不同类别的项目之间在属性描述上有较由于不同类别的项目之间在属性描述上有较大差别大差别,因此基于语义的方法无法计算跨类别的项目之间的相似因此基于语义的方法无法计算跨类别的项目之间的相似性性,也就无法进行跨类别的评分预测也就无法进行跨类别的评分预测.另外基于语义的相似性计算
16、另外基于语义的相似性计算需要提取项目的属性特征需要提取项目的属性特征,涉及到领域知识涉及到领域知识,应用面较窄应用面较窄.2.2.矩阵降维技术矩阵降维技术-奇异值分解奇异值分解 通过降低用户通过降低用户-项目矩阵的维数解决矩阵的稀疏性问题项目矩阵的维数解决矩阵的稀疏性问题,奇异奇异值分解值分解(Singular Value Decompo sition,SVD)(Singular Value Decompo sition,SVD)是一种矩阵分解是一种矩阵分解技术技术,它深刻揭露了矩阵的内部结构它深刻揭露了矩阵的内部结构,它可以将一个它可以将一个mn(mn(假设假设m m n)n)的矩阵的矩阵R
17、 R分解为分解为三个矩阵三个矩阵U,S,VU,S,V,大小分别为大小分别为mm,mn,nn.mm,mn,nn.计算机应用技术三 用户-项目矩阵稀疏性问题及解决办法 协同过滤推荐系统中协同过滤推荐系统中SVD SVD 的的优势优势主要体现在主要体现在:用户用户-项目矩阵稀项目矩阵稀疏性问题得到很好的解决疏性问题得到很好的解决;对用户对用户-项目矩阵降维后项目矩阵降维后,运算复杂度运算复杂度大大降低大大降低,系统的扩展性得到提升系统的扩展性得到提升;用户间和项目间的潜在关系用户间和项目间的潜在关系将得到更好的发掘将得到更好的发掘,有利于提高推荐精度有利于提高推荐精度.SVD.SVD 方法的方法的缺
18、点缺点为为:降降维会导致用户维会导致用户-项目矩阵中的信息丢失项目矩阵中的信息丢失,有的情况下会影响推荐精有的情况下会影响推荐精度度,通过选取合适的保留维数通过选取合适的保留维数k,k,可以在一定程度上减小这种影响可以在一定程度上减小这种影响.总的来说总的来说,SVD,SVD 方法不仅能够解决矩阵稀疏性问题方法不仅能够解决矩阵稀疏性问题,而且对于而且对于系统的扩展性和推荐精度的提高也有作用系统的扩展性和推荐精度的提高也有作用.计算机应用技术四:冷启动问题1)1)在在U ser-based U ser-based 系统中系统中,对于一个新的用户来说对于一个新的用户来说,系统中没有系统中没有该用户
19、的任何购买信息记录该用户的任何购买信息记录,因此无法找到其最近邻居因此无法找到其最近邻居,从而无从而无法进行推荐法进行推荐.2)2)在在 Item-based Item-based 系统中系统中,当系统中加入一个新的项目时当系统中加入一个新的项目时,该该项目没有评分记录项目没有评分记录,无法找出其最近邻居并进行推荐或评分预测无法找出其最近邻居并进行推荐或评分预测.协同过滤推荐系统中存在的这种问题被称为冷启动问题协同过滤推荐系统中存在的这种问题被称为冷启动问题.为了解决为了解决冷启动问题冷启动问题,普遍采用普遍采用基于内容的最近邻居查找技术基于内容的最近邻居查找技术,其基本思想是其基本思想是:1
20、)1)利用利用聚类技术将用户按照属性相似性聚类聚类技术将用户按照属性相似性聚类,从项目属性的角度从项目属性的角度找到新项目的最近邻居找到新项目的最近邻居;2)2)用新项目用新项目k k的所有的所有最近邻居的平均评分最近邻居的平均评分来代替已有评分的平均来代替已有评分的平均值值.例如:先对项目进行聚类,得到项目在属性特征上的相似关系群,然后例如:先对项目进行聚类,得到项目在属性特征上的相似关系群,然后与用户与用户-项目评分矩阵中的协同相似关系群组合。项目评分矩阵中的协同相似关系群组合。计算机应用技术五:推荐速度 电子商务系统中电子商务系统中,由于由于项目项目在一定时期内通常是相对稳定的在一定时期
21、内通常是相对稳定的,项目相似性的计算可以项目相似性的计算可以离线进行离线进行,这就使得与基于用户的协同过这就使得与基于用户的协同过滤推荐系统相比滤推荐系统相比,基于项目的协同过滤推荐系统的运行效率较基于项目的协同过滤推荐系统的运行效率较高高.随着用户数和项目数的增多随着用户数和项目数的增多,协同过滤推荐算法的计算量也协同过滤推荐算法的计算量也不断增大不断增大.通常采用通常采用聚类技术提高推荐速度聚类技术提高推荐速度,因为使用聚类技因为使用聚类技术可以术可以大大缩小用户或项目的最近邻居搜索范围大大缩小用户或项目的最近邻居搜索范围,从而提高推从而提高推荐的实时性荐的实时性.计算机应用技术五:推荐速
22、度1.1.EM(Expectation-Maximization)EM(Expectation-Maximization)算法算法 EM EM算法通过估计用户或项目属于某一类的概率对用户或项算法通过估计用户或项目属于某一类的概率对用户或项目进行聚类目进行聚类.在实际的聚类中在实际的聚类中,不同的用户可能会喜欢同一个项目不同的用户可能会喜欢同一个项目,根据根据 EM EM 算法算法,这样的项目可能会同时出现在两个不同的聚类中这样的项目可能会同时出现在两个不同的聚类中.如如果要求每个用户或项目只能属于一个用户分类或项目分类果要求每个用户或项目只能属于一个用户分类或项目分类,EM,EM 算法就不再适
23、用算法就不再适用.计算机应用技术五:推荐速度2.2.k-meansk-means聚类算法聚类算法 以项目聚类为例以项目聚类为例,k,k-means means 聚类算法通过用户对项目评分聚类算法通过用户对项目评分的相似性对项目进行聚类并生成相应的聚类中心的相似性对项目进行聚类并生成相应的聚类中心,然后计算目然后计算目标项目与各聚类中心的相似度标项目与各聚类中心的相似度,选出与目标项目相似度最高的选出与目标项目相似度最高的k k 个聚类中心对应的聚类个聚类中心对应的聚类,在这在这k k 个聚类中搜索目标项目的最近个聚类中搜索目标项目的最近邻居邻居,从而达到在尽量少的项目空间中找到目标项目的大部分
24、从而达到在尽量少的项目空间中找到目标项目的大部分最近邻居最近邻居.K.K-means means 聚类算法的聚类算法的优点优点在于不同聚类中的项目之在于不同聚类中的项目之间有较明显的区别间有较明显的区别,而且算法的扩展性相对较好而且算法的扩展性相对较好.缺点缺点是聚类是聚类数目数目k k 需要事先给定而且不同的应用中需要事先给定而且不同的应用中k k 值是不同的值是不同的,难于选难于选取取;另外初始聚类中心是随机选取的另外初始聚类中心是随机选取的,对于同一组数据对于同一组数据,可能可能因为初始聚类中心的不同而产生不同的聚类结果因为初始聚类中心的不同而产生不同的聚类结果.计算机应用技术五:推荐速
25、度3.3.Gibbs Sampling Gibbs Sampling 方法方法 Gibbs Sampling Gibbs Sampling 方法与方法与EM EM 算法类似算法类似,不同的是不同的是Gibbs Gibbs SamplinSampling g方法基于方法基于Bayesian Bayesian 模型模型.Gibbs Samp ling.Gibbs Samp ling 算法有较算法有较好的聚类效果和很强的扩展性好的聚类效果和很强的扩展性,但是其算法复杂度较大但是其算法复杂度较大.聚类聚类过程相对比较耗时过程相对比较耗时,但是可以离但是可以离线进行,线进行,而且目标项目的最近而且目标项
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 协同 过滤 推荐 算法 课件
限制150内