APP下载

基于用户兴趣和项目属性的协同过滤算法

2017-06-29武文琪刘永利王建芳

计算机应用与软件 2017年5期
关键词:相似性权重协同

刘 静 武文琪 李 骁 刘永利 王建芳

(河南理工大学计算机科学与技术学院 河南 焦作 454000)

基于用户兴趣和项目属性的协同过滤算法

刘 静 武文琪 李 骁 刘永利 王建芳

(河南理工大学计算机科学与技术学院 河南 焦作 454000)

针对传统协同过滤算法不能及时反应用户的兴趣变化、时效性不足而导致推荐精度不高的问题,提出一种基于用户兴趣和项目属性的协同过滤算法。在传统协同过滤基础上综合考虑评分时间、相似度以及项目属性等因素,首先在计算相似度过程中加入基于时间的用户兴趣度权重函数,然后再与项目属性相似度进行融合,最后进行项目预测与推荐。在Movielens数据集上的实验结果表明,所提出的算法与已有的经典算法相比,平均绝对误差降低了3%~6%,有效提高了推荐的准确性。

用户兴趣 项目属性 协同过滤 权重函数 相似度

0 引 言

个性化推荐[1-2]是从海量数据中挖掘出有用信息的一种技术,协同过滤是其应用最广泛、最成功的推荐算法之一,通过收集和分析用户的信息数据来学习用户的兴趣偏好和行为模式,从而为用户推荐所需要的信息或商品。

传统的协同过滤算法忽略了随着时间变化而用户的兴趣也在不断发生变化的问题,即存在用户兴趣漂移现象[3]。用户的兴趣偏好不但范围广泛,而且实时变化,例如:一个孩子在几岁时可能对动画片感兴趣,青春期可能对浪漫爱情片感兴趣,随后有可能对文艺片感兴趣,再过几年可能对剧情片感兴趣等。随着时间推移,用户的关注点在不断变化,如何捕获这一动态的时间效应是个难题[4]。

通常将时间窗作为判断用户兴趣变化的一种表征方式,采用加权处理的方法,来提高推荐质量。文献[5]中,通过对心理遗忘曲线拟合出用户兴趣权重函数,提出基于时间窗的改进协同过滤算法,从而追踪和学习用户的兴趣偏好;文献[6-8]提出基于评价时间数据权重的用户兴趣度量函数,使得用户最可能感兴趣近期访问过的资源。这些方法在相似性度量过程中加入了时间因子,从一定程度上解决了用户兴趣漂移问题,但是忽略了不同对象的类别属性等特征信息,这在一定程度上也会影响最终的推荐质量。

针对这一问题,本文提出了一种基于用户兴趣和项目属性的协同过滤推荐算法。在传统的用户—项目评分矩阵基础上综合考虑用户偏好、评分时间以及项目属性特征等因素,先在计算相似度过程中加入时间逻辑性因素,再与项目属性相似度进行融合,明确用户对项目中各个属性的偏好程度,更能体现出用户的行为需求。

1 相关工作

