一种基于混合相似度的用户多兴趣推荐算法
来源:易妖游戏网
第4O卷第5期 2016年9月 江西师范大学学报(自然科学版) Journal of Jiangxi Normal University(Natural Science) Vo1.40 No.5 Sep.2016 文章编号:1000-5862(2016)05-0481-06 一种基于混合相似度的用户多兴趣推荐算法 滕少华 ,麦嘉俊 ,张巍 ,赵淦森 (1.广东工业大学计算机学院,广东广州510006;2.华南师范大学计算机学院,广东广州510631) 摘要:针对传统协同过滤推荐数据稀疏会影响推荐质量,以及项目最近邻居集的计算忽略用户多兴趣及 提高推荐的准确度问题,该文采用混合模型改进了相似性度量计算,综合Pearson相关系数与修正余弦相 似性,提出了一种基于混合相似度的用户多兴趣推荐算法.实验表明:该推荐方法的相似度计算更高效, 不仅提高推荐准确率,而且使用户有更好的推荐体验. 关键词:用户多兴趣;推荐算法;协同过滤;混合相似度 中图分类号:仰311 文献标志码:A DOI:10.16357/j.cnki.issnlO00-5862.2016.05.07 协同过滤推荐虽然应用广泛,在不同领域给商 0 引言 家带来商业价值并给用户都带来便利,但其仍然存 在着许多不足之处.如实际上用户的兴趣爱好各不 个性化服务的出现是互联网快速发展的一个重 相同,但传统协同过滤推荐只是按照用户同一喜好 要标志之一.个性化推荐服务应用到各领域为人们 来推荐,忽略了用户兴趣多样性.另外传统的协同过 在生活上都带来便利,并深受人们认同.个性化推荐 滤推荐方法会带了冷启动问题.然而,目前的大多数 是一种商家或企业通过收集用户行为或购买记录, 推荐算法只采用近邻模型来确定最近邻居项目,并 使用推荐算法计算得出满足用户需求的推荐结果, 未考虑用户兴趣多样性的问题,另外简单的相似度 最后以推送等方式反馈给用户的主动服务.国外,亚 量方法未能评分矩阵极端稀疏等问题,使得推荐质 马逊电子商务网站最早使用推荐系统来向网站顾客 量大幅降低.因此,考虑用户实际的推荐体验,提高 主动推送推荐商品u J.Netlfix视频公司举行的推荐 推荐准确率,合理改善推荐效果成为一个重要的热 算法改进大赛、潘多拉音乐电台对客户进行精确主 点问题. 动推荐,这些都极大推动了推荐系统研究领域的发 展.如今国内,豆瓣网不仅仅为用户提供电影方面推 1相关工作 荐,还对音乐、图书也进行满足用户需求的推荐.优 酷网、土豆网、爱奇艺等影视类网站的个性化推荐技 协同过滤(collaborative filtering)采用相似近邻 术也是越趋成熟.近年新浪微博和微信的快速发展 模型,根据目标用户相似近邻来计算预测目标用户 与广泛使用,精准广告推荐,好友推荐,文章推荐和 对待测物品的打分,然后进行相应推荐.基于近邻的 各种服务的推荐将成为个性化推荐研究的新方向. 推荐算法与基于模型的推荐算法是目前协同过滤推 协同过滤系统是在各行各业中应用日益广 荐算法的两大类 J. 泛 .Ringo、Tapestry、GroupLens以及Video Recom— 实际上,已有大量学者对合理的推荐方法以及 mender是协同过滤推荐系统广泛应用和推广的典 可行的推荐机制做出研究.刘东宁等 提出一种角 型代表 J.协同过滤推荐技术的发展,能为商家带 色协同方法,用E—CARGO模型建模最终使推荐机 来更大的商业价值. 制人性化.马小军等 提出一种基于内容的机器学 收稿日期:2016-01.12 基金项目:国家自然科学基金(61402118),广东省科技计划项目(201213091000173,2013B010401034,2013B090200017, 2013B010401029),广东省教育厅项目(ZYGXO08),广东省重点实验室开放基金(15zk0132)和广州市科技计划 (2012J5100054,2013J4500028,2013J4100004,201508010067)资助项目. 作者简介:滕少华(1962一),男,江西南昌人,教授,博士,主要从事协同计算、数据挖掘、网络安全、大数据和复杂网络下的 协同建模的研究. 482 江西师范大学学报(自然科学版) 2016年 习推荐方法,并在相似度计算中使用区分度,从而提 高推荐准确率.李国等¨。 提出一种非线性组合的协 同过滤推荐算法,增加时间属性、非线性组合用户特 征和项目属性.高灵渲等_1 提出了改进聚类模式的 推荐算法,建立模型来预测项目的所属类别,提高推 荐的效率.庄永龙等¨ 提出了基于项目特征建模, 引入权重因子来对相似性进行改进,该算法虽然提 高了预测准确率,但在权重计算时只用Pearson相 关系数度量,没有考虑共同评分项目的数量对相似 性的影响.吴月萍等¨ 提出了新相似度计算方法, 将特征相似度和协同相似度各占50%来组合,没有 考虑项目相似性问题. 针对上述分析,本文提出了混合改进相似度计 算的用户多兴趣推荐算法设计与分析.第1步线性 综合Pearson相关系数和修正余弦相似度,用新的 相似性度量方法求解目标项目的最近邻项目集,第 2步在目标项目的最近邻项目集上计算用户最近邻 居来进行协同过滤预测推荐,最终形成推荐.目的是 考虑用户的实际推荐体验,改善推荐效果,同时提高 推荐准确度. 2用户多兴趣推荐算法建模 2.1传统的协同过滤推荐算法 传统推荐算法基本思想:建立相似近邻模型,是 根据对同一项目或产品具有相似兴趣的用户来找用 户最近邻,再对项目进行预测和产生推荐列表.首先 输人用户和项目数据,计算用户相似度,找出与目标 用户的相似邻居,最后对目标项目进行预测并向用 户产生推荐列表.这种算法主要分3个步骤:评分 矩阵(数据输入)、形成邻居和产生推荐列表. (i)评分矩阵(数据输入).用户对项目的评分 数据记录在一个评分矩阵上,如表l所示.该矩阵主 要记录了用户集合与项目集合,以及用户对不同项 目的打分情况. 表1用户-项目评分矩阵 ll 2 Ru R1 R21 R22 R2j R2 ● _ : : Ui R。I Rn R R ● ● : : R.a Rw R (ii)形成邻居.根据步骤(i)评分数据,使用相 似度公式计算两用户之间的相似度,从计算结果寻 找目标用户最近邻居.这步骤中的相似度公式选取, 会间接影响最终推荐的质量.相关相似性度量 PC(Pearson Correlation)、余弦相似性度量 CC(Cosine Correlation)和修正的余弦相关性度量 ACC(Adjusted Cosine Correlation),这3种是常用的 计算相似性度量的方法. (iii)产生推荐列表.根据步骤(ii)中形成的最 近邻居集,计算用户对待测项目的预测评分,最后根 据对项目预测分值的排序,可以得出目标用户的项 目Top.N推荐集.设用户 和用户对应的项目集尺 对任意项目t的预测值计算为 一 prediction f=,R +∑(corr )×(ratingi,l— I=l ,R )/艺(corr ), (1) 其中i是最近邻居集中的用户,corr 是用户 和用 户 之间的相似度.rating 是用户 对项t的评分 值. 是用户 对所有项目的平均分值; 是用户i 对所有项目的平均分值. Top—N推荐集. 将计算的出的预i贝0值 prediction 按由大到小进行排序,选取前Ⅳ个项目 推荐给目标用户. 2.2 混合改进相似度的用户多兴趣推荐过程 目前的大多数推荐算法在计算项目相似性时, 仅采用传统相似度量方式计算,忽略用户对不同项 目有不同兴趣爱好的表现,从而导致相似性计算不 够精确.同一用户对不同的项目表现出来的兴趣和 评分数据是不一样的,所以在预测不同的项目时,需 要用到的最近邻居用户也应该不一样.这说明了待 测项目和与该待测项目相对应的最近邻居用户有 关.为了提高预测的准确率,应该找出目标用户在待 测项目上有一定相似性的最近邻居用户来进行计 算.此外,只采用一种相似度去计算相似度,解决不 了评分稀疏性问题,所以需要根据用户对项目评分 情况来对相似性度量方法进行优化.本文提出的方 法重点在于首先在用户一项目评分矩阵上,通过混 合改进相似度来寻找出相似的项目最近邻居,根据 项目最近邻居来计算其他用户与目标用户的相似 性,得出用户最近邻居来预测目标用户对待评分项 目对象的预测评分并产生推荐列表,最后按评分降 序排列,选取前Ⅳ个推荐对象推送给用户.该推荐过 程如图1所示. 第5期 滕少华,等:一种基于混合相似度的用户多兴趣推荐算法用户卜——— l用户一项目评分矩阵 483 在计算项目相似度时,阈值 的取值会直接影 响混合相似性度量的准确度,从而影响推荐效果.因 此,在计算项目预测准确率的实验中,会以5为步长 来计算,且需要通过多次实验来确定合适的一个阈 值 混合Pearson相关系数sim ( )与修正的余弦 相似性sim:(iJ),使用权重参数A用来动态调整两 相似度的比重,最终得出混合相似性度量方法的计 I. :l 推荐评分最高的l 若干对象 l l寻找项目最近邻居 对未评分对象评分}.∈— 寻找用户最近邻居 图1 混合改进相似度的用户多兴趣推荐过程 2.3 混合改进的相似性度量计算 2.3.1 常见相似度计算方法 目前,有很多相似 度的计算方法,从简单的余弦相似度到复杂的 最 近邻等算法.本文介绍最常用的3种:Pearson相关 系数、余弦相似度和修正余弦相似度¨引. Pearson相关相似度PC(Pearson Correlation): 主要反映2个用户之间线性关系,用Pearson相关系 数计算得出.普通的余弦相似度CC(Cosine Correlation)主要通过计算用户在n维项目的向量 的余弦夹角来评估用户口和用户b的相似度.修正 余弦相似度ACC(Adjusted Cosine Correlation)能较 好地确保用户邻居的相似性,普通余弦相似度CC 没有考虑用户评分尺度问题.例如在评分范围1—5 的电影数据集中,用户口认为3分就是满足其兴趣 爱好的电影,而用户b则会认为5分电影才是他喜欢 的.而ACC则是通过计算时减去用户的总体平均分 来解决这个问题. 2.3.2 混合模型相似度计算 在项目邻居的相似 度计算中,由于用户-项目评分矩阵稀疏性大,如果 只简单采用了相关性系数来度量相关性,会大大降 低推荐的准确率.为了提高推荐质量,本文提出混合 模型相似度计算,采用权重参数来综合Pearson相关 系数和修正余弦相似度,通过实验计算阈值来调整 2种相似度的比重,并将此混合模型的相似度作为 新的组合相似度计算方法.Pearson相关系数是反映 两项目的线性关系,不需要考虑用户行为,能客观计 算出项目相似性.修正余弦相似度则考虑了用户主 观评分尺度问题.因此,为了提高推荐精度,需要结 合上述2种相似度来进行计算. 在混合模型相似度计算中,定义一个权重参数 A.权重参数A用来调整属Pearson相关系数和修正 余弦相似性.权重参数A的计算公式为 A、 fUl/i ̄,当UI<卢时, / —I1, 当U/≥ 时, 其中 表示两项目共同评分的用户个数,参数 为 阈值.计算共同评分用户个数大于/3时,使A=1,此 时表示只用修正余弦相似性来作为计算度量. 算公式为 sim(i, )=(1一A)sim (i, )+Asim2(i√)= f(1一U1/ ̄)siml(ij)+( / )s G, ),当UI< 时,(3) Lsim (i√), 当UI≥卢时, sim。( , )=∑(R 一Ri)(R。J一弓)/ ( ’ (4) 其中R 和R 分别表示项目 、项目 的平均分. “和 分别表示用户c对项目i与项目_『的评分. f表示 对项目i与项目 共同评分的用户集合. sim2( , )=∑(R。cEUq ,i— 。)( J— )/ (./∑(R州一 /∑( J-_砭) ), .(5) 其中尺 表示用户C对所有项目的平均分. 2.4 混合相似度的用户多兴趣推荐算法 首先,根据上述优化后的混合相似性度量通过 计算两项目的相似性,找出相似的项目最近邻居,然 后根据项目最近邻居来计算用户的相似性,寻找相 似的用户最近邻居,其次根据用户最近邻居集在待 评分项目上的评分来计算对待评分项目预测评分并 产生推荐列表,最后按评分降序排列出前Ⅳ个推荐 项目对象,推荐给目标用户.其具体步骤如下. (i)计算找出最近邻居项目集合.对所有项目 i E,,采用优化的混合相似性度量方法来计算项目 i的最近邻居项目,记作s .此步骤相似度sim(i√) 的计算方法使用上文提出的优化混合相似度方法来 计算.按sim(i, )降序排列找出最近邻居项目集 sli. (ii)计算找出最近邻居用户集合.usim(口,b) 表示计算用户口和用户b在项目集s,f上的相似性, usim(口,6)= ∑ (R。, 一 。)(尺6, 一 6) _= = =======;,(6) .V/∑ ( ECSIi(Ⅱ,6) 尺 , —- ) ∑ (EGSI ̄(口,6) , ——Rb) 其中CSII(0,b)表示用户口和用户b在项目集Js 中 共同评分的项目子集.R。表示用户口对所有项目的 江西师范大学学报(自然科学版) 2016正 平均分;尺 表示用户b对所有项目的平均分. 将usim(a,b)降序排列,找出用户a在项目i上 的最近邻居集Userset。. . (iii)计算项目预测评分.根据邻居用户在项目 i上的评分,预测用户a对项目i的评分P , P =R +k∑b E eH“dusim(a,6)(‰一R6), (7) .6 其中亡=∑ubE ̄setasim(a,6). .6 (iv)按由大到小对不同项目的预测评分进行 排序,选取前J7v个项目推荐给用户a.基于此步骤, 设计的混合相似度用户多兴趣推荐算法伪代码 如下: Input:User—Item评分矩阵;目标用户a和待测 项目i; Output:推荐集; (i)计算项目最近邻居: foreach in Item集合 用优化混合相似度方法来计算项目i与项目 之间的相似度sim(i, ); if当前相似项目的数量<Sli设定的大小 将 加入.s else if sim(iJ)>SIi中的最小值 将_『加入Js, SoN(Sl1);//降序排序; (ii)计算用户最近邻居: foreach b in User集合 if目标用户a与b在Js, 上有共同评分项目 foreach k in CSII(a,b) 用修正余弦相似度ACC计算用户a和用户b的 相似度usim(a,b); if当前相似用户的数量<Userset 设定的大小 将b加人Userset else if usim(a,b)>Userset 中的最小值 将b加入Use=et Sort(Use ̄et .6);//降序排序; (iii)计算项目预测评分: foreach待测项目i in用户a的未评分项目集合 sumRate=0; sumSim=0: RateSet={}; foreach用户b in Userset .6 sumRate+=usim(a,b)木(死.1一R6) sumSim+=usim(a,6) P。i=R。+sumRate/sumSim; .将P。. 加入RateSet; (iv)给出推荐集 Sort(RateSet);//降序排序 从中选取前Ⅳ个项目推荐给用户a. 2.5推荐质量评价 (i)推荐算法的精确度计算通常采用平均绝对 偏差MAE(mean absolute error).文中采用其作为 度量标准(值越小表示精度越高). 实际的用户评分集合用q 表示,而预测的用户 评分集合用P 表示.平均绝对偏差MAE的计算公 式为n Ⅳ MAE=∑lJ P —q l‘0 /N, (8) 其中Ⅳ为测试集中评分记录个数. (ii)准确率(Precision).准确率定义为预测准 确的项目总数与预测的所有项目总数之比.计算公 式为 , Precision=∑l R( )n ( )I/∑l ( )l,(9) 其中R( )为推荐系统对用户 在测试集中推荐的 项目集合,T(M)为测试集中用户u喜欢的项目 集合. (iii)召回率(Recal1)计算公式为 Recall=∑I R( )n (“)l/∑I (u)1.(10) 3 实验与结果分析 3.1 数据集 本文采用MovieLens网站提供的数据集来进行 实验分析.该数据集包含1 682部电影,943位用户, 记录了全部用户对电影100 000条评分.记录评分分 值是1~5之间的整数.本文的实验数据集是从其 原始数据集中抽取471 100条电影评分记录,包含 350位用户分别对1 346部电影的评分. 3.2 实验结果与分析 3.2.1 比较与分析3种相似性度量方法 为了提 高推荐的精度,选择合适的相似性度量方法来进行 线性组合,本实验需要比较分析这3种相似性度量 方法——相关相似性PC、余弦相似性CC和修正的 余弦相似性ACC.最近邻个数K依次从5逐步递增 至50,步长为5.实验比较结果如图2所示. 通过图2比较实验可知,在最近邻个数 依次 递增的情况下,修正的余弦相似性度量方法的MAE 值比其它2种相似性度量方法要低,故表明其推荐 质量更高.因此选取修正的余弦相似性作为本文提 出的混合相似度计算的一种相似度度量来研究. 第5期 滕少华,等:一种基于混合相似度的用户多兴趣推荐算法485 O.86 O.84 妻:: O.78 O.76 O.74 图2 PC、CC、ACC的比较 3.2.2 阈值卢的确定 权重参数A需要通过阈值 卢来确定.在计算项目之间的相似度时, 的值会直 接影响推荐的最终得出的项目相似度.由于不同口 值会间接影响了推荐的质量,因此,需要进行多次实 验来为阈值卢确定一个合适的值,实验如图3所示. 图3 阈值芦的确定 通过图3实验结果可知, 的值介于3O一55时, MAE值趋向稳定.而当卢=50时,MAE值最小,说明 阈值JB的值定为50能使混合模型推荐算法有较高 的推荐准确率. 3.2.3 比较与分析推荐算法 将本文提出的推荐 算法,分别和传统协同过滤算法,用户多兴趣混合模 型推荐算法进行MAE值比较.实验结果如图4所示. O.82 0.8O O.78 O.76 O.74 O.72 0.7O 图4 混合相似度用户推荐算法的比较 从图4可以得出,本文提出的混合改进相似度 用户多兴趣推荐算法,在最近邻个数K的依次递增 情况下,其MAE值比其他2种对比算法低.故实验说 明本文提出的推荐算法,推荐精度有明显的提高.准 确率的实验如图5所示,召回率的实验如图6所示 从图5和图6可以看出,本文提出的混合相似 度的用户多兴趣推荐算法相比于其他2种推荐算 法,有更高的准确率和召回率. 0.42 O.4O 0.38 姑0.36 O.34 O.32 2 4 6 8 10 12 14 推荐项目列表个数 +传统协同过滤推荐,+用户多兴趣混合模型推荐, —・一混合相似度的用户多兴趣推荐. 图5准确率比较 0.4O 0.3o 0.30 签: 0.15 0.1O O.O5 0 推荐项目列表个数 +传统协同过滤推荐,一用户多兴趣混合模型推荐, 一混合相似度的用户多兴趣推荐. 图6召回率比较 4结束语 在协同过滤基础上分析研究了PC、CC、ACC这 3种相似性度量方法,本文提出了混合相似度计算 的用户多兴趣推荐算法,不仅使相似度计算更高效, 并且提高了推荐准确度,为用户提供更好的推荐体 验.该算法对相似度进行混合改进,使用权重参数综 合Pearson相关系数和修正余弦相似度,用这一新 的相似度计算方法来求解目标项目的相似项目集, 提高相似度计算精度.通过MovieLens公开数据集 实验表明,该算法相比于其它2种推荐算法有着更 好的推荐效果. 接下来的工作将对冷启动问题进行研究.综合 考虑新项目的搜索热度和项目类别的新颖性等指 标,通过数据挖掘对其进行更合理有效的推荐. 5参考文献 [1]Sarwar B,Karypis G,Konstan,et a1.Item-based collabora・ tive filtering recommendation algorithms[C].New York: ACM,2001:285-295. [2]刘建国,周涛,汪秉宏.个性化推荐系统的研究进展 [J].自然科学进展,2009,19(1):1.15. [3]黄创光,印鉴,汪静,等.不确定近邻的协同过滤推荐算 法[J].计算机学报,2010,33(8):1369—1377. 江西师范大学学报(自然科学版) [4]Hu Qi,Chen Enhong,Xiong Hui,et a1.Enhancing collabo— rative filtering by user interests expansion via personalized 2016年 [9]马小军,赵伟.改进相似度的分布式个性化推荐[J】. 计算机工程与应用。2014,50(4):126-131. [1O]李国,张智斌,刘芳先,等.非线性组合的协同过滤推荐 算法[J].计算机应用,201l(11):3063-3067. [11]高灵渲,张巍,霍颖翔,等.改进的聚类模式过滤推荐算 法[J].江西师范大学学报:自然科学版,2012,36(1): 106。1 1O. rnkiang[J].IEEE Trans ON Systems,Man and Cybemet- ics-B,2012,42(1):218-233. [ ]邓爱林,朱扬勇,施伯乐.基于项目评分预测的协同过 滤推荐算法[J].软件学报,2003,4(9):1621-1628. [6]Zhao Zhidan,Shang Mingsheng.User-based collaborative- filtering recommendation algorithms on hadoop[EB/OL]. [2015-12—17].https://www.researchgate.net/publiea- tion/221306166User—BasedCollaborative—FilteringRec. 一——[12]庄永龙.基于项目特征模型的协同过滤推荐算法[J]. 计算机应用与软件,2009,26(5):244-246. [13]吴月萍,郑建国.协同过滤推荐算法[J].计算机工程 与设计,2011,32(9):3019-3021. [14]Tang Shaohua,Li Junlei,Li Rigui,et a1.The calculation of similarity nd aits application in data mining[J].Lecture Notes in Computer Science,2014,8351:563-574. ommendationAlgorithmsonHadoop. __——[7]孙光福,吴乐,刘淇,等.基于时序行为的协同过滤推荐 算法[J].软件学报,2013,24(11):2721-2733. [8]刘冬宁,刘艳,滕少华,等.基于角色协同的在线社交网 络好友推荐机制[J].广西大学学报:自然科学版, 2014。39(6):1316.1323. ‘ [15]许智宏,王宝莹.基于项目综合相似度的协同过滤算法 [J].计算机应用研究,2014,31(2):398-400. User Mlllti-Faced Interests Recommendation Algorithm Based on Hybrid Similarity TENG Shaohua ,MAI Jiajun ,ZHANG Wei ,ZHAO Gansen (1.School ofComputer Science and Technology,GuangdongUniversity ofTechnology,Guangdong Guangzhou 510006,China; 2.School of Computer,South China Normal University,Guangdong Guangzhou 510631,China) Abstract:The traditional collaborative filtering recommendation S sparse data will affect the quality,and it fails to take into account the user multi-faced interests to determine the projects nearest neighbor set.Coupling with the tra— ditional similarity measure method wihoutt considering user S behavior,leads to lower quality of the recommenda— tion.In order to improve the recommendation accuracy,the hybrid model,improved similarity measure calculated by Pearson correlation linear combination of adjusted cosine correlation has been used,and hen tan user multi—faced in— terests recommendation algorihm of thybrid similarity computing is proposed in the paper.The experimental results show that the similarity calculation of recommend dation method is more eficifent,improve the accuracy of recom. mendation,and make the better recommendation of user experience. Key words:user mulit—faced interests;recommendation algorihm;tcollaborative ifltering;hybrid similarity computing (责任编辑:冉小晓)