一种改进的协同过滤推荐算法

更新时间:2023-05-19 12:10:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第37卷第6期2010年6月

计算机科学

Computer

Science

V01.37No.6June2010

一种改进的协同过滤推荐算法

王茜王均波

(重庆大学计算机学院

重庆400044)

摘要传统的协同过滤算法在寻找最近邻居集合时没有考虑时间因素的影响,仅从用户或者项目单方面出发计算用户或者项目的相似性以产生推荐结果,也忽略了用户特征对推荐的影响。针对上述问题,引入时间遗忘函数、黏度函数、用户特征向量,对协同过滤算法寻找用户的最近邻居集合过程进行了改进,体现了时间效应、用户偏好程度和用户特征。采用MovieLens数据集进行了一系列对比实验,结果表明,改进后的算法能够明显提高推荐的准确度。关键词协同过滤,时间效应,用户偏好度,用户特征向量

ImprovedCollaborativeFilteringRecommendationAlgorithm

WANGQian

WANGJun-bo

(DepartmentofComputerScience,ChongqingUniversity,Chongqipg400044,China)

AbstractⅥmen

searchingthenearestneighborset,thetraditionalcollaborativefilteringalgorithmignorestheimpactof

user

thetimefactor,onlyfromthe

the

or

itemtakesinto

account

thesimilarityofthe

to

useror

itemunilaterally,andignores

impactof

user

characteristics

on

recommendation.Aiming

user

theaboveproblems,weintroducedthetimeforgotten

user’S

function,re.sourcesviscosityfunctionandthe

neighborogy

on

featurevector,andimprovedtheprocessoffindingthepreferencesand

user

nearest

set,reflectedthetimeeffect,degreeof

set

user

characteristics,andtestedthisnewmethodol—

can

data

got

fromMovieLens.Theresultsofexperimentshowthatproposedmethod

improve

theaccuracyof

theprediction.

Keywords

Collaborativefiltering,Timeeffect,User

preference

degree,Usercharacteristic

引言

随着网络的普及,网络资源不断丰富,网络信息量不断膨