提供个性化推荐服务已经成为各大电子商务网站和社交媒体的核心竞争力所在,如何实时根据用户的浏览和购买行为为其推荐更加符合用户偏好的项目,即在正确的时间推荐合适的项目,是目前推荐系统的一大挑战。在信息飞速发展的当代,用户兴趣和信息话题的流行转移速度也非常快,文献[9-10]提出了一个实时的在线推荐系统——TencentRec,并在此系统上部署一系列的应用,每天为10亿用户根据其兴趣爱好实时推荐话题,在实践中观察TencentRec的性能。并在此系统上提出了一个基于项目的可扩展协同过滤算法[10],处理隐式反馈问题,增量更新和实时修剪以减少计算成本,对数据进行实时采集和处理,可以随时捕捉用户的兴趣,提高推荐质量。文献[11]提出了一种基于空间正则化和突发加权平滑的混合模型推荐算法。利用正则化框架发现社交网络中的空间信息以及在时间轴上采用突发加权平滑方案发现的时变信息,实验结果表明所提出的混合模型能够在单一的检测过程中区别时变话题和稳定话题,针对用户不同的兴趣分别进行推荐话题。此算法只适用服务于新闻类的信息网站。针对目前流行的社交媒体平台,文献[12]设计了一个潜在的类统计混合模型,称为时间上下文感知混合模型(TCAM)。TCAM同时为用户内在兴趣相关话题和时间上下文相关话题建模,结合这两个因素的影响对用户行为建模。为了进一步提高TCAM算法的性能,提出项目加权方法使TCAM更好地为用户推荐其偏好的项目。文献[4]提出了一种利用人类行为对信息过滤的协同过滤算法,与传统的协同过滤算法相比推荐精度得到了很大的提高,同时改善了推荐的新颖性和多样性。在计算相似度时加入时间因素,但是没有考虑项目特征属性问题,为此本文提出一种基于用户兴趣和项目属性的协同过滤算法,在计算相似度时不单单考虑用户兴趣还考虑项目本身的属性特征,提高算法的推荐精度。

时间是一种重要的上下文信息,对用户兴趣偏好有着深入的影响[13]。本文以Movielens数据集为例(从1997年9月到1998年4月,以月为单位),分析了3种不同类型影片观众人次比例随时间的变化情况如图1所示。

图1 三种不同类型影片月观众人次比例走势图

图1中Item1是属于喜剧动画片,Item50是属于战争科幻动作片,Item181是属于浪漫喜剧片。由图1中可以看出不同类型影片,随着时间的变化,影片受欢迎的程度发生改变,观影人次也相应的发生变化。不管是属于哪种类别的电影,其观众人次比例随时间的推移都在逐渐下降,其规律在大体上和心理学上的遗忘曲线相似。电影刚上映时关注的观众比较多,随着时间的推移观众人次在慢慢下降,直到被人们所遗忘,这也符合艾宾浩斯(Ebbinghaus)遗忘曲线的规律,即人类记忆能力随时间的变化而降低。

传统的协同过滤算法分为输入数据、寻找最近邻居集合和预测推荐3步,寻找最近邻居集合是协同过滤算法中关键的一步,其结果直接影响推荐的准确度。寻找最近邻居集合可通过计算相似度方法实现,常用的相似度度量方法有:余弦相似度、调整余弦相似度和皮尔逊相关相似度[14-15]。计算相似度公式分别如下:

(1)

(2)

(3)

2 基于用户兴趣和项目属性的协同过滤算法

2.1 基于时间的用户兴趣度权重

本文采用拟合的遗忘曲线对项目评分进行时间加权,离采样时间越近的评分赋予较大的权值,反之则赋予较小的权值,以此来模拟用户的兴趣爱好随着时间而不断变化。因此,可以根据遗忘曲线定义指数衰减函数来表示用户兴趣的变化,基于时间的用户兴趣度权重函数如式(4)所示:

(4)

其中,tui表示用户u对项目i的评分时间,t0表示目标用户的采样时间,T表示整个数据集的时间跨度(结束时间-开始时间)。

本文以皮尔逊相关相似性作为相似度计算公式,并将基于时间的用户兴趣度权重函数引入到相似度计算公式中,基于用户兴趣度权重的皮尔逊相关相似性计算方法如式(5)所示:

(5)

2.2 改进相似度计算

加入兴趣度权重能够有效地找出用户的喜好范围,为了更好地进行推荐服务,需要找出用户偏好的特征属性,避免把一个用户不喜欢的影片当成是用户喜好的影片进行推荐。在考虑时间效应的基础上计算出用户评分与项目属性之间的关系,发现用户对于项目中各个属性的喜好程度,结合基于时间的用户兴趣度权重和项目属性能够明确用户的兴趣偏好,准确有效地找出其邻居集合。

