基于Jaccard均衡距离的协同过滤推荐方法

文档序号:9375862阅读:327来源:国知局
基于Jaccard均衡距离的协同过滤推荐方法
【技术领域】
[0001] 本发明属于数据处理技术领域,具体是一种协同过滤推荐方法,可用于个性化推 荐系统。
【背景技术】
[0002] 随着互联网和信息技术的快速发展和普及,人们对信息的依赖程度与日倶增。信 息技术的大量使用提高了信息的产生、处理和传播效率。互联网作为信息时代的基础平台, 承载了大量的信息资源。面对海量的信息资源,用户无法有效筛选出对自己有用的信息,这 就造成了信息过载问题。为了解决信息过载问题,推荐系统应运而生。与传统的信息过滤 技术搜索引擎相比,推荐系统不需要用户提供搜索关键词,而是通过分析用户历史行为记 录发现用户的潜在爱好,从而产生推荐。因此,推荐系统满足了用户个性化需要。
[0003] 协同过滤推荐算法是推荐系统的主流算法,这种算法的基本思想是:根据所有用 户对物品或者信息的偏好,发现与当前用户口味和偏好相似的"邻居"用户群,再根据邻居 的偏好对该用户进行预测。协同过滤算法主要分为:基于内存的算法和基于模型的算法。 基于内存的协同过滤算法可分为基于用户的协同过滤算法和基于项目的协同过滤算法。
[0004] 基于用户的协同过滤算法的基本思想是预先根据所有用户的历史偏好数据计算 用户之间的相似性,然后把与目标用户相似的用户喜欢的物品推荐给目标用户;基于项目 的协同过滤的基本思想是:预先根据所有用户的历史偏好数据计算物品之间的相似性,然 后把与目标用户喜欢的物品相类似的物品推荐给目标用户。这两种算法的关键在相似度的 计算,不同的相似度计算方法会对目标用户产生不同的邻居集,进而影响推荐结果。
[0005] Breese J,Heckerman D 等人在文南犬 Empirical analysis of predictive algorithms for collaborative filtering中研究了用余弦相似度计算用户相似度的方 法,该方法仅考虑了两用户公共评分项目构成的向量之间的夹角大小,两向量之间的夹角 越小,表明两用户相似度越高,但是该方法忽视以下三个问题:不同用户有不同的评分偏好 对相似度的影响,如有的用户喜欢给出比较高的评分,而有的用户则偏好给出比较低的评 分;公共评分项相对数量对相似度的影响,即两用户公共评分项目数量占两用户总评分项 目多少对相似度的影响;用户评分向量长度对相似度的影响。该方法存在推荐准确度偏低、 邻居集大小对推荐精度影响较大的问题。
[0006] L Candillier,F Meyer 等人在文南犬 Designing specific weighted similarity measures to improve collaborative filtering systems 中石开究了将 Jaccard 相关系数 与皮尔逊相关系数相结合来计算用户间相似度的方法,该方法改进了原先算法中忽略公共 项目占两用户评价项目比重的问题和不同用户有不同评分偏好的问题,但仍然没有考虑到 两用户公共评分项目构成的向量长度对相似度影响的问题,因此该方法虽然提高了推荐准 确度,但仍然没有解决邻居集大小对推荐准确度影响大的问题,即邻居集大小选取的不合 适会降低推荐准确度。

【发明内容】

