2013年1月 机械设计与制造工程 Machine Design and Manufacturing Engineering Jan.2013 Vo1.42 No.1 第42卷第1期 DOt:10.3969/j.issn.2095—509X.2013.01.019 基于用户语义相似性的协同过滤推荐算法 李 想,周 良 (南京航空航天大学计算机科学与技术学院,江苏南京210016) 摘要:为了解决协同过滤推荐中的稀疏性问题,提出一种基于用户语义相似性的协同过滤推荐算 法。算法考虑到项目之间内在的语义关系,通过构建领域本体来计算项目之间的语义相似度,并 综合项目语义相似度和用户评分数据来度量用户语义相似性。实验结果表明,该算法在用户评 分数据极端稀疏的情况下,依然可以获得较高的推荐质量。 关键词:推荐系统;协同过滤;稀疏性;领域本体;语义相似性 中图分类号:TP31l 文献标识码:A 文章编号:2095—509X(2013)0l一0070—03 协同过滤推荐是当前应用最广泛、最成功的个 的推荐质量下降的问题,提高推荐的准确性。 性化推荐技术。协同过滤推荐主要根据用户对项 目的评分数据,发现用户之间或者项目之间的相关 1 基于用户语义相似性的协同过滤推荐流程 协同过滤推荐根据目标用户最近邻居集的偏 好来预测目标用户的偏好,推荐流程主要分为2个 部分:发现用户最近邻和产生推荐。基于用户语义 相似性的协同过滤推荐通过引入语义知识,同时综 合用户评分数据来计算用户语义相似度,推荐流程 如图1所示。 融合机制领域本体 性,预测目标用户对未评分项目的喜好程度,从而 产生推荐。目前常用的协同过滤推荐算法主要分 为2类:基于用户的协同过滤推荐和基于项目的协 同过滤推荐…。 传统的基于用户的协同过滤推荐算法是以用 户一项目评分矩阵为基础来计算用户之间的相似陛, 用户评分数据的缺失使系统难以准确定位目标用户 的最近邻,从而导致推荐质量下降。近些年,一些研 究者开始尝试将语义知识应用到协同过滤推荐中,在 解决评分数据稀疏性问题上取得了显著的效果。文 卜 计算用广t语义.}=ll似度 用户 趣模型I I |t算用户最近邻 献[2]提出了一种基于项目语义相似度的协同过滤推 荐算法,通过计算项目之间的语义相似性来预测用户 评分,并填充用户评分矩阵,再计算用户的相似性进 图1 基于用尸语义相似性的协同过滤推荐流程图 根据图1中描述的推荐流程,首先利用项目的 收集用户兴趣信息并构建 行推荐。文献[3]提出了一种基于本体用户模型的个 分类信息构建领域本体,用户兴趣模型由分类本体树中的叶 性化推荐算法,利用本体构建用户兴趣模型,并通过 用户兴趣模型,改进的相似度计算方法来计算用户相似度。文献[4] 子节点和相应的评分组成;然后,根据领域本体内 提出了一种领域知识驱动的协同过滤推荐算法,通过 部的语义关系计算项目之间的语义相似度,综合项 项目语义相似度计算用户之间的语义相似度,同时结 目语义相似度和用户评分数据来对余弦相似性方 并 合用户评分相似性和用户语义相似性计算用户最近 法进行语义扩展,以此来计算用户语义相似度,为目标用户产生最近邻居集;最后,根据用户最近 邻,有效地改善了推荐质量。 本文提出了一种基于用户语义相似性的协同 邻居集的评分产生Top N推荐。 过滤推荐算法。其核心在于利用领域本体中概念 之间的关系来描述项目之间的语义关系,同时利用 2 基于用户语义相似性的协同过滤推荐算法 语义扩展的余弦相似性方法来改进传统的用户相 2.1计算项目语义相似度 领域本体通常用来描述某个领域内的概念以 似性度量方法,并以此来计算用户语义相似性。该 算法能够很好地克服协同过滤中数据稀疏性导致 及概念之间的关系,领域本体中的上层概念是下层 收稿日期:2012一lO一08 作者简介:李想(1989一),男,河南信阳人,南京航空航天大学硕士研究生,主要研究方向为信息系统集成。 ・70・ 第1期 李想,等:基于用户语义相似性的协同过滤推荐算法 概念的泛化,下层概念是上层概念的具体化。项目 之间语义关系的表达可以借助领域本体来实现,图 2描述了电影领域的一个分类本体,领域本体树中 的叶子节点表示具体的电影项目,非叶子节点表示 泛化的电影分类概念。 图2 电影领域的分类本体 根据Ganesan在文献[5]中提出的思想来计算 项目之间的语义相似度。设分类本体树 中叶子 节点的集合为LLu={2l,z2,z3,…,z },LCA (z ,z ) 表示叶节点Z 和Z 的最近公共祖先节点,depth(Z) 表示从根节点到节点Z的路径长度,叶节点fl和Z 的语义相似度定义为: 把ms m( )= 2dep丽th( LCA u(1 i丽,lj))(1) 根据定义可知,itemsim(f ,Z )∈[0,1],当且 仅当Z =Zf时,itemsim(Z ,Zf)=1。任意两个项目之 间的语义相似度可以根据公式(1)计算得到,且相 似度随着最近公共祖先节点深度的增加而增加。 2.2用户语义相似性度量方法 协同过滤算法的核心是计算用户之间的相似 性,从而发现目标用户的最近邻。传统的相似性度 量方法主要有3种:余弦相似性、相关相似性和修正 的余弦相似陛。传统的相似性度量方法过于依赖用 户评分数据,在用户评分数据极端稀疏或者用户之 间评分项目的交集较少的情况下,不能有效地度量 用户之间的相似性,进而影响推荐质量。本文根据 用户评分项目之间的语义相似性和用户对项目的评 分,重新定义向量点积的计算方法,并利用语义扩展 的余弦相似性方法来计算用户语义相似度。 设用户a和用户b评分过的项目数量分别为m 和/1,,用户a和用户b的兴趣模型分别为la={(P , s(p ))l 1≤i≤m}、厶={(g,,s(qf))}ll≤J≤ /1,}。其中,P 和s(p )分别为用户a评分过的项目及 其相应的评分值,qj和s(q )分别为用户b评分过 的项目及其相应的评分值。将用户兴趣模型映射到 向量空间上,同时考虑到用户评分尺度不同的问 题,则用户a和用户b的兴趣评分向量L和 可以 分别表示为: L=. (s(p )一s(p)) (2) , (s( )一s(g)) (3) 』 式中:s(p)和s(q)分别表示用户a和用户b对项目 的平均评分; 和Q 分别表示项目P 和qj的单位 向量。根据传统的余弦相似性度量方法,当P ≠g 时,单位向量Pl和Q 之间是相互正交的,即 ・ Q =0,但领域本体中的项目之间本身存在着某种 程度上的语义关联,而不是真正意义上的正交关 系。因此,本文根据公式(1)中定义的项目之间的 语义相似度为单位向量的点积赋予一个合理的值, 即 ・Q,=itemsim(pi,qj)。由此可以进一步推导 得到用户兴趣评分向量点积的计算方法: ・Ib=乏.乏(s(p )一s(p))・ (4) (s(qj)一s(q))itemsim(p ,qj) Jr。・L= (s(p )一s(p))・ (5) (s(p )一s(p))itemsim(p ,Pj) 同理可以计算J ・J ,当用户口和用户b之间 没有共同的评分项目时,依然可以利用公式(4)来 计算得到一个非零数值。用户a和用户b的语义 相似性可以利用经过语义扩展的余弦相似性方法 来计算: r .r sim(Ct,b)=_= =、『l =_(6) -la、 =二 『l b・Ib 2.3产生推荐 发现最近邻的目标就是为目标用户a产生一 个最近邻居集合N。={0 ,n ,…,a },0隹No,且 sim(0,0 )≥sim(0,0 +I),1≤i<k,贝0可以禾0用公 式(7)来计算用户a对未评分项目i的预测评分 P。,. 然后选择预测评分值较高的若干项目推荐给 目标用户口。 ∑sim(a,6)×( 一Rb) Pn.i 。+ 一 b ENa 式中:sim(0,b)表示用户 与用户b之间的语义相 似度;尺“表示用户b对项目i的评分; 。和 分别 表示用户。与用户b对项目的平均评分。 3实验及分析 3.1数据集 本文采用MovieLens站点提供的数据集对基 于用户语义相似性的协同过滤推荐算法进行测试, 并和传统的基于用户的协同过滤推荐算法进行实 验对比。MovieLens数据集包含超过43 000个用 .71. 2013年第42卷 机械设计与制造工程 户对3 500部电影的评分数据以及电影的分类信 息。本文根据电影的分类信息构建电影领域的分 类本体,从该数据集中随机选取5 000条评分数据 作为实验数据集,其中包含159个用户和614部电 影,并将其分为训练集和测试集,训练集占80%, 测试集占20%。该实验数据集的稀疏等级为: 1一 ‘ 159 614 =94.878%× 3.2评价标准 本文采用平均绝对偏差MAE(Mean Absolute 图3 几种协同过滤推荐算法比较 Error)作为算法质量的评价标准,它通过计算预测 的用户评分和用户实际评分之间的偏差来衡量预 测的准确性,MAE的值越小,算法推荐的质量越 高。设用户评分的预测值集合为{P.,P:,…,P }, 疏性问题,本文提出了一种基于用户语义相似性的 协同过滤推荐算法。通过构建领域本体来描述项 目之间的语义关系,并计算项目语义相似度,根据 项目语义相似度和用户评分来对传统的余弦相似 性公式进行语义扩展,计算用户语义相似度并寻找 用户最近邻。通过实验证明,在用户评分数据极端 稀疏的情况下,该算法与传统的协同过滤推荐算法 相比显著地提高了推荐质量。 其对应的实际的用户评分值集合为{q。,q ,…, q },则MAE的计算方法如下 J: ,v ∑l P —q I 朋 E= — N 一 、(8) 参考文献: 3.3实验结果及分析 为了检验基于用户语义相似性的协同过滤推 荐算法的有效性,将传统的基于用户的协同过滤推 荐算法与之进行比较,用户邻居数从5不断增加到 40,间隔为5。其中,传统的基于用户的协同过滤 算法分别以相关相似性和余弦相似性来计算用户 相似度,实验结果如图3所示。 从图3中可以看出,与传统的基于相关相似性 ill ,综述¨ 小型微 [2]肖敏熊前兴.基于项目语义相似度的协同过滤推荐算法 ….武汉理工大学学报,2009,31(3):21—32. [3]Jiangling Yuan,Hui Zhang,JiangFeng Ni.A new ontology一 based user 0d。 g 。 hod for P。 ali 。 recommendation 。Ccc 010;一367.。 :36c0 :S:c。ie。n。ce a。nEdEE ’ 和余弦相似性的协同过滤算法相比,本文提出的算 法均有较小的MAE值。由此可知,与传统的基于 用户的协同过滤推荐算法相比,基于用户语义相似 性的协同过滤推荐算法在用户评分数据极端稀疏 [4]Li ghng Zhang,Xiaoji。Zhang,Qu皿Ch. ,。t a1.Domm 一 Knowledge driven recommendation method and its application [c]//2011 FounhI mational J。im Cenfere一・Yunnall:Com一 put 一。and o “mi i。“(cSo),捌 : 卜 ・ 的情况下可以有效地提高推荐质量。 4 结束语 为了克服传统协同过滤推荐中存在的数据稀 : [6]邓爱林, ‘J]E.xApcloiMti : mati0n Svstems.2003.21 f】1.64—93 扬勇,施伯乐. 基于项目评分预测的协同过滤推 荐算法[J].软件学报,2003,14(9):1621—1628. Collaborative Filtering Recommendation Algorithm Based on User Semantic Similarity LI Xiang,ZHOU Liang (Nanjing University of Aeronautics and Astronautics,Jiangsu Nanjing,210016,China) Abstract:In order to resolve the sparsity problem of collaborative fltering recommendation,a collaborative fihe— ic similarity is presented.In consideration of the inner se- ring recommendation algorithm based on user semant.mantic relationship among items,the algorithm calculates the semantic similarity among items by constructing do— main ontology,and combines the item semantic similarity and user rating data to measure the user semantic simi‘ larity.The experiment result shows that this algorithm can effectively improve the recommendation quality in the condition of extreme sparsity of user rating data. Key words:Recommendation System;Collaborative Filtering;Sparsity;Domain Ontology;Semantic Similarity 72・ ・