令项目属性的集合为l={l1,l2,…,ld},其中d为类别属性个数。以Movielens数据集为例:数据集中的电影一共有18个类别属性,分别为{unknown,Action,Adventure,…,Western}。项目属性特征可以用一个n×d的项目属性矩阵Gn×d来计算,其中n为项目个数,gid为0时代表项目i不具有这个属性,gid为1时代表项目i具有该属性。项目的特征属性相似度计算方法如式(6)所示:

(6)

其中,il表示项目i的属性集合,jl表示项目j的属性集合。

在计算项目与项目之间相似性时不能单一通过用户对项目的评分来计算,还要考虑项目与项目之间的相关相似性,采用算术加权平均,综合考虑项目的特征属性相似度和评分相似度,获得更全面的相似性度量模型,融合的相似度计算方法如式(7)所示:

sim(i,j)=γ×Esim(i,j)+(1-γ)×sim(i,j)

(7)

其中,γ为平衡因子用作协调两方面相似性度量的结果,0<γ<1,在[0,1]中取一系列值,观察不同γ值对推荐准确度的影响,选择合适的γ值将两种相似度进行融合,提高推荐准确率。

2.3 加权预测评分

由相似度计算得到最近邻居集合后,考虑时间对预测值的影响,用户现在的行为应该和用户最近的行为关系更大。将基于时间的用户兴趣度权重wt加入到预测评分中,其计算方法如式(8)所示:

(8)

其中,sim(i,j)表示目标项目i与最近邻居项目j的相似性度量,rc,j表示用户c对项目j的评分,表示项目i的平均评分,表示项目j的平均评分。

为了有效计算出用户的当前兴趣,改进的预测评分用wt赋予评分矩阵中每个评分一个权重,即用户最近数据贡献度更大,占较大的权重,反之亦然。

2.4 算法步骤

算法:基于用户兴趣和项目属性的协同过滤算法。

输入:数据集中的一对训练集和测试集,最近邻居个数neighbor_num,平衡参数γ。

输出:用户c对测试集中项目i的预测评分。

算法步骤:

步骤1 由训练集得到用户——项目评分矩阵Rm×n和时间矩阵Tm×n。例如:用户1对项目1的评分为5且评分时间为874 965 758,则在评分矩阵Rm×n中r1,1=5, 在时间矩阵Tm×n中t1,1=874 965 758。

步骤2 利用用户兴趣度权重函数wt,计算目标用户的兴趣度权重。

步骤3 用式(5)计算项目i和项目j的评分相似度(当j=i时令sim(i,j)=0)。

步骤4 通过式(6)计算项目i和项目j的特征属性相似度(当j=i时令sim(i,j)=0)。

步骤5 根据步骤3和步骤4得到的评分相似度和项目属性相似度利用式(7)进行融合,形成最终的相似度矩阵。

步骤6 根据步骤5计算得到的相似性矩阵来寻找目标项目i的最近邻居,邻居关系的计算是为了对每一个项目i找到一个邻居集合Neighbori={j1,j2,…,jm},i∉Neighbor,将相似度{sim(i,j1)>sim(i,j2)>…>sim(i,jm)}递减排序。根据预先设定的邻居数neibor_num,选择sim(i,j)最大的前neibor_num个作为项目i最近邻居。

步骤7 根据步骤6得到的目标项目i的最近邻居集合Neighbori和评分矩阵Rm×n中的评分,依据式(8)利用用户c对项目i的最近邻居评分来预测用户c对项目i的评分。

算法结束。

3 实验结果与分析

3.1 数据集

本文选用MovieLens数据集对提出的算法在Matlab中进行评估测试,该数据集包含943个用户对1 682部电影连续7个月左右的评分数据,评分范围是1~5,1表示“很差”,5表示“很好”。整个数据集的稀疏等级为1-100 000/(943×1 682)=93.7%。

MovieLens数据集提供5组随机划分的训练集和测试集,实验在这5对数据上分别进行,最终实验结果为这5次结果的算术平均值。

3.2 评价标准

