首页 理论教育 基于用户的信息协同过滤:第二版

基于用户的信息协同过滤:第二版

时间:2023-10-31 理论教育 版权反馈
【摘要】:基于用户的信息协同过滤又称为最近邻协同过滤,在该推荐算法中,用户通过相互协同来选择信息,即通过用户之间对资源的评分来产生推荐。基于用户的信息协同过滤的基本思想就是:根据目标用户的最近邻居对某个资源的评分来预测目标用户对该资源的评分。基于用户的信息协同过滤算法必须扫描整个用户评分空间,为用户搜索最近邻。

基于用户的信息协同过滤:第二版

基于用户的信息协同过滤(User-based Collaborative Filtering)又称为最近邻(Nearest-Neighbor)协同过滤,在该推荐算法中,用户通过相互协同来选择信息,即通过用户之间对资源的评分来产生推荐。它基于这样一个假设:如果用户对一些项目(资源)的评分比较相似,则他们对其他项目的评分也会比较相似。基于用户的信息协同过滤的基本思想就是:根据目标用户的最近邻居(相似用户)对某个资源的评分来预测目标用户对该资源的评分。协同过滤推荐系统使用统计技术等搜索目标用户的K个最近邻居,然后根据这K个最近邻居对项目的评分预测目标用户对未评分项目的评分,并选择评分最高的前若干项作为推荐结果反馈给用户。预测评分即目标用户u对未评分项目i的评分R(u,i),它根据相似用户u′对项目i的评分R(u′,i)来估计的,实质上是利用K个最近邻居对该项目的评分来加权逼近的,最终找到Top-N个推荐对象。基于用户的信息协同过滤算法必须扫描整个用户评分空间,为用户搜索最近邻。

基于内存的信息协同过滤推荐技术是目前最成功的推荐技术,相比基于模型的协同过滤推荐,该技术具有较高的预测精度。Sarwar等将基于用户的信息协同过滤算法分为三个阶段[7][8]:

(1)输入数据的表示

推荐系统对用户感兴趣的资源进行建模,建立m×n阶“用户—资源”评分矩阵User×Item。其中,Ru,j代表了系统中用户u对资源i的历史评分值;然后根据该矩阵计算用户之间的相似性,m是用户总数,n是资源总数。用户对资源的评分值可以采取二进制方式,例如1表示喜欢(或已访问该资源),0表示不喜欢(或未访问该资源);但更多情况下,评分方式采用类似于酒店星级标准的评分制,例如GroupLens系统采用5分制[9],Fab系统采用7分制等[10],评分从低到高代表用户对该资源从不喜欢到非常喜欢的不同偏好程度。

(2)K-最近邻搜索

为目标用户u,在整个“用户—资源”评分矩阵上搜索与其兴趣偏好最相似的K个最近邻集合U′={u1,u2,…,uK}(u∉U′),并将u与U'中用户uk(1≤k≤K)之间的相似度sim(u,uk)由高到低进行排列。sim(u,uk)的取值范围为[-1,1],该值如果越接近1,表示用户u与uk之间的相似度越高;该值越接近-1,表示用户u与uk具有完全相反的兴趣偏好;该值为0则表示用户u与uk不具有任何相似性。Sarwar等人提出一种基于中心(Center-based)的最近邻确定方法,如图4-2所示[11][12]。通过计算目标用户(图4-2中的中心黑点)与其他用户之间的相似性,选择了以目标用户为中心的K=5个最近用户作为其最近邻集合。

在协同过滤推荐算法中,K-最近邻搜索是整个算法的核心,其查找效率和质量直接影响了推荐系统的有效性。所谓的“K-最近邻”(K-Nearest Neighbor,KNN)是指为目标用户u产生一个按相似度大小排列的用户集合,然后选取最近邻数量K,用来参与预测目标用户的评分值。最近邻数量K对系统的推荐质量有重要影响,其确定方法一般有两种:第一种方法是可以预先设定一个相似度阈值,把那些与当前目标用户的相似度大于该阈值的用户作为最近邻。第二种方法是使用固定的K值,选取与目标用户相似度最大的前K个用户作为最近邻,并用这些相似用户的评分值进行加权预测。第一种方法由于随着候选项目(资源)的数量增加,相似度大于阈值的最近邻数量也会急剧增加,这将导致阈值的选取比较复杂,阈值的过小或过大都会影响推荐质量。因此,在实际应用中,可以结合这两种方法,可以先选取一个合适的阈值t,当相似用户(即与目标用户的相似度大于t的用户)数量超过固定的K值之后,系统仅选取与目标用户相似度最大的前K个用户作为目标用户的最近邻。

图4-2 基于中心的最近邻集合的构建

