基于模糊机制用户评分邻域信息的协同过滤推荐方法
【技术领域】
[0001] 本发明属于协同过滤推荐技术领域,具体涉及一种基于模糊机制的用户评分邻域 信息来构建用户相似度的协同过滤推荐方法,可用于网络项目推荐。
【背景技术】
[0002] 互联网技术的迅速发展加重了信息过载的问题,面对海量的数据用户很难发现自 己感兴趣的内容。推荐系统在上世纪90年代首次被提出便得到了广泛的关注,该系统根据 用户的历史行为信息,建立用户与项目,例如:产品、电影、音乐等之间得关系,找到用户感 兴趣的项目并将其推荐给用户。近些年来推荐系统应用日益广泛,如电子商务,图书等多个 方面。一些网站通过收集和分析用户的购买历史,预测用户感兴趣的商品并将其推荐给用 户,从而提高了销售业务。
[0003]目前,已存在许多经典的推荐系统,协同过滤推荐算法是推荐系统中最早被提出 并得到广泛应用的一种推荐算法。协同过滤推荐技术主要分为两大类:基于模型的协同过 滤和基于内存的协同过滤。与传统的基于内容的推荐不同,协同过滤算法的核心思想是分 析用户的兴趣,在用户群中找到与目标用户相似的邻居用户。通过分析这些邻居用户对某 一物品的综合评价,最后形成该目标用户对此物品的喜好程度的预测,推荐形式有评分预 测及Top-N推荐。
[0004] 协同过滤推荐算法主要通过相似度来预测用户对项目的评分,相似度可进一步分 为基于用户的相似度和基于项目的相似度,相似度的度量准确性直接关系整个推荐系统的 推荐质量。与一般的推荐系统相比,协同过滤推荐系统具有两大优势:一是可以发现用户潜 在的但用户自身尚未觉察的兴趣偏好;二是对推荐的对象没有特殊的要求,即可以处理电 影、音乐等难以用文本结构化的表示对象。但是随着电子商务系统的规模的不断扩大,用户 数目和项目的数据急剧增加,加剧了用户项目的评分数据的稀疏特性。在用户评分数据极 端稀疏的情况下,难以找到用户间的共同评分项目,使得传统的相似性度量方法存在着一 定的偶然性,计算得到的目标用户及项目的最近邻不准确甚至无法计算相似性,从而导致 推荐系统的推荐质量下降。
【发明内容】
[0005] 本发明的目的在于针对已有协同过滤推荐算法中的不足,提出一种基于模糊机制 的用户评分上下文信息来构建用户的相似度,以有效的缓解用户数据稀疏带来的问题,提 高推荐系统的质量。
[0006] 本发明的技术方案是:运用模糊逻辑创建用户的评分隶属度函数,缓解尖锐的评 分边界问题。通过项目的上下文信息,充分挖掘项目对用户相似度的贡献率。通过惩罚评 分数目较小的用户的相似度,缓解评分数据的稀疏性带来的难以描述用户偏好问题。其实 现步骤包括如下:
[0007] (1)从原始的用户-物品-评分-时间这四维数据中获取用户U对项目I的评分 信息,创建用户对项目的评分矩阵R(nxp),其中n代表用户的数目,p代表项目的数目;
[0008] (2)根据用户的评分矩阵,确定任意两个用户a与用户b的相似度值sim(a, b):
[0009] (2a)运用软划分机制,分别构建用户u对项目i评分的喜欢隶属度Lui和用户u 对项目i评分的不喜欢隶属度Dui :
[0012] 其中ru i为用户u对项目i的评分,m为推荐系统用户评分的最小值,M为推荐系 统用户评分的最大值,对于评分范围在1到5之间的数值,则m为1,M为5 ;
[0013] (2b)运用项目评分的上下文信息,分别构建项目i评分的喜欢贡献率因子Cli和 项目i评分的不喜欢贡献率因子Cdi :
[0016] 其中叫表示整体用户对项目i的评分人数;
[0017] (2c)运用如下改进的Jaccard函数Jnum(a, b),对评分数目小于平均项目数的用 户进行相似度值的缩减:
[0019]其中
[0022] 其中#13表示用户a对整体项目的评分数目,#1 1表示用户b对整体项目的评分数 目,Iu表示整体用户的平均项目数,Q 3为用户评分数目的四分之三分位数;
[0023] (2d)构建任意两个用户a与b喜欢不喜欢的相似函数LD (a,b)如下:
[0025]其中
[0028] 其中6表示用户u对已经评价项目的评分平均值;
[0029]2e)结合改进的Jaccard函数Jnum(a, b)和喜欢不喜欢相似函数LD(a, b),构建任 意两个用户a与b最终的相似度函数sim(a, b):
[0030] sim(a, b) =LD(a, b) ?Jnun(a, b);
[0031] (3)根据步骤⑵所构建的任意两个用户a与b最终相似度函数sim (a,b),计算 所有用户两两之间的相似度,选择与目标用户相似程度最高的k个邻居用户,根据所选的k 个邻居的项目评分数据,对目标用户未评分项目进行评分预测;
[0032] (4)根据预测评分,对目标用户未评分项目进行分数值从大到小的排列,筛选出前 N个项目即产生对用户的推荐项目,2〈= N〈= 20。
[0033]本发明与现有的技术相比具有以下技术优势:
[0034] 1)本发明通过模糊逻辑构建用户的评分隶属度函数,缓解了传统评分硬划分存在 的尖锐边界问题。
[0035] 2)本发明通过项目的上下文信息,充分挖掘整体用户对项目的偏好程度进而构建 项目对相似度的贡献率,克服了项目的单一权值对相似度的构建带来的不准确性问题。
[0036] 3)本发明通过改进的Jaccard相似函数,使评分数目较小的用户的相似度处以惩 罚,提高了推荐的准确率。
【附图说明】
[0037] 图1是本发明的实现流程图;
[0038]图2是本发明和其它对比方法的平均绝对误差随k个邻居用户数量变化的仿真结 果图;
[0039]图3是本发明和其它对比方法的推荐覆盖率随k个邻居用户数量变化的仿真结果 图;
[0040] 图4是本发明和其它对比方法的推荐准确率随n个推荐项目数量变化的仿真结果 图;
[0041] 图5是本发明和其它对比方法的推荐召回率随n个推荐项目数量变化的仿真结果 图。
【具体实施方式】
[0042] 以下结合附图对本发明的具体实施作进一步的详细描述,本实例以用户对电影的 推荐为例但不是用来限制本发明的范围,例如本发明可用于网页、商品的推荐等。
[0043]参照图1,本发明的实现步骤如下:
[0044]步骤1:创建用户项目评分矩阵。
[0045]从原始的用户_物品-评分-时间这四维数据中获取用户U对项目I的评分信息, 创建用户评分矩阵R(nxp),其中n代表用户的数目,p代表项目的数目。
[0046] 步骤2 :计算任意两个用户的相似度。
[0047] 2a)运用模糊软划分机制,分别构建用户u对项目i评分的喜欢隶属度Lui和用户 u对项目i评分的不喜欢隶属度Dui :
[0050]其中ru i为用户u对项目i的评分,m为推荐系统用户评分的最小值,M为推荐系 统用户评分的最大值,对于评分范围在1到5之间的数值,则m为1,M为5 ;
[0051] 2b)运用项目评分的上下文信息,分别构建项目i评分的喜欢贡献率因子Cli和项 目i评分的不喜欢贡献率因子Cdi :
[0054] 其中表示整体用户对项目i的评分人数,项目i喜欢贡献率因子Cli取值范 围0〈= Cli〈= 1和不喜欢贡献率因子的Cdi取值范围0〈= Cdi〈= 1 ;
[0055] 2c)构建任意两个用户a与b喜欢不喜欢的相似函数LD (a,b):
[0057]其中
[0060] 5表示用户u对已经评价项目的评分平均值,q为两个用户a与b共同评分的项 目数目;
[0061] 2d)运用如下改进的Jaccard函数Jnum(a, b),对评分数目小于平均项目数的用户 进行相似度值的缩减,缓解用户评分数目小带来的相似度不稳定性问题:
[0063]其中
[0066]其中#13表示用户a对整体项目的评分数目,#1 1表示用户b对整体项目的评分数 目,表示整体用户的平均项目数,93为用户评分数目的四分之三分位数;
[0067]2e)结合改进的Jaccard函数Jnum(a, b)和喜欢不喜欢相似函数LD(a, b),构建任 意两个用户a与b最终的相似度函数sim(a, b):
[0068] sim(a, b) =LD(a, b) ?Jnun(a, b)〇
[0069]步骤3:选择邻居用户,对目标用户进行预测。
[0070] 3a)将目标用户与其他用户的相似度按照从大到小的顺序排列,取排列顺序中最 前面的k个用户作为目标用户的邻居用户,k> = 50 ;
[0071] 3b)获取k个邻居用户后,通过下式对目标用户未评分的项目
进行评分预测:
[0073]其中
[0075] 其中,p 为目标用户u对未评分项目i的预测评分值,sim(u,n)为目标用户u 与邻居用户n的相似度值,卩"为用户n对已经评价项目的评分平均值,Ku为k个邻居用户 集合,Hu,i为集合Ku中对项目i评分的邻居用户集合,n为1^^集合中的用户。
[0076]步骤4:根据预测评分,对目标用户未评分项目进行分数值从大到小的排列,筛选 出前N个项目即产生对用户的推荐项目,2〈= N〈= 20。
[0077]本发明的效果可以通过以下实例仿真结果进一步说明:
[0078] 1.实验条件和环境设置
[0079]实验运行环境:CPU为Intel (R) Core (TM)
[email protected] 50GHz,内存为4GB,编译环境为 MatlabR2014a。
[0080] 2.实验数据与评价指标:
[0081]本发明选用Movielens推荐系统的一个电影数据集,数据包含943个用户对1682 部电影的1000000条评分,每个用户至少对20部电影进行评分,评分为1到5的整数值。在 本发明实验中将数据分为测试集和训练集两部分,给定数据集的80%用户评分数据作为训 练集,剩余的20%作为测试数据。为提高实验的准确性和可靠性,采用交叉验证法,即每一 个样本数据被用作训练数据,也被用作测试数据。
[0082] 本发明选用常用的推荐效果评价指标,即平均绝对误差MAE、覆盖率C0V、准确率 PRE和召回率REC。MAE评价指标反映预测评分和真实评分的误差平均值,定义如下:
[0084] 其中M代表测试项目集的大小,pJP q i分别代表用户预测评分和实际用户评分。
[0085] COV评价指标定义为目标用户的k近邻中至少有一个用户对未评分项目做了相应 的评分。定义如下:
[0087] 其中#C为系统的目标用户没评分但至少有一个邻居用户对该项目做了评分的数 目,ffl)为系统用户未评分的项目数。
[0088] PRE评价指标描述前N个对应的项中用户喜欢的项目概率。定义如下:
[0090] 其中N是对目标用户推荐项目的数量,Ntrae表示推荐的N个项目中正确推荐的个 数。该值越大表示推荐的质量越高。
[0091] REC评价指标描述系统推荐给用户的项目,准确推荐的项目数占用户整体喜欢的 项目数比例。
[0093] 其中N是对目标用户推荐项目的数量,NMf表示与目标用户相关联的项目数。同样 该值越大所对应的推荐质量越高。
[0094] 3.实验内容与结果:
[0095] 实验1,选用平均绝对误差MAE作评价指标,用本发明SFC和现有基于Pearson相 关系数的协同过滤方法CPP、基于Cos相似度的协同过滤方法COS、基于结合Jaccard和MSD 的相似度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方 法NHSM进行电影推荐,其预测值与实际的评分的误差值如图2所示。
[0096] 从图2的实验结果可以看出,本发明与其他的5种对比方法相比,其平均绝对误差 得到了不同程度的降低,在不同的邻居用户范围内,本发明的误差值是最小的。
[0097] 实验2,选用覆盖率C0V作评价指标,用本发明SFC和现有基于Pearson相关系数 的协同过滤方法CPP、基于Cos相似度的协同过滤方法C0S、基于结合Jaccard和MSD的相似 度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方法NHSM 进行电影推荐,其预测评分与实际评分的覆盖率如图3所示。
[0098] 从图3的实验结果可以看出,在不同的邻居用户范围内基于奇异值的相似度度量 方法的覆盖率值最高,但本发明的覆盖率值与其他四种对比相似度度量方法相比,本发明 的覆盖率值最高。
[0099] 实验3,选用准确率PRE作评价指标,用本发明SFC和现有基于Pearson相关系数 的协同过滤方法CPP、基于Cos相似度的协同过滤方法C0S、基于结合Jaccard和MSD的相似 度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方法NHSM 进行电影推荐,其预测评分与实际的评分的准确率如图4所示。
[0100] 从图4的实验结果可以看出,本发明与其他的5种对比方法相比,在不同的推荐项 目长度范围内,本发明的准确率是最高的。
[0101] 实验4,选用召回率REC作评价指标,用本发明SFC和现有基于Pearson相关系数 的协同过滤方法CPP、基于Cos相似度的协同过滤方法C0S、基于结合Jaccard和MSD的相似 度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方法NHSM 进行电影推荐,其预测评分与实际的评分的召回率如图5所示。
[0102] 从图5的实验结果可以看出,本发明与其他的5种对比方法相比,在不同的推荐项 目长度范围内,本发明的召回率是最高的。
【主权项】
1. 一种基于模糊机制用户评分邻域信息的协同过滤推荐方法,包括如下步骤: (1)从原始的用户-物品-评分-时间这四维数据中获取用户U对项目I的评分信息, 创建用户对项目的评分矩阵R(nxp),其中η代表用户的数目,P代表项目的数目; ⑵根据用户的评分矩阵,确定任意两个用户a与用户b的相似度值sim(a,b): (2a)运用软划分机制,分别构建用户u对项目i评分的喜欢隶属度Lui和用户u对项 目i评分的不喜欢隶属度Dui :其中rUii为用户u对项目i的评分,m为推荐系统用户评分的最小值,M为推荐系统用 户评分的最大值,对于评分范围在1到5之间的数值,则m为I,M为5 ; (2b)运用项目评分的上下文信息,分别构建项目i评分的喜欢贡献率因子Cli和项目 i评分的不喜欢贡献率因子Cdi :其中SUi表示整体用户对项目i的评分人数; (2c)运用如下改进的Jaccard函数Jnum(a, b),对评分数目小于平均项目数的用户进 行相似度值的惩罚:其中#13表示用户a对整体项目的评分数目,#1 ,表示用户b对整体项目的评分数目, ^表示整体用户的平均项目数,03为用户评分数目的四分之三分位数; (2d)构建任意两个用户a与b喜欢不喜欢的相似函数LD (a,b)如下:其中表示用户U对已经评价项目的评分平均值; 2e)结合改进的Jaccard函数Jnum (a, b)和喜欢不喜欢相似函数LD (a, b),构建任意两 个用户a与b最终的相似度函数sim(a, b): sim(a, b) = LD (a, b) · Jnun (a, b); (3)根据步骤(2)所构建的任意两个用户a与b最终相似度函数sim (a,b),计算所有 用户两两之间的相似度,选择与目标用户相似程度最高的k个邻居用户,根据所选的k个邻 居的项目评分数据,对目标用户未评分项目进行评分预测; ⑷根据预测评分,对目标用户未评分项目进行分数值从大到小的排列,筛选出前N个 项目即产生对用户的推荐项目,2〈 = N〈 = 20。2.根据权利要求1中所述的方法,根据所述步骤(3)中根据所选的k个邻居的项目评 分数据,对目标用户未评分项目进行评分预测,按如下步骤进行: (3a)将目标用户与其他用户的相似度按照从大到小的顺序排列,取排列顺序中最前面 的k个用户作为目标用户的邻居用户,k> = 50 ; (3b)获取k个邻居用户后,通过下式对目标用户未评分的项目进行评分预测:其中,Piu为目标用户u对未评分项目i的预测评分值,sim(u,η)为目标用户u与邻居 用户η的相似度值,卩"为用户η对已经评价项目的评分平均值,Ku为k个邻居用户集合,Hiu为集合Ku中对项目i评分的邻居用户集合,η为HUii集合中的用户。
【专利摘要】本发明公开一种基于模糊机制用户评分邻域信息的协同过滤推荐方法。其技术方案是:1.获取用户对项目的评分信息,创建评分矩阵;2.根据评分矩阵计算用户评分隶属度,根据项目上下文信息计算项目对相似度的贡献率;3.根据评分隶属度和相似度的贡献率,构建用户喜欢不喜欢相似度;4.对评分数目小的用户进行相似度值的缩减,构建用户Jnum相似度;5.根据用户喜欢不喜欢相似度和用户Jnum相似度,构建用户最终相似度;6.根据最终相似度,选取相似度值最高的前K个作为参考邻居用户,完成对目标用户的预测。实验仿真结果表明,本发明比传统协同过滤算法能得到更好的推荐质量,可用于向用户推荐感兴趣的项目。
【IPC分类】G06F17/30
【公开号】CN104899246
【申请号】CN201510170406
【发明人】慕彩红, 焦李成, 王孝奇, 刘红英, 熊涛, 刘若辰, 马文萍, 杨淑媛, 柴文壹
【申请人】西安电子科技大学
【公开日】2015年9月9日
【申请日】2015年4月12日