本文采用平均绝对误差MAE(MeanAbsoluteError)来衡量推荐的精确率,能更好地反映预测值误差的实际情况。设在训练集上得到用户的预测评分集合为{pu,1,pu,2,…,pu,n},用户实际评分集合为{ru,1,ru,2,…,ru,n},则平均绝对误差MAE定义为:

(9)

其中,N是测试集中用户评分的个数,pu,i是用户u对第i个项目在训练集上的预测评分,ru,i是用户u对第i个项目的实际评分。MAE通过计算用户的预测评分和实际评分之间的偏差来度量算法预测的准确性,MAE值越小,则推荐精确度越高。

3.3 结果分析

1) 相似度比较

为了验证本文提出的算法和传统的相似度算法在不同相似度公式中的推荐效果,根据本文在2.1节中提出的算法思想,同样将式(5)中的用户兴趣度权重函数引入到相似度计算公式中,对余弦、调整余弦分别根据式(1)、式(2)作了相似的改进和替换,其实验结果如图2所示。

图2 三种改进相似度与传统相似度的MAE比较

分别使用三种计算方式进行MAE对比。从图2可以看出,不管选用何种相似度计算方式,在任意邻居数neighbor_num值下,三种改进的相似性计算方法都比原始的计算方法取得更低的MAE值。尤其是采用皮尔逊相关相似性计算相似度时MAE值最小,从而也验证了本文选用皮尔逊相似性方法作为相似度计算的依据。另外改进后算法的MAE明显小于传统协同过滤推荐系统,说明基于时间的用户兴趣度权重和项目属性对推荐系统的影响比较大。

2) 平衡因子γ对MAE的影响

实验中选择最近邻居数neigbor_num= 25,针对式(7),在其他参数一样的情况下,观察不同平衡因子γ值对推荐准确度的影响,如图3所示。当γ=0.15时MAE值最小,此时不但考虑了项目属性还考虑了时间对相似度计算的影响。

图3 平衡因子γ 对MAE的影响

3) 不同算法之间对比

实验中最近邻居数neigbor_num分别取5、10、15、20、25和30,设定最优平衡因子γ=0.15,本文提出的基于用户兴趣和项目属性协同过滤算法(UIIP-CF)分别与传统基于项目的协同过滤算法(ICF)与文献[9] 中提出的改进算法(TDGS-CF)、文献[10]中提出的改进算法(WUCF) 进行MAE值对比,如图4所示。

图4 四种算法的MAE对比图

由图4可以看出,改进算法的MAE与传统的基于项目的协同过滤算法相比MAE降低了10%,比TDGS-CF算法MAE降低了6%,比WUCF算法MAE降低了3%。由于MAE值越小则推荐精度越高,UIIP-CF算法的精确性比以上提到的推荐算法都高,这也说明了基于时间的用户兴趣权重和项目属性在推荐算法中起着比较关键的作用。

4 结 语

本文分析了用户的兴趣随时间的变化而变化的规律,在此基础上提出了一种基于用户兴趣和项目属性的协同过滤算法。实验表明,改进的协同过滤算法不仅有效提高了推荐系统的推荐精度,而且在一定程度上解决了协同过滤推荐系统的用户兴趣漂移问题。但是,改进算法中采用实验法得到最佳平衡因子并进行相似度融合以达到解决用户兴趣漂移的目的,所以,下一步的研究重点将放在如何自适应平衡因子问题以及更多的相似度改进方法上。

[1] 孟祥武,刘树栋,张玉洁,等.社会化推荐系统研究[J].软件学报,2015,26(6):1356-1372.

[2] 王国霞,刘贺平,李擎.基于万有引力的个性化推荐算法[J].工程科学学报,2015,37(2):255-259.

[3]AdibiP,LadaniBT.Acollaborativefilteringrecommendersystembasedonuser’stimepatternactivity[C]//InformationandKnowledgeTechnology(IKT),2013 5thConferenceon.IEEE,2013:252-257.

[4]JiaCX,LiuRR.Improvethealgorithmicperformanceofcollaborativefilteringbyusingtheintereventtimedistributionofhumanbehaviors[J].PhysicaA:StatisticalMechanicsandItsApplications,2015,436:236-245.