特征的人其兴趣爱好可能不同,而同一类别的人的兴趣爱好则具有一定的相似性。所以,在寻找目标用户的最近邻居时,用户特征也是一个不容忽视的因素,但在传统的协同过滤算法中并没有体现出这一点[2,8,93。

针对上述问题,在传统协同过滤算法的基础上,论文引入时间遗忘函数、黏度函数、用户特征向量,提出了一种适应用户兴趣变化和基于用户特征的个性化推荐算法,改进了寻找最近邻居集合的过程,综合考虑了时间效应、用户特征和用户偏好程度,提高了推荐的准确性。

胀。用户要在众多的选择中挑选出自己真正需要的信息好比大海捞针。个性化推荐系统应运而生,它为不同用户提供不同的服务,以满足不同的需求,带来了由“人找信息”到“信息找人”的转变。常用的推荐方法有基于内容的推荐、基于知识的推荐、协同过滤推荐以及组合推荐等[1],其中协同过滤推荐是迄今为止应用最成功的个性化推荐技术之一[2],其基本思想是:通过计算用户对项目评分之问的相似性,搜索目标用户的最近邻居,然后根据最近邻居的评分向目标用户产生推荐嘲。

现有的协同过滤推荐算法存在下列问题:①只考虑了用户或项目间的相似性,忽略了用户兴趣的动态变化陪5。。现实生活中,用户对商品的喜好会随着时间的推移发生改变。传统的协同过滤算法利用用户一项目评分矩阵来进行推荐计算,未考虑用户访问项目的具体时间,未反映用户兴趣随时间的变化过程,当用户兴趣发生改变时,现有的推荐系统不能及时反应,从而导致系统推荐的项目偏离了用户的真实喜好。②仅从用户或项目单方面出发,只考虑了用户或者项目单方面的相似性,而实际上用户可能喜欢相似用户所购买的商品,也可能喜欢非相似用户所购买商品的相似商品[1一’7]。③不同

到稿日期:2009-07—14返修日期:2009-09-27

2传统协同过滤算法

协同过滤推荐技术是当前最成功的推荐技术之一[z,i03,典型的协同过滤算法是基于用户的。协同过滤推荐算法的实现过程分为3步:建立用户模型、寻找最近邻居和产生推荐项

目。

①建立用户模型:协同过滤算法的输入数据通常表示为一个m*行的用户一评价矩阵R,m是用户数,咒是项目数,^.i表示第u个用户对第i项的评价值。通常采用5级评分的办法,评分越高表明该用户对该项目的兴趣越大。

②寻找最近邻居:在这一阶段,主要完成对目标用户最近邻居的查找。通过计算目标用户与其他用户之闻的相似度,找出与目标用户最相似的“最近邻居”集。即:对目标用户M,

本文受重庆市自然基金项目(CSl℃2009BB2046)资助。

王茜女,博士,副教授,主要研究方向为电子商务、网络安全}王均波男,硕士生,主要研究方向为电子商务、计算机网络与通信。 226

万方数据

产生一个以相似度sim(越,口)递减排列的“邻居”集合N:={N。,N2,…,Ni},“∈M。该过程分两步完成:首先计算用户之间的相似度,可采用皮尔森相关系数、余弦相似性和修正的余弦相似性等度量方法[1|,本文采用皮尔森相关系数(式1),其次是根据如下方法选择“最近邻居”;(1)选择相似度大于设定阈值的用户;(2)选择相似度最大的前k个用户;(3)选择相似度大于预定阈值的壶个用户,本文采用第(2)种方法。

∑(^.f一^)(“,f一“)

8im瓴用户7麦嚣i艿芎专手孑

n’

’V

1∈f泖

1∈J即

式中,sim(u,口)表示目标用户乱与用户口的相似度,^,,表示

用户U对项目i的评分,‰表示用户口对项目i的评分,元和

瓦分别表示用户U和用户"/3对项目的平均评分,k表示用户“和用户口共同评价过的项目集合。

③产生推荐项目:设目标用户U已评价项目集合为I。,则目标用户U对任意项目i的预测评分P“可通过邻居用户口对项目i(iCL)的评分得到,计算方法如下:

Pu.i

Z+竺Li磊五r

∑sire(U,口)*(^.,一h)

(2)

诟K

通过上述方法预测出目标用户对未评价项目的评分,然后选择预测评分最高的TOP-N项推荐给目标用户。

3改进算法

3.1时间效应

传统协同过滤算法在寻找用户的最近邻居时,将用户不同时间的项目评分同等对待,没有考虑用户对各个项目的评分不是在同一时间段进行的实际情况。一般来说,用户近期访问过的项目对推荐该用户未来可能感兴趣的项目起比较重要的作用,而早期的访问记录对生成推荐结果影响相对较小,这是因为用户的兴趣偏好随时间发生改变,而在较短的一段时间间隔内用户的兴趣相对稳定。因此一个用户感兴趣的项目最可能和他近期访问过的项目相似。也就是说,虽然所有评价都对推荐结果有影响,但最新评价贡献更大,旧数据反映用户以前的喜好,它在推荐的预测上应占较小的权值。

心理学家对遗忘现象的研究表明:人类的遗忘过程是逐步的、非线性的[11]。借鉴人类的遗忘规律,本文引入非线性逐步遗忘策略一遗忘函数。按时间t对项目评分进行衰减,改变不同时间内评分对推荐结果的贡献。

遗忘函数h(u,f)用来描述用户U随时间的遗忘过程。h(“,f)是一个单调递减函数,以反映用户U近期访问过的项目的重要性,其函数值在(o,1]范围内。目前用于描述人类遗忘过程的遗忘函数主要有线性衰减函数‘41和指数函数[3|。

如图1所示,一般指数函数衰减速度过快,函数值迅速趋于0,而线性衰减函数衰减速度太慢。基于上述分析,论文定义遗忘函数为:

.Il(“,f)=eEab一(f+n)6]

(3)

n,b为常数。设五.,表示用户U访问项目i的时间与该用户最晚访问项目的时间间隔,T为一时间间隔基本单位,f=

[争]。

万方数据

图l不同函数衰减速度比较

3.2用户偏好度

传统的协同过滤算法仅考虑了用户或者项目单方面的相似性,忽视了用户和项目两者间的联系。本文引入用户U对项目i的黏度函数Y(“,i)来表示用户U对项目i的偏好度。

设用户甜已访问过的项目集合为L,对于项目i∈L,如果i和L中项目相似度较高,说明项目i和用户“的当前兴趣较相近,则在未来一段时间内,用户U感兴趣的项目很可能也和项目i相似,即项目i对生成用户“的推荐起比较重要的作用。基于此我们定义黏度函数y(u,i)来衡量项目i和用户U当前兴趣的相关程度,它用i和f。的平均总体相似度sim

(i,Iu)来表示,而i和J。平均总体相似度可以通过计算i和f。中每个项目的平均相似度获得:

y(“,i)=sim(i,L)一=兰Tr广

∑sim(i,J)

tC--,

(4)

l』“|

式中,ILI表示L中的项目数。为计算y(u,i),需要计算i和,。中每个项目的相似度,若集合L中项目数为玎,则计算y(u,i)的时间复杂度为0(行2),一个用户访问过的项目数通常比较小,因此不会对算法的实时性有太大影响。3.3用户特征向量

不同特征的人拥有的兴趣爱好可能不同,而同一类别的人兴趣爱好则具有一定的相似性。所以,在寻找目标用户的最近邻居时,用户特征也是一个不容忽视的因素。通过构建用户特征向量,有助于寻找与目标用户更相似的邻居。

年龄层次不同的人,因为其阅历不同,对生活的领悟程度也不同,所以喜欢的物体层次、类别会有些差异。女性多喜欢情感剧,而男性多喜欢警匪片,说明性别差异也会对用户的兴趣取向产生影响。此外,具有相同职业的人对事物更可能有相同的理解角度,往往会喜欢同一类型的东西。因此本文选择年龄、职业和性别3个因素作为表征用户特征的特征因素。

将职业空间中所有职业按其类别描述成一棵倒立的树,称为职业树[1],如图2所示。

图2职业树

职业树的总层数称为职业树高度,记为H。。职业a,b在职业树中最近的共同父类称为口,b的最近父类,其位于职业

树上的层次称为其高度,记为总加当n,b的最近父类为职业

树的根节点时,Ho.一=0。设用户U职业为口,用户u职业为b,定义用户“,到在特征向量空间职业维的相似性()(“,口)为

227

l计I

厦似租向

职业口,b之间的相似度simo(n,6),即:

o(啪户sirTlD(础)一j警“薛6)

o(“,口)=sirTlD(口,6)=.{H。’“”7

(5)

ll,

(口=6)

例如在图2中,职业树的高度Ho=4,对职业日和职业b而言,最近共同父类为职业类A,相应的H^cc如,=2,由此职业口,b的相似度simo(口,6)=O.5。

设用户“的性别为S。,用户口的性别为S。,则用户“,口在特征向量空间性别维的相似性S(u,口)表示为:

sc“,。={::妻兰妻

ce,

设用户“的年龄为A。,用户7./的年龄为A。,则用户“,u

在特征向量空间年龄维的相似性A(u,u)表示为:

舭徊户1志,A—A>5

f1,

A—A≤5

@’

I[A—A]f’几m7。

用户乱和7.1在用户特征向量上的相似度si弛(“,v)通过

如下式来计算:

sirrk(乱,口)=zS(u,口)+乱4(”,可)+(1一Z一艿)C)(扎,可)(8)

式中,x,8为修正系数,分别影响性别、年龄和职业3个维在用户特征向量相似度上所起的作用。一般根据统计信息或者实验结果来调整其大小,不同的推荐系统,可以动态调整其值来优化推荐效果。3.4改进算法流程

把上述方法引入到传统的协同过滤推荐算法中,提出了一种改进后的协同过滤算法,通过遗忘函数对原始的用户一评价矩阵R按照评价时间进行修正,增加时间效应,突出用户近期评价数据对推荐的贡献,获得修正后的用户一评价矩阵R7。在传统用户相似度基础上,结合用户在用户特征向量空间上的相似度来构造用户的综合相似度,依据用户综合相似度大小获得用户的最近邻居集。改进后的推荐流程如图3所示。

l信息收集,信忠处理l——

建立用户一评价矩阵

建立用户特征向高线

量矩阵

I建立修正用户一评价矩阵I

用麟棚户l

●I

l计算用户综合相似度,l

在线

获得用户邻居集合l

I预测评分,产生推荐l

图3改进算法流程图

输入:目标用户“,用户一评价矩阵R,用户特征向量矩阵y输出:向目标用户u进行推荐的TOP-N推荐集

Setp

1建立修正用户一项目评分矩阵R7

对每个评分ru.iER,采用式(3)计算/“=^。i×^(“,£),建立修正用户一项目评分矩阵R7。用户的兴趣在短期内是相对稳定的,修正用户一项目评分矩阵R7是可以离线生成的,间隔T周期更新。

Step2计算用户特征向量上的相似度sirrk(“,口)在用户特征向量矩阵V上,采用式(8)计算目标用户1.1与用户在用户特征向量上的相似度sirn。(“,口)。

万方数据

228

Step3计算目标用户和候选用户原始相似度sim(u,口)在修正用户一项目评分矩阵R7上,结合式(4)和皮尔森相

关系数法,计算目标用户和候选用户的原始相似度:

∑(/“一无)×(r,“~瓦)Xy(u,i)

8i瓜舶沪亨曩焉亏雨覆雨票可

@’

’V

i∈』删

‘∈J删

Step4计算用户综合相似度,获取目标用户的邻居集合在Step2和Step3基础上,采用式(10)计算目标用户与每个候选用户的复合相似度,同样采用Top-N策略获取以个用户作为目标用户的邻居用户。

sim'(u,口)=口sim(u,口)+(1一a)s吼(t‘,铆)

(10)

Step5进行预测评分,产生推荐

由step4计算得到的邻居用户对目标用户未评分的项目进行预测评分,预测评分的计算以及推荐的产生仍然采用第

2节中介绍的方法。

4实验结果及分析

4.1

实验数据选取和度量标准

实验数据采用美国Minnesota大学GroupLens项目组提

供的Movielens数据集。它包含了943名用户对1682部电影的评价,每个用户至少评价过20部电影,评分值为1到5之间的整数,数值越高,表明用户对该电影的偏爱程度越高。

本文采用通常使用的平均绝对偏差MAE作为准确性度量标准,采用推荐产生的平均消耗时间(MCT)作为算法效率度量标准。MAE通过计算预测的用户评分与实际的用户评分之间的偏差度量可知预测的准确性,MAE越小,推荐质量越高。

设目标用户的预测评价集合为只=(仇.tIi—l,2,…,以),对应的目标用户实际评价集合为R。=(^,ti=1,2,…,砣)。对于每个不为零的预测一评价对<P“,^,z>,计算

∑(轧,f一^.f)

MAE=生百厂_

(11)

式中,L为测试集内目标用户“的预测值和真实评价值都不

为0的项目集。4.2实验结果及分析

本文设计了4组实验,将改进算法与传统的协同过滤算法和基于时间改进型协同过滤算法[3]产生的推荐结果进行对

比。式(3)中的口,b分别取20,1/10;式(8)中的z,占分别取

0.2,0.5。

实验一测试遗忘函数中时间间隔T对推荐结果的影响,T分别取10,15,20进行试验,结果如图4所示。

I}\一

∞嘀

|吣≤兰苯。。

=¨

,\≤辽

l\≤≮:盯

l—、、一

The

巨互夏三至互珂

Number

of

Neighbor

图4不同T值对推荐结果的影响

实验结果表明,不同T值对推荐准确度有一定的影响,过长或者过短都会对算法起到负面作用。当T=15时算法

(下转第243页)

inVirus-EvolutionaryGeneticAlgorithmEC]//Proceedings

oftheIEEEConferenceon

EvolutionaryComputation.ICEC.May1996:182—187

[103KubotaN,ArakawaT。FukudaT,eta1.Fuzzymanufacturing

schedulingbyvirus-evolutionarygeneticalgorithminself-organ—izingmanufacturingsystemiC]//Proceedingsofthe19976thIEEEInternational

Conference

on

FussySystems。FUZZ—IEEE’

(上接第228页)性能较佳。

实验二测试式(11)中a取不同值对推荐准确度的影响,试验中口分别取0.7,0.8,0.9,如图5所示。

0∞"

∞L兰

兽”P苫"L

0.7'5‘。。。一"L_%

‰&矗遗“o””匡三垂三三亘匿三囹

图5不同a取值对推荐准确度的影响图

从图5可以看出,引入时间遗忘函数、用户偏好度、用户特征向量能较大地提高推荐准确度,尤其当邻居数目较大时,准确度提高更为明显。由此可见,综合考虑时间效应、用户偏好有效地突出了用户近期访问数据对生成推荐的重要性,结合用户特征向量,使推荐结果能更好地反映用户的当前兴趣。同时可以看出,口的取值对推荐准确度也有比较大的影响,口取值过大或过小都会对推推荐效果产生负面影响,当a=0.8时,推荐结果较佳。

实验三对比本文提出的改进算法、传统的协同过滤算法、基于时间改进型协同过滤算法的推荐准确度。

从图6可以看出,本文算法与其他算法相比,推荐精度有一定程度的提高,尤其当邻居数目较大时,准确率提高更为明显。但最近邻居的选取对算法准确率有比较大的影响,其值过大或者过小都会对推推荐效果产生负面影响。本实验取邻居数目为35到45之间比较合适。

10

15

巨疆蔓兰至亟夏三阚

TON。,慧,。f强。讪玉柏拍

图6不同邻居数目对推荐准确度的影响图

实验四测试本文提出的改进算法与传统的协同过滤算法、基于时间改进型协同过滤算法的时间性能(or=0.8,邻居数目=35,连续做50次实验平均结果)。

表1本文改进算法与其他协同过滤在效率的比较

推荐策略MCT

传统的协同过穗算法15006.32(ms)基于时闻的协同过滤算法15194.45(ms)本文改进协同过滤算法

15206.65(ms)

从表1可以看出,本文提出的改进算法在效率上并没有明显的差距。从图3可以看到,本文算法采用了离线和在线

万方数据

97.Part1(of3):1283-1288

Ell3KubotaN.FukudaT.Schemarepresentationin

virus-evolutio-

nary

geneticalgorithmforknapsackproblemEc]//Proceedings