[0007] 本发明的目的在于提出一种基于Jaccard均衡距离的协同过滤推荐方法,以解决 现有协同过滤推荐算法受邻居集大小影响较大,导致推荐准确度不高的问题。
[0008] 为实现上述目的,本发明的技术方案包括如下步骤:
[0009] (1)根据推荐系统提供的用户-项目评分记录构造大小为mXn的用户-项目评分 矩阵R,其中m为用户数量,η为项目数量,将用户项目评分矩阵R中的90%作为训练集合 Τ,10 %做为测试集C ;
[0010] ⑵依据训练集T中的评分数据,用Jaccard均衡距离方法计算用户的相似度得到 一个mXm的相似度矩K
,该相似度矩阵第i行中的数据元素 表示用户i和其他所有用户的相似度,元素 X (i,j)表示用户i与用户j的相似度;
[0011] (3)确定最近邻居查询个数nu ;
[0012] (4)确定目标用户U,待评分项目Ic;
[0013] (5)用⑵中得出的相似度矩阵X和最近邻居查询个数nu,确定目标用户U的邻 居集S(U);
[0014] (6)计算用户U对项目I。的预测评分值r i, J
[0015] (7)循环步骤(4)-(6)对测试集中的所有用户的评分都进行预测;
[0016] (8)对测试集中的每个用户,将其预测评分值从大到小排列,选择前N个项目作为 推荐项目,其中5彡N彡20。本发明与现有技术相比存在以下优点:
[0017] 第一,本发明采用Jaccard均衡距离相似度测量方法,考虑到用户评分向量的长 度对用户相似度的影响,使用户之间的相似度计算更为准确,从而提高了推荐准确度。
[0018] 第二,本发明相较于采用余弦相似度、皮尔逊相关系数等相似度度量准侧的协同 过滤算法,对邻居查询数目即邻居集的大小的要求更低,较小的邻居查询数目同样可以得 到较高的推荐准确度,而且当改变邻居查询数目时,推荐准确度变化不大。
【附图说明】
[0019] 图1是本发明的实现流程图;
[0020] 图2是本发明用与现有两种相似度测量协同过滤算法的推荐准确度比较示意图。
【具体实施方式】
[0021] 下面结合图1对本发明的实施例和效果作进一步详细描述。
[0022] 步骤一,读入用户-评分记录,整理得到用户-项目评分矩阵R、训练集T和测试集 Co
[0023] 用户-评分记录格式记录了不同用户对不同项目的评分情况,如表1所示:
[0024] 表1本发明所用数据集的部分用户-项目评分记录
[0025]

[0026] 其整理过程如下:
[0027] (Ia)统计用户-评分记录中的用户数目m和项目数目n,构造一个mXn的用 户-项目评分矩阵R,如表2所示,表2中每行表示一个用户对所有项目的评分,其中"0"表 示该用户未对该项目评过分:
[0028] 表2本发明中构造的部分用户-项目评分矩阵R
[0029]
[0030] (Ib)随机选取用户项目评分矩阵R中的90%作为训练集合T,余下的10%作为测 试集C,删除训练集T中评分项目小于20的用户和没有被任何用户评分的项目。
[0031] 步骤二,根据训练集T,用Jaccard均衡距离方法计算用户之间的相似度矩阵X。 V
[0032] 用户的相似度矩阵X为一个mXm的矩阵, ,该相似度 / 矩阵第i行中的数据元素表示用户i和其他所有用户的相似度,元素 X(i,j)表示用户i与 用户j的相似度,计算如下:
[0033] (2a)确定两个不相同的用户i和用户j ;
Y ---- i:,i '
[0034] (2b)确定用户i的评分项目集合I1,用户j的评分项目集合I,,求两用户的公共 评分项目集合,即=I 1^=I1H I,;
[0035] (2c)根据公式尤(/" ,计算 Λ'- 用户i和用户j之间的相似度,其中:
[0036] X(i,j)为第i个用户与第j个用户之间的相似度,分别为第i个用户和 第j个用户对项目s的评分;
[0037] ¥_与V _分别为第i个用户的项目评分与第j个用户的项目评分所构成的多维 向量空间中的最大空间向量和最小空间向量,最大空间向量表示为:
[0038] Vmax - {v max, 1,Vmax, 2,· · ·,Vmax,P,· · ·,Vmax,l},I € P € I,1 - I i, j
[0039] 其中,vmax,p= max{r u,v| I 彡 u 彡 m,I 彡 v 彡 η},
[0040] 最小空间向量表示为:
[0041] Vnin= {ν min, 1,Vmin,2,· · ·,Vmin,p,· · ·,Vmin,I},I ^ P ^ I,_ I I ^ i, j I
[0042] 其中v_,p= min{r u,v| I彡u彡m, I彡v彡η},式中的)2表示该的多 维空间的最大空间距离;
[0043] (2d)用户i不变,改变用户j,重复步骤(2b)_(2c),计算出用户i和其他所有用户 之间的相似度;
[0044] (2e)改变用户i,重复步骤(2b)_(2d),计算出所有用户之间的相似度。
[0045] 步骤三,根据用户-评分记录中的用户数目,确定最近邻居查询个数nu,该nu不超 过用户-评分记录中用户数目M的5%。
[0046] 步骤四,根据测试集中包含的用户和项目,随机选取
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1