基于用户特征和用户兴趣变化的协同过滤推荐

时间:2022-10-12 07:11:40

摘要:协同过滤系统是目前最成功的一种推荐系统,但是传统的协同过滤算法没有考虑用户兴趣会随时间发生变化以及类似特征用户对用户相似度精度具有影响等因素,导致推荐质量较差。该文结合用户兴趣变化和用户特征两个因素,提出了新的用户之间相似度计算方法用来提高协同过滤推荐质量。

关键词:协同过滤;兴趣变化;用户特征

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)34-1730-03

Collabrative Filtering Recommendation Based on Users' Feature and Users' Drifting Interest

WU Ting, XIONG Qian-xing, HE Xi-chun

(Department of Computer Science and Technology, Wuhan University of Technology, Wuhan 430063, China)

Abstract: Collaborative filtering(CF) is the most successful recommended system to date, but traditional CF algorithm does not consider the problem of drifting users' interests and users' feature which often results in poor recommendation. This paper combined two factors of drifting users' interests and user' feature. A new method of computing similarities between different users is developed which can enhance accurate of commendation.

Key words: collaborative filtering; interest drift; users' feature

1 引言

协同过滤系统是目前最成功的推荐系统[1],它用来预测某个特定用户是否会喜欢某个特定的商品,或用来确定用户最感兴趣的N件商品,很多电子商务网站都采用了该技术。协同过滤推荐系统主要有基于用户的协同过滤推荐系统和基于项目的协同过滤推荐系统[2-3]。其中,基于项目的协同过滤根据用户-项目矩阵求出不同项目间的关系,然后利用这些关系进行推荐,给用户的推荐结果是通过发现与用户喜欢的项目相似的项目来完成的。如果用户曾经对某些项目感兴趣,那么与之相类似的项目用户也会感兴趣。但是,用户的兴趣变化经常会导致推荐的质量较差。同时,传统的推荐算法也没有考虑用户的个性特征对用户相似性的影响。往往具有相似特征的用户兴趣取向也具有相似性,如不同年龄层次,不同性别的人兴趣层次不同,属于不同的类别。用户的个性特征可以进一步修正用户间的相似性度量。因此,该文提出了将用户兴趣变化和用户特征相结合的方法来提高推荐的质量。

2 基于用户的CF算法

2.1 基于用户CF的思想

基于用户的协同过滤方法主要分为三个步骤:

1) 计算各用户与目标用户a之间的相似程度,可以使用皮尔森相关系数或余弦相似性等度量方法,本文采用广泛使用的皮尔森相关系数

■(1)

其中,sim(i,j)为用户i和用户j之间的相似度,Ri,k,Ri,k分别表示用户i和用户j对项目k的评分,Ri,Ri分别表示用户i和用户j在各自所有己打分项目上评分的平均值,S是用户i与用户j共同的评分项目数。

2) 根据各用户与目标用户a之间的相似度确定该目标用户a的邻居N={N1,N2,…,Nt},a?埸N。从N1到Nt,目标用户a和邻居用户之间的相似度sim(a,Nt)从大到小排列。其中,目标邻居的数目可以通过两种方法确定。一种是预先设置一个相似性阀值,所有与目标用户a之间的相似系数超过该阀值的用户都作为邻居。另外一种方法是选择Q个相关系数最大的用户作为邻居用户。

3) 邻居生成之后,这些邻居的评分被组合起来生成目标用户的预测评分值。在计算完目标用户与其他用户之间的相似度后,目标用户a对项目j的评分的预测值Paj是其它用户对该项目的评分的加权和:

■(2)

其中Wa,u是目标用户a与邻居用户u的相似度,Ru,j是邻居用户u对项目j的评分值,Ru是邻居用户u的平均评分,K是一个规范化系数。在进行TOP―N 推荐时,只需给出前N个预测评分最高的项目即可。

2.2 基于用户CF的问题

传统CF算法利用兴趣相似的邻居用户对某项目兴趣的大小,预测当前用户对该项目的喜好程度。显然,这里的邻居用户选择方法非常关键,但是通常的邻居选择方法没有考虑用户兴趣变化问题,从而影响算法的准确性。例如,过去喜欢科幻类电影的用户1现在喜欢惊悚类电影,用户2 喜欢科幻类电影,用户3喜欢惊悚类电影。 由于用户1和用户2 过去的兴趣相似并且他们对项目的评分也相近,所以用户1和用户2的相似度要比用户1和用户3的相似度高。在确定用户1的邻居用户时,传统的CF算法就会选择用户2而不是用户3,最终系统向用户1推荐的仍是科幻类电影而不是惊悚类电影,尽管用户1和用户3最近兴趣相似且用户1已显示出对惊悚类电影的兴趣。如表1所示,如果要预测用户1对电影4的评分值,按照传统的CF算法,用户2将是用户1的邻居。然而,通过表2可以发现2003年用户1逐渐喜欢上了惊悚片,这时,他的相似用户应该是用户3而不是用户2。可见,在这种情况下传统的CF算法并不能给出好的推荐。

表1用户评分表 表2用户评分时间表

3 用户兴趣变化问题

针对上面出现的情况,在寻找用户邻居的时候需要考虑到用户兴趣随时间的变化,所以在计算用户间评分相似度的时候,引入一个时间函数f(t),给与用户1最近兴趣相似的用户3以较大的相似度,给与用户1仅过去兴趣相似的用户2以较小的相似度。 ■ (3)