oftheIEEE

Conferenee

on

Evolutionary

Computation,IC既

May1998:834—839

[123焦李成,杜海峰,刘芳,等.免疫优化计算学习与识别[M].北京:

科学出版社,2006

计算相结合的方式,虽然引入了用户特征向量上的相似度计算和用户偏好度计算,二者的算法复杂度分别为0(m)和O(珂2),但是用户数目理,和用户评价过商品数目啦都相对较小,所以对推荐的效率也没有明显的影响。

结束语针对协同过滤算法中存在的用户兴趣变化、用户项目间联系单一和缺乏用户特征信息的问题,本文提出了适应用户兴趣变化和基于用户特征的个性化推荐算法,在协同过滤算法的基础上,引入了时间遗忘函数、黏度函数、用户特征向量,改进了寻找最近邻居集合过程,综合考虑了时间效

应、用户特征和用户偏好程度,从而提高了寻找最近邻居的准确度。实验表明,本文提出的算法在一定程度上克服了传统协同过滤算法的弊端,能较大提高推荐的准确度,尤其在参数设置得当的情况下,算法性能有明显提高。

参考文献

E1]李聪,梁昌勇,董珂.基于项目类别相似性的协同过滤推荐算法

[J3.合肥工业大学学报:自然科学版,2008(03)

[23彭德巍,胡斌.一种基于用户特征和时间的协同过滤算法EJ].武

汉理工大学学报,2009(03)

[3]杨怀珍,丛晓琪,刘枚莲.于时间加权的个性化推荐算法研究

[J].计算机工程与科学,2009(06)

[43郑先荣,曹先彬.线性逐步遗忘协同过滤算法的研究[J].计算机

工程,2007(06)

[5]GongSon_gjie,ChengGnanghua.Mining

UserInterestChange

forImprovingCollaborative

Fihering[C-I//Intelligent

Informa—

tionTechnologyApplication2008.SecondInternationalSympo—slum.Volume3。DeG2008:24—27

[63

赵智,冯卓楠.改进的基于相关相似性的协同过滤推荐算法[J].

长春t业大学学报:自然科学版,2006(04)

[7]XiaWeiwei,He

Liang,RenLei,eta1.Anewcollaborativefilte-

ring

approachutilizingitem’spopularity[C3//IndustrialEngi—

neeringandEngineeringManagement.IEEEInternationalCon—

ference,Dec.2008:1480-1484

[83

SuXiaoyuan.KhoshgoftaarTM.GreinerRACollaborative

FilteringAlgorithmBasedon

VarianceAnalysisofAttributes-

Value

Preference[C]//IEEE/WIC/ACM

InternationalConfe-

rence.Volume1。Dec.2008:633-639

[9]Dai

Y,YeHongwu,Gong

Songjie.PersonalizedRecommenda—

tion

AlgorithmUsingUserDemographyInformation.Know-

ledgeDiscoveryandData

Mining[C]//SecondInternational

Workshop.Jan.2009:100-103

[10]GongSong-jie,YeHongwuCombiningMemory—Basedand

Model—Based

CollaborativeFilteringinRecommenderSystem

[c]//Circuits,Communications

and

Systems.Pacific-AsiaCon—

ferenee.2009:690-693

[113张国忠.遗忘规律的探索与运用EJ3.继续教育研究,2002(06)

[12]王元明,熊伟.异常数据的检测方法l-J3.重庆工学院学报:自然

科学版,2009,23(2):86—89

243

一种改进的协同过滤推荐算法

作者:作者单位:刊名:英文刊名:年,卷(期):

王茜, 王均波, WANG Qian, WANG Jun-bo重庆大学计算机学院,重庆,400044计算机科学

COMPUTER SCIENCE2010,37(6)

参考文献(12条)

1.杨怀珍;丛晓琪;刘枚莲 于时间加权的个性化推荐算法研究 2009(06)

2.彭德巍;胡斌 一种基于用户特征和时间的协同过滤算法[期刊论文]-武汉理工大学学报 2009(03)3.李聪;梁昌勇;董珂 基于项目类别相似性的协同过滤推荐算法[期刊论文]-合肥工业大学学报(自然科学版)2008(03)

4.王元明;熊伟 异常数据的检测方法[期刊论文]-重庆工学院学报 2009(02)5.张国忠 遗忘规律的探索与运用[期刊论文]-继续教育研究 2002(06)

6.Gong Song-jie;Ye Hongwu Combining Memory-Based and Model-Based Collaborative Filtering inRecommender System 2009

7.Dai Y;Ye Hongwu;Gong Songjie Personalized Recommendation Algorithm Using User DemographyInformation.Knowledge Discovery and Data Mining 2009

8.Su Xiaoyuan;Khoshgoftaar T M Greiner R A Collaborative Filtering Algorithm Based on VarianceAnalysis of AttributesValue Preference 2008

9.Xia Weiwei;He Liang;Ren Lei A new collaborative filtering approach utilizing item's popularity2008

10.赵智;冯卓楠 改进的基于相关相似性的协同过滤推荐算法[期刊论文]-长春工业大学学报(自然科学版)2006(04)

11.Gong Songjie;Cheng Gnanghua Mining User Interest Change for Improving Collaborative Filtering2008

12.郑先荣;曹先彬 线性逐步遗忘协同过滤算法的研究[期刊论文]-计算机工程 2007(06)

本文链接:/Periodical_jsjkx201006053.aspx

本文来源:https://www.bwwdw.com/article/6vl4.html

Top