[6] 郑志高,刘京,王平,等.时间加权不确定近邻协同过滤算法[J].计算机科学,2014,41(8):7-12.

[7] 李源鑫,肖如良,陈洪涛,等.时间衰减制导的协同过滤相似性计算[J].计算机系统应用,2013,22(11):129-134,158.

[8] 刘东辉,彭德巍,张晖.一种基于时间加权和用户特征的协同过滤算法[J].武汉理工大学学报,2012,34(5):144-148.

[9]ChenC,YinH,YaoJ,etal.TeRec:Atemporalrecommendersystemovertweetstream[J].ProceedingsoftheVLDBEndowment,2013,6(12):1254-1257.

[10]HuangY,CuiB,ZhangW,etal.TencentRec:Real-timeStreamRecommendationinPractice[C]//Proceedingsofthe2015ACMSIGMODInternationalConferenceonManagementofData.Melbourne,VIC,Australia:ACM,2015:227-238.

[11]YinH,CuiB,LuH,etal.Aunifiedmodelforstableandtemporaltopicdetectionfromsocialmediadata[C]//2013IEEE29thInternationalConferenceonDataEngineering(ICDE).Brisbane,Australia:IEEEComputerSociety,2013:661-672.

[12]YinH,CuiB,ChenL,etal.Atemporalcontext-awaremodelforuserbehaviormodelinginsocialmediasystems[C]//Proceedingsofthe2014ACMSIGMODInternationalConferenceonManagementofData.AssociationforComputingMachinery,2014:1543-1554.

[13]RenY,LiG,ZhouW.LearningUserPreferencePatternsforTop-NRecommendations[C]//WebIntelligenceandIntelligentAgentTechnology(WI-IAT),2012IEEE/WIC/ACMInternationalConferenceson,2012:137-144.

[14] 吴毅涛,张兴明,王兴茂,等.基于用户模糊相似度的协同过滤算法[J].通信学报,2016,37(1):198-206.

[15] 荣辉桂,火生旭,胡春华,等.基于用户相似度的协同过滤推荐算法[J].通信学报,2014,35(2):16-24.

COLLABORATIVE FILTERING ALGORITHM BASED ON USER INTEREST AND ITEM PROPERTIES

Liu Jing Wu Wenqi Li Xiao Liu Yongli Wang Jianfang

(CollegeofComputerScienceandTechnology,HenanPolytechnicUniversity,Jiaozuo454000,Henan,China)

Aiming at the problem that traditional collaborative filtering algorithm can’t response to user’s interest changes timely, lack of timeliness leads to recommend accuracy is not high, a collaborative filtering algorithm based on user interest and item properties is proposed. On the basis of the traditional collaborative filtering, considering the factors of scoring time, similarity and item properties, first we add the user preference time weight function to the process of computing similarity, then merge with the similarity of tem properties, finally make the item prediction and recommendation. Compared with the newly proposed algorithm and the existing algorithm, the experimental results on the Movielens demonstrate that the MAE (Mean Absolute Error) reduces by 3%~6%, which effectively improves the recommendation accuracy.

User interest Item properties Collaborative filtering Weight function Similarity

2016-03-17。国家自然科学基金项目(61202286);河南省高等学校骨干教师计划项目(2015GGJS-068)。刘静,副教授,主研领域:数据挖掘,推荐算法。武文琪,硕士生。李骁,硕士生。刘永利,副教授。王建芳,副教授。

TP391

A

10.3969/j.issn.1000-386x.2017.05.006

猜你喜欢

相似性权重协同
输入受限下多无人机三维协同路径跟踪控制
权重望寡:如何化解低地位领导的补偿性辱虐管理行为?*
家校社协同育人 共赢美好未来
权重常思“浮名轻”
浅析当代中西方绘画的相似性
“四化”协同才有出路
为党督政勤履职 代民行权重担当
权重涨个股跌 持有白马蓝筹
京津冀协同发展
12个毫无违和感的奇妙动物组合