标题 | 基于时间和共同评分项目数的协同过滤算法研究 |
范文 | 李佳 陈亚军![]() ![]() ![]() 摘 要:针对协同过滤系统中数据稀疏导致推荐质量下降的问题,提出了一种基于时间和共同评分项目数的协同过滤算法。其基本思想是:首先定义关于时间信息函数来降低预测误差,两个用户对共同评分的物品产生行为的时间间隔越远,他们之间的相似度就会越小;其次,定义和共同评分项目数量有关的函数,惩罚数量很少的两个用户之间相似度。实验表明,改进的算法通过调整用户相似度,比传统的协同过滤算法具有更好的推荐质量。 关键词:协同过滤; 时间函数;用户相似度;共同评分项目数量 DOIDOI:10.11907/rjdk.151313 中图分类号:TP312 文献标识码:A 文章编号文章 编号:1672-7800(2015)007-0061-03 0 引言 随着信息技术和互联网的迅速发展,信息已经从匮乏时代迈入过载时代,为了在泛滥的信息中更快、更有效地找到用户需要的信息,个性化推荐系统应运而生。目前,个性化推荐技术广泛运用于电子商务[1]、数字图书馆[2]、新闻网站[3]等系统中。 个性化推荐系统常用协同过滤算法,又分为基于用户和基于物品的协同过滤算法。基于用户的协同过滤算法认为,预测某用户对物品的评分,需要参考与这个用户兴趣相似的人对该物品的评分。实际的推荐系统中,用户评过的项目数很少,导致用户项目评分矩阵的稀疏性,从而使用户之间的相似性计算误差很大。为此,本文提出基于共同评分项目数和时间组合的协同过滤算法,以提高推荐系统质量。 1 相关工作 1.1 基于用户的协同过滤算法 基于用户的协同过滤(User-based CF)又称KNN(K-Nearest-Neighbor,K最近邻)算法,其基本思想是找到与目标用户有相同兴趣的最近邻居,并根据最近邻居的兴趣向目标用户推荐商品,从而产生基于目标用户的商品推荐集合。协同过滤算法分为3个步骤:①建立用户——项目模型;②寻找最近邻居;③产生推荐集[4]。 收集到用户兴趣信息后,将用户偏好信息进行整理,可以得到用户——项目评分矩阵R(m,n)。m表示m个用户,n表示n个物品,Rij表示用户i对物品j的评分值。 最近邻居的产生是通过用户之间的相似度来度量的。目标用户u、其他用户v之间的相似度sim(u,v)通过皮尔逊系数计算。 sim(u,v) = ∑i∈I (rui -u )·(rvi -v )∑i∈I (rui -u )2 ∑i∈I (rvi -v )2(1) I表示用户u和用户v共同评分的项目集合,rui表示目标用户u对项目i的评分,rvi表示用户v对项目i的评分,u、v分别表示目标用户u和用户v评分的平均值。由公式(1)计算出用户之间的相似度,按照由大到小排序。设定最近邻居数K,取与目标用户相似性最大的前K个用户作为最近邻集合。 得到目标用户最近邻集合后,就可以对目标用户的未评分项进行评分预测,其计算公式为: pui = u + ∑v∈S(u,K)∩N(i) (rvi -v )·sim(u,v)∑v∈S(u,K)∩N(i) sim(u,v)(2) S(u,K)是和用户u兴趣最相似的K个用户的集合,N(i)是对物品i评过分的用户集合。将候选项目集中的项目按预测评分从大到小排序,选择前N个项目为用户u产生推荐列表。 1.2 基于用户的协同过滤算法缺陷 随着电子商务的发展,用户和项目数会日益增多。现实生活中,用户不会对每一个项目都评分,且用户评过分的项目很少,所以用户——项目评分矩阵中为空的元素大大增加,矩阵数据稀疏性问题也会越来越严重,使得最近邻居搜寻结果的准确性难以保证,最终进行评分预测时,预测值和真实评分值之间会产生较大的误差,从而影响推荐的准确度[5]。 为了提高数据稀疏情况下的推荐效果,许多学者在传统的协同过滤算法上作了改进。王岚[6]等人充分考虑到“时间效应”的影响,引入时间加权函数到兴趣预测中。侯翠琴[7]等人通过降低矩阵维数来解决数据稀疏问题,提出了一种压缩稀疏用户评分矩阵的协同过滤算法。李聪[8]提出了一种基于 Rough 理论的用户评分项并集未评分值填补方法,这种方法能有效实现用户评分项并集的完备化。王光[9]等人提出了基于评分可信度的协同过滤算法,该方法提高了推荐集的可靠性,筛选出可信度较高的最近邻居。郑志高[10]等人提出一种基于时间加权不确定近邻协同过滤推荐算法,该方法引入时间因子,调整用户相似度计算方法,同时引入近邻因子,对推荐集的选取进行优化,并采用自适应的方式在用户和产品之间进行权衡。高全力[11]等人提出一种融合影响因子的加权协同过滤算法,该算法从用户与项目两种角度来解决相似度的计算问题,引入用户间共同评分项目的个数与项目间共同评分用户的个数作为影响因子,调整用户和项目的相似度。张玉芳[12]等人在基于分布填充评分矩阵的思想上,提出了一种结合条件概率和传统协同过滤算法的非固定k近邻算法。查九[13]等人提出基于组合相似度的优化协同过滤算法,通过组合6种相似度来调整传统相似度。 在评分矩阵稀疏度不变的情况下,本文提出基于时间因子和共同评分项目数的协同过滤算法,以提高相似性计算的准确性。 2 改进算法 2.1 时间加权协同过滤算法 传统的协同过滤算法没有考虑用户的兴趣是会改变的,其计算出来的用户相似性与实际情况存在很大误差。两个用户兴趣相似是都对相同的项目进行了评分,例如用户A和用户B在2013年对数据库感兴趣, 2014年对程序编程感兴趣,而用户C在2013年对程序编程感兴趣,2014年对数据库感兴趣。根据公式(1)计算用户之间的相似性,得到sim(A,B)=sim(A,C),很显然会认为sim(A,B)>sim(A,C)。在传统的协同过滤算法中引入时间信息,从而得到更精确的预测效果。在时间加权协同过滤算法中,引入时间加权函数f(t)=11+μ×et,进行评分预测,其改进的用户相似性计算公式为: sim(u,v)' = ∑i∈I (rui -u )·(rvi -v )·f(|tui -tvi |)∑i∈I (rui -u )2 ∑i∈I (rvi -v )2(3) 其中tui表示用户u对项目i产生行为的时间,tvi表示用户v对项目i产生行为的时间,μ∈(0,1)称为权重因子。在时间加权函数中,变量t的取值范围是t≥0,在这个区间函数f(t)是单调递减的,两个用户(u,v)对同一个项目(i)评分的时间间隔(tui-tvi)越大,函数值越小,从而两个用户的兴趣相似度就会越小。 2.2 共同评分项目协同过滤算法 如果用户项目评分矩阵非常稀疏,那么由此计算出的用户最近邻就无法反映用户的相似喜好,尤其是两个用户共同评价的项目只有1个的时候,他们的相似度很高[14]。例如用户A和用户B对数据库、程序编程感兴趣,而用户D对数据库、Java感兴趣。根据公式(1)计算用户之间的相似性,得到sim(A,B)=sim(A,D),实际会认为sim(A,B)>sim(A,D)。 在基于共同评分项目数的协同过滤算法中,引入加权函数I(u,v)=|N(u)∩N(v)||N(u)∪N(v)|,其改进的用户相似性计算公式为: sim(u,v)' = ∑i∈I (rui -u )·(rvi -v )∑i∈I (rui -u )2 ∑i∈I (rvi -v )2·I(u,v)(4) 其中N(u)∩N(v)表示用户u和用户v共同评价的项目个数,|N(u)∪N(v)|表示用户u和用户v评价的项目并集个数。公式(4)在一定程度上惩罚共同评价项目很少的两个用户之间的相似度。 2.3 两种算法组合 上述两种改进的协同过滤算法在一定程度上提高了用户相似度,因此考虑将两个权重函数结合起来, 定义同时基于时间和共同评分项目数的用户相似性计算公式为: sim(u,v)' = ∑i∈I (rui -u )·(rvi -v )·f(|tui -tvi |)∑i∈I (rui -u )2 ∑i∈I (rvi -v )2·I(u,v)(5) 2.4 组合算法描述 Input:用户项目评分矩阵;目标用户u和目标项目i的编号;最近邻居数N。 (1)根据公式(5)计算出目标用户u和任意用户v的相似度。本文选择前5~40的相似用户作为目标用户u的邻居用户集合。 (2)根据邻居用户v在项目i的评价分,由公式(2)预测目标用户u对项目i的评价值pui。 (3)根据pui的大小从高到低排序,选取前N项推荐给目标用户u。 Output:目标用户u的top-N推荐集合。 3 实验结果及分析 3.1 数据集 为了验证改进算法的准确度,实验釆用的数据集是Movielens。该数据集是943个用户对1 682部电影的100 000条评分记录,每个用户至少对20部电影进行了评分。数据集u1.data按80%和20%的比例分为训练集u1.base和测试集u1.test。 3.2 评价标准 本实验采用平均绝对偏差MAE作为预测准确度的评价标准,是推荐算法中最常用的一种准确度评价方法,其值越小表示预测的准确度越高,反之越低。MAE定义如下: MAE=∑Ni=1|pi-qi|N(6) pi是用户对第i个项目的预测分值,qi是用户对第i个项目的实际分值,N为预测项目个数。 3.3 实验结果及分析 为了更好地验证改进算法的有效性,对基于用户的协同过滤算法(即ucf算法)、基于共同评分项目数和时间组合的协同过滤算法(即TCNCF算法,函数的时间衰减因子取0.9)、文献[11]的改进算法(即IFBWCF算法)进行实验对比。将目标用户最近邻居数从5增加到40,每次增加5,查看不同邻居数对算法精确度的影响。实验结果如图1所示。 图1显示:改进的组合算法MAE值均小于传统的协同过滤算法和文献[11]改进的算法,可见改进的算法能够提高推荐系统的推荐质量和准确度。 4 结语 本文针对协同过滤系统中数据稀疏问题,采用在稀疏度不变的情况下,通过算法提高用户相似性准确度的方法。改进算法是基于共同评分项目数和时间组合的。实验表明,改进的算法相对于传统的协同过滤算法,提高了用户相似性准确度,从而提高了推荐系统的推荐质量。 参考文献: [1] J SCHAFER, J KONSTAN, J RIEDL.Recommender systems in ecommerce [C] .In:Proc of ACM E Commerce ,New York: ACM Press, 1999:158-166. [2] CHAMPA JAYAWARDANA,K PRIYANTHA HEWAGAMAGE M ASASHITO H IRAKAWA. A personalize in formation environment for digital libraries [J].Information Technology and Libraries, 2001,20(4):185-196. [3] J KONSTAN, B MILLER, D MALTZ, et al.GroupLens:applying collaborative filtering to Usenet news [J]. Communications of the ACM,1997,40(3):77-87. [4] RESNICK P, VARIAN H R. Recommender systems[J]. Communications of the ACM, 1997,40(3): 56-58. [5] 席超.面向稀疏性数据的协同过滤推荐算法的研究与实现[D].北京:北京邮电大学,2013. [6] 王岚,翟正军.基于时间加权的协同过滤算法[J].计算机应用,2007,27(9):2302-2303. [7] 侯翠琴,焦李成,张文革.一种压缩稀疏用户评分矩阵的协同过滤算法[J].西安电子科技大学学报,2009,36(4):614-618. [8] 李聪.电子商务推荐系统中协同过滤瓶颈问题研究[D].合肥:合肥工业大学,2009. [9] 王光,邱云飞.基于评分可信度的协同过滤融合方法[J].计算机应用研究,2014,31(8):2387-2389. [10] 郑志高,刘京,王平,等.时间加权不确定近邻协同过滤算法[J].计算机科学,2014,41(8):7-12. [11] 高全力,高岭,杨建峰,等. 融合影响因子的加权协同过滤算法[J].计算机工程,2014,40(8):38-42. [12] 张玉芳,代金龙,熊忠阳.分布填充缓解数据悉数性的协同过滤算法[J].计算机应用研究,2013,30(9):2602-2605. [13] 查九,李振博,徐桂琼.基于组合相似度的优化协同过滤算法[J].计算机应用与软件,2014,31(12):323-328. [14] 程飞.基于用户相似性的协同过滤推荐算法研究[D].北京:北京交通大学,2012. (责任编辑:杜能钢) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。