如前所述,协同过滤推荐算法的关键是通过查找目标用户的最近邻来作为预测的依据,因此度量用户之间的相似度成为了非常重要的步骤,一般采用信息过滤领域中的基于向量空间模型的相似度计算方法或Pearson相关系数。下面介绍在协同过滤推荐算法中三种常用的用户相似性度量方法[6][13][14]。

①基于余弦相似性。

常用于信息检索领域,用来计算文档向量之间的夹角余弦。同样,在信息推荐系统领域中,每个用户对所有项目的评分可以看作一个n维向量,如果用户对项目没有进行评分,则将用户对该项目的评分设为0,用户之间的相似性通过向量间的余弦夹角度量。如果用户i和用户j在n维项空间上的评分分别表示为向量i和j,则相似性sim(i,j)为:

其中,分子为两个用户评分向量的内积,分母为两个用户向量模的乘积。余弦相似度不依赖于向量的幅值。

②Pearson相关系数。(www.xing528.com)

如果用户i和用户j共同评分过的项集合用Iij表示,则相似性sim(i,j)通过Pearson相关系数度量:

公式(4-4)中,Ric表示用户i对项目c的评分,Rjc表示用户j对项目c的评分,分别表示用户i和用户j在Iij上的平均评分,即

③修正的余弦相似性。

在余弦相似性计算中没有考虑不同用户的主观评价尺度问题,修正的余弦相似度公式通过减去用户对项目的平均评分来改善上述的缺陷。设用户i和用户j共同评分过的项目集合用Iij表示,Ii和Ij分别表示用户i和用户j评分过的项目的集合,则sim(i,j)为:

类似地,Ric表示用户i对项目c的评分,Rjc表示用户j对项目c的评分,分别表示用户i和用户j在Iij上的平均评分。因此,最近邻查询的目标就是对每一个目标用户u,在整个用户空间中搜索用户集合U={u1,u2,…,uk},满足u∉U,并且使得u1与u的相似性sim(u,u1)最高,u2与u的相似性sim(u,u2)次之,以此类推。

(3)推荐产生

根据目标用户的k个最近邻居(相似用户)对候选项目的评分信息来预测目标用户对候选项目的评分,并选择预测评分最高的前若干个项目作为推荐结果主动推送给目标用户,即产生Top-N信息资源推荐。目标用户u对未评分项i的预测评分Pui可以通过目标用户u的最近邻居集合U对项目i的评分得到。其中,用于统计预测的公式可以采用下面比较典型的几个启发式函数:

其中,sim(u,u′)是目标用户u与邻居用户u′的相似度,可以根据情况选用余弦相似度、Pearson相关系数和修正的余弦相似度来计算,U是目标用户的最近邻集合,Ru′,i表示邻居用户u′对候选项目i的评分。分别表示目标用户u和邻居用户u′对项目的平均评分。公式(4-8)采用了相似度用户相似度加权方法,将所有邻居用户的加权评分值作为目标用户对项目的评分,但该公式没有考虑不同相似用户在评分时可能采用不同的尺度。因此,公式(4-9)做了相应的改进,在基于相似度加权评分的基础上,采用平均规范化的计算方法来消除不同评分尺度所带来的偏差。通过上述方法可以预测目标用户对所有候选项目的评分,然后选择预测评分最高的Top-N个项目作为推荐结果反馈给当前的目标用户。

在基于用户的协同推荐中,用户对项目的使用频率、兴趣偏好的变化以及用户知识层次等因素对算法的精准度的影响很大。因此,在实际设计中,可以充分考虑这些因素,对基于用户的协同过滤算法进行改进和优化,其改进思路主要包括以下两个方面:①用户的权威性。用户权威性可以体现为用户的身份背景以及其利用(评价)资源项目的频度。例如,在电子商务购物网站中,普通会员和贵宾会员同时购买了某件商品,并均对该商品进行了评价,一般情况下贵宾会员的评价应更具权威性;另外,一个会员在某个商品类型领域中购买了很多商品,显然该会员是购买这类商品的“行家”,他对这类商品的评价更具权威性。因此,在基于用户协同推荐算法设计中,我们可以研究用户权威性对推荐质量的影响,针对不同资源推荐领域,对不同类型的用户赋予相应的权重。②用户偏好情境。用户的偏好是随着时间的变化而改变的,推荐算法应能及时捕捉用户的当前最新偏好。同时,用户偏好具有一定的时间连续性,其随时间t的推移而不断变化,应考虑其随时间推移不断累积的用户偏好情境。因此,通过对当前偏好情境和历史偏好情境更新合成,形成综合用户偏好情境,以便更精准地反映用户的行为偏好。在协同过滤推荐算法中,我们在资源评分预测方法中引入“指数平滑法”,以便能处理协同过滤中用户偏好情境的变化。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