其中,t为用户评分的实际时间,tmin为最小的间隔时间,tmax为最大的间隔时间,间隔时间是用户实际的评分时间和系统参照时间的差值。参数m 反映f(t)的遗忘能力,m越大f(t)遗忘得越快,反之越慢。当m=1时,f(t)对用户评分进行完全的线性遗忘;当0

在传统的皮尔森相关系数中引入这个时间函数,可以提高用户间相似度的精度。引入这个时间函数后新的用户评分相似度公式为:

■(4)

4 用户特征和用户兴趣变化结合

4.1 用户特征

在寻找目标用户邻居的时候不仅要考虑到用户兴趣的变化,用户的特征也是一个不能忽视的因素。例如,青年人喜欢看浪漫爱情片,中年人喜欢看生活片,老年人有时候喜欢看一些纪录片。年龄层次不同的人,因为其阅历不同,对生活的领悟程度也不同,所以对物体喜欢的层次类别也会有些差异。女性多喜欢情感剧,而男性多喜欢警匪片,说明性别差异也会对用户的兴趣取向有影响。同时,具有相同职业的人对事物更可能有相同的理解角度,往往会喜欢同一类型的电影。因此本文选择这三个因素作为识别用户特征的特征因素。

根据用户的特征数据可以计算用户间的特征相似度,设用户P和用户Q在k维用户特征空间上的特征值分别看作是向量■={p1,p2,……pk},■={q1,q2,……qk},则用户P和用户Q的用户特征相似性计算公式为:

■(5)

此公式分母k表示用户特征因子数,分子表示用户P和用户Q在k维用户特征空间上相同的特征因子数目。

4.2 算法步骤

利用用户特征和用户兴趣变化两个因素,这里将推荐算法步骤描述如下:

输入数据包括:m个用户对n个项目的评分及评分时间t,邻居用户大小k;

输出数据:对目标用户的N个推荐项目。

1) 利用用户的特征数据计算用户间的特征相似性sim_feature,计算sim_feature的公式见公式5;

2) 利用用户的评分数据和用户变化兴趣函数f(t),计算用户之间的评分相似性sim_rating,计算sim_rating的公式见公式4;

3) 计算用户的最终相似性:similarity=r*sim_feature+(1-r)* sim_rating,其中r为基于用户的特征相似性在最终相似性计算中的比重;

4) 利用similarity的数值结合传统算法预测评分的数值,传统的评分预测公式见公式2。

4.3 算法说明

在传统的CF算法中, 所有评分的重要性都相同。但是当用户兴趣发生变化时,推荐系统中旧评分的积极作用不大,因此应降低旧评分的重要性。时间函数f(t)根据评价时间调整每项评分的重要性,然后在此基础上确定用户间的评分相似度。同时,还考虑到用户的特征因素,将用户间特征相似度和用户评分相似度相结合,确定用户间最终相似度。因此在准确性方面高于传统的CF算法。

5 实验结果与分析

本文采用MovieLens站点提供的数据集ml-data,该数据集中包括了943用户的信息以及这943个用户对1682部电影项目的100000条打分数据。

5.1 评价标准

采用平均绝对误差(Mean Absolute Error,MAE)作为评价标准,MAE用项目预测评分和实际评分间的偏差度量算法的准确性。

5.2 实验结果

首先,只考虑含有f(t)函数的用户评分相似度对MAE值的影响。当时间函数f(t)中参数m取0.6时,实验结果表明,经过f(t)函数对用户评分相似度的修正,该方法在准确性方面优于传统协同过滤算法。

然后,我们再考虑用户特征对用户间相似度的影响,发现在用户邻居较大的情况下,r取0.05时,根据用户最终的相似度计算得到的MAE值比只考虑用户评分相似度时的MAE要小。实验结果如图1所示。

实验结果表明,将用户兴趣变化和用户特征相结合的协同过滤算法在准确性方面优于传统的协同过滤算法。

6 结束语

通过与传统的基于用户的协同过滤推荐算法相对比,基于用户兴趣变化和用户特征的协同过滤推荐算法在以下两个方面进行了改进。

1) 引入时间函数f(t),考虑了用户兴趣变化对用户间的相似性的影响,在准确性方面优于传统的协同过滤算法。由于用户兴趣大多都是逐渐改变的,因此在推荐系统中使用的线性时间函数将有效提高推荐算法的准确性。

2) 在基于用户兴趣变化的基础上考虑用户的特征因素。当最近邻数增大时,用户特征相似度的贡献率增大。这是因为随着最近邻数的增大,用户之间的共同评分项目数目减少,最近邻选取的精度将降低,而相同类别特征的用户对一定项目平均偏好程度相似,所以提高r的值加大了对同一类别用户的选取。当评分数据稀疏时,用户共同评分项目少的情况下,结合用户特征的协同过滤算法能够改善相似用户选取精度从而改善推荐效果。

参考文献:

[1] 邓爱林,朱扬勇,施伯乐.基于项目评分预测的协同过滤推荐算法[J].软件学报,2003,14(9):1621-1628.

[2] 熊馨,王卫平,叶跃祥.基于概念分层的个性化推荐算法[J].计算机应用,2005,25(5):33-35,42.

[3] Karypis G. Evaluation of Item-based Top-N RecommendationAlgorithms[D].Minneapolis: Dept of Computer Science,University of Minnesota,2000.

上一篇:自动报靶系统研究综述 下一篇:关于计算机课程教学模